diff --git a/package.json b/package.json index 36c72a1c45..e29156dfe1 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,8 @@ }, "devDependencies": { "husky": "^8.0.3", - "turbo": "^2.5.4" + "turbo": "^2.5.4", + "vite": "^7.3.1" }, "prettier": "@mendix/prettier-config-web-widgets", "packageManager": "pnpm@10.28.2+sha512.41872f037ad22f7348e3b1debbaf7e867cfd448f2726d9cf74c08f19507c31d2c8e7a11525b983febc2df640b5438dee6023ebb1f84ed43cc2d654d2bc326264", @@ -72,7 +73,8 @@ "react-dom": ">=18.0.0 <19.0.0", "rollup": "catalog:", "ts-node": "10.9.2", - "typescript": ">5.8.0" + "typescript": ">5.8.0", + "vite>rollup": "^4.59.0" }, "patchedDependencies": { "mime-types": "patches/mime-types.patch", diff --git a/packages/pluggableWidgets/accessibility-helper-web/package.json b/packages/pluggableWidgets/accessibility-helper-web/package.json index 4d0e77aab9..1a9e0a499a 100644 --- a/packages/pluggableWidgets/accessibility-helper-web/package.json +++ b/packages/pluggableWidgets/accessibility-helper-web/package.json @@ -26,16 +26,20 @@ "branchName": "accessibility-helper-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accessibility-helper-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "update-changelog": "rui-update-changelog-widget", "verify": "rui-verify-package-format" diff --git a/packages/pluggableWidgets/accordion-web/package.json b/packages/pluggableWidgets/accordion-web/package.json index 3cfed18613..32bc40c093 100644 --- a/packages/pluggableWidgets/accordion-web/package.json +++ b/packages/pluggableWidgets/accordion-web/package.json @@ -27,16 +27,20 @@ "branchName": "accordion-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accordion-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/area-chart-web/package.json b/packages/pluggableWidgets/area-chart-web/package.json index 885e7a93f3..3807fa95e7 100644 --- a/packages/pluggableWidgets/area-chart-web/package.json +++ b/packages/pluggableWidgets/area-chart-web/package.json @@ -26,12 +26,16 @@ "branchName": "area-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/area-chart-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/badge-button-web/package.json b/packages/pluggableWidgets/badge-button-web/package.json index 440981b94d..fac0c881d3 100644 --- a/packages/pluggableWidgets/badge-button-web/package.json +++ b/packages/pluggableWidgets/badge-button-web/package.json @@ -26,16 +26,20 @@ "branchName": "badge-button-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/badge-button-web", "build": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/badge-web/package.json b/packages/pluggableWidgets/badge-web/package.json index 82f73bba09..431a11b630 100644 --- a/packages/pluggableWidgets/badge-web/package.json +++ b/packages/pluggableWidgets/badge-web/package.json @@ -26,16 +26,20 @@ "branchName": "badge-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/badge-web", "build": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", @@ -52,6 +56,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:^*", "@mendix/widget-plugin-platform": "workspace:*", + "archiver": "^6.0.0", "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/bar-chart-web/package.json b/packages/pluggableWidgets/bar-chart-web/package.json index 32121d7224..121c9e8d0b 100644 --- a/packages/pluggableWidgets/bar-chart-web/package.json +++ b/packages/pluggableWidgets/bar-chart-web/package.json @@ -26,12 +26,16 @@ "branchName": "bar-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/bar-chart-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/barcode-generator-web/package.json b/packages/pluggableWidgets/barcode-generator-web/package.json index f11aecb8cb..9d9a36fdbc 100644 --- a/packages/pluggableWidgets/barcode-generator-web/package.json +++ b/packages/pluggableWidgets/barcode-generator-web/package.json @@ -27,16 +27,20 @@ "branchName": "barcode-generator-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/barcode-generator-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "echo \"Skipping barcode-generator-web e2e tests\"", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/barcode-scanner-web/package.json b/packages/pluggableWidgets/barcode-scanner-web/package.json index 3884209df4..f89b5f14aa 100644 --- a/packages/pluggableWidgets/barcode-scanner-web/package.json +++ b/packages/pluggableWidgets/barcode-scanner-web/package.json @@ -26,16 +26,20 @@ "branchName": "barcode-scanner-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/barcode-scanner-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "echo \"Skipping barcode-scanner-web e2e tests\"", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/bubble-chart-web/package.json b/packages/pluggableWidgets/bubble-chart-web/package.json index 3d9774c29b..1a0daa8ddc 100644 --- a/packages/pluggableWidgets/bubble-chart-web/package.json +++ b/packages/pluggableWidgets/bubble-chart-web/package.json @@ -26,12 +26,16 @@ "branchName": "bubble-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/bubble-chart-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/calendar-web/package.json b/packages/pluggableWidgets/calendar-web/package.json index aae948d5df..fd8822c83e 100644 --- a/packages/pluggableWidgets/calendar-web/package.json +++ b/packages/pluggableWidgets/calendar-web/package.json @@ -26,16 +26,20 @@ "branchName": "calendar-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/calendar-web", "build": "cross-env MPKOUTPUT=Calendar.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Calendar.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "echo \"Skipping this e2e test\"", "e2edev": "run-e2e dev --with-preps", "format": "pluggable-widgets-tools format", "lint": "eslint --ext .jsx,.js,.ts,.tsx src/", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=Calendar.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=Calendar.mpk pluggable-widgets-tools start:server", "test": "cross-env TZ=UTC jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/carousel-web/package.json b/packages/pluggableWidgets/carousel-web/package.json index 6a6e1b62aa..a901b2d04d 100644 --- a/packages/pluggableWidgets/carousel-web/package.json +++ b/packages/pluggableWidgets/carousel-web/package.json @@ -26,16 +26,20 @@ "branchName": "carousel-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/carousel-web", "build": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/chart-playground-web/package.json b/packages/pluggableWidgets/chart-playground-web/package.json index fb7ad9ed63..f32b34e493 100644 --- a/packages/pluggableWidgets/chart-playground-web/package.json +++ b/packages/pluggableWidgets/chart-playground-web/package.json @@ -26,14 +26,18 @@ "branchName": "chart-playground-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/chart-playground-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json index d958726d8e..95633dd56e 100644 --- a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json +++ b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json @@ -30,17 +30,21 @@ "branchName": "checkbox-radio-selection-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/checkbox-radio-selection-web", "prebuild": "rui-create-translation", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/color-picker-web/package.json b/packages/pluggableWidgets/color-picker-web/package.json index 66c7839c35..cb78a1885a 100644 --- a/packages/pluggableWidgets/color-picker-web/package.json +++ b/packages/pluggableWidgets/color-picker-web/package.json @@ -27,16 +27,20 @@ "branchName": "color-picker-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/color-picker-web", "build": "cross-env MPKOUTPUT=ColorPicker.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ColorPicker.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=ColorPicker.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=ColorPicker.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/column-chart-web/package.json b/packages/pluggableWidgets/column-chart-web/package.json index 1f9a5887a7..1b8e74aa48 100644 --- a/packages/pluggableWidgets/column-chart-web/package.json +++ b/packages/pluggableWidgets/column-chart-web/package.json @@ -26,14 +26,18 @@ "branchName": "column-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/column-chart-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/combobox-web/package.json b/packages/pluggableWidgets/combobox-web/package.json index 5deefe0919..8ce39049bf 100644 --- a/packages/pluggableWidgets/combobox-web/package.json +++ b/packages/pluggableWidgets/combobox-web/package.json @@ -30,17 +30,21 @@ "branchName": "combobox-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/combobox-web", "prebuild": "rui-create-translation", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/custom-chart-web/package.json b/packages/pluggableWidgets/custom-chart-web/package.json index a8b3d28fb2..6ea56b788d 100644 --- a/packages/pluggableWidgets/custom-chart-web/package.json +++ b/packages/pluggableWidgets/custom-chart-web/package.json @@ -29,15 +29,19 @@ "branchName": "custom-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/custom-chart-web", "build": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "echo 'FIXME: Finish custom-chart-web e2e test migration'", "e2edev": "echo 'FIXME: Finish custom-chart-web e2e test migration'", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env NODE_OPTIONS=--max-old-space-size=8192 pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/datagrid-date-filter-web/package.json b/packages/pluggableWidgets/datagrid-date-filter-web/package.json index ae25ea3d25..e2f9f2d17e 100644 --- a/packages/pluggableWidgets/datagrid-date-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-date-filter-web/package.json @@ -26,15 +26,19 @@ "branchName": "datagrid-date-filter-web/data-widgets-3.0" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-date-filter-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json index 69a51928ea..4f0d4a1a6b 100644 --- a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json @@ -26,15 +26,19 @@ "branchName": "datagrid-dropdown-filter-web/dw3.0-dropdown-rework" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-dropdown-filter-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/datagrid-number-filter-web/package.json b/packages/pluggableWidgets/datagrid-number-filter-web/package.json index 02513af4dd..5d26974c46 100644 --- a/packages/pluggableWidgets/datagrid-number-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-number-filter-web/package.json @@ -26,15 +26,19 @@ "branchName": "datagrid-number-filter-web/data-widgets-3.0" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-number-filter-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/datagrid-text-filter-web/package.json b/packages/pluggableWidgets/datagrid-text-filter-web/package.json index 7eb847f677..e5da3c11fb 100644 --- a/packages/pluggableWidgets/datagrid-text-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-text-filter-web/package.json @@ -26,15 +26,19 @@ "branchName": "datagrid-text-filter-web/data-widgets-3.0" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-text-filter-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/datagrid-web/package.json b/packages/pluggableWidgets/datagrid-web/package.json index 6032addf65..1fb3dcfe09 100644 --- a/packages/pluggableWidgets/datagrid-web/package.json +++ b/packages/pluggableWidgets/datagrid-web/package.json @@ -26,15 +26,19 @@ "branchName": "datagrid-web/data-widgets-3.0" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest", "update-changelog": "rui-update-changelog-widget", @@ -63,6 +67,7 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*" + "@mendix/widget-plugin-test-utils": "workspace:*", + "archiver": "^6.0.0" } } diff --git a/packages/pluggableWidgets/datagrid-web/src/features/data-export/DSExportRequest.ts b/packages/pluggableWidgets/datagrid-web/src/features/data-export/DSExportRequest.ts index 47bb3f51a4..1d9a46c815 100644 --- a/packages/pluggableWidgets/datagrid-web/src/features/data-export/DSExportRequest.ts +++ b/packages/pluggableWidgets/datagrid-web/src/features/data-export/DSExportRequest.ts @@ -1,6 +1,6 @@ import { isAvailable } from "@mendix/widget-plugin-platform/framework/is-available"; import Big from "big.js"; -import { DynamicValue, ListValue, ObjectItem, ValueStatus } from "mendix"; +import { DynamicValue, ListValue, ObjectItem } from "mendix"; import { createNanoEvents, Emitter, Unsubscribe } from "nanoevents"; import { ColumnsType, ShowContentAsEnum } from "../../../typings/DatagridProps"; @@ -30,6 +30,8 @@ type ReadersByType = Record; type RowReader = (item: ObjectItem) => RowData; type ColumnReader = (props: ColumnsType) => HeaderDefinition; +type GetterStatus = { status: string }; +type ValueGetter = { get: (item: unknown) => GetterStatus }; interface ExportRequestEvents { /** Emitted once when request is started. */ @@ -67,7 +69,7 @@ export class DSExportRequest { private totalCount: number | undefined = undefined; private shouldSendHeaders = false; private emitter: Emitter; - private getters: Array<{ get: (item: unknown) => { status: ValueStatus } }> = []; + private getters: ValueGetter[] = []; private readController: AbortController | undefined; constructor(params: RequestParams) { @@ -248,15 +250,14 @@ export class DSExportRequest { this.emitter.events = {}; } - private getGetters(columns: ColumnsType[]): Array<{ get: (item: unknown) => { status: ValueStatus } }> { + private getGetters(columns: ColumnsType[]): ValueGetter[] { return columns.map(col => { - let prop = - col.showContentAs === "attribute" - ? col.attribute - : col.showContentAs === "dynamicText" - ? col.dynamicText - : col.exportValue; - prop ??= { get: () => ({ status: ValueStatus.Available, value: "n/a" }) }; + const prop = (col.showContentAs === "attribute" + ? col.attribute + : col.showContentAs === "dynamicText" + ? col.dynamicText + : col.exportValue) ?? { get: () => ({ status: "available", value: "n/a" }) }; + return prop; }); } diff --git a/packages/pluggableWidgets/datagrid-web/src/helpers/state/column/ColumnStore.tsx b/packages/pluggableWidgets/datagrid-web/src/helpers/state/column/ColumnStore.tsx index f2136d3e8e..e983959a89 100644 --- a/packages/pluggableWidgets/datagrid-web/src/helpers/state/column/ColumnStore.tsx +++ b/packages/pluggableWidgets/datagrid-web/src/helpers/state/column/ColumnStore.tsx @@ -4,8 +4,7 @@ import { ListAttributeValue, ListExpressionValue, ListWidgetValue, - ObjectItem, - ValueStatus + ObjectItem } from "mendix"; import { ComponentPropsWithoutRef, KeyboardEvent, ReactElement, ReactNode } from "react"; import { AlignmentEnum, ColumnsType } from "../../../../typings/DatagridProps"; @@ -170,7 +169,7 @@ export class ColumnStore implements GridColumn { return true; } - if (this._visible.status === ValueStatus.Loading && this._visible.value === undefined) { + if (this._visible.status === "loading" && this._visible.value === undefined) { // if status is Loading and no previous value is available it means initial loading return false; } diff --git a/packages/pluggableWidgets/datagrid-web/src/helpers/storage/AttributePersonalizationStorage.ts b/packages/pluggableWidgets/datagrid-web/src/helpers/storage/AttributePersonalizationStorage.ts index 0eb8f515a4..caa6011986 100644 --- a/packages/pluggableWidgets/datagrid-web/src/helpers/storage/AttributePersonalizationStorage.ts +++ b/packages/pluggableWidgets/datagrid-web/src/helpers/storage/AttributePersonalizationStorage.ts @@ -1,4 +1,4 @@ -import { EditableValue, ValueStatus } from "mendix"; +import { EditableValue } from "mendix"; import { action, computed, makeObservable, observable } from "mobx"; import { DatagridContainerProps } from "../../../typings/DatagridProps"; import { PersonalizationStorage } from "./PersonalizationStorage"; @@ -28,7 +28,7 @@ export class AttributePersonalizationStorage implements PersonalizationStorage { } get _value(): string | undefined { - if (this._storageAttr && this._storageAttr.status === ValueStatus.Available) { + if (this._storageAttr && this._storageAttr.status === "available") { return this._storageAttr.value; } } diff --git a/packages/pluggableWidgets/document-viewer-web/package.json b/packages/pluggableWidgets/document-viewer-web/package.json index 7d974a604d..d9f3639eb0 100644 --- a/packages/pluggableWidgets/document-viewer-web/package.json +++ b/packages/pluggableWidgets/document-viewer-web/package.json @@ -30,14 +30,18 @@ "branchName": "document-viewer-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/document-viewer-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "echo 'FIXME: Add unit tests'", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/dropdown-sort-web/package.json b/packages/pluggableWidgets/dropdown-sort-web/package.json index e9539c8147..09a5bbef29 100644 --- a/packages/pluggableWidgets/dropdown-sort-web/package.json +++ b/packages/pluggableWidgets/dropdown-sort-web/package.json @@ -26,15 +26,19 @@ "branchName": "dropdown-sort-web/data-widgets-3.0" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/dropdown-sort-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/events-web/package.json b/packages/pluggableWidgets/events-web/package.json index 6d6a1245d7..3b4838a39e 100644 --- a/packages/pluggableWidgets/events-web/package.json +++ b/packages/pluggableWidgets/events-web/package.json @@ -30,16 +30,20 @@ "branchName": "app-events-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/app-events-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "echo \"Skipping this e2e test\"", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/fieldset-web/package.json b/packages/pluggableWidgets/fieldset-web/package.json index 0abd9b6de1..5551fada5c 100644 --- a/packages/pluggableWidgets/fieldset-web/package.json +++ b/packages/pluggableWidgets/fieldset-web/package.json @@ -26,16 +26,20 @@ "branchName": "fieldset-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/fieldset-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/file-uploader-web/package.json b/packages/pluggableWidgets/file-uploader-web/package.json index 62bbf00af8..10fa238c40 100644 --- a/packages/pluggableWidgets/file-uploader-web/package.json +++ b/packages/pluggableWidgets/file-uploader-web/package.json @@ -27,14 +27,18 @@ }, "scripts": { "add-nf-defaults": "node nf-defaults.mjs add", + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/file-uploader-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "echo \"Skipping this e2e test\"", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "remove-nf-defaults": "node nf-defaults.mjs remove", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", diff --git a/packages/pluggableWidgets/gallery-web/package.json b/packages/pluggableWidgets/gallery-web/package.json index c9ab5b5582..c23544224e 100644 --- a/packages/pluggableWidgets/gallery-web/package.json +++ b/packages/pluggableWidgets/gallery-web/package.json @@ -26,15 +26,19 @@ "branchName": "gallery-web/dw3.0-dropdown-rework" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/gallery-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/google-tag-web/package.json b/packages/pluggableWidgets/google-tag-web/package.json index d878b50ba0..75ed90e17d 100644 --- a/packages/pluggableWidgets/google-tag-web/package.json +++ b/packages/pluggableWidgets/google-tag-web/package.json @@ -30,14 +30,18 @@ "branchName": "google-tag-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/google-tag-web", "build": "cross-env MPKOUTPUT=com.mendix.widget.web.GoogleTagV2.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=com.mendix.widget.web.GoogleTagV2.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "prerelease": "npm run lint", "release": "cross-env MPKOUTPUT=com.mendix.widget.web.GoogleTagV2.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=com.mendix.widget.web.GoogleTagV2.mpk pluggable-widgets-tools start:server", "update-changelog": "rui-update-changelog-widget", "verify": "rui-verify-package-format" diff --git a/packages/pluggableWidgets/heatmap-chart-web/package.json b/packages/pluggableWidgets/heatmap-chart-web/package.json index 7f98f2ffff..31718eb0fa 100644 --- a/packages/pluggableWidgets/heatmap-chart-web/package.json +++ b/packages/pluggableWidgets/heatmap-chart-web/package.json @@ -26,14 +26,18 @@ "branchName": "heatmap-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/heatmap-chart-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/html-element-web/package.json b/packages/pluggableWidgets/html-element-web/package.json index b982538084..ffa2484ed0 100644 --- a/packages/pluggableWidgets/html-element-web/package.json +++ b/packages/pluggableWidgets/html-element-web/package.json @@ -27,14 +27,18 @@ "branchName": "html-element-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/html-element-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/image-web/package.json b/packages/pluggableWidgets/image-web/package.json index 9698c9c721..3e88d3f160 100644 --- a/packages/pluggableWidgets/image-web/package.json +++ b/packages/pluggableWidgets/image-web/package.json @@ -27,16 +27,20 @@ "branchName": "image-viewer-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/image-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/language-selector-web/package.json b/packages/pluggableWidgets/language-selector-web/package.json index f1ff4f954b..633188ebc8 100644 --- a/packages/pluggableWidgets/language-selector-web/package.json +++ b/packages/pluggableWidgets/language-selector-web/package.json @@ -26,16 +26,20 @@ "branchName": "language-selector-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/language-selector-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/line-chart-web/package.json b/packages/pluggableWidgets/line-chart-web/package.json index 026c9d058c..6c17353e05 100644 --- a/packages/pluggableWidgets/line-chart-web/package.json +++ b/packages/pluggableWidgets/line-chart-web/package.json @@ -26,14 +26,18 @@ "branchName": "line-chart-web-3.1.1" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/line-chart-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/maps-web/package.json b/packages/pluggableWidgets/maps-web/package.json index ad4b1ca6fd..54a3c1dc3a 100644 --- a/packages/pluggableWidgets/maps-web/package.json +++ b/packages/pluggableWidgets/maps-web/package.json @@ -27,16 +27,20 @@ "branchName": "maps-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/maps-web", "build": "cross-env MPKOUTPUT=Maps.mpk pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Maps.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "echo \"Skipping maps-web e2e tests\"", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=Maps.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=Maps.mpk pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/markdown-web/package.json b/packages/pluggableWidgets/markdown-web/package.json index 69cedc7e1f..e273115e39 100644 --- a/packages/pluggableWidgets/markdown-web/package.json +++ b/packages/pluggableWidgets/markdown-web/package.json @@ -28,16 +28,20 @@ "branchName": "markdown-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/markdown-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": " pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json index 9338d24937..b16546707c 100644 --- a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json +++ b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json @@ -26,14 +26,18 @@ "branchName": "pie-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/pie-doughnut-chart-web", "build": "pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/popup-menu-web/package.json b/packages/pluggableWidgets/popup-menu-web/package.json index ece020e720..b6902c1839 100644 --- a/packages/pluggableWidgets/popup-menu-web/package.json +++ b/packages/pluggableWidgets/popup-menu-web/package.json @@ -27,16 +27,20 @@ "branchName": "popupmenu-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/popup-menu-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/progress-bar-web/package.json b/packages/pluggableWidgets/progress-bar-web/package.json index 7f4b99d18c..d6f65b7466 100644 --- a/packages/pluggableWidgets/progress-bar-web/package.json +++ b/packages/pluggableWidgets/progress-bar-web/package.json @@ -27,16 +27,20 @@ "branchName": "progress-bar-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/progress-bar-web", "build": "cross-env MPKOUTPUT=ProgressBar.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ProgressBar.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=ProgressBar.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=ProgressBar.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/progress-circle-web/package.json b/packages/pluggableWidgets/progress-circle-web/package.json index 9e18c4aa02..416fee334b 100644 --- a/packages/pluggableWidgets/progress-circle-web/package.json +++ b/packages/pluggableWidgets/progress-circle-web/package.json @@ -27,16 +27,20 @@ "branchName": "progress-circle-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/progress-circle-web", "build": "cross-env MPKOUTPUT=ProgressCircle.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ProgressCircle.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=ProgressCircle.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=ProgressCircle.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/range-slider-web/package.json b/packages/pluggableWidgets/range-slider-web/package.json index 67e1760445..eb61951fd4 100644 --- a/packages/pluggableWidgets/range-slider-web/package.json +++ b/packages/pluggableWidgets/range-slider-web/package.json @@ -27,16 +27,20 @@ "branchName": "range-slider-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/range-slider-web", "build": "cross-env MPKOUTPUT=RangeSlider.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=RangeSlider.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=RangeSlider.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=RangeSlider.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/range-slider-web/src/ui/RangeSlider.scss b/packages/pluggableWidgets/range-slider-web/src/ui/RangeSlider.scss index 56c6297815..d73cf7eea0 100644 --- a/packages/pluggableWidgets/range-slider-web/src/ui/RangeSlider.scss +++ b/packages/pluggableWidgets/range-slider-web/src/ui/RangeSlider.scss @@ -1,5 +1,5 @@ -@use "~@rc-component/slider/assets/index.css"; -@use "~@rc-component/tooltip/assets/bootstrap.css"; +@use "../../node_modules/@rc-component/slider/assets/index.css"; +@use "../../node_modules/@rc-component/tooltip/assets/bootstrap.css"; .widget-range-slider { padding: 4px 8px; diff --git a/packages/pluggableWidgets/rating-web/package.json b/packages/pluggableWidgets/rating-web/package.json index c78a98bc76..40b9c39495 100644 --- a/packages/pluggableWidgets/rating-web/package.json +++ b/packages/pluggableWidgets/rating-web/package.json @@ -27,16 +27,20 @@ "branchName": "star-rating-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/rating-web", "build": "cross-env MPKOUTPUT=StarRating.mpk pluggable-widgets-tools build:ts", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=StarRating.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=StarRating.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=StarRating.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/rich-text-web/package.json b/packages/pluggableWidgets/rich-text-web/package.json index b0c4db84a7..6cd5a6f64b 100644 --- a/packages/pluggableWidgets/rich-text-web/package.json +++ b/packages/pluggableWidgets/rich-text-web/package.json @@ -27,16 +27,20 @@ "branchName": "rich-text-v4-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/rich-text-web", "build": "cross-env MPKOUTPUT=RichText.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=RichText.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=RichText.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=RichText.mpk pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", @@ -71,10 +75,6 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "@rollup/plugin-alias": "^5.1.1", - "@rollup/plugin-image": "^3.0.3", - "@rollup/plugin-json": "^6.1.0", - "@rollup/plugin-replace": "^6.0.2", "@types/js-beautify": "^1.14.3", "@types/katex": "^0.16.7", "@types/sanitize-html": "^1.27.2", @@ -82,7 +82,6 @@ "postcss": "^8.5.6", "postcss-import": "^16.1.1", "postcss-url": "^10.1.3", - "rollup-plugin-postcss": "^4.0.2", - "rollup-preserve-directives": "^1.1.3" + "rollup-plugin-postcss": "^4.0.2" } } diff --git a/packages/pluggableWidgets/rich-text-web/rollup.config.mjs b/packages/pluggableWidgets/rich-text-web/rollup.config.mjs index 25ebee25b8..4cd2d0b733 100644 --- a/packages/pluggableWidgets/rich-text-web/rollup.config.mjs +++ b/packages/pluggableWidgets/rich-text-web/rollup.config.mjs @@ -1,22 +1,27 @@ import copyFiles from "@mendix/rollup-web-widgets/copyFiles.mjs"; import typescript from "@rollup/plugin-typescript"; -import preserveDirectives from "rollup-preserve-directives"; -import alias from "@rollup/plugin-alias"; + +/** + * quill-resize-module uses `import ... from "*.svg?raw"` syntax (a Vite/webpack + * feature). Rollup doesn't understand the `?raw` query suffix, so we strip it + * and let the normal image/url plugin resolve the bare SVG path. + */ +const stripRawSuffix = { + name: "strip-raw-suffix", + resolveId(id, importer, options) { + if (id.endsWith("?raw")) { + return this.resolve(id.slice(0, -4), importer, { ...options, skipSelf: true }); + } + return null; + } +}; export default args => { const result = copyFiles(args); return result.map((config, _index) => { config.plugins = [ ...config.plugins.filter(plugin => plugin?.name !== "typescript"), - preserveDirectives(), - alias({ - entries: [ - { - find: /(.*)\.svg\?raw$/, - replacement: "$1.svg" - } - ] - }), + stripRawSuffix, typescript({ noEmitOnError: !args.watch, sourceMap: config.sourceMaps, diff --git a/packages/pluggableWidgets/selection-helper-web/package.json b/packages/pluggableWidgets/selection-helper-web/package.json index 915dbb2404..b31f9e9fed 100644 --- a/packages/pluggableWidgets/selection-helper-web/package.json +++ b/packages/pluggableWidgets/selection-helper-web/package.json @@ -26,12 +26,16 @@ "branchName": "gallery-web/main" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/selection-helper-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "update-changelog": "rui-update-changelog-widget", "verify": "rui-verify-package-format" diff --git a/packages/pluggableWidgets/skiplink-web/package.json b/packages/pluggableWidgets/skiplink-web/package.json index 934124d975..a8de577ce0 100644 --- a/packages/pluggableWidgets/skiplink-web/package.json +++ b/packages/pluggableWidgets/skiplink-web/package.json @@ -27,16 +27,20 @@ "branchName": "skiplink-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/skiplink-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "MENDIX_VERSION=11.1.0.75979 run-e2e ci --no-update-project", "e2edev": "MENDIX_VERSION=11.1.0.75979 run-e2e dev --with-preps --no-update-project", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/slider-web/package.json b/packages/pluggableWidgets/slider-web/package.json index b0db0fa04e..384b3b76d4 100644 --- a/packages/pluggableWidgets/slider-web/package.json +++ b/packages/pluggableWidgets/slider-web/package.json @@ -27,16 +27,20 @@ "branchName": "slider-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/slider-web", "build": "cross-env MPKOUTPUT=Slider.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Slider.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=Slider.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=Slider.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/switch-web/package.json b/packages/pluggableWidgets/switch-web/package.json index 314ef2d04f..ade7425309 100644 --- a/packages/pluggableWidgets/switch-web/package.json +++ b/packages/pluggableWidgets/switch-web/package.json @@ -27,16 +27,20 @@ "branchName": "switch-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/switch-web", "build": "cross-env MPKOUTPUT=Switch.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Switch.mpk pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "cross-env MPKOUTPUT=Switch.mpk pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "cross-env MPKOUTPUT=Switch.mpk pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/time-series-chart-web/package.json b/packages/pluggableWidgets/time-series-chart-web/package.json index ea8932acd5..f0a32a4864 100644 --- a/packages/pluggableWidgets/time-series-chart-web/package.json +++ b/packages/pluggableWidgets/time-series-chart-web/package.json @@ -26,14 +26,18 @@ "branchName": "time-series-chart-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/time-series-chart-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/timeline-web/package.json b/packages/pluggableWidgets/timeline-web/package.json index b413671ad3..40b3a1db1a 100644 --- a/packages/pluggableWidgets/timeline-web/package.json +++ b/packages/pluggableWidgets/timeline-web/package.json @@ -26,16 +26,20 @@ "branchName": "timeline-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/timeline-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/tooltip-web/package.json b/packages/pluggableWidgets/tooltip-web/package.json index 83e26ba941..016b929ea0 100644 --- a/packages/pluggableWidgets/tooltip-web/package.json +++ b/packages/pluggableWidgets/tooltip-web/package.json @@ -27,16 +27,20 @@ "branchName": "tooltip-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/tooltip-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": " pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/tree-node-web/package.json b/packages/pluggableWidgets/tree-node-web/package.json index 421fd2e536..4531057d1b 100644 --- a/packages/pluggableWidgets/tree-node-web/package.json +++ b/packages/pluggableWidgets/tree-node-web/package.json @@ -26,15 +26,19 @@ "branchName": "tree-node-web/main" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/tree-node-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2e-update-project": "pnpm --filter @mendix/data-widgets run build:include-deps", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "jest --projects jest.config.js", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/pluggableWidgets/video-player-web/package.json b/packages/pluggableWidgets/video-player-web/package.json index 16e6109d27..7d9c5eac01 100644 --- a/packages/pluggableWidgets/video-player-web/package.json +++ b/packages/pluggableWidgets/video-player-web/package.json @@ -27,16 +27,20 @@ "branchName": "video-player-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/video-player-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", + "dev:vite": "vite build --watch --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", "e2e": "run-e2e ci", "e2edev": "run-e2e dev --with-preps", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", "lint": "eslint src/ package.json", "publish-marketplace": "rui-publish-marketplace", "release": "pluggable-widgets-tools release:web", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts", "start": "pluggable-widgets-tools start:server", "test": "pluggable-widgets-tools test:unit:web:enzyme-free", "update-changelog": "rui-update-changelog-widget", diff --git a/packages/shared/vite-web-widgets/README.md b/packages/shared/vite-web-widgets/README.md new file mode 100644 index 0000000000..94271997e2 --- /dev/null +++ b/packages/shared/vite-web-widgets/README.md @@ -0,0 +1,124 @@ +# vite-web-widgets (prototype) + +This workspace package contains shared configuration files for building Mendix pluggable +web widgets with **Vite** (and optionally `rolldown`). + +> ⚠️ This is an experimental prototype created on branch `build/update-to-vite`. +> It does **not** currently integrate with `@mendix/pluggable-widgets-tools`, and it +> is not used by any widget yet. The purpose is to have something concrete for +> discussion and review before requesting broader approvals. + +## Contents + +- `vite.config.ts` – thin orchestrator and public entrypoint. +- `types.ts` – shared types used by the config/build modules. +- `config/` – config derivation and mode handling. +- `build/` – editor artifact and MPK build steps. +- `helpers/` – package metadata/path helpers. +- `benchmark.js` – helper script to compare build time and output size between the + existing Rollup build and the new Vite build for a given widget. + +## Usage Modes + +Both usage patterns are supported and intentionally kept compatible: + +- Direct CLI usage (current widget scripts) +- Programmatic usage via `createWidgetViteConfig()` + +### Direct CLI Usage + +Use this in widget scripts: + +```json +"scripts": { + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts" +} +``` + +### Programmatic Usage + +Use this if a widget/package wants a local wrapper config: + +```ts +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig(); +``` + +You can optionally override inferred values: + +```ts +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ + widgetName: "MyWidget", + runtimeDirectoryName: "mywidget" +}); +``` + +## Usage: Build Modes + +This config supports two build modes via the `--mode` flag: + +### Development Mode (`--mode dev`) + +Development builds prioritize debugging and quick iteration: + +- **Minification:** Disabled +- **Source Maps:** Inline (for debugging) +- **Optimization:** Off (preserves code structure) +- **NODE_ENV:** `"development"` +- **Output Size:** Larger MPK (suitable for local dev and CI) + +```json +"scripts": { + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts" +} +``` + +### Production Mode (`--mode prod` or default) + +Production builds prioritize size and performance: + +- **Minification:** Full (esbuild) +- **Source Maps:** None +- **Optimization:** On (tree-shaking, inlining, etc.) +- **NODE_ENV:** `"production"` +- **Output Size:** Smaller MPK (suitable for releases and marketplace) + +```json +"scripts": { + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts" +} +``` + +If no mode is specified, production mode is used by default. + +## Internal Module Map + +- `vite.config.ts`: public exports and Vite `defineConfig` wiring +- `config/create.ts`: top-level Vite config object creation +- `config/resolve.ts`: resolves widget/runtime config and build mode +- `config/infer.ts`: infers file paths/artifacts/editor entries +- `build/editor-artifacts.ts`: builds editor preview/config outputs +- `build/mpk.ts`: stages files and creates the `.mpk` +- `helpers/package-json.ts`: package.json loading and widget name resolution +- `types.ts`: cross-module type definitions + +## Setup Instructions + +To test this locally in a widget package, add the following scripts to `package.json`: + +```json +"scripts": { + "build:vite": "vite build --mode dev --config ../../shared/vite-web-widgets/vite.config.ts", + "release:vite": "vite build --mode prod --config ../../shared/vite-web-widgets/vite.config.ts" +} +``` + +Adjust paths as needed and run `pnpm install` to pull the new dev dependencies. + +Once the experiment proves successful, we can either upstream the helpers into +`@mendix/pluggable-widgets-tools` or maintain the new package as the canonical +Vite configuration. diff --git a/packages/shared/vite-web-widgets/benchmark.js b/packages/shared/vite-web-widgets/benchmark.js new file mode 100644 index 0000000000..903e0a6fe7 --- /dev/null +++ b/packages/shared/vite-web-widgets/benchmark.js @@ -0,0 +1,248 @@ +#!/usr/bin/env node +const { execSync, execFileSync } = require("child_process"); +const { statSync, readdirSync, mkdirSync, rmSync, copyFileSync } = require("fs"); +const path = require("path"); +const repoRoot = path.resolve(__dirname, "../../.."); + +function getFolderSize(folder) { + let total = 0; + if (!require("fs").existsSync(folder)) { + return 0; + } + const entries = readdirSync(folder, { withFileTypes: true }); + for (const entry of entries) { + const fullPath = path.join(folder, entry.name); + if (entry.isDirectory()) { + total += getFolderSize(fullPath); + } else if (entry.isFile()) { + total += statSync(fullPath).size; + } + } + return total; +} + +function getMpkSizes(folder, relative = "") { + const result = new Map(); + if (!require("fs").existsSync(folder)) { + return result; + } + const entries = readdirSync(folder, { withFileTypes: true }); + for (const entry of entries) { + const fullPath = path.join(folder, entry.name); + const relPath = path.join(relative, entry.name); + if (entry.isDirectory()) { + const nested = getMpkSizes(fullPath, relPath); + for (const [key, size] of nested.entries()) { + result.set(key, size); + } + } else if (entry.isFile() && entry.name.endsWith(".mpk")) { + result.set(relPath, statSync(fullPath).size); + } + } + return result; +} + +function formatDelta(oldSize, newSize) { + const delta = newSize - oldSize; + const direction = delta >= 0 ? "+" : "-"; + const absDelta = Math.abs(delta); + const pct = oldSize === 0 ? null : (delta / oldSize) * 100; + const pctText = pct === null ? "n/a" : `${pct >= 0 ? "+" : ""}${pct.toFixed(2)}%`; + return `${direction}${human(absDelta)} (${pctText})`; +} + +function formatSpeed(oldTimeMs, newTimeMs) { + if (oldTimeMs <= 0 || newTimeMs <= 0) { + return "n/a"; + } + + let ratioText; + let pctText; + if (newTimeMs < oldTimeMs) { + const ratio = oldTimeMs / newTimeMs; + const pctLessTime = ((oldTimeMs - newTimeMs) / oldTimeMs) * 100; + ratioText = `${ratio.toFixed(2)}x faster`; + pctText = `${Math.abs(pctLessTime).toFixed(2)}% less time`; + } else if (newTimeMs > oldTimeMs) { + const ratio = newTimeMs / oldTimeMs; + const pctMoreTime = ((newTimeMs - oldTimeMs) / oldTimeMs) * 100; + ratioText = `${ratio.toFixed(2)}x slower`; + pctText = `${Math.abs(pctMoreTime).toFixed(2)}% more time`; + } else { + ratioText = "1.00x same speed"; + pctText = "0.00% time change"; + } + + return `${ratioText} (${pctText})`; +} + +function findPackageRoot(node, pkg) { + if (!node || typeof node !== "object") { + return null; + } + if (node.name === pkg && typeof node.path === "string") { + return node.path; + } + if (Array.isArray(node)) { + for (const item of node) { + const found = findPackageRoot(item, pkg); + if (found) { + return found; + } + } + return null; + } + if (node.dependencies) { + const found = findPackageRoot(node.dependencies, pkg); + if (found) { + return found; + } + } + return null; +} + +function resolvePackageRoot(pkg, fallbackDir) { + try { + const output = execFileSync("pnpm", ["ls", "--json", "--depth", "-1", "--filter", pkg], { + cwd: repoRoot, + encoding: "utf8" + }); + const parsed = JSON.parse(output); + const root = findPackageRoot(parsed, pkg); + if (root) { + return root; + } + } catch { + // Fall back to legacy location pattern if pnpm resolution fails. + } + return fallbackDir; +} + +function sumMapValues(map) { + let total = 0; + for (const value of map.values()) { + total += value; + } + return total; +} + +function pad(text, width) { + return String(text).padEnd(width, " "); +} + +function runCommand(cmd, opts = {}) { + const start = process.hrtime.bigint(); + execSync(cmd, { stdio: "inherit", ...opts }); + const end = process.hrtime.bigint(); + return Number(end - start) / 1e6; // ms +} + +function copyFolder(src, dest) { + if (require("fs").existsSync(dest)) { + rmSync(dest, { recursive: true, force: true }); + } + mkdirSync(dest, { recursive: true }); + const entries = readdirSync(src, { withFileTypes: true }); + for (const entry of entries) { + const s = path.join(src, entry.name); + const d = path.join(dest, entry.name); + if (entry.isDirectory()) { + copyFolder(s, d); + } else if (entry.isFile()) { + copyFileSync(s, d); + } + } +} + +function human(bytes) { + const units = ["B", "KB", "MB", "GB"]; + let i = 0; + while (bytes >= 1024 && i < units.length - 1) { + bytes /= 1024; + i++; + } + return `${bytes.toFixed(2)} ${units[i]}`; +} + +function patchViteRollup() { + const glob = require("glob"); + const fs = require("fs"); + const matches = glob.sync(path.join(repoRoot, "node_modules/.pnpm/**/node_modules/rollup/package.json")); + for (const file of matches) { + let text = fs.readFileSync(file, "utf-8"); + if (!text.includes('"./parseAst"')) { + text = text.replace(/"exports"\s*:\s*{/, '"exports":{ "./parseAst": "./dist/rollup.js",'); + fs.writeFileSync(file, text); + } + } +} + +function cleanBuildOutput(outDir) { + rmSync(outDir, { recursive: true, force: true }); + mkdirSync(outDir, { recursive: true }); +} + +function main() { + const pkg = process.argv[2]; + if (!pkg) { + console.error("Usage: node benchmark.js "); + process.exit(1); + } + console.log(`benchmarking ${pkg}`); + const simpleName = pkg.replace(/^@mendix\//, ""); + const fallbackPkgDir = path.join(repoRoot, "packages/pluggableWidgets", simpleName); + const pkgDir = resolvePackageRoot(pkg, fallbackPkgDir); + const outDir = path.join(pkgDir, "dist"); + const benchDir = path.join(repoRoot, ".benchmark", simpleName); + + // ensure clean + rmSync(benchDir, { recursive: true, force: true }); + mkdirSync(benchDir, { recursive: true }); + + console.log("=> running legacy rollup build"); + cleanBuildOutput(outDir); + const t1 = runCommand(`pnpm --filter ${pkg} run build`, { cwd: repoRoot }); + const size1 = getFolderSize(outDir); + const mpk1 = getMpkSizes(outDir); + copyFolder(outDir, path.join(benchDir, "old")); + + console.log("=> patching vite/rollup exports"); + patchViteRollup(); + + console.log("=> running vite build"); + cleanBuildOutput(outDir); + const t2 = runCommand(`pnpm --filter ${pkg} run build:vite`, { cwd: repoRoot }); + const size2 = getFolderSize(outDir); + const mpk2 = getMpkSizes(outDir); + copyFolder(outDir, path.join(benchDir, "new")); + + const mpkTotal1 = sumMapValues(mpk1); + const mpkTotal2 = sumMapValues(mpk2); + const legacySpeed = `${t1.toFixed(1)}ms`; + const viteSpeed = `${t2.toFixed(1)}ms`; + const deltaSpeed = formatSpeed(t1, t2); + const legacyDist = human(size1); + const viteDist = human(size2); + const deltaDist = formatDelta(size1, size2); + const legacyMpk = human(mpkTotal1); + const viteMpk = human(mpkTotal2); + const deltaMpk = formatDelta(mpkTotal1, mpkTotal2); + + const speedWidth = Math.max(legacySpeed.length, viteSpeed.length, deltaSpeed.length); + const distWidth = Math.max(legacyDist.length, viteDist.length, deltaDist.length); + const mpkWidth = Math.max(legacyMpk.length, viteMpk.length, deltaMpk.length); + + console.log("\nresults:\n"); + console.log( + `legacy: speed ${pad(legacySpeed, speedWidth)} | dist ${pad(legacyDist, distWidth)} | mpk ${pad(legacyMpk, mpkWidth)}` + ); + console.log( + `vite : speed ${pad(viteSpeed, speedWidth)} | dist ${pad(viteDist, distWidth)} | mpk ${pad(viteMpk, mpkWidth)}` + ); + console.log( + `delta : speed ${pad(deltaSpeed, speedWidth)} | dist ${pad(deltaDist, distWidth)} | mpk ${pad(deltaMpk, mpkWidth)}` + ); + console.log(`output copies in ${benchDir}`); +} + +main(); diff --git a/packages/shared/vite-web-widgets/build/editor-artifacts.ts b/packages/shared/vite-web-widgets/build/editor-artifacts.ts new file mode 100644 index 0000000000..29708534b3 --- /dev/null +++ b/packages/shared/vite-web-widgets/build/editor-artifacts.ts @@ -0,0 +1,39 @@ +import { build as viteBuild } from "vite"; +import type { EditorBuild } from "../types"; +import { getResolveAlias } from "../config/resolve"; + +export async function buildEditorArtifacts(editorBuilds: EditorBuild[], isDev: boolean = false): Promise { + const editorOutDir = "dist/tmp/widgets"; + const alias = getResolveAlias(); + const minifyMode = isDev ? false : "esbuild"; + const sourcemapMode = isDev ? "inline" : false; + + for (const editorBuild of editorBuilds) { + await viteBuild({ + configFile: false, + resolve: { + alias + }, + build: { + target: "es2019", + minify: minifyMode, + sourcemap: sourcemapMode, + emptyOutDir: false, + outDir: editorOutDir, + lib: { + entry: editorBuild.entry, + formats: [editorBuild.format ?? "cjs"], + fileName: () => editorBuild.outputFile + }, + rollupOptions: { + external: editorBuild.externals, + output: { + format: editorBuild.format ?? "cjs", + entryFileNames: editorBuild.outputFile, + inlineDynamicImports: true + } + } + } + }); + } +} diff --git a/packages/shared/vite-web-widgets/build/mpk.ts b/packages/shared/vite-web-widgets/build/mpk.ts new file mode 100644 index 0000000000..b94fd83e0f --- /dev/null +++ b/packages/shared/vite-web-widgets/build/mpk.ts @@ -0,0 +1,94 @@ +import Archiver from "archiver"; +import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; +import { cp } from "fs/promises"; +import { basename, dirname, join, resolve } from "path"; +import type { ResolvedConfig } from "../types"; + +async function copyDir(src: string, dest: string): Promise { + mkdirSync(dest, { recursive: true }); + if (existsSync(src)) { + await cp(src, dest, { recursive: true, force: true }); + } +} + +export async function createMPK(options: ResolvedConfig): Promise { + const distPath = resolve(process.cwd(), "dist"); + const tmpWidgetsPath = join(distPath, "tmp", "widgets"); + const stagingDir = join(distPath, "widgets"); + const outputDir = join(process.cwd(), "dist", options.widgetVersion); + const mpkPath = join(outputDir, options.mpkName); + + if (existsSync(stagingDir)) { + rmSync(stagingDir, { recursive: true }); + } + mkdirSync(stagingDir, { recursive: true }); + mkdirSync(outputDir, { recursive: true }); + + for (const file of options.metadataFiles) { + const srcPath = resolve(process.cwd(), file.src); + const destPath = join(stagingDir, file.dest); + mkdirSync(join(stagingDir, dirname(file.dest)), { recursive: true }); + if (existsSync(srcPath)) { + copyFileSync(srcPath, destPath); + } + } + + for (const requiredArtifact of options.requiredArtifacts ?? []) { + const requiredPath = join(tmpWidgetsPath, requiredArtifact); + if (!existsSync(requiredPath)) { + throw new Error(`Missing compiled artifact: ${requiredPath}`); + } + } + + for (const removePath of options.removeBeforeCopy ?? []) { + const absolutePath = join(tmpWidgetsPath, removePath); + if (existsSync(absolutePath)) { + rmSync(absolutePath, { recursive: true, force: true }); + } + } + + if (existsSync(tmpWidgetsPath)) { + await copyDir(tmpWidgetsPath, stagingDir); + } + + await new Promise((resolvePromise, reject) => { + const output = createWriteStream(mpkPath); + const archive = (Archiver as unknown as (format: string, options: { zlib: { level: number } }) => any)("zip", { + zlib: { level: 9 } + }); + + output.on("error", reject); + + output.on("close", () => { + console.log(`Created ${mpkPath} (${archive.pointer()} bytes)`); + resolvePromise(); + }); + + archive.on("error", reject); + archive.pipe(output); + archive.directory(stagingDir, false); + archive.finalize(); + }); + + return mpkPath; +} + +export async function deployMPKToMxProject(mpkPath: string): Promise { + const mxProjectPath = process.env.MX_PROJECT_PATH; + + if (!mxProjectPath) { + return; + } + + const widgetsDir = resolve(mxProjectPath, "widgets"); + const fileName = basename(mpkPath); + + if (!fileName) { + throw new Error(`Invalid MPK path: ${mpkPath}`); + } + + mkdirSync(widgetsDir, { recursive: true }); + const targetPath = join(widgetsDir, fileName); + copyFileSync(mpkPath, targetPath); + console.log(`Deployed ${fileName} to ${widgetsDir}`); +} diff --git a/packages/shared/vite-web-widgets/config/create.ts b/packages/shared/vite-web-widgets/config/create.ts new file mode 100644 index 0000000000..0f9265d539 --- /dev/null +++ b/packages/shared/vite-web-widgets/config/create.ts @@ -0,0 +1,57 @@ +import type { ConfigEnv, UserConfig } from "vite"; +import type { WidgetViteConfigOptions } from "../types"; +import { buildEditorArtifacts } from "../build/editor-artifacts"; +import { createMPK, deployMPKToMxProject } from "../build/mpk"; +import { getResolveAlias, isBuildDev, resolveConfig } from "./resolve"; + +export function createConfig(options: WidgetViteConfigOptions, env: ConfigEnv): UserConfig { + const { mode } = env; + + const isDev = isBuildDev(mode); + const resolvedConfig = resolveConfig(options, isDev); + const alias = getResolveAlias(); + const minifyMode = isDev ? false : "esbuild"; + const sourcemapMode = isDev ? "inline" : false; + + return { + define: resolvedConfig.define, + resolve: { + alias + }, + build: { + target: "es2019", + minify: minifyMode, + sourcemap: sourcemapMode, + lib: { + entry: resolvedConfig.runtimeEntry, + name: resolvedConfig.widgetName + }, + outDir: resolvedConfig.runtimeOutDir, + rollupOptions: { + output: resolvedConfig.runtimeOutputs.map(runtimeOutput => ({ + format: runtimeOutput.format, + entryFileNames: runtimeOutput.entryFileName, + inlineDynamicImports: true + })), + external: resolvedConfig.runtimeExternals + } + }, + plugins: [ + { + name: "vite-plugin-mpk-builder", + apply: "build", + enforce: "post", + async closeBundle() { + if (resolvedConfig.editorBuilds.length > 0) { + console.log("Building editor artifacts..."); + await buildEditorArtifacts(resolvedConfig.editorBuilds, isDev); + } + + console.log("Building MPK..."); + const mpkPath = await createMPK(resolvedConfig); + await deployMPKToMxProject(mpkPath); + } + } + ] + }; +} diff --git a/packages/shared/vite-web-widgets/config/infer.ts b/packages/shared/vite-web-widgets/config/infer.ts new file mode 100644 index 0000000000..2780d31363 --- /dev/null +++ b/packages/shared/vite-web-widgets/config/infer.ts @@ -0,0 +1,75 @@ +import { existsSync } from "fs"; +import type { EditorBuild, FileCopy } from "../types"; +import { toPackagePathDir } from "../helpers/package-json"; + +export function inferPrimaryRuntimeFormat(): "cjs" | "amd" { + if (process.env.VITE_RUNTIME_FORMAT === "cjs") { + return "cjs"; + } + + return "amd"; +} + +export function inferMetadataFiles(widgetName: string): FileCopy[] { + return [ + { src: `src/${widgetName}.xml`, dest: `${widgetName}.xml` }, + { src: `src/${widgetName}.icon.png`, dest: `${widgetName}.icon.png` }, + { src: `src/${widgetName}.icon.dark.png`, dest: `${widgetName}.icon.dark.png` }, + { src: `src/${widgetName}.tile.png`, dest: `${widgetName}.tile.png` }, + { src: `src/${widgetName}.tile.dark.png`, dest: `${widgetName}.tile.dark.png` }, + { src: "../../../LICENSE", dest: "License.txt" }, + { src: "src/package.xml", dest: "package.xml" } + ]; +} + +export function inferRequiredArtifacts( + widgetName: string, + packagePath: string, + runtimeDirectoryName: string, + editorBuilds: EditorBuild[] +): string[] { + const packagePathDir = toPackagePathDir(packagePath); + const widgetDir = runtimeDirectoryName; + + const editorArtifacts = editorBuilds.map(editorBuild => editorBuild.outputFile); + + return [ + ...editorArtifacts, + `${packagePathDir}/${widgetDir}/${widgetName}.js`, + `${packagePathDir}/${widgetDir}/${widgetName}.mjs` + ]; +} + +export function inferRuntimeOutDir(packagePath: string, runtimeDirectoryName: string): string { + const packagePathDir = toPackagePathDir(packagePath); + return `dist/tmp/widgets/${packagePathDir}/${runtimeDirectoryName}`; +} + +export function inferEditorBuilds(widgetName: string): EditorBuild[] { + const editorBuilds: EditorBuild[] = []; + + const editorPreviewEntry = `src/${widgetName}.editorPreview.tsx`; + if (existsSync(editorPreviewEntry)) { + editorBuilds.push({ + entry: editorPreviewEntry, + outputFile: `${widgetName}.editorPreview.js`, + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] + }); + } + + const editorConfigEntry = `src/${widgetName}.editorConfig.ts`; + if (existsSync(editorConfigEntry)) { + editorBuilds.push({ + entry: editorConfigEntry, + outputFile: `${widgetName}.editorConfig.js`, + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] + }); + } + + return editorBuilds; +} + +export function inferRemoveBeforeCopy(packageName: string): string[] { + const widgetPackageName = packageName.split("/").pop(); + return widgetPackageName ? [`${widgetPackageName}.css`] : []; +} diff --git a/packages/shared/vite-web-widgets/config/resolve.ts b/packages/shared/vite-web-widgets/config/resolve.ts new file mode 100644 index 0000000000..e7401e9c49 --- /dev/null +++ b/packages/shared/vite-web-widgets/config/resolve.ts @@ -0,0 +1,67 @@ +import { resolve } from "path"; +import type { ResolvedConfig, WidgetViteConfigOptions } from "../types"; +import { readWidgetPackageJson, resolveWidgetName } from "../helpers/package-json"; +import { + inferEditorBuilds, + inferMetadataFiles, + inferPrimaryRuntimeFormat, + inferRemoveBeforeCopy, + inferRequiredArtifacts, + inferRuntimeOutDir +} from "./infer"; + +export function getResolveAlias(): { find: RegExp; replacement: string }[] { + return [ + { + find: /^~(.+)/, + replacement: "$1" + }, + { + find: /^src\//, + replacement: `${resolve(process.cwd(), "src")}/` + } + ]; +} + +export function isBuildDev(mode: string): boolean { + return mode === "dev"; +} + +export function resolveConfig(options: WidgetViteConfigOptions, isDev: boolean = false): ResolvedConfig { + const widgetPackageJson = readWidgetPackageJson(); + const widgetName = resolveWidgetName(options.widgetName, widgetPackageJson.widgetName); + const primaryRuntimeFormat = inferPrimaryRuntimeFormat(); + const editorBuilds = inferEditorBuilds(widgetName); + const runtimeDirectoryName = options.runtimeDirectoryName ?? widgetName.toLowerCase(); + + return { + widgetName, + widgetVersion: widgetPackageJson.version, + mpkName: widgetPackageJson.mxpackage?.mpkName ?? `${widgetName}.mpk`, + runtimeEntry: `src/${widgetName}.tsx`, + runtimeOutDir: inferRuntimeOutDir(widgetPackageJson.packagePath, runtimeDirectoryName), + runtimeOutputs: [ + { + format: primaryRuntimeFormat, + entryFileName: `${widgetName}.js` + }, + { + format: "es", + entryFileName: `${widgetName}.mjs` + } + ], + runtimeExternals: ["react", "react-dom", "@mendix/widget-plugin-component-kit", "big.js", /^mendix($|\/)/], + metadataFiles: inferMetadataFiles(widgetName), + editorBuilds, + requiredArtifacts: inferRequiredArtifacts( + widgetName, + widgetPackageJson.packagePath, + runtimeDirectoryName, + editorBuilds + ), + removeBeforeCopy: inferRemoveBeforeCopy(widgetPackageJson.name), + define: { + "process.env.NODE_ENV": JSON.stringify(isDev ? "development" : "production") + } + }; +} diff --git a/packages/shared/vite-web-widgets/helpers/package-json.ts b/packages/shared/vite-web-widgets/helpers/package-json.ts new file mode 100644 index 0000000000..b4a4d6f105 --- /dev/null +++ b/packages/shared/vite-web-widgets/helpers/package-json.ts @@ -0,0 +1,28 @@ +import { readFileSync } from "fs"; +import { resolve } from "path"; +import type { WidgetPackageJson } from "../types"; + +export function readWidgetPackageJson(): WidgetPackageJson { + const packageJsonPath = resolve(process.cwd(), "package.json"); + const packageJsonText = readFileSync(packageJsonPath, "utf-8"); + return JSON.parse(packageJsonText) as WidgetPackageJson; +} + +export function toPackagePathDir(packagePath: string): string { + return packagePath.replace(/\./g, "/"); +} + +export function resolveWidgetName( + optionsWidgetName: string | undefined, + packageWidgetName: string | undefined +): string { + const widgetName = optionsWidgetName ?? packageWidgetName; + + if (!widgetName) { + throw new Error( + "Widget name is missing. Pass `widgetName` to createWidgetViteConfig() or add `widgetName` to package.json." + ); + } + + return widgetName; +} diff --git a/packages/shared/vite-web-widgets/package.json b/packages/shared/vite-web-widgets/package.json new file mode 100644 index 0000000000..cdb704dae0 --- /dev/null +++ b/packages/shared/vite-web-widgets/package.json @@ -0,0 +1,16 @@ +{ + "name": "@mendix/vite-web-widgets", + "version": "0.0.0", + "description": "Shared Vite configurations for web widgets (prototype)", + "private": true, + "main": "vite.config.ts", + "exports": { + "./vite.config": "./vite.config.ts" + }, + "dependencies": { + "archiver": "^7.0.1" + }, + "devDependencies": { + "vite": "^7.3.1" + } +} diff --git a/packages/shared/vite-web-widgets/types.ts b/packages/shared/vite-web-widgets/types.ts new file mode 100644 index 0000000000..b503ecf141 --- /dev/null +++ b/packages/shared/vite-web-widgets/types.ts @@ -0,0 +1,46 @@ +export type EditorBuild = { + entry: string; + outputFile: string; + externals: Array; + format?: "cjs" | "es"; +}; + +export type RuntimeOutput = { + format: "cjs" | "es" | "amd"; + entryFileName: string; +}; + +export type FileCopy = { + src: string; + dest: string; +}; + +export type WidgetPackageJson = { + name: string; + widgetName?: string; + version: string; + packagePath: string; + mxpackage?: { + mpkName?: string; + }; +}; + +export type WidgetViteConfigOptions = { + widgetName?: string; + runtimeDirectoryName?: string; +}; + +export type ResolvedConfig = { + widgetName: string; + widgetVersion: string; + mpkName: string; + runtimeEntry: string; + runtimeOutDir: string; + runtimeOutputs: RuntimeOutput[]; + runtimeExternals: Array; + metadataFiles: FileCopy[]; + editorBuilds: EditorBuild[]; + requiredArtifacts: string[]; + removeBeforeCopy: string[]; + define: Record; +}; diff --git a/packages/shared/vite-web-widgets/vite.config.ts b/packages/shared/vite-web-widgets/vite.config.ts new file mode 100644 index 0000000000..ef65076dbd --- /dev/null +++ b/packages/shared/vite-web-widgets/vite.config.ts @@ -0,0 +1,11 @@ +import { defineConfig, type ConfigEnv } from "vite"; +import { createConfig } from "./config/create"; +import type { WidgetViteConfigOptions } from "./types"; + +export function createWidgetViteConfig(options: WidgetViteConfigOptions = {}) { + return defineConfig((env: ConfigEnv) => createConfig(options, env)); +} + +// Default export supports direct CLI usage: +// `vite build --config ../../shared/vite-web-widgets/vite.config.ts` +export default defineConfig((env: ConfigEnv) => createConfig({}, env)); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 482dd613fa..ecb2019243 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -31,6 +31,7 @@ overrides: rollup: '3.29' ts-node: 10.9.2 typescript: '>5.8.0' + vite>rollup: ^4.59.0 pnpmfileChecksum: sha256-s93SB6R9/asG3ZoJ8Hr+99P758r3p0dOebXMUkycQnk= @@ -61,6 +62,9 @@ importers: turbo: specifier: ^2.5.4 version: 2.5.8 + vite: + specifier: ^7.3.1 + version: 7.3.1(@types/node@22.14.1)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) automation/run-e2e: dependencies: @@ -237,7 +241,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -419,7 +423,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -444,7 +448,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -484,7 +488,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -512,7 +516,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -543,7 +547,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -553,6 +557,9 @@ importers: '@mendix/widget-plugin-platform': specifier: workspace:* version: link:../../shared/widget-plugin-platform + archiver: + specifier: ^6.0.0 + version: 6.0.2 cross-env: specifier: ^7.0.3 version: 7.0.3 @@ -583,7 +590,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -614,7 +621,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -651,7 +658,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -697,7 +704,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -728,7 +735,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -774,7 +781,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -823,7 +830,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -894,7 +901,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -940,7 +947,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -986,7 +993,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1020,7 +1027,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1078,7 +1085,7 @@ importers: version: 18.0.1 '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1115,7 +1122,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1161,7 +1168,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1201,7 +1208,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1259,7 +1266,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1326,7 +1333,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1336,6 +1343,9 @@ importers: '@mendix/widget-plugin-test-utils': specifier: workspace:* version: link:../../shared/widget-plugin-test-utils + archiver: + specifier: ^6.0.0 + version: 6.0.2 packages/pluggableWidgets/document-viewer-web: dependencies: @@ -1372,7 +1382,7 @@ importers: version: 7.27.1(@babel/core@7.28.4) '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/rollup-web-widgets': specifier: workspace:* version: link:../../shared/rollup-web-widgets @@ -1394,7 +1404,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1440,7 +1450,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1477,7 +1487,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1520,7 +1530,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1584,7 +1594,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1621,7 +1631,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1655,7 +1665,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1686,7 +1696,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1714,7 +1724,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1748,7 +1758,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1785,7 +1795,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1828,7 +1838,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1877,7 +1887,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1929,7 +1939,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1960,7 +1970,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -1991,7 +2001,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2025,7 +2035,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2065,7 +2075,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2102,7 +2112,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2181,7 +2191,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2203,18 +2213,6 @@ importers: '@mendix/widget-plugin-test-utils': specifier: workspace:* version: link:../../shared/widget-plugin-test-utils - '@rollup/plugin-alias': - specifier: ^5.1.1 - version: 5.1.1(rollup@3.29.5) - '@rollup/plugin-image': - specifier: ^3.0.3 - version: 3.0.3(rollup@3.29.5) - '@rollup/plugin-json': - specifier: ^6.1.0 - version: 6.1.0(rollup@3.29.5) - '@rollup/plugin-replace': - specifier: ^6.0.2 - version: 6.0.2(rollup@3.29.5) '@types/js-beautify': specifier: ^1.14.3 version: 1.14.3 @@ -2239,9 +2237,6 @@ importers: rollup-plugin-postcss: specifier: ^4.0.2 version: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3)) - rollup-preserve-directives: - specifier: ^1.1.3 - version: 1.1.3(rollup@3.29.5) packages/pluggableWidgets/selection-helper-web: dependencies: @@ -2257,7 +2252,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2294,7 +2289,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2334,7 +2329,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2365,7 +2360,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2411,7 +2406,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2442,7 +2437,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2476,7 +2471,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2507,7 +2502,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2535,7 +2530,7 @@ importers: version: link:../../shared/eslint-config-web-widgets '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@mendix/prettier-config-web-widgets': specifier: workspace:* version: link:../../shared/prettier-config-web-widgets @@ -2705,13 +2700,23 @@ importers: devDependencies: '@mendix/pluggable-widgets-tools': specifier: 10.21.2 - version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1) rollup-plugin-copy: specifier: ^3.5.0 version: 3.5.0 packages/shared/tsconfig-web-widgets: {} + packages/shared/vite-web-widgets: + dependencies: + archiver: + specifier: ^7.0.1 + version: 7.0.1 + devDependencies: + vite: + specifier: ^7.3.1 + version: 7.3.1(@types/node@22.14.1)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1) + packages/shared/widget-plugin-component-kit: devDependencies: '@mendix/eslint-config-web-widgets': @@ -3907,6 +3912,162 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} + '@esbuild/aix-ppc64@0.27.3': + resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.27.3': + resolution: {integrity: sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.27.3': + resolution: {integrity: sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.27.3': + resolution: {integrity: sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.27.3': + resolution: {integrity: sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.27.3': + resolution: {integrity: sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.27.3': + resolution: {integrity: sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.27.3': + resolution: {integrity: sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.27.3': + resolution: {integrity: sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.27.3': + resolution: {integrity: sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.27.3': + resolution: {integrity: sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.27.3': + resolution: {integrity: sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.27.3': + resolution: {integrity: sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.27.3': + resolution: {integrity: sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.27.3': + resolution: {integrity: sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.27.3': + resolution: {integrity: sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.27.3': + resolution: {integrity: sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.27.3': + resolution: {integrity: sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.27.3': + resolution: {integrity: sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.27.3': + resolution: {integrity: sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.27.3': + resolution: {integrity: sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.27.3': + resolution: {integrity: sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.27.3': + resolution: {integrity: sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.27.3': + resolution: {integrity: sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.27.3': + resolution: {integrity: sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.27.3': + resolution: {integrity: sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@eslint-community/eslint-utils@4.9.0': resolution: {integrity: sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4661,6 +4822,144 @@ packages: rollup: optional: true + '@rollup/rollup-android-arm-eabi@4.59.0': + resolution: {integrity: sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.59.0': + resolution: {integrity: sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.59.0': + resolution: {integrity: sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.59.0': + resolution: {integrity: sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.59.0': + resolution: {integrity: sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.59.0': + resolution: {integrity: sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + resolution: {integrity: sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + resolution: {integrity: sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==} + cpu: [arm] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-arm64-gnu@4.59.0': + resolution: {integrity: sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-arm64-musl@4.59.0': + resolution: {integrity: sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-loong64-gnu@4.59.0': + resolution: {integrity: sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==} + cpu: [loong64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-loong64-musl@4.59.0': + resolution: {integrity: sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==} + cpu: [loong64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + resolution: {integrity: sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==} + cpu: [ppc64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-ppc64-musl@4.59.0': + resolution: {integrity: sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==} + cpu: [ppc64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + resolution: {integrity: sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==} + cpu: [riscv64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-riscv64-musl@4.59.0': + resolution: {integrity: sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==} + cpu: [riscv64] + os: [linux] + libc: [musl] + + '@rollup/rollup-linux-s390x-gnu@4.59.0': + resolution: {integrity: sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==} + cpu: [s390x] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-gnu@4.59.0': + resolution: {integrity: sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@rollup/rollup-linux-x64-musl@4.59.0': + resolution: {integrity: sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==} + cpu: [x64] + os: [linux] + libc: [musl] + + '@rollup/rollup-openbsd-x64@4.59.0': + resolution: {integrity: sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.59.0': + resolution: {integrity: sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.59.0': + resolution: {integrity: sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.59.0': + resolution: {integrity: sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.59.0': + resolution: {integrity: sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.59.0': + resolution: {integrity: sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==} + cpu: [x64] + os: [win32] + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} @@ -5462,10 +5761,26 @@ packages: resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} engines: {node: '>= 6'} + archiver-utils@4.0.1: + resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} + engines: {node: '>= 12.0.0'} + + archiver-utils@5.0.2: + resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} + engines: {node: '>= 14'} + archiver@3.1.1: resolution: {integrity: sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==} engines: {node: '>= 6'} + archiver@6.0.2: + resolution: {integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==} + engines: {node: '>= 12.0.0'} + + archiver@7.0.1: + resolution: {integrity: sha512-ZcbTaIqJOfCc03QwD468Unz/5Ir8ATtvAHsK+FdXbDIbGfihqh9mrvdcYunQzqn4HrvWWaFyaxJhGZagaJJpPQ==} + engines: {node: '>= 14'} + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -5570,6 +5885,9 @@ packages: async@2.6.4: resolution: {integrity: sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -5593,6 +5911,14 @@ packages: resolution: {integrity: sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg==} engines: {node: '>=4'} + b4a@1.8.0: + resolution: {integrity: sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==} + peerDependencies: + react-native-b4a: '*' + peerDependenciesMeta: + react-native-b4a: + optional: true + babel-eslint@10.1.0: resolution: {integrity: sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==} engines: {node: '>=6'} @@ -5650,6 +5976,44 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} + bare-events@2.8.2: + resolution: {integrity: sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ==} + peerDependencies: + bare-abort-controller: '*' + peerDependenciesMeta: + bare-abort-controller: + optional: true + + bare-fs@4.5.5: + resolution: {integrity: sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w==} + engines: {bare: '>=1.16.0'} + peerDependencies: + bare-buffer: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + + bare-os@3.7.0: + resolution: {integrity: sha512-64Rcwj8qlnTZU8Ps6JJEdSmxBEUGgI7g8l+lMtsJLl4IsfTcHMTfJ188u2iGV6P6YPRZrtv72B2kjn+hp+Yv3g==} + engines: {bare: '>=1.14.0'} + + bare-path@3.0.0: + resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} + + bare-stream@2.8.0: + resolution: {integrity: sha512-reUN0M2sHRqCdG4lUK3Fw8w98eeUIZHL5c3H7Mbhk2yVBL+oofgaIp0ieLfD5QXwPCypBpmEEKU2WZKzbAk8GA==} + peerDependencies: + bare-buffer: '*' + bare-events: '*' + peerDependenciesMeta: + bare-buffer: + optional: true + bare-events: + optional: true + + bare-url@2.3.2: + resolution: {integrity: sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw==} + base64-arraybuffer@1.0.2: resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==} engines: {node: '>= 0.6.0'} @@ -5727,12 +6091,19 @@ packages: buffer-crc32@0.2.13: resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + buffer-crc32@1.0.0: + resolution: {integrity: sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==} + engines: {node: '>=8.0.0'} + buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + buffer@6.0.3: + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} @@ -5976,6 +6347,14 @@ packages: resolution: {integrity: sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==} engines: {node: '>= 6'} + compress-commons@5.0.3: + resolution: {integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==} + engines: {node: '>= 12.0.0'} + + compress-commons@6.0.2: + resolution: {integrity: sha512-6FqVXeETqWPoGcfzrXb37E50NP0LXT8kAMu5ooZayhWWdgEY4lBEEcbQNXtkuKQsGduxiIcI4gOTsxTmuq/bSg==} + engines: {node: '>= 14'} + compute-scroll-into-view@2.0.4: resolution: {integrity: sha512-y/ZA3BGnxoM/QHHQ2Uy49CLtnWPbt4tTPpEEZiEmmiWBFKjej7nEyH8Ryz54jH0MLXflUYA3Er2zUxPSJu5R+g==} @@ -6060,10 +6439,23 @@ packages: country-regex@1.1.0: resolution: {integrity: sha512-iSPlClZP8vX7MC3/u6s3lrDuoQyhQukh5LyABJ3hvfzbQ3Yyayd4fp04zjLnfi267B/B2FkumcWWgrbban7sSA==} + crc-32@1.2.2: + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} + hasBin: true + crc32-stream@3.0.1: resolution: {integrity: sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==} engines: {node: '>= 6.9.0'} + crc32-stream@5.0.1: + resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} + engines: {node: '>= 12.0.0'} + + crc32-stream@6.0.0: + resolution: {integrity: sha512-piICUB6ei4IlTv1+653yq5+KoqfBYmj9bw6LqXoOneTMDXk5nM1qt12mFW1caG3LlJXEKW1Bp0WggEmIfQB34g==} + engines: {node: '>= 14'} + crc@3.8.0: resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} @@ -6659,6 +7051,11 @@ packages: es6-weak-map@2.0.3: resolution: {integrity: sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==} + esbuild@0.27.3: + resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -6921,6 +7318,9 @@ packages: eventemitter3@5.0.1: resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + events-universal@1.0.1: + resolution: {integrity: sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==} + events@3.3.0: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} @@ -6961,6 +7361,9 @@ packages: fast-diff@1.3.0: resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.3: resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} @@ -7220,6 +7623,11 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Glob versions prior to v9 are no longer supported + glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + glob@9.3.5: resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} engines: {node: '>=16 || 14 >=14.17'} @@ -8492,6 +8900,10 @@ packages: minimatch@3.1.5: resolution: {integrity: sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==} + minimatch@5.1.9: + resolution: {integrity: sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==} + engines: {node: '>=10'} + minimatch@8.0.7: resolution: {integrity: sha512-V+1uQNdzybxa14e/p00HZnQNNcTjnRJjDxg2V8wtkjFctq4M7hXFws4oekyTP0Jebeq7QYtpFyOeBAjc88zvYg==} engines: {node: '>=16 || 14 >=14.17'} @@ -9256,6 +9668,10 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + process@0.11.10: + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} + progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -9517,6 +9933,13 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readable-stream@4.7.0: + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + readdir-glob@1.1.3: + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} @@ -9704,16 +10127,16 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup-preserve-directives@1.1.3: - resolution: {integrity: sha512-oXqxd6ZzkoQej8Qt0k+S/yvO2+S4CEVEVv2g85oL15o0cjAKTKEuo2MzyA8FcsBBXbtytBzBMFAbhvQg4YyPUQ==} - peerDependencies: - rollup: '3.29' - rollup@3.29.5: resolution: {integrity: sha512-GVsDdsbJzzy4S/v3dqWPJ7EfvZJfCHiDqe80IyrF59LYuP+e6U1LJoUqeuqRbwAWoMNoXivMNeNAOf5E22VA1w==} engines: {node: '>=14.18.0', npm: '>=8.0.0'} hasBin: true + rollup@4.59.0: + resolution: {integrity: sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + rst-selector-parser@2.2.3: resolution: {integrity: sha512-nDG1rZeP6oFTLN6yNDV/uiAvs1+FS/KlrEwh7+y7dpuApDBy6bI2HTBcc0/V8lv9OTqfyD34eF7au2pm8aBbhA==} @@ -10032,6 +10455,9 @@ packages: stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} + streamx@2.23.0: + resolution: {integrity: sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==} + string-hash@1.1.3: resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} @@ -10204,6 +10630,12 @@ packages: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} + tar-stream@3.1.8: + resolution: {integrity: sha512-U6QpVRyCGHva435KoNWy9PRoi2IFYCgtEhq9nmrPPpbRacPs9IH4aJ3gbrFC8dPcXvdSZ4XXfXT5Fshbp2MtlQ==} + + teex@1.0.1: + resolution: {integrity: sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg==} + terser-webpack-plugin@5.3.14: resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} engines: {node: '>= 10.13.0'} @@ -10229,6 +10661,9 @@ packages: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + text-decoder@1.2.7: + resolution: {integrity: sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ==} + text-extensions@2.4.0: resolution: {integrity: sha512-te/NtwBwfiNRLf9Ijqx3T0nlqZiQ2XrrtBvu+cLL8ZRrGkO0NHTug8MYFKyoSrv/sHTaSKfilUkizV6XhxMJ3g==} engines: {node: '>=8'} @@ -10589,6 +11024,46 @@ packages: resolution: {integrity: sha512-hVDIBwsRruT73PbK7uP5ebUt+ezEtCmzZz3F59BSr2F6OVFnJ/6h8liuvdLrQ88Xmnk6/+xGGuq+pG9WwTuy3A==} engines: {node: ^20.17.0 || >=22.9.0} + vite@7.3.1: + resolution: {integrity: sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': ~22.14.0 + jiti: '>=1.21.0' + less: ^4.0.0 + lightningcss: ^1.21.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vlq@0.2.3: resolution: {integrity: sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==} @@ -10878,6 +11353,14 @@ packages: resolution: {integrity: sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==} engines: {node: '>= 6'} + zip-stream@5.0.2: + resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} + engines: {node: '>= 12.0.0'} + + zip-stream@6.0.1: + resolution: {integrity: sha512-zK7YHHz4ZXpW89AHXUPbQVGKI7uvkd3hzusTdotCg1UxyaVtg0zFJSTfW/Dq5f7OBBVnq6cZIaC8Ti4hb6dtCA==} + engines: {node: '>= 14'} + zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} @@ -12020,6 +12503,84 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} + '@esbuild/aix-ppc64@0.27.3': + optional: true + + '@esbuild/android-arm64@0.27.3': + optional: true + + '@esbuild/android-arm@0.27.3': + optional: true + + '@esbuild/android-x64@0.27.3': + optional: true + + '@esbuild/darwin-arm64@0.27.3': + optional: true + + '@esbuild/darwin-x64@0.27.3': + optional: true + + '@esbuild/freebsd-arm64@0.27.3': + optional: true + + '@esbuild/freebsd-x64@0.27.3': + optional: true + + '@esbuild/linux-arm64@0.27.3': + optional: true + + '@esbuild/linux-arm@0.27.3': + optional: true + + '@esbuild/linux-ia32@0.27.3': + optional: true + + '@esbuild/linux-loong64@0.27.3': + optional: true + + '@esbuild/linux-mips64el@0.27.3': + optional: true + + '@esbuild/linux-ppc64@0.27.3': + optional: true + + '@esbuild/linux-riscv64@0.27.3': + optional: true + + '@esbuild/linux-s390x@0.27.3': + optional: true + + '@esbuild/linux-x64@0.27.3': + optional: true + + '@esbuild/netbsd-arm64@0.27.3': + optional: true + + '@esbuild/netbsd-x64@0.27.3': + optional: true + + '@esbuild/openbsd-arm64@0.27.3': + optional: true + + '@esbuild/openbsd-x64@0.27.3': + optional: true + + '@esbuild/openharmony-arm64@0.27.3': + optional: true + + '@esbuild/sunos-x64@0.27.3': + optional: true + + '@esbuild/win32-arm64@0.27.3': + optional: true + + '@esbuild/win32-ia32@0.27.3': + optional: true + + '@esbuild/win32-x64@0.27.3': + optional: true + '@eslint-community/eslint-utils@4.9.0(eslint@7.32.0)': dependencies: eslint: 7.32.0 @@ -12481,7 +13042,7 @@ snapshots: '@melloware/coloris@0.25.0': {} - '@mendix/pluggable-widgets-tools@10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1)': + '@mendix/pluggable-widgets-tools@10.21.2(@jest/transform@29.7.0)(@jest/types@30.2.0)(@swc/core@1.13.5)(@types/babel__core@7.20.5)(@types/node@22.14.1)(jest-util@30.2.0)(picomatch@4.0.3)(react-dom@18.3.1(react@18.3.1))(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1))(react@18.3.1)(tslib@2.8.1)': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) @@ -12509,7 +13070,7 @@ snapshots: '@types/react-dom': 18.3.7(@types/react@19.2.2) '@types/react-native': 0.72.8(react-native@0.82.0(@babel/core@7.28.4)(@types/react@19.2.2)(react@18.3.1)) '@types/testing-library__jest-dom': 5.14.9 - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3) '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.9.3) ansi-colors: 4.1.1 babel-eslint: 10.1.0(eslint@7.32.0) @@ -12522,7 +13083,7 @@ snapshots: enzyme-to-json: 3.6.2(enzyme@3.11.0) eslint: 7.32.0 eslint-config-prettier: 8.10.2(eslint@7.32.0) - eslint-plugin-jest: 24.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3) + eslint-plugin-jest: 24.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3) eslint-plugin-prettier: 3.4.1(eslint-config-prettier@8.10.2(eslint@7.32.0))(eslint@7.32.0)(prettier@3.5.3) eslint-plugin-promise: 4.3.1 eslint-plugin-react: 7.28.0(eslint@7.32.0) @@ -12553,7 +13114,7 @@ snapshots: rollup: 3.29.5 rollup-plugin-clear: 2.0.7 rollup-plugin-command: 1.1.3 - rollup-plugin-license: 3.6.0(rollup@3.29.5) + rollup-plugin-license: 3.6.0(picomatch@4.0.3)(rollup@3.29.5) rollup-plugin-livereload: 2.0.5 rollup-plugin-postcss: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3)) rollup-plugin-re: 1.0.7 @@ -13011,6 +13572,81 @@ snapshots: optionalDependencies: rollup: 3.29.5 + '@rollup/rollup-android-arm-eabi@4.59.0': + optional: true + + '@rollup/rollup-android-arm64@4.59.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.59.0': + optional: true + + '@rollup/rollup-darwin-x64@4.59.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.59.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.59.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.59.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.59.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.59.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.59.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.59.0': + optional: true + + '@rollup/rollup-openbsd-x64@4.59.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.59.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.59.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.59.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.59.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.59.0': + optional: true + '@sinclair/typebox@0.27.8': {} '@sinclair/typebox@0.34.41': {} @@ -13408,7 +14044,7 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3)': + '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.1 '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.9.3) @@ -13416,7 +14052,7 @@ snapshots: '@typescript-eslint/type-utils': 5.62.0(eslint@7.32.0)(typescript@5.9.3) '@typescript-eslint/utils': 5.62.0(eslint@7.32.0)(typescript@5.9.3) debug: 4.4.3 - eslint: 9.39.3(jiti@2.6.1) + eslint: 7.32.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare-lite: 1.4.0 @@ -13950,6 +14586,25 @@ snapshots: normalize-path: 3.0.0 readable-stream: 2.3.8 + archiver-utils@4.0.1: + dependencies: + glob: 8.1.0 + graceful-fs: 4.2.11 + lazystream: 1.0.1 + lodash: 4.17.23 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + archiver-utils@5.0.2: + dependencies: + glob: 10.5.0 + graceful-fs: 4.2.11 + is-stream: 2.0.1 + lazystream: 1.0.1 + lodash: 4.17.23 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + archiver@3.1.1: dependencies: archiver-utils: 2.1.0 @@ -13960,6 +14615,34 @@ snapshots: tar-stream: 2.2.0 zip-stream: 2.1.3 + archiver@6.0.2: + dependencies: + archiver-utils: 4.0.1 + async: 3.2.6 + buffer-crc32: 0.2.13 + readable-stream: 3.6.2 + readdir-glob: 1.1.3 + tar-stream: 3.1.8 + zip-stream: 5.0.2 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + archiver@7.0.1: + dependencies: + archiver-utils: 5.0.2 + async: 3.2.6 + buffer-crc32: 1.0.0 + readable-stream: 4.7.0 + readdir-glob: 1.1.3 + tar-stream: 3.1.8 + zip-stream: 6.0.1 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + arg@4.1.3: {} argparse@1.0.10: @@ -14078,6 +14761,8 @@ snapshots: dependencies: lodash: 4.17.23 + async@3.2.6: {} + asynckit@0.4.0: {} at-least-node@1.0.0: {} @@ -14092,6 +14777,8 @@ snapshots: axe-core@4.10.3: {} + b4a@1.8.0: {} + babel-eslint@10.1.0(eslint@7.32.0): dependencies: '@babel/code-frame': 7.27.1 @@ -14191,6 +14878,39 @@ snapshots: balanced-match@4.0.4: {} + bare-events@2.8.2: {} + + bare-fs@4.5.5: + dependencies: + bare-events: 2.8.2 + bare-path: 3.0.0 + bare-stream: 2.8.0(bare-events@2.8.2) + bare-url: 2.3.2 + fast-fifo: 1.3.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-os@3.7.0: {} + + bare-path@3.0.0: + dependencies: + bare-os: 3.7.0 + + bare-stream@2.8.0(bare-events@2.8.2): + dependencies: + streamx: 2.23.0 + teex: 1.0.1 + optionalDependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + + bare-url@2.3.2: + dependencies: + bare-path: 3.0.0 + base64-arraybuffer@1.0.2: {} base64-js@1.5.1: {} @@ -14264,6 +14984,8 @@ snapshots: buffer-crc32@0.2.13: {} + buffer-crc32@1.0.0: {} + buffer-from@1.1.2: {} buffer@5.7.1: @@ -14271,6 +14993,11 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 + buffer@6.0.3: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 @@ -14544,6 +15271,21 @@ snapshots: normalize-path: 3.0.0 readable-stream: 2.3.8 + compress-commons@5.0.3: + dependencies: + crc-32: 1.2.2 + crc32-stream: 5.0.1 + normalize-path: 3.0.0 + readable-stream: 3.6.2 + + compress-commons@6.0.2: + dependencies: + crc-32: 1.2.2 + crc32-stream: 6.0.0 + is-stream: 2.0.1 + normalize-path: 3.0.0 + readable-stream: 4.7.0 + compute-scroll-into-view@2.0.4: {} compute-scroll-into-view@3.1.1: {} @@ -14646,11 +15388,23 @@ snapshots: country-regex@1.1.0: {} + crc-32@1.2.2: {} + crc32-stream@3.0.1: dependencies: crc: 3.8.0 readable-stream: 3.6.2 + crc32-stream@5.0.1: + dependencies: + crc-32: 1.2.2 + readable-stream: 3.6.2 + + crc32-stream@6.0.0: + dependencies: + crc-32: 1.2.2 + readable-stream: 4.7.0 + crc@3.8.0: dependencies: buffer: 5.7.1 @@ -15371,6 +16125,35 @@ snapshots: es6-iterator: 2.0.3 es6-symbol: 3.1.4 + esbuild@0.27.3: + optionalDependencies: + '@esbuild/aix-ppc64': 0.27.3 + '@esbuild/android-arm': 0.27.3 + '@esbuild/android-arm64': 0.27.3 + '@esbuild/android-x64': 0.27.3 + '@esbuild/darwin-arm64': 0.27.3 + '@esbuild/darwin-x64': 0.27.3 + '@esbuild/freebsd-arm64': 0.27.3 + '@esbuild/freebsd-x64': 0.27.3 + '@esbuild/linux-arm': 0.27.3 + '@esbuild/linux-arm64': 0.27.3 + '@esbuild/linux-ia32': 0.27.3 + '@esbuild/linux-loong64': 0.27.3 + '@esbuild/linux-mips64el': 0.27.3 + '@esbuild/linux-ppc64': 0.27.3 + '@esbuild/linux-riscv64': 0.27.3 + '@esbuild/linux-s390x': 0.27.3 + '@esbuild/linux-x64': 0.27.3 + '@esbuild/netbsd-arm64': 0.27.3 + '@esbuild/netbsd-x64': 0.27.3 + '@esbuild/openbsd-arm64': 0.27.3 + '@esbuild/openbsd-x64': 0.27.3 + '@esbuild/openharmony-arm64': 0.27.3 + '@esbuild/sunos-x64': 0.27.3 + '@esbuild/win32-arm64': 0.27.3 + '@esbuild/win32-ia32': 0.27.3 + '@esbuild/win32-x64': 0.27.3 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -15409,12 +16192,12 @@ snapshots: eslint: 9.39.3(jiti@2.6.1) globals: 17.3.0 - eslint-plugin-jest@24.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3): + eslint-plugin-jest@24.7.0(@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3): dependencies: '@typescript-eslint/experimental-utils': 4.33.0(eslint@7.32.0)(typescript@5.9.3) eslint: 7.32.0 optionalDependencies: - '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3) + '@typescript-eslint/eslint-plugin': 5.62.0(@typescript-eslint/parser@5.62.0(eslint@9.39.3(jiti@2.6.1))(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3) transitivePeerDependencies: - supports-color - typescript @@ -15705,6 +16488,12 @@ snapshots: eventemitter3@5.0.1: {} + events-universal@1.0.1: + dependencies: + bare-events: 2.8.2 + transitivePeerDependencies: + - bare-abort-controller + events@3.3.0: {} execa@5.1.1: @@ -15756,6 +16545,8 @@ snapshots: fast-diff@1.3.0: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -15790,8 +16581,6 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.5.0: {} - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -16061,6 +16850,14 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + glob@8.1.0: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 5.1.9 + once: 1.4.0 + glob@9.3.5: dependencies: fs.realpath: 1.0.0 @@ -17756,6 +18553,10 @@ snapshots: dependencies: brace-expansion: 1.1.12 + minimatch@5.1.9: + dependencies: + brace-expansion: 2.0.2 + minimatch@8.0.7: dependencies: brace-expansion: 2.0.2 @@ -18552,6 +19353,8 @@ snapshots: process-nextick-args@2.0.1: {} + process@0.11.10: {} + progress@2.0.3: {} promise.series@0.2.0: {} @@ -18926,6 +19729,18 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readable-stream@4.7.0: + dependencies: + abort-controller: 3.0.0 + buffer: 6.0.3 + events: 3.3.0 + process: 0.11.10 + string_decoder: 1.3.0 + + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.9 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -19157,20 +19972,6 @@ snapshots: transitivePeerDependencies: - picomatch - rollup-plugin-license@3.6.0(rollup@3.29.5): - dependencies: - commenting: 1.1.0 - fdir: 6.5.0 - lodash: 4.17.23 - magic-string: 0.30.19 - moment: 2.30.1 - package-name-regex: 2.0.6 - rollup: 3.29.5 - spdx-expression-validate: 2.0.0 - spdx-satisfies: 5.0.1 - transitivePeerDependencies: - - picomatch - rollup-plugin-livereload@2.0.5: dependencies: livereload: 0.9.3 @@ -19206,15 +20007,41 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup-preserve-directives@1.1.3(rollup@3.29.5): - dependencies: - magic-string: 0.30.19 - rollup: 3.29.5 - rollup@3.29.5: optionalDependencies: fsevents: 2.3.3 + rollup@4.59.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.59.0 + '@rollup/rollup-android-arm64': 4.59.0 + '@rollup/rollup-darwin-arm64': 4.59.0 + '@rollup/rollup-darwin-x64': 4.59.0 + '@rollup/rollup-freebsd-arm64': 4.59.0 + '@rollup/rollup-freebsd-x64': 4.59.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.59.0 + '@rollup/rollup-linux-arm-musleabihf': 4.59.0 + '@rollup/rollup-linux-arm64-gnu': 4.59.0 + '@rollup/rollup-linux-arm64-musl': 4.59.0 + '@rollup/rollup-linux-loong64-gnu': 4.59.0 + '@rollup/rollup-linux-loong64-musl': 4.59.0 + '@rollup/rollup-linux-ppc64-gnu': 4.59.0 + '@rollup/rollup-linux-ppc64-musl': 4.59.0 + '@rollup/rollup-linux-riscv64-gnu': 4.59.0 + '@rollup/rollup-linux-riscv64-musl': 4.59.0 + '@rollup/rollup-linux-s390x-gnu': 4.59.0 + '@rollup/rollup-linux-x64-gnu': 4.59.0 + '@rollup/rollup-linux-x64-musl': 4.59.0 + '@rollup/rollup-openbsd-x64': 4.59.0 + '@rollup/rollup-openharmony-arm64': 4.59.0 + '@rollup/rollup-win32-arm64-msvc': 4.59.0 + '@rollup/rollup-win32-ia32-msvc': 4.59.0 + '@rollup/rollup-win32-x64-gnu': 4.59.0 + '@rollup/rollup-win32-x64-msvc': 4.59.0 + fsevents: 2.3.3 + rst-selector-parser@2.2.3: dependencies: lodash.flattendeep: 4.4.0 @@ -19552,6 +20379,15 @@ snapshots: stream-shift@1.0.3: {} + streamx@2.23.0: + dependencies: + events-universal: 1.0.1 + fast-fifo: 1.3.2 + text-decoder: 1.2.7 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + string-hash@1.1.3: {} string-length@4.0.2: @@ -19763,6 +20599,24 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 + tar-stream@3.1.8: + dependencies: + b4a: 1.8.0 + bare-fs: 4.5.5 + fast-fifo: 1.3.2 + streamx: 2.23.0 + transitivePeerDependencies: + - bare-abort-controller + - bare-buffer + - react-native-b4a + + teex@1.0.1: + dependencies: + streamx: 2.23.0 + transitivePeerDependencies: + - bare-abort-controller + - react-native-b4a + terser-webpack-plugin@5.3.14(@swc/core@1.13.5)(webpack@5.102.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -19787,6 +20641,12 @@ snapshots: glob: 7.2.3 minimatch: 3.1.5 + text-decoder@1.2.7: + dependencies: + b4a: 1.8.0 + transitivePeerDependencies: + - react-native-b4a + text-extensions@2.4.0: {} text-table@0.2.0: {} @@ -20119,6 +20979,22 @@ snapshots: validate-npm-package-name@7.0.2: {} + vite@7.3.1(@types/node@22.14.1)(jiti@2.6.1)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1): + dependencies: + esbuild: 0.27.3 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.59.0 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 22.14.1 + fsevents: 2.3.3 + jiti: 2.6.1 + sass: 1.93.2 + terser: 5.44.0 + yaml: 2.8.1 + vlq@0.2.3: {} vlq@1.0.1: {} @@ -20421,6 +21297,18 @@ snapshots: compress-commons: 2.1.1 readable-stream: 3.6.2 + zip-stream@5.0.2: + dependencies: + archiver-utils: 4.0.1 + compress-commons: 5.0.3 + readable-stream: 3.6.2 + + zip-stream@6.0.1: + dependencies: + archiver-utils: 5.0.2 + compress-commons: 6.0.2 + readable-stream: 4.7.0 + zod-validation-error@4.0.2(zod@3.25.76): dependencies: zod: 3.25.76