From 11c5aa34fdc270537fb572a393d2f485496688ab Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 14:18:42 +0100 Subject: [PATCH 01/21] fix(datagrid-web): make status checks runtime-safe across builds --- .../features/data-export/DSExportRequest.ts | 21 ++++++++++--------- .../src/helpers/state/column/ColumnStore.tsx | 5 ++--- .../AttributePersonalizationStorage.ts | 4 ++-- 3 files changed, 15 insertions(+), 15 deletions(-) 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; } } From 06c6a8cae5d3280ac5566f784d0bcd53f681470e Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 14:18:54 +0100 Subject: [PATCH 02/21] chore(build): add vite build scaffolding and remove vitest bits --- package.json | 3 +- .../pluggableWidgets/badge-web/package.json | 5 +- .../badge-web/vite.config.inline.js | 18 + .../pluggableWidgets/badge-web/vite.config.js | 109 ++ .../pluggableWidgets/badge-web/vite.config.ts | 3 + .../datagrid-web/package.json | 8 +- .../datagrid-web/vite.config.js | 179 +++ packages/shared/vite-web-widgets/README.md | 28 + packages/shared/vite-web-widgets/benchmark.js | 106 ++ packages/shared/vite-web-widgets/package.json | 14 + .../shared/vite-web-widgets/vite.config.ts | 52 + pnpm-lock.yaml | 1038 ++++++++++++++++- 12 files changed, 1543 insertions(+), 20 deletions(-) create mode 100644 packages/pluggableWidgets/badge-web/vite.config.inline.js create mode 100644 packages/pluggableWidgets/badge-web/vite.config.js create mode 100644 packages/pluggableWidgets/badge-web/vite.config.ts create mode 100644 packages/pluggableWidgets/datagrid-web/vite.config.js create mode 100644 packages/shared/vite-web-widgets/README.md create mode 100644 packages/shared/vite-web-widgets/benchmark.js create mode 100644 packages/shared/vite-web-widgets/package.json create mode 100644 packages/shared/vite-web-widgets/vite.config.ts diff --git a/package.json b/package.json index 36c72a1c45..0ad217524f 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,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/badge-web/package.json b/packages/pluggableWidgets/badge-web/package.json index 82f73bba09..70aa56aee8 100644 --- a/packages/pluggableWidgets/badge-web/package.json +++ b/packages/pluggableWidgets/badge-web/package.json @@ -27,6 +27,7 @@ }, "scripts": { "build": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools build:web", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools start:web", @@ -52,6 +53,8 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:^*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "archiver": "^6.0.0", + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/badge-web/vite.config.inline.js b/packages/pluggableWidgets/badge-web/vite.config.inline.js new file mode 100644 index 0000000000..e7e9ca22a6 --- /dev/null +++ b/packages/pluggableWidgets/badge-web/vite.config.inline.js @@ -0,0 +1,18 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + build: { + target: "es2019", + lib: { + entry: "src/index.ts", + formats: ["es", "cjs"], + fileName: "index" + }, + rollupOptions: { + output: { + inlineDynamicImports: true + }, + external: ["react", "react-dom", "@mendix/widget-plugin-component-kit"] + } + } +}); diff --git a/packages/pluggableWidgets/badge-web/vite.config.js b/packages/pluggableWidgets/badge-web/vite.config.js new file mode 100644 index 0000000000..b2de9da0ca --- /dev/null +++ b/packages/pluggableWidgets/badge-web/vite.config.js @@ -0,0 +1,109 @@ +import Archiver from "archiver"; +import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; +import { cp } from "fs/promises"; +import { join, resolve } from "path"; +import { defineConfig } from "vite"; + +const widgetVersion = "3.2.3"; +const widgetName = "Badge"; + +/** + * Recursively copy files and directories + */ +async function copyDir(src, dest) { + mkdirSync(dest, { recursive: true }); + if (existsSync(src)) { + await cp(src, dest, { recursive: true, force: true }); + } +} + +/** + * Post-build hook to package widget files into MPK + */ +async function createMPK(distPath) { + const stagingDir = join(distPath, "widgets"); + const outputDir = join(process.cwd(), "dist", widgetVersion); + const mpkPath = join(outputDir, `${widgetName}.mpk`); + + // Clean staging directory + if (existsSync(stagingDir)) { + rmSync(stagingDir, { recursive: true }); + } + mkdirSync(stagingDir, { recursive: true }); + mkdirSync(outputDir, { recursive: true }); + + // Copy widget metadata files + const filesToCopy = [ + { src: "src/Badge.xml", dest: "Badge.xml" }, + { src: "src/Badge.editorConfig.ts", dest: "Badge.editorConfig.js" }, + { src: "src/Badge.editorPreview.tsx", dest: "Badge.editorPreview.js" }, + { src: "src/Badge.icon.png", dest: "Badge.icon.png" }, + { src: "src/Badge.icon.dark.png", dest: "Badge.icon.dark.png" }, + { src: "src/Badge.tile.png", dest: "Badge.tile.png" }, + { src: "src/Badge.tile.dark.png", dest: "Badge.tile.dark.png" }, + { src: "../../../LICENSE", dest: "License.txt" }, + { src: "src/package.xml", dest: "package.xml" } + ]; + + for (const file of filesToCopy) { + const srcPath = resolve(process.cwd(), file.src); + const destPath = join(stagingDir, file.dest); + mkdirSync(join(stagingDir, file.dest.split("/").slice(0, -1).join("/")), { recursive: true }); + if (existsSync(srcPath)) { + copyFileSync(srcPath, destPath); + } + } + + // Copy compiled widget files from dist/tmp/widgets + const tmpWidgetsPath = join(distPath, "tmp", "widgets"); + if (existsSync(tmpWidgetsPath)) { + await copyDir(tmpWidgetsPath, stagingDir); + } + + // Create MPK (ZIP file) + return new Promise((resolve, reject) => { + const output = createWriteStream(mpkPath); + const archive = Archiver("zip", { zlib: { level: 9 } }); + + output.on("close", () => { + console.log(`✓ Created ${mpkPath} (${archive.pointer()} bytes)`); + resolve(); + }); + + archive.on("error", reject); + archive.pipe(output); + archive.directory(stagingDir, false); + archive.finalize(); + }); +} + +export default defineConfig({ + build: { + target: "es2019", + minify: "esbuild", + lib: { + entry: "src/Badge.tsx", + name: widgetName, + formats: ["es", "cjs"], + fileName: format => (format === "es" ? `${widgetName}.mjs` : `${widgetName}.js`) + }, + outDir: "dist/tmp/widgets/com/mendix/widget/custom/badge", + rollupOptions: { + output: { + inlineDynamicImports: true + }, + external: ["react", "react-dom", "@mendix/widget-plugin-component-kit"] + } + }, + plugins: [ + { + name: "vite-plugin-mpk-builder", + apply: "build", + enforce: "post", + async closeBundle() { + console.log("Building MPK..."); + await createMPK(resolve(process.cwd(), "dist")); + } + } + ] +}); diff --git a/packages/pluggableWidgets/badge-web/vite.config.ts b/packages/pluggableWidgets/badge-web/vite.config.ts new file mode 100644 index 0000000000..260499d3ac --- /dev/null +++ b/packages/pluggableWidgets/badge-web/vite.config.ts @@ -0,0 +1,3 @@ +import viteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default viteConfig({ widgetName: "@mendix/badge-web" }); diff --git a/packages/pluggableWidgets/datagrid-web/package.json b/packages/pluggableWidgets/datagrid-web/package.json index 6032addf65..7cb89874c9 100644 --- a/packages/pluggableWidgets/datagrid-web/package.json +++ b/packages/pluggableWidgets/datagrid-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -63,6 +67,8 @@ "@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", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/datagrid-web/vite.config.js b/packages/pluggableWidgets/datagrid-web/vite.config.js new file mode 100644 index 0000000000..a18cb19a05 --- /dev/null +++ b/packages/pluggableWidgets/datagrid-web/vite.config.js @@ -0,0 +1,179 @@ +import Archiver from "archiver"; +import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; +import { cp } from "fs/promises"; +import { join, resolve } from "path"; +import { build as viteBuild, defineConfig } from "vite"; + +const widgetVersion = "3.8.1"; +const widgetName = "Datagrid"; +const useCjsRuntime = process.env.VITE_RUNTIME_FORMAT === "cjs"; + +async function copyDir(src, dest) { + mkdirSync(dest, { recursive: true }); + if (existsSync(src)) { + await cp(src, dest, { recursive: true, force: true }); + } +} + +async function createMPK(distPath) { + const stagingDir = join(distPath, "widgets"); + const outputDir = join(process.cwd(), "dist", widgetVersion); + const mpkPath = join(outputDir, `com.mendix.widget.web.${widgetName}.mpk`); + + if (existsSync(stagingDir)) { + rmSync(stagingDir, { recursive: true }); + } + mkdirSync(stagingDir, { recursive: true }); + mkdirSync(outputDir, { recursive: true }); + + const filesToCopy = [ + { src: "src/Datagrid.xml", dest: "Datagrid.xml" }, + { src: "src/Datagrid.icon.png", dest: "Datagrid.icon.png" }, + { src: "src/Datagrid.icon.dark.png", dest: "Datagrid.icon.dark.png" }, + { src: "src/Datagrid.tile.png", dest: "Datagrid.tile.png" }, + { src: "src/Datagrid.tile.dark.png", dest: "Datagrid.tile.dark.png" }, + { src: "../../../LICENSE", dest: "License.txt" }, + { src: "src/package.xml", dest: "package.xml" } + ]; + + for (const file of filesToCopy) { + const srcPath = resolve(process.cwd(), file.src); + const destPath = join(stagingDir, file.dest); + mkdirSync(join(stagingDir, file.dest.split("/").slice(0, -1).join("/")), { recursive: true }); + if (existsSync(srcPath)) { + copyFileSync(srcPath, destPath); + } + } + + const tmpWidgetsPath = join(distPath, "tmp", "widgets"); + const requiredCompiledFiles = [ + join(tmpWidgetsPath, "Datagrid.editorConfig.js"), + join(tmpWidgetsPath, "Datagrid.editorPreview.js"), + join(tmpWidgetsPath, "com", "mendix", "widget", "web", "datagrid", "Datagrid.js"), + join(tmpWidgetsPath, "com", "mendix", "widget", "web", "datagrid", "Datagrid.mjs") + ]; + + for (const requiredFile of requiredCompiledFiles) { + if (!existsSync(requiredFile)) { + throw new Error(`Missing compiled artifact: ${requiredFile}`); + } + } + + const previewCssPath = join(tmpWidgetsPath, "datagrid-web.css"); + if (existsSync(previewCssPath)) { + rmSync(previewCssPath); + } + + if (existsSync(tmpWidgetsPath)) { + await copyDir(tmpWidgetsPath, stagingDir); + } + + return new Promise((resolvePromise, reject) => { + const output = createWriteStream(mpkPath); + const archive = Archiver("zip", { zlib: { level: 9 } }); + + output.on("close", () => { + console.log(`✓ Created ${mpkPath} (${archive.pointer()} bytes)`); + resolvePromise(); + }); + + archive.on("error", reject); + archive.pipe(output); + archive.directory(stagingDir, false); + archive.finalize(); + }); +} + +async function buildEditorArtifacts() { + const editorOutDir = "dist/tmp/widgets"; + const editorExternals = [/^mendix($|\/)/, /^react$/, /^react-dom$/]; + + await viteBuild({ + configFile: false, + build: { + target: "es2019", + minify: "esbuild", + emptyOutDir: false, + outDir: editorOutDir, + lib: { + entry: "src/Datagrid.editorPreview.tsx", + formats: ["cjs"], + fileName: () => "Datagrid.editorPreview.js" + }, + rollupOptions: { + external: editorExternals, + output: { + format: "cjs", + entryFileNames: "Datagrid.editorPreview.js", + inlineDynamicImports: true + } + } + } + }); + + await viteBuild({ + configFile: false, + build: { + target: "es2019", + minify: "esbuild", + emptyOutDir: false, + outDir: editorOutDir, + lib: { + entry: "src/Datagrid.editorConfig.ts", + formats: ["cjs"], + fileName: () => "Datagrid.editorConfig.js" + }, + rollupOptions: { + external: editorExternals, + output: { + format: "cjs", + entryFileNames: "Datagrid.editorConfig.js", + inlineDynamicImports: true + } + } + } + }); +} + +export default defineConfig({ + define: { + "process.env.NODE_ENV": JSON.stringify("production") + }, + build: { + target: "es2019", + minify: "esbuild", + lib: { + entry: "src/Datagrid.tsx", + name: widgetName + }, + outDir: "dist/tmp/widgets/com/mendix/widget/web/datagrid", + rollupOptions: { + output: [ + { + format: useCjsRuntime ? "cjs" : "amd", + entryFileNames: `${widgetName}.js`, + inlineDynamicImports: true + }, + { + format: "es", + entryFileNames: `${widgetName}.mjs`, + inlineDynamicImports: true + } + ], + external: ["react", "react-dom", "big.js", /^mendix($|\/)/] + } + }, + plugins: [ + { + name: "vite-plugin-mpk-builder", + apply: "build", + enforce: "post", + async closeBundle() { + console.log("Building editor artifacts..."); + await buildEditorArtifacts(); + console.log("Building MPK..."); + await createMPK(resolve(process.cwd(), "dist")); + } + } + ] +}); diff --git a/packages/shared/vite-web-widgets/README.md b/packages/shared/vite-web-widgets/README.md new file mode 100644 index 0000000000..6c1b75d361 --- /dev/null +++ b/packages/shared/vite-web-widgets/README.md @@ -0,0 +1,28 @@ +# 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` – function that returns a baseline Vite config for a widget. +- `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. + To test this locally, pick a widget package and add the following script: + +```json +"scripts": { + "build:vite": "vite build --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..2186e98a08 --- /dev/null +++ b/packages/shared/vite-web-widgets/benchmark.js @@ -0,0 +1,106 @@ +#!/usr/bin/env node +const { execSync } = 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 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 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 pkgDir = path.join(repoRoot, "packages/pluggableWidgets", simpleName); + 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"); + const t1 = runCommand(`pnpm --filter ${pkg} run build`, { cwd: repoRoot }); + const size1 = getFolderSize(outDir); + copyFolder(outDir, path.join(benchDir, "old")); + + console.log("=> patching vite/rollup exports"); + patchViteRollup(); + + console.log("=> running vite build"); + const t2 = runCommand(`pnpm --filter ${pkg} run build:vite`, { cwd: repoRoot }); + const size2 = getFolderSize(outDir); + copyFolder(outDir, path.join(benchDir, "new")); + + console.log("\nresults:\n"); + console.log(`legacy build: ${t1.toFixed(1)}ms, size ${human(size1)}`); + console.log(`vite build : ${t2.toFixed(1)}ms, size ${human(size2)}`); + console.log(`output copies in ${benchDir}`); +} + +main(); diff --git a/packages/shared/vite-web-widgets/package.json b/packages/shared/vite-web-widgets/package.json new file mode 100644 index 0000000000..aa0e600e53 --- /dev/null +++ b/packages/shared/vite-web-widgets/package.json @@ -0,0 +1,14 @@ +{ + "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" + }, + "devDependencies": { + "rollup-plugin-copy": "^3.5.0", + "vite": "^7.3.1" + } +} 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..cf785dac4c --- /dev/null +++ b/packages/shared/vite-web-widgets/vite.config.ts @@ -0,0 +1,52 @@ +import { defineConfig, UserConfig } from "vite"; +import copy from "rollup-plugin-copy"; + +interface WidgetArgs { + /** usually the package name, e.g. @mendix/badge-web */ + widgetName?: string; +} + +export default function viteConfig(args: WidgetArgs = {}): UserConfig { + return defineConfig({ + build: { + target: "es2019", + lib: { + entry: "src/index.ts", + formats: ["es", "cjs"], + fileName: "index" + }, + rollupOptions: { + output: { + inlineDynamicImports: true + }, + external: ["react", "react-dom", "@mendix/widget-plugin-component-kit"] + } + }, + plugins: [ + { + name: "copy-default-files", + generateBundle() { + copy({ + targets: [ + { + src: "dist/locales", + dest: "dist/tmp/widgets", + flatten: false + }, + { + src: "../../../LICENSE", + dest: "dist/tmp/widgets", + rename: "License.txt" + }, + { + src: "Siemens*READMEOSS*.html", + dest: "dist/tmp/widgets", + flatten: true + } + ] + }); + } + } + ] + }); +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 482dd613fa..2549bb32de 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= @@ -543,7 +544,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,9 +554,15 @@ 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 + 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/pluggableWidgets/bar-chart-web: dependencies: @@ -1336,6 +1343,12 @@ importers: '@mendix/widget-plugin-test-utils': specifier: workspace:* version: link:../../shared/widget-plugin-test-utils + archiver: + specifier: ^6.0.0 + version: 6.0.2 + 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/pluggableWidgets/document-viewer-web: dependencies: @@ -2205,16 +2218,16 @@ importers: version: link:../../shared/widget-plugin-test-utils '@rollup/plugin-alias': specifier: ^5.1.1 - version: 5.1.1(rollup@3.29.5) + version: 5.1.1(rollup@4.59.0) '@rollup/plugin-image': specifier: ^3.0.3 - version: 3.0.3(rollup@3.29.5) + version: 3.0.3(rollup@4.59.0) '@rollup/plugin-json': specifier: ^6.1.0 - version: 6.1.0(rollup@3.29.5) + version: 6.1.0(rollup@4.59.0) '@rollup/plugin-replace': specifier: ^6.0.2 - version: 6.0.2(rollup@3.29.5) + version: 6.0.2(rollup@4.59.0) '@types/js-beautify': specifier: ^1.14.3 version: 1.14.3 @@ -2241,7 +2254,7 @@ importers: 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) + version: 1.1.3(rollup@4.59.0) packages/pluggableWidgets/selection-helper-web: dependencies: @@ -2712,6 +2725,15 @@ importers: packages/shared/tsconfig-web-widgets: {} + packages/shared/vite-web-widgets: + devDependencies: + rollup-plugin-copy: + specifier: ^3.5.0 + version: 3.5.0 + 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 +3929,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 +4839,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 +5778,18 @@ 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@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'} + arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} @@ -5570,6 +5894,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 +5920,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 +5985,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'} @@ -5976,6 +6349,10 @@ 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'} + compute-scroll-into-view@2.0.4: resolution: {integrity: sha512-y/ZA3BGnxoM/QHHQ2Uy49CLtnWPbt4tTPpEEZiEmmiWBFKjej7nEyH8Ryz54jH0MLXflUYA3Er2zUxPSJu5R+g==} @@ -6060,10 +6437,19 @@ 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'} + crc@3.8.0: resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} @@ -6659,6 +7045,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 +7312,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 +7355,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 +7617,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 +8894,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'} @@ -9517,6 +9923,9 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + 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'} @@ -9714,6 +10123,11 @@ packages: 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 +10446,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 +10621,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 +10652,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 +11015,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 +11344,10 @@ 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'} + zod-validation-error@4.0.2: resolution: {integrity: sha512-Q6/nZLe6jxuU80qb/4uJ4t5v2VEZ44lzQjPDhYJNztRQ4wyWc6VF3D3Kb/fAuPetZQnhS3hnajCf9CsWesghLQ==} engines: {node: '>=18.0.0'} @@ -12020,10 +12490,88 @@ snapshots: '@discoveryjs/json-ext@0.5.7': {} - '@eslint-community/eslint-utils@4.9.0(eslint@7.32.0)': - dependencies: - eslint: 7.32.0 - eslint-visitor-keys: 3.4.3 + '@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 + eslint-visitor-keys: 3.4.3 '@eslint-community/eslint-utils@4.9.0(eslint@9.39.3(jiti@2.6.1))': dependencies: @@ -12481,7 +13029,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 +13057,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@7.32.0)(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) @@ -12553,6 +13101,113 @@ snapshots: rollup: 3.29.5 rollup-plugin-clear: 2.0.7 rollup-plugin-command: 1.1.3 + 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 + sass: 1.93.2 + semver: 7.7.3 + shelljs: 0.8.5 + shx: 0.3.4 + ts-jest: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.14.1)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3)))(typescript@5.9.3) + ts-node: 10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3) + typescript: 5.9.3 + xml2js: 0.6.2 + zip-a-folder: 0.0.12 + transitivePeerDependencies: + - '@jest/transform' + - '@jest/types' + - '@swc/core' + - '@swc/wasm' + - '@types/babel__core' + - '@types/node' + - babel-plugin-macros + - bufferutil + - canvas + - encoding + - esbuild + - jest-util + - node-notifier + - picomatch + - react + - react-dom + - react-native + - supports-color + - tslib + - utf-8-validate + + '@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)': + dependencies: + '@babel/core': 7.28.4 + '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) + '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) + '@babel/preset-env': 7.28.3(@babel/core@7.28.4) + '@babel/preset-react': 7.27.1(@babel/core@7.28.4) + '@cfaester/enzyme-adapter-react-18': 0.6.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@prettier/plugin-xml': 3.4.2(prettier@3.5.3) + '@rollup/plugin-alias': 5.1.1(rollup@3.29.5) + '@rollup/plugin-babel': 6.1.0(@babel/core@7.28.4)(@types/babel__core@7.20.5)(rollup@3.29.5) + '@rollup/plugin-commonjs': 28.0.7(rollup@3.29.5) + '@rollup/plugin-image': 3.0.3(rollup@3.29.5) + '@rollup/plugin-json': 6.1.0(rollup@3.29.5) + '@rollup/plugin-node-resolve': 15.3.1(rollup@3.29.5) + '@rollup/plugin-terser': 0.4.4(rollup@3.29.5) + '@rollup/plugin-typescript': 12.1.4(rollup@3.29.5)(tslib@2.8.1)(typescript@5.9.3) + '@rollup/plugin-url': 8.0.2(rollup@3.29.5) + '@rollup/pluginutils': 5.3.0(rollup@3.29.5) + '@testing-library/dom': 8.20.1 + '@testing-library/jest-dom': 5.17.0 + '@testing-library/react': 16.3.0(@testing-library/dom@8.20.1)(@types/react-dom@18.3.7(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@testing-library/user-event': 14.6.1(@testing-library/dom@8.20.1) + '@types/react': 19.2.2 + '@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@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) + babel-jest: 29.7.0(@babel/core@7.28.4) + big.js: 6.2.2 + concurrently: 6.5.1 + core-js: 3.46.0 + dotenv: 8.6.0 + enzyme: 3.11.0 + 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@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) + eslint-plugin-react-hooks: 4.6.2(eslint@7.32.0) + fast-glob: 3.3.3 + find-free-port: 2.0.0 + fs-extra: 9.1.0 + identity-obj-proxy: 3.0.0 + jasmine: 3.99.0 + jasmine-core: 3.99.1 + jest: 29.7.0(@types/node@22.14.1)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3)) + jest-environment-jsdom: 29.7.0 + jest-jasmine2: 29.7.0 + jest-junit: 13.2.0 + jest-react-hooks-shallow: 1.5.1 + make-dir: 3.1.0 + mendix: 10.24.75382 + metro-react-native-babel-preset: 0.74.1(@babel/core@7.28.4) + mime: 3.0.0 + node-fetch: 2.7.0 + postcss: 8.5.6 + postcss-import: 14.1.0(postcss@8.5.6) + postcss-url: 10.1.3(postcss@8.5.6) + prettier: 3.5.3 + react-test-renderer: 18.2.0(react@18.3.1) + recursive-copy: 2.0.14 + resolve: 1.22.10 + 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-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)) @@ -12915,6 +13570,10 @@ snapshots: optionalDependencies: rollup: 3.29.5 + '@rollup/plugin-alias@5.1.1(rollup@4.59.0)': + optionalDependencies: + rollup: 4.59.0 + '@rollup/plugin-babel@6.1.0(@babel/core@7.28.4)(@types/babel__core@7.20.5)(rollup@3.29.5)': dependencies: '@babel/core': 7.28.4 @@ -12945,12 +13604,25 @@ snapshots: optionalDependencies: rollup: 3.29.5 + '@rollup/plugin-image@3.0.3(rollup@4.59.0)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) + mini-svg-data-uri: 1.4.4 + optionalDependencies: + rollup: 4.59.0 + '@rollup/plugin-json@6.1.0(rollup@3.29.5)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@3.29.5) optionalDependencies: rollup: 3.29.5 + '@rollup/plugin-json@6.1.0(rollup@4.59.0)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) + optionalDependencies: + rollup: 4.59.0 + '@rollup/plugin-node-resolve@15.3.1(rollup@3.29.5)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@3.29.5) @@ -12978,6 +13650,13 @@ snapshots: optionalDependencies: rollup: 3.29.5 + '@rollup/plugin-replace@6.0.2(rollup@4.59.0)': + dependencies: + '@rollup/pluginutils': 5.3.0(rollup@4.59.0) + magic-string: 0.30.19 + optionalDependencies: + rollup: 4.59.0 + '@rollup/plugin-terser@0.4.4(rollup@3.29.5)': dependencies: serialize-javascript: 6.0.2 @@ -13011,6 +13690,89 @@ snapshots: optionalDependencies: rollup: 3.29.5 + '@rollup/pluginutils@5.3.0(rollup@4.59.0)': + dependencies: + '@types/estree': 1.0.8 + estree-walker: 2.0.2 + picomatch: 4.0.3 + optionalDependencies: + rollup: 4.59.0 + + '@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 +14170,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@7.32.0)(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 +14178,26 @@ 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 + semver: 7.7.3 + tsutils: 3.21.0(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@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) + '@typescript-eslint/scope-manager': 5.62.0 + '@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: 7.32.0 graphemer: 1.4.0 ignore: 5.3.2 natural-compare-lite: 1.4.0 @@ -13950,6 +14731,15 @@ 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@3.1.1: dependencies: archiver-utils: 2.1.0 @@ -13960,6 +14750,20 @@ 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 + arg@4.1.3: {} argparse@1.0.10: @@ -14078,6 +14882,8 @@ snapshots: dependencies: lodash: 4.17.23 + async@3.2.6: {} + asynckit@0.4.0: {} at-least-node@1.0.0: {} @@ -14092,6 +14898,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 +14999,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: {} @@ -14544,6 +15385,13 @@ 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 + compute-scroll-into-view@2.0.4: {} compute-scroll-into-view@3.1.1: {} @@ -14646,11 +15494,18 @@ 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 + crc@3.8.0: dependencies: buffer: 5.7.1 @@ -15371,6 +16226,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: {} @@ -15414,7 +16298,17 @@ snapshots: '@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@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3) + transitivePeerDependencies: + - supports-color + - typescript + + 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@7.32.0)(typescript@5.9.3) transitivePeerDependencies: - supports-color - typescript @@ -15705,6 +16599,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 +16656,8 @@ snapshots: fast-diff@1.3.0: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -16061,6 +16963,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 +18666,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 @@ -18926,6 +19840,10 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdir-glob@1.1.3: + dependencies: + minimatch: 5.1.9 + readdirp@3.6.0: dependencies: picomatch: 2.3.1 @@ -19206,15 +20124,46 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup-preserve-directives@1.1.3(rollup@3.29.5): + rollup-preserve-directives@1.1.3(rollup@4.59.0): dependencies: magic-string: 0.30.19 - rollup: 3.29.5 + rollup: 4.59.0 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 +20501,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 +20721,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 +20763,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 +21101,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 +21419,12 @@ 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 + zod-validation-error@4.0.2(zod@3.25.76): dependencies: zod: 3.25.76 From 0d1e67d0f9ac23e350f3a11f5650e7eb76bc30e7 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 14:29:42 +0100 Subject: [PATCH 03/21] chore(badge-web): remove unused vite config variants --- .../badge-web/vite.config.inline.js | 18 ------------------ .../pluggableWidgets/badge-web/vite.config.ts | 3 --- 2 files changed, 21 deletions(-) delete mode 100644 packages/pluggableWidgets/badge-web/vite.config.inline.js delete mode 100644 packages/pluggableWidgets/badge-web/vite.config.ts diff --git a/packages/pluggableWidgets/badge-web/vite.config.inline.js b/packages/pluggableWidgets/badge-web/vite.config.inline.js deleted file mode 100644 index e7e9ca22a6..0000000000 --- a/packages/pluggableWidgets/badge-web/vite.config.inline.js +++ /dev/null @@ -1,18 +0,0 @@ -import { defineConfig } from "vite"; - -export default defineConfig({ - build: { - target: "es2019", - lib: { - entry: "src/index.ts", - formats: ["es", "cjs"], - fileName: "index" - }, - rollupOptions: { - output: { - inlineDynamicImports: true - }, - external: ["react", "react-dom", "@mendix/widget-plugin-component-kit"] - } - } -}); diff --git a/packages/pluggableWidgets/badge-web/vite.config.ts b/packages/pluggableWidgets/badge-web/vite.config.ts deleted file mode 100644 index 260499d3ac..0000000000 --- a/packages/pluggableWidgets/badge-web/vite.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -import viteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default viteConfig({ widgetName: "@mendix/badge-web" }); From f1d3a49f064965b17b4346abcc54d12df9384f38 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 15:01:58 +0100 Subject: [PATCH 04/21] chore(badge-web): standardize vite build and benchmark scripts --- packages/pluggableWidgets/badge-web/package.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/pluggableWidgets/badge-web/package.json b/packages/pluggableWidgets/badge-web/package.json index 70aa56aee8..6e45e6b7dc 100644 --- a/packages/pluggableWidgets/badge-web/package.json +++ b/packages/pluggableWidgets/badge-web/package.json @@ -26,8 +26,11 @@ "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 --config vite.config.js", + "build:vite": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools start:web", From 3597c1c6a13ea9384682267cfff81e553aac45f6 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 15:08:01 +0100 Subject: [PATCH 05/21] refactor(build): share vite widget base config across badge and datagrid --- .../pluggableWidgets/badge-web/vite.config.js | 134 ++++-------- .../datagrid-web/vite.config.js | 207 ++++-------------- packages/shared/vite-web-widgets/package.json | 1 - .../shared/vite-web-widgets/vite.config.ts | 185 +++++++++++++--- pnpm-lock.yaml | 3 - 5 files changed, 230 insertions(+), 300 deletions(-) diff --git a/packages/pluggableWidgets/badge-web/vite.config.js b/packages/pluggableWidgets/badge-web/vite.config.js index b2de9da0ca..4714f6b398 100644 --- a/packages/pluggableWidgets/badge-web/vite.config.js +++ b/packages/pluggableWidgets/badge-web/vite.config.js @@ -1,109 +1,49 @@ -import Archiver from "archiver"; -import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; -import { cp } from "fs/promises"; -import { join, resolve } from "path"; -import { defineConfig } from "vite"; +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; -const widgetVersion = "3.2.3"; const widgetName = "Badge"; -/** - * Recursively copy files and directories - */ -async function copyDir(src, dest) { - mkdirSync(dest, { recursive: true }); - if (existsSync(src)) { - await cp(src, dest, { recursive: true, force: true }); - } -} - -/** - * Post-build hook to package widget files into MPK - */ -async function createMPK(distPath) { - const stagingDir = join(distPath, "widgets"); - const outputDir = join(process.cwd(), "dist", widgetVersion); - const mpkPath = join(outputDir, `${widgetName}.mpk`); - - // Clean staging directory - if (existsSync(stagingDir)) { - rmSync(stagingDir, { recursive: true }); - } - mkdirSync(stagingDir, { recursive: true }); - mkdirSync(outputDir, { recursive: true }); - - // Copy widget metadata files - const filesToCopy = [ +export default createWidgetViteConfig({ + widgetName, + widgetVersion: "3.2.3", + mpkName: "Badge.mpk", + runtimeEntry: "src/Badge.tsx", + runtimeOutDir: "dist/tmp/widgets/com/mendix/widget/custom/badge", + runtimeOutputs: [ + { + format: "cjs", + entryFileName: `${widgetName}.js` + }, + { + format: "es", + entryFileName: `${widgetName}.mjs` + } + ], + runtimeExternals: ["react", "react-dom", "@mendix/widget-plugin-component-kit"], + editorBuilds: [ + { + entry: "src/Badge.editorPreview.tsx", + outputFile: "Badge.editorPreview.js", + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] + }, + { + entry: "src/Badge.editorConfig.ts", + outputFile: "Badge.editorConfig.js", + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] + } + ], + requiredArtifacts: [ + "Badge.editorConfig.js", + "Badge.editorPreview.js", + "com/mendix/widget/custom/badge/Badge.js", + "com/mendix/widget/custom/badge/Badge.mjs" + ], + metadataFiles: [ { src: "src/Badge.xml", dest: "Badge.xml" }, - { src: "src/Badge.editorConfig.ts", dest: "Badge.editorConfig.js" }, - { src: "src/Badge.editorPreview.tsx", dest: "Badge.editorPreview.js" }, { src: "src/Badge.icon.png", dest: "Badge.icon.png" }, { src: "src/Badge.icon.dark.png", dest: "Badge.icon.dark.png" }, { src: "src/Badge.tile.png", dest: "Badge.tile.png" }, { src: "src/Badge.tile.dark.png", dest: "Badge.tile.dark.png" }, { src: "../../../LICENSE", dest: "License.txt" }, { src: "src/package.xml", dest: "package.xml" } - ]; - - for (const file of filesToCopy) { - const srcPath = resolve(process.cwd(), file.src); - const destPath = join(stagingDir, file.dest); - mkdirSync(join(stagingDir, file.dest.split("/").slice(0, -1).join("/")), { recursive: true }); - if (existsSync(srcPath)) { - copyFileSync(srcPath, destPath); - } - } - - // Copy compiled widget files from dist/tmp/widgets - const tmpWidgetsPath = join(distPath, "tmp", "widgets"); - if (existsSync(tmpWidgetsPath)) { - await copyDir(tmpWidgetsPath, stagingDir); - } - - // Create MPK (ZIP file) - return new Promise((resolve, reject) => { - const output = createWriteStream(mpkPath); - const archive = Archiver("zip", { zlib: { level: 9 } }); - - output.on("close", () => { - console.log(`✓ Created ${mpkPath} (${archive.pointer()} bytes)`); - resolve(); - }); - - archive.on("error", reject); - archive.pipe(output); - archive.directory(stagingDir, false); - archive.finalize(); - }); -} - -export default defineConfig({ - build: { - target: "es2019", - minify: "esbuild", - lib: { - entry: "src/Badge.tsx", - name: widgetName, - formats: ["es", "cjs"], - fileName: format => (format === "es" ? `${widgetName}.mjs` : `${widgetName}.js`) - }, - outDir: "dist/tmp/widgets/com/mendix/widget/custom/badge", - rollupOptions: { - output: { - inlineDynamicImports: true - }, - external: ["react", "react-dom", "@mendix/widget-plugin-component-kit"] - } - }, - plugins: [ - { - name: "vite-plugin-mpk-builder", - apply: "build", - enforce: "post", - async closeBundle() { - console.log("Building MPK..."); - await createMPK(resolve(process.cwd(), "dist")); - } - } ] }); diff --git a/packages/pluggableWidgets/datagrid-web/vite.config.js b/packages/pluggableWidgets/datagrid-web/vite.config.js index a18cb19a05..6878b017d8 100644 --- a/packages/pluggableWidgets/datagrid-web/vite.config.js +++ b/packages/pluggableWidgets/datagrid-web/vite.config.js @@ -1,179 +1,54 @@ -import Archiver from "archiver"; -import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; -import { cp } from "fs/promises"; -import { join, resolve } from "path"; -import { build as viteBuild, defineConfig } from "vite"; +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; -const widgetVersion = "3.8.1"; const widgetName = "Datagrid"; const useCjsRuntime = process.env.VITE_RUNTIME_FORMAT === "cjs"; -async function copyDir(src, dest) { - mkdirSync(dest, { recursive: true }); - if (existsSync(src)) { - await cp(src, dest, { recursive: true, force: true }); - } -} - -async function createMPK(distPath) { - const stagingDir = join(distPath, "widgets"); - const outputDir = join(process.cwd(), "dist", widgetVersion); - const mpkPath = join(outputDir, `com.mendix.widget.web.${widgetName}.mpk`); - - if (existsSync(stagingDir)) { - rmSync(stagingDir, { recursive: true }); - } - mkdirSync(stagingDir, { recursive: true }); - mkdirSync(outputDir, { recursive: true }); - - const filesToCopy = [ - { src: "src/Datagrid.xml", dest: "Datagrid.xml" }, - { src: "src/Datagrid.icon.png", dest: "Datagrid.icon.png" }, - { src: "src/Datagrid.icon.dark.png", dest: "Datagrid.icon.dark.png" }, - { src: "src/Datagrid.tile.png", dest: "Datagrid.tile.png" }, - { src: "src/Datagrid.tile.dark.png", dest: "Datagrid.tile.dark.png" }, - { src: "../../../LICENSE", dest: "License.txt" }, - { src: "src/package.xml", dest: "package.xml" } - ]; - - for (const file of filesToCopy) { - const srcPath = resolve(process.cwd(), file.src); - const destPath = join(stagingDir, file.dest); - mkdirSync(join(stagingDir, file.dest.split("/").slice(0, -1).join("/")), { recursive: true }); - if (existsSync(srcPath)) { - copyFileSync(srcPath, destPath); - } - } - - const tmpWidgetsPath = join(distPath, "tmp", "widgets"); - const requiredCompiledFiles = [ - join(tmpWidgetsPath, "Datagrid.editorConfig.js"), - join(tmpWidgetsPath, "Datagrid.editorPreview.js"), - join(tmpWidgetsPath, "com", "mendix", "widget", "web", "datagrid", "Datagrid.js"), - join(tmpWidgetsPath, "com", "mendix", "widget", "web", "datagrid", "Datagrid.mjs") - ]; - - for (const requiredFile of requiredCompiledFiles) { - if (!existsSync(requiredFile)) { - throw new Error(`Missing compiled artifact: ${requiredFile}`); - } - } - - const previewCssPath = join(tmpWidgetsPath, "datagrid-web.css"); - if (existsSync(previewCssPath)) { - rmSync(previewCssPath); - } - - if (existsSync(tmpWidgetsPath)) { - await copyDir(tmpWidgetsPath, stagingDir); - } - - return new Promise((resolvePromise, reject) => { - const output = createWriteStream(mpkPath); - const archive = Archiver("zip", { zlib: { level: 9 } }); - - output.on("close", () => { - console.log(`✓ Created ${mpkPath} (${archive.pointer()} bytes)`); - resolvePromise(); - }); - - archive.on("error", reject); - archive.pipe(output); - archive.directory(stagingDir, false); - archive.finalize(); - }); -} - -async function buildEditorArtifacts() { - const editorOutDir = "dist/tmp/widgets"; - const editorExternals = [/^mendix($|\/)/, /^react$/, /^react-dom$/]; - - await viteBuild({ - configFile: false, - build: { - target: "es2019", - minify: "esbuild", - emptyOutDir: false, - outDir: editorOutDir, - lib: { - entry: "src/Datagrid.editorPreview.tsx", - formats: ["cjs"], - fileName: () => "Datagrid.editorPreview.js" - }, - rollupOptions: { - external: editorExternals, - output: { - format: "cjs", - entryFileNames: "Datagrid.editorPreview.js", - inlineDynamicImports: true - } - } - } - }); - - await viteBuild({ - configFile: false, - build: { - target: "es2019", - minify: "esbuild", - emptyOutDir: false, - outDir: editorOutDir, - lib: { - entry: "src/Datagrid.editorConfig.ts", - formats: ["cjs"], - fileName: () => "Datagrid.editorConfig.js" - }, - rollupOptions: { - external: editorExternals, - output: { - format: "cjs", - entryFileNames: "Datagrid.editorConfig.js", - inlineDynamicImports: true - } - } +export default createWidgetViteConfig({ + widgetName, + widgetVersion: "3.8.1", + mpkName: `com.mendix.widget.web.${widgetName}.mpk`, + runtimeEntry: "src/Datagrid.tsx", + runtimeOutDir: "dist/tmp/widgets/com/mendix/widget/web/datagrid", + runtimeOutputs: [ + { + format: useCjsRuntime ? "cjs" : "amd", + entryFileName: `${widgetName}.js` + }, + { + format: "es", + entryFileName: `${widgetName}.mjs` } - }); -} - -export default defineConfig({ + ], + runtimeExternals: ["react", "react-dom", "big.js", /^mendix($|\/)/], define: { "process.env.NODE_ENV": JSON.stringify("production") }, - build: { - target: "es2019", - minify: "esbuild", - lib: { - entry: "src/Datagrid.tsx", - name: widgetName + editorBuilds: [ + { + entry: "src/Datagrid.editorPreview.tsx", + outputFile: "Datagrid.editorPreview.js", + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] }, - outDir: "dist/tmp/widgets/com/mendix/widget/web/datagrid", - rollupOptions: { - output: [ - { - format: useCjsRuntime ? "cjs" : "amd", - entryFileNames: `${widgetName}.js`, - inlineDynamicImports: true - }, - { - format: "es", - entryFileNames: `${widgetName}.mjs`, - inlineDynamicImports: true - } - ], - external: ["react", "react-dom", "big.js", /^mendix($|\/)/] - } - }, - plugins: [ { - name: "vite-plugin-mpk-builder", - apply: "build", - enforce: "post", - async closeBundle() { - console.log("Building editor artifacts..."); - await buildEditorArtifacts(); - console.log("Building MPK..."); - await createMPK(resolve(process.cwd(), "dist")); - } + entry: "src/Datagrid.editorConfig.ts", + outputFile: "Datagrid.editorConfig.js", + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] } + ], + requiredArtifacts: [ + "Datagrid.editorConfig.js", + "Datagrid.editorPreview.js", + "com/mendix/widget/web/datagrid/Datagrid.js", + "com/mendix/widget/web/datagrid/Datagrid.mjs" + ], + removeBeforeCopy: ["datagrid-web.css"], + metadataFiles: [ + { src: "src/Datagrid.xml", dest: "Datagrid.xml" }, + { src: "src/Datagrid.icon.png", dest: "Datagrid.icon.png" }, + { src: "src/Datagrid.icon.dark.png", dest: "Datagrid.icon.dark.png" }, + { src: "src/Datagrid.tile.png", dest: "Datagrid.tile.png" }, + { src: "src/Datagrid.tile.dark.png", dest: "Datagrid.tile.dark.png" }, + { src: "../../../LICENSE", dest: "License.txt" }, + { src: "src/package.xml", dest: "package.xml" } ] }); diff --git a/packages/shared/vite-web-widgets/package.json b/packages/shared/vite-web-widgets/package.json index aa0e600e53..941c8e58eb 100644 --- a/packages/shared/vite-web-widgets/package.json +++ b/packages/shared/vite-web-widgets/package.json @@ -8,7 +8,6 @@ "./vite.config": "./vite.config.ts" }, "devDependencies": { - "rollup-plugin-copy": "^3.5.0", "vite": "^7.3.1" } } diff --git a/packages/shared/vite-web-widgets/vite.config.ts b/packages/shared/vite-web-widgets/vite.config.ts index cf785dac4c..6232726ec5 100644 --- a/packages/shared/vite-web-widgets/vite.config.ts +++ b/packages/shared/vite-web-widgets/vite.config.ts @@ -1,50 +1,169 @@ -import { defineConfig, UserConfig } from "vite"; -import copy from "rollup-plugin-copy"; +import Archiver from "archiver"; +import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; +import { cp } from "fs/promises"; +import { join, resolve } from "path"; +import { build as viteBuild, defineConfig, type UserConfig } from "vite"; -interface WidgetArgs { - /** usually the package name, e.g. @mendix/badge-web */ - widgetName?: string; +type EditorBuild = { + entry: string; + outputFile: string; + externals: Array; + format?: "cjs" | "es"; +}; + +type RuntimeOutput = { + format: "cjs" | "es" | "amd"; + entryFileName: string; +}; + +type FileCopy = { + src: string; + dest: string; +}; + +type WidgetViteConfigOptions = { + widgetName: string; + widgetVersion: string; + mpkName: string; + runtimeEntry: string; + runtimeName?: string; + runtimeOutDir: string; + runtimeOutputs: RuntimeOutput[]; + runtimeExternals: Array; + metadataFiles: FileCopy[]; + editorBuilds?: EditorBuild[]; + requiredArtifacts?: string[]; + removeBeforeCopy?: string[]; + define?: Record; +}; + +async function copyDir(src: string, dest: string): Promise { + mkdirSync(dest, { recursive: true }); + if (existsSync(src)) { + await cp(src, dest, { recursive: true, force: true }); + } +} + +async function buildEditorArtifacts(editorBuilds: EditorBuild[]): Promise { + const editorOutDir = "dist/tmp/widgets"; + + for (const editorBuild of editorBuilds) { + await viteBuild({ + configFile: false, + build: { + target: "es2019", + minify: "esbuild", + 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 + } + } + } + }); + } } -export default function viteConfig(args: WidgetArgs = {}): UserConfig { +async function createMPK(options: WidgetViteConfigOptions): 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, file.dest.split("/").slice(0, -1).join("/")), { 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); + } + } + + 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("close", () => { + console.log(`✓ Created ${mpkPath} (${archive.pointer()} bytes)`); + resolvePromise(); + }); + + archive.on("error", reject); + archive.pipe(output); + archive.directory(stagingDir, false); + archive.finalize(); + }); +} + +export default function createWidgetViteConfig(options: WidgetViteConfigOptions): UserConfig { return defineConfig({ + define: options.define, build: { target: "es2019", + minify: "esbuild", lib: { - entry: "src/index.ts", - formats: ["es", "cjs"], - fileName: "index" + entry: options.runtimeEntry, + name: options.runtimeName ?? options.widgetName }, + outDir: options.runtimeOutDir, rollupOptions: { - output: { + output: options.runtimeOutputs.map(runtimeOutput => ({ + format: runtimeOutput.format, + entryFileNames: runtimeOutput.entryFileName, inlineDynamicImports: true - }, - external: ["react", "react-dom", "@mendix/widget-plugin-component-kit"] + })), + external: options.runtimeExternals } }, plugins: [ { - name: "copy-default-files", - generateBundle() { - copy({ - targets: [ - { - src: "dist/locales", - dest: "dist/tmp/widgets", - flatten: false - }, - { - src: "../../../LICENSE", - dest: "dist/tmp/widgets", - rename: "License.txt" - }, - { - src: "Siemens*READMEOSS*.html", - dest: "dist/tmp/widgets", - flatten: true - } - ] - }); + name: "vite-plugin-mpk-builder", + apply: "build", + enforce: "post", + async closeBundle() { + if (options.editorBuilds && options.editorBuilds.length > 0) { + console.log("Building editor artifacts..."); + await buildEditorArtifacts(options.editorBuilds); + } + + console.log("Building MPK..."); + await createMPK(options); } } ] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2549bb32de..9005973e4f 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2727,9 +2727,6 @@ importers: packages/shared/vite-web-widgets: devDependencies: - rollup-plugin-copy: - specifier: ^3.5.0 - version: 3.5.0 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) From 31db2f7893c279b9a5c157809795cadb3bf8633d Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 15:34:39 +0100 Subject: [PATCH 06/21] refactor(build): simplify widget Vite config by removing redundant options --- .../pluggableWidgets/badge-web/vite.config.js | 48 +----- .../datagrid-web/vite.config.js | 53 +----- .../shared/vite-web-widgets/vite.config.ts | 158 +++++++++++++++--- 3 files changed, 137 insertions(+), 122 deletions(-) diff --git a/packages/pluggableWidgets/badge-web/vite.config.js b/packages/pluggableWidgets/badge-web/vite.config.js index 4714f6b398..7a6970ff66 100644 --- a/packages/pluggableWidgets/badge-web/vite.config.js +++ b/packages/pluggableWidgets/badge-web/vite.config.js @@ -1,49 +1,3 @@ import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; -const widgetName = "Badge"; - -export default createWidgetViteConfig({ - widgetName, - widgetVersion: "3.2.3", - mpkName: "Badge.mpk", - runtimeEntry: "src/Badge.tsx", - runtimeOutDir: "dist/tmp/widgets/com/mendix/widget/custom/badge", - runtimeOutputs: [ - { - format: "cjs", - entryFileName: `${widgetName}.js` - }, - { - format: "es", - entryFileName: `${widgetName}.mjs` - } - ], - runtimeExternals: ["react", "react-dom", "@mendix/widget-plugin-component-kit"], - editorBuilds: [ - { - entry: "src/Badge.editorPreview.tsx", - outputFile: "Badge.editorPreview.js", - externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] - }, - { - entry: "src/Badge.editorConfig.ts", - outputFile: "Badge.editorConfig.js", - externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] - } - ], - requiredArtifacts: [ - "Badge.editorConfig.js", - "Badge.editorPreview.js", - "com/mendix/widget/custom/badge/Badge.js", - "com/mendix/widget/custom/badge/Badge.mjs" - ], - metadataFiles: [ - { src: "src/Badge.xml", dest: "Badge.xml" }, - { src: "src/Badge.icon.png", dest: "Badge.icon.png" }, - { src: "src/Badge.icon.dark.png", dest: "Badge.icon.dark.png" }, - { src: "src/Badge.tile.png", dest: "Badge.tile.png" }, - { src: "src/Badge.tile.dark.png", dest: "Badge.tile.dark.png" }, - { src: "../../../LICENSE", dest: "License.txt" }, - { src: "src/package.xml", dest: "package.xml" } - ] -}); +export default createWidgetViteConfig({ widgetName: "Badge" }); diff --git a/packages/pluggableWidgets/datagrid-web/vite.config.js b/packages/pluggableWidgets/datagrid-web/vite.config.js index 6878b017d8..3fca5e2fe4 100644 --- a/packages/pluggableWidgets/datagrid-web/vite.config.js +++ b/packages/pluggableWidgets/datagrid-web/vite.config.js @@ -1,54 +1,3 @@ import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; -const widgetName = "Datagrid"; -const useCjsRuntime = process.env.VITE_RUNTIME_FORMAT === "cjs"; - -export default createWidgetViteConfig({ - widgetName, - widgetVersion: "3.8.1", - mpkName: `com.mendix.widget.web.${widgetName}.mpk`, - runtimeEntry: "src/Datagrid.tsx", - runtimeOutDir: "dist/tmp/widgets/com/mendix/widget/web/datagrid", - runtimeOutputs: [ - { - format: useCjsRuntime ? "cjs" : "amd", - entryFileName: `${widgetName}.js` - }, - { - format: "es", - entryFileName: `${widgetName}.mjs` - } - ], - runtimeExternals: ["react", "react-dom", "big.js", /^mendix($|\/)/], - define: { - "process.env.NODE_ENV": JSON.stringify("production") - }, - editorBuilds: [ - { - entry: "src/Datagrid.editorPreview.tsx", - outputFile: "Datagrid.editorPreview.js", - externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] - }, - { - entry: "src/Datagrid.editorConfig.ts", - outputFile: "Datagrid.editorConfig.js", - externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] - } - ], - requiredArtifacts: [ - "Datagrid.editorConfig.js", - "Datagrid.editorPreview.js", - "com/mendix/widget/web/datagrid/Datagrid.js", - "com/mendix/widget/web/datagrid/Datagrid.mjs" - ], - removeBeforeCopy: ["datagrid-web.css"], - metadataFiles: [ - { src: "src/Datagrid.xml", dest: "Datagrid.xml" }, - { src: "src/Datagrid.icon.png", dest: "Datagrid.icon.png" }, - { src: "src/Datagrid.icon.dark.png", dest: "Datagrid.icon.dark.png" }, - { src: "src/Datagrid.tile.png", dest: "Datagrid.tile.png" }, - { src: "src/Datagrid.tile.dark.png", dest: "Datagrid.tile.dark.png" }, - { src: "../../../LICENSE", dest: "License.txt" }, - { src: "src/package.xml", dest: "package.xml" } - ] -}); +export default createWidgetViteConfig({ widgetName: "Datagrid" }); diff --git a/packages/shared/vite-web-widgets/vite.config.ts b/packages/shared/vite-web-widgets/vite.config.ts index 6232726ec5..36158800ad 100644 --- a/packages/shared/vite-web-widgets/vite.config.ts +++ b/packages/shared/vite-web-widgets/vite.config.ts @@ -1,5 +1,5 @@ import Archiver from "archiver"; -import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; +import { copyFileSync, createWriteStream, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; import { cp } from "fs/promises"; import { join, resolve } from "path"; import { build as viteBuild, defineConfig, type UserConfig } from "vite"; @@ -21,20 +21,17 @@ type FileCopy = { dest: string; }; +type WidgetPackageJson = { + name: string; + version: string; + packagePath: string; + mxpackage?: { + mpkName?: string; + }; +}; + type WidgetViteConfigOptions = { widgetName: string; - widgetVersion: string; - mpkName: string; - runtimeEntry: string; - runtimeName?: string; - runtimeOutDir: string; - runtimeOutputs: RuntimeOutput[]; - runtimeExternals: Array; - metadataFiles: FileCopy[]; - editorBuilds?: EditorBuild[]; - requiredArtifacts?: string[]; - removeBeforeCopy?: string[]; - define?: Record; }; async function copyDir(src: string, dest: string): Promise { @@ -73,7 +70,120 @@ async function buildEditorArtifacts(editorBuilds: EditorBuild[]): Promise } } -async function createMPK(options: WidgetViteConfigOptions): Promise { +function readWidgetPackageJson(): WidgetPackageJson { + const packageJsonPath = resolve(process.cwd(), "package.json"); + const packageJsonText = readFileSync(packageJsonPath, "utf-8"); + return JSON.parse(packageJsonText) as WidgetPackageJson; +} + +function toPackagePathDir(packagePath: string): string { + return packagePath.replace(/\./g, "/"); +} + +function inferPrimaryRuntimeFormat(packagePath: string): "cjs" | "amd" { + if (process.env.VITE_RUNTIME_FORMAT === "cjs") { + return "cjs"; + } + + return packagePath.endsWith(".web") ? "amd" : "cjs"; +} + +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" } + ]; +} + +function inferRequiredArtifacts(widgetName: string, packagePath: string): string[] { + const packagePathDir = toPackagePathDir(packagePath); + const widgetDir = widgetName.toLowerCase(); + + return [ + `${widgetName}.editorConfig.js`, + `${widgetName}.editorPreview.js`, + `${packagePathDir}/${widgetDir}/${widgetName}.js`, + `${packagePathDir}/${widgetDir}/${widgetName}.mjs` + ]; +} + +function inferRuntimeOutDir(widgetName: string, packagePath: string): string { + const packagePathDir = toPackagePathDir(packagePath); + return `dist/tmp/widgets/${packagePathDir}/${widgetName.toLowerCase()}`; +} + +function inferEditorBuilds(widgetName: string): EditorBuild[] { + return [ + { + entry: `src/${widgetName}.editorPreview.tsx`, + outputFile: `${widgetName}.editorPreview.js`, + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] + }, + { + entry: `src/${widgetName}.editorConfig.ts`, + outputFile: `${widgetName}.editorConfig.js`, + externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] + } + ]; +} + +function inferRemoveBeforeCopy(packageName: string): string[] { + const widgetPackageName = packageName.split("/").pop(); + return widgetPackageName ? [`${widgetPackageName}.css`] : []; +} + +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; +}; + +function resolveConfig(options: WidgetViteConfigOptions): ResolvedConfig { + const widgetPackageJson = readWidgetPackageJson(); + const primaryRuntimeFormat = inferPrimaryRuntimeFormat(widgetPackageJson.packagePath); + + return { + widgetName: options.widgetName, + widgetVersion: widgetPackageJson.version, + mpkName: widgetPackageJson.mxpackage?.mpkName ?? `${options.widgetName}.mpk`, + runtimeEntry: `src/${options.widgetName}.tsx`, + runtimeOutDir: inferRuntimeOutDir(options.widgetName, widgetPackageJson.packagePath), + runtimeOutputs: [ + { + format: primaryRuntimeFormat, + entryFileName: `${options.widgetName}.js` + }, + { + format: "es", + entryFileName: `${options.widgetName}.mjs` + } + ], + runtimeExternals: ["react", "react-dom", "@mendix/widget-plugin-component-kit", "big.js", /^mendix($|\/)/], + metadataFiles: inferMetadataFiles(options.widgetName), + editorBuilds: inferEditorBuilds(options.widgetName), + requiredArtifacts: inferRequiredArtifacts(options.widgetName, widgetPackageJson.packagePath), + removeBeforeCopy: inferRemoveBeforeCopy(widgetPackageJson.name), + define: { + "process.env.NODE_ENV": JSON.stringify("production") + } + }; +} + +async function createMPK(options: ResolvedConfig): Promise { const distPath = resolve(process.cwd(), "dist"); const tmpWidgetsPath = join(distPath, "tmp", "widgets"); const stagingDir = join(distPath, "widgets"); @@ -132,23 +242,25 @@ async function createMPK(options: WidgetViteConfigOptions): Promise { } export default function createWidgetViteConfig(options: WidgetViteConfigOptions): UserConfig { + const resolvedConfig = resolveConfig(options); + return defineConfig({ - define: options.define, + define: resolvedConfig.define, build: { target: "es2019", minify: "esbuild", lib: { - entry: options.runtimeEntry, - name: options.runtimeName ?? options.widgetName + entry: resolvedConfig.runtimeEntry, + name: resolvedConfig.widgetName }, - outDir: options.runtimeOutDir, + outDir: resolvedConfig.runtimeOutDir, rollupOptions: { - output: options.runtimeOutputs.map(runtimeOutput => ({ + output: resolvedConfig.runtimeOutputs.map(runtimeOutput => ({ format: runtimeOutput.format, entryFileNames: runtimeOutput.entryFileName, inlineDynamicImports: true })), - external: options.runtimeExternals + external: resolvedConfig.runtimeExternals } }, plugins: [ @@ -157,13 +269,13 @@ export default function createWidgetViteConfig(options: WidgetViteConfigOptions) apply: "build", enforce: "post", async closeBundle() { - if (options.editorBuilds && options.editorBuilds.length > 0) { + if (resolvedConfig.editorBuilds.length > 0) { console.log("Building editor artifacts..."); - await buildEditorArtifacts(options.editorBuilds); + await buildEditorArtifacts(resolvedConfig.editorBuilds); } console.log("Building MPK..."); - await createMPK(options); + await createMPK(resolvedConfig); } } ] From 3841aa6fccd52a772eb5b94d0511c3de03e73d79 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 16:38:10 +0100 Subject: [PATCH 07/21] chore(rich-text-web): update build scripts for Vite integration and remove unused Rollup plugins --- .../rich-text-web/package.json | 10 ++-- .../rich-text-web/rollup.config.mjs | 27 +++++---- .../rich-text-web/vite.config.js | 3 + pnpm-lock.yaml | 60 +------------------ 4 files changed, 27 insertions(+), 73 deletions(-) create mode 100644 packages/pluggableWidgets/rich-text-web/vite.config.js diff --git a/packages/pluggableWidgets/rich-text-web/package.json b/packages/pluggableWidgets/rich-text-web/package.json index b0c4db84a7..932ec4a03e 100644 --- a/packages/pluggableWidgets/rich-text-web/package.json +++ b/packages/pluggableWidgets/rich-text-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=RichText.mpk pluggable-widgets-tools start:web", @@ -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", @@ -83,6 +83,6 @@ "postcss-import": "^16.1.1", "postcss-url": "^10.1.3", "rollup-plugin-postcss": "^4.0.2", - "rollup-preserve-directives": "^1.1.3" + "vite": "^7.3.1" } } 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/rich-text-web/vite.config.js b/packages/pluggableWidgets/rich-text-web/vite.config.js new file mode 100644 index 0000000000..b64ee75dcc --- /dev/null +++ b/packages/pluggableWidgets/rich-text-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "RichText" }); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9005973e4f..0bd9083240 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2216,18 +2216,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@4.59.0) - '@rollup/plugin-image': - specifier: ^3.0.3 - version: 3.0.3(rollup@4.59.0) - '@rollup/plugin-json': - specifier: ^6.1.0 - version: 6.1.0(rollup@4.59.0) - '@rollup/plugin-replace': - specifier: ^6.0.2 - version: 6.0.2(rollup@4.59.0) '@types/js-beautify': specifier: ^1.14.3 version: 1.14.3 @@ -2252,9 +2240,9 @@ 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@4.59.0) + 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/pluggableWidgets/selection-helper-web: dependencies: @@ -10110,11 +10098,6 @@ 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'} @@ -13567,10 +13550,6 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-alias@5.1.1(rollup@4.59.0)': - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-babel@6.1.0(@babel/core@7.28.4)(@types/babel__core@7.20.5)(rollup@3.29.5)': dependencies: '@babel/core': 7.28.4 @@ -13601,25 +13580,12 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-image@3.0.3(rollup@4.59.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - mini-svg-data-uri: 1.4.4 - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-json@6.1.0(rollup@3.29.5)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@3.29.5) optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-json@6.1.0(rollup@4.59.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-node-resolve@15.3.1(rollup@3.29.5)': dependencies: '@rollup/pluginutils': 5.3.0(rollup@3.29.5) @@ -13647,13 +13613,6 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-replace@6.0.2(rollup@4.59.0)': - dependencies: - '@rollup/pluginutils': 5.3.0(rollup@4.59.0) - magic-string: 0.30.19 - optionalDependencies: - rollup: 4.59.0 - '@rollup/plugin-terser@0.4.4(rollup@3.29.5)': dependencies: serialize-javascript: 6.0.2 @@ -13687,14 +13646,6 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/pluginutils@5.3.0(rollup@4.59.0)': - dependencies: - '@types/estree': 1.0.8 - estree-walker: 2.0.2 - picomatch: 4.0.3 - optionalDependencies: - rollup: 4.59.0 - '@rollup/rollup-android-arm-eabi@4.59.0': optional: true @@ -20121,11 +20072,6 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup-preserve-directives@1.1.3(rollup@4.59.0): - dependencies: - magic-string: 0.30.19 - rollup: 4.59.0 - rollup@3.29.5: optionalDependencies: fsevents: 2.3.3 From e17b2213f4d9c5c10ca2fb1ac1c786e86521c20b Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Tue, 3 Mar 2026 16:55:29 +0100 Subject: [PATCH 08/21] chore(benchmark): enhance MPK size tracking and performance reporting in benchmark script --- packages/shared/vite-web-widgets/benchmark.js | 82 ++++++++++++++++++- 1 file changed, 80 insertions(+), 2 deletions(-) diff --git a/packages/shared/vite-web-widgets/benchmark.js b/packages/shared/vite-web-widgets/benchmark.js index 2186e98a08..77655e75c7 100644 --- a/packages/shared/vite-web-widgets/benchmark.js +++ b/packages/shared/vite-web-widgets/benchmark.js @@ -21,6 +21,59 @@ function getFolderSize(folder) { 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 (newTimeMs <= 0) { + return "n/a"; + } + const ratio = oldTimeMs / newTimeMs; + const pctLessTime = oldTimeMs <= 0 ? null : ((oldTimeMs - newTimeMs) / oldTimeMs) * 100; + const ratioText = `${ratio.toFixed(2)}x faster`; + const pctText = pctLessTime === null ? "n/a" : `${pctLessTime.toFixed(2)}% less time`; + return `${ratioText} (${pctText})`; +} + +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 }); @@ -87,6 +140,7 @@ function main() { console.log("=> running legacy rollup build"); 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"); @@ -95,11 +149,35 @@ function main() { console.log("=> running vite build"); 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 build: ${t1.toFixed(1)}ms, size ${human(size1)}`); - console.log(`vite build : ${t2.toFixed(1)}ms, size ${human(size2)}`); + 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}`); } From a915145074da0d8ebfacedcfb6081c43282b42fa Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 08:17:26 +0100 Subject: [PATCH 09/21] chore(benchmark): add cleanBuildOutput function to manage build output directory --- packages/shared/vite-web-widgets/benchmark.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/shared/vite-web-widgets/benchmark.js b/packages/shared/vite-web-widgets/benchmark.js index 77655e75c7..591ce79c12 100644 --- a/packages/shared/vite-web-widgets/benchmark.js +++ b/packages/shared/vite-web-widgets/benchmark.js @@ -121,6 +121,11 @@ function patchViteRollup() { } } +function cleanBuildOutput(outDir) { + rmSync(outDir, { recursive: true, force: true }); + mkdirSync(outDir, { recursive: true }); +} + function main() { const pkg = process.argv[2]; if (!pkg) { @@ -138,6 +143,7 @@ function main() { 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); @@ -147,6 +153,7 @@ function main() { 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); From c0b4ecb8ddad0c800900fb4b73b390d207955c8b Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 08:18:13 +0100 Subject: [PATCH 10/21] refactor(build): simplify inferPrimaryRuntimeFormat function by removing packagePath parameter --- packages/shared/vite-web-widgets/vite.config.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/shared/vite-web-widgets/vite.config.ts b/packages/shared/vite-web-widgets/vite.config.ts index 36158800ad..e57b5c3db9 100644 --- a/packages/shared/vite-web-widgets/vite.config.ts +++ b/packages/shared/vite-web-widgets/vite.config.ts @@ -80,12 +80,12 @@ function toPackagePathDir(packagePath: string): string { return packagePath.replace(/\./g, "/"); } -function inferPrimaryRuntimeFormat(packagePath: string): "cjs" | "amd" { +function inferPrimaryRuntimeFormat(): "cjs" | "amd" { if (process.env.VITE_RUNTIME_FORMAT === "cjs") { return "cjs"; } - return packagePath.endsWith(".web") ? "amd" : "cjs"; + return "amd"; } function inferMetadataFiles(widgetName: string): FileCopy[] { @@ -154,7 +154,7 @@ type ResolvedConfig = { function resolveConfig(options: WidgetViteConfigOptions): ResolvedConfig { const widgetPackageJson = readWidgetPackageJson(); - const primaryRuntimeFormat = inferPrimaryRuntimeFormat(widgetPackageJson.packagePath); + const primaryRuntimeFormat = inferPrimaryRuntimeFormat(); return { widgetName: options.widgetName, From 96f6fa0f818796fe3f2a29868be1f3dbcb98461e Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 09:35:25 +0100 Subject: [PATCH 11/21] chore(vite): update shared vite.config.ts for improved alias resolution and runtime handling --- packages/shared/vite-web-widgets/package.json | 3 + .../shared/vite-web-widgets/vite.config.ts | 78 +++++++++++++++---- 2 files changed, 64 insertions(+), 17 deletions(-) diff --git a/packages/shared/vite-web-widgets/package.json b/packages/shared/vite-web-widgets/package.json index 941c8e58eb..cdb704dae0 100644 --- a/packages/shared/vite-web-widgets/package.json +++ b/packages/shared/vite-web-widgets/package.json @@ -7,6 +7,9 @@ "exports": { "./vite.config": "./vite.config.ts" }, + "dependencies": { + "archiver": "^7.0.1" + }, "devDependencies": { "vite": "^7.3.1" } diff --git a/packages/shared/vite-web-widgets/vite.config.ts b/packages/shared/vite-web-widgets/vite.config.ts index e57b5c3db9..13a0cef8dc 100644 --- a/packages/shared/vite-web-widgets/vite.config.ts +++ b/packages/shared/vite-web-widgets/vite.config.ts @@ -32,8 +32,22 @@ type WidgetPackageJson = { type WidgetViteConfigOptions = { widgetName: string; + runtimeDirectoryName?: string; }; +function getResolveAlias(): { find: RegExp; replacement: string }[] { + return [ + { + find: /^~(.+)/, + replacement: "$1" + }, + { + find: /^src\//, + replacement: `${resolve(process.cwd(), "src")}/` + } + ]; +} + async function copyDir(src: string, dest: string): Promise { mkdirSync(dest, { recursive: true }); if (existsSync(src)) { @@ -43,10 +57,14 @@ async function copyDir(src: string, dest: string): Promise { async function buildEditorArtifacts(editorBuilds: EditorBuild[]): Promise { const editorOutDir = "dist/tmp/widgets"; + const alias = getResolveAlias(); for (const editorBuild of editorBuilds) { await viteBuild({ configFile: false, + resolve: { + alias + }, build: { target: "es2019", minify: "esbuild", @@ -100,36 +118,51 @@ function inferMetadataFiles(widgetName: string): FileCopy[] { ]; } -function inferRequiredArtifacts(widgetName: string, packagePath: string): string[] { +function inferRequiredArtifacts( + widgetName: string, + packagePath: string, + runtimeDirectoryName: string, + editorBuilds: EditorBuild[] +): string[] { const packagePathDir = toPackagePathDir(packagePath); - const widgetDir = widgetName.toLowerCase(); + const widgetDir = runtimeDirectoryName; + + const editorArtifacts = editorBuilds.map(editorBuild => editorBuild.outputFile); return [ - `${widgetName}.editorConfig.js`, - `${widgetName}.editorPreview.js`, + ...editorArtifacts, `${packagePathDir}/${widgetDir}/${widgetName}.js`, `${packagePathDir}/${widgetDir}/${widgetName}.mjs` ]; } -function inferRuntimeOutDir(widgetName: string, packagePath: string): string { +function inferRuntimeOutDir(packagePath: string, runtimeDirectoryName: string): string { const packagePathDir = toPackagePathDir(packagePath); - return `dist/tmp/widgets/${packagePathDir}/${widgetName.toLowerCase()}`; + return `dist/tmp/widgets/${packagePathDir}/${runtimeDirectoryName}`; } function inferEditorBuilds(widgetName: string): EditorBuild[] { - return [ - { - entry: `src/${widgetName}.editorPreview.tsx`, + 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$/] - }, - { - entry: `src/${widgetName}.editorConfig.ts`, + }); + } + + const editorConfigEntry = `src/${widgetName}.editorConfig.ts`; + if (existsSync(editorConfigEntry)) { + editorBuilds.push({ + entry: editorConfigEntry, outputFile: `${widgetName}.editorConfig.js`, externals: [/^mendix($|\/)/, /^react$/, /^react-dom$/] - } - ]; + }); + } + + return editorBuilds; } function inferRemoveBeforeCopy(packageName: string): string[] { @@ -155,13 +188,15 @@ type ResolvedConfig = { function resolveConfig(options: WidgetViteConfigOptions): ResolvedConfig { const widgetPackageJson = readWidgetPackageJson(); const primaryRuntimeFormat = inferPrimaryRuntimeFormat(); + const editorBuilds = inferEditorBuilds(options.widgetName); + const runtimeDirectoryName = options.runtimeDirectoryName ?? options.widgetName.toLowerCase(); return { widgetName: options.widgetName, widgetVersion: widgetPackageJson.version, mpkName: widgetPackageJson.mxpackage?.mpkName ?? `${options.widgetName}.mpk`, runtimeEntry: `src/${options.widgetName}.tsx`, - runtimeOutDir: inferRuntimeOutDir(options.widgetName, widgetPackageJson.packagePath), + runtimeOutDir: inferRuntimeOutDir(widgetPackageJson.packagePath, runtimeDirectoryName), runtimeOutputs: [ { format: primaryRuntimeFormat, @@ -174,8 +209,13 @@ function resolveConfig(options: WidgetViteConfigOptions): ResolvedConfig { ], runtimeExternals: ["react", "react-dom", "@mendix/widget-plugin-component-kit", "big.js", /^mendix($|\/)/], metadataFiles: inferMetadataFiles(options.widgetName), - editorBuilds: inferEditorBuilds(options.widgetName), - requiredArtifacts: inferRequiredArtifacts(options.widgetName, widgetPackageJson.packagePath), + editorBuilds, + requiredArtifacts: inferRequiredArtifacts( + options.widgetName, + widgetPackageJson.packagePath, + runtimeDirectoryName, + editorBuilds + ), removeBeforeCopy: inferRemoveBeforeCopy(widgetPackageJson.name), define: { "process.env.NODE_ENV": JSON.stringify("production") @@ -243,9 +283,13 @@ async function createMPK(options: ResolvedConfig): Promise { export default function createWidgetViteConfig(options: WidgetViteConfigOptions): UserConfig { const resolvedConfig = resolveConfig(options); + const alias = getResolveAlias(); return defineConfig({ define: resolvedConfig.define, + resolve: { + alias + }, build: { target: "es2019", minify: "esbuild", From 71e6f98689021d7ee8a738c4e4d89b7727f00dbe Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 09:44:47 +0100 Subject: [PATCH 12/21] chore: add Vite configuration and build scripts for multiple widgets - Created Vite configuration files for the following widgets - Events, Fieldset, Gallery, Google Tag, HTML Element, Image, Language Selector, Maps - Markdown, Popup Menu, Progress Bar, Progress Circle, Range Slider, Rating - Selection Helper, Skip Link, Slider, Switch, Timeline, Tooltip, Tree Node, and Video Player - Updated package.json files to include new build scripts for Vite and benchmark scripts - Added Vite as a dependency in the package.json files of the affected widgets. - Adjusted SCSS imports in Range Slider to use relative paths. --- .../pluggableWidgets/accessibility-helper-web/package.json | 7 ++++++- .../accessibility-helper-web/vite.config.js | 3 +++ packages/pluggableWidgets/accordion-web/package.json | 7 ++++++- packages/pluggableWidgets/accordion-web/vite.config.js | 3 +++ packages/pluggableWidgets/badge-button-web/package.json | 7 ++++++- packages/pluggableWidgets/badge-button-web/vite.config.js | 3 +++ .../pluggableWidgets/barcode-generator-web/package.json | 7 ++++++- .../pluggableWidgets/barcode-generator-web/vite.config.js | 3 +++ packages/pluggableWidgets/carousel-web/package.json | 7 ++++++- packages/pluggableWidgets/carousel-web/vite.config.js | 3 +++ .../checkbox-radio-selection-web/package.json | 7 ++++++- .../checkbox-radio-selection-web/vite.config.js | 3 +++ packages/pluggableWidgets/combobox-web/package.json | 7 ++++++- packages/pluggableWidgets/combobox-web/vite.config.js | 3 +++ .../pluggableWidgets/datagrid-date-filter-web/package.json | 7 ++++++- .../datagrid-date-filter-web/vite.config.js | 3 +++ .../datagrid-dropdown-filter-web/package.json | 7 ++++++- .../datagrid-dropdown-filter-web/vite.config.js | 3 +++ .../datagrid-number-filter-web/package.json | 7 ++++++- .../datagrid-number-filter-web/vite.config.js | 3 +++ .../pluggableWidgets/datagrid-text-filter-web/package.json | 7 ++++++- .../datagrid-text-filter-web/vite.config.js | 3 +++ packages/pluggableWidgets/dropdown-sort-web/package.json | 7 ++++++- packages/pluggableWidgets/dropdown-sort-web/vite.config.js | 3 +++ packages/pluggableWidgets/events-web/package.json | 7 ++++++- packages/pluggableWidgets/events-web/vite.config.js | 3 +++ packages/pluggableWidgets/fieldset-web/package.json | 7 ++++++- packages/pluggableWidgets/fieldset-web/vite.config.js | 3 +++ packages/pluggableWidgets/gallery-web/package.json | 7 ++++++- packages/pluggableWidgets/gallery-web/vite.config.js | 3 +++ packages/pluggableWidgets/google-tag-web/package.json | 7 ++++++- packages/pluggableWidgets/google-tag-web/vite.config.js | 3 +++ packages/pluggableWidgets/html-element-web/package.json | 7 ++++++- packages/pluggableWidgets/html-element-web/vite.config.js | 3 +++ packages/pluggableWidgets/image-web/package.json | 7 ++++++- packages/pluggableWidgets/image-web/vite.config.js | 3 +++ .../pluggableWidgets/language-selector-web/package.json | 7 ++++++- .../pluggableWidgets/language-selector-web/vite.config.js | 3 +++ packages/pluggableWidgets/maps-web/package.json | 7 ++++++- packages/pluggableWidgets/maps-web/vite.config.js | 3 +++ packages/pluggableWidgets/markdown-web/package.json | 7 ++++++- packages/pluggableWidgets/markdown-web/vite.config.js | 3 +++ packages/pluggableWidgets/popup-menu-web/package.json | 7 ++++++- packages/pluggableWidgets/popup-menu-web/vite.config.js | 3 +++ packages/pluggableWidgets/progress-bar-web/package.json | 7 ++++++- packages/pluggableWidgets/progress-bar-web/vite.config.js | 3 +++ packages/pluggableWidgets/progress-circle-web/package.json | 7 ++++++- .../pluggableWidgets/progress-circle-web/vite.config.js | 3 +++ packages/pluggableWidgets/range-slider-web/package.json | 7 ++++++- .../range-slider-web/src/ui/RangeSlider.scss | 4 ++-- packages/pluggableWidgets/range-slider-web/vite.config.js | 3 +++ packages/pluggableWidgets/rating-web/package.json | 7 ++++++- packages/pluggableWidgets/rating-web/vite.config.js | 3 +++ .../pluggableWidgets/selection-helper-web/package.json | 7 ++++++- .../pluggableWidgets/selection-helper-web/vite.config.js | 3 +++ packages/pluggableWidgets/skiplink-web/package.json | 7 ++++++- packages/pluggableWidgets/skiplink-web/vite.config.js | 3 +++ packages/pluggableWidgets/slider-web/package.json | 7 ++++++- packages/pluggableWidgets/slider-web/vite.config.js | 3 +++ packages/pluggableWidgets/switch-web/package.json | 7 ++++++- packages/pluggableWidgets/switch-web/vite.config.js | 3 +++ packages/pluggableWidgets/timeline-web/package.json | 7 ++++++- packages/pluggableWidgets/timeline-web/vite.config.js | 3 +++ packages/pluggableWidgets/tooltip-web/package.json | 7 ++++++- packages/pluggableWidgets/tooltip-web/vite.config.js | 3 +++ packages/pluggableWidgets/tree-node-web/package.json | 7 ++++++- packages/pluggableWidgets/tree-node-web/vite.config.js | 3 +++ packages/pluggableWidgets/video-player-web/package.json | 7 ++++++- packages/pluggableWidgets/video-player-web/vite.config.js | 3 +++ 69 files changed, 308 insertions(+), 36 deletions(-) create mode 100644 packages/pluggableWidgets/accessibility-helper-web/vite.config.js create mode 100644 packages/pluggableWidgets/accordion-web/vite.config.js create mode 100644 packages/pluggableWidgets/badge-button-web/vite.config.js create mode 100644 packages/pluggableWidgets/barcode-generator-web/vite.config.js create mode 100644 packages/pluggableWidgets/carousel-web/vite.config.js create mode 100644 packages/pluggableWidgets/checkbox-radio-selection-web/vite.config.js create mode 100644 packages/pluggableWidgets/combobox-web/vite.config.js create mode 100644 packages/pluggableWidgets/datagrid-date-filter-web/vite.config.js create mode 100644 packages/pluggableWidgets/datagrid-dropdown-filter-web/vite.config.js create mode 100644 packages/pluggableWidgets/datagrid-number-filter-web/vite.config.js create mode 100644 packages/pluggableWidgets/datagrid-text-filter-web/vite.config.js create mode 100644 packages/pluggableWidgets/dropdown-sort-web/vite.config.js create mode 100644 packages/pluggableWidgets/events-web/vite.config.js create mode 100644 packages/pluggableWidgets/fieldset-web/vite.config.js create mode 100644 packages/pluggableWidgets/gallery-web/vite.config.js create mode 100644 packages/pluggableWidgets/google-tag-web/vite.config.js create mode 100644 packages/pluggableWidgets/html-element-web/vite.config.js create mode 100644 packages/pluggableWidgets/image-web/vite.config.js create mode 100644 packages/pluggableWidgets/language-selector-web/vite.config.js create mode 100644 packages/pluggableWidgets/maps-web/vite.config.js create mode 100644 packages/pluggableWidgets/markdown-web/vite.config.js create mode 100644 packages/pluggableWidgets/popup-menu-web/vite.config.js create mode 100644 packages/pluggableWidgets/progress-bar-web/vite.config.js create mode 100644 packages/pluggableWidgets/progress-circle-web/vite.config.js create mode 100644 packages/pluggableWidgets/range-slider-web/vite.config.js create mode 100644 packages/pluggableWidgets/rating-web/vite.config.js create mode 100644 packages/pluggableWidgets/selection-helper-web/vite.config.js create mode 100644 packages/pluggableWidgets/skiplink-web/vite.config.js create mode 100644 packages/pluggableWidgets/slider-web/vite.config.js create mode 100644 packages/pluggableWidgets/switch-web/vite.config.js create mode 100644 packages/pluggableWidgets/timeline-web/vite.config.js create mode 100644 packages/pluggableWidgets/tooltip-web/vite.config.js create mode 100644 packages/pluggableWidgets/tree-node-web/vite.config.js create mode 100644 packages/pluggableWidgets/video-player-web/vite.config.js diff --git a/packages/pluggableWidgets/accessibility-helper-web/package.json b/packages/pluggableWidgets/accessibility-helper-web/package.json index 4d0e77aab9..c1b6762c79 100644 --- a/packages/pluggableWidgets/accessibility-helper-web/package.json +++ b/packages/pluggableWidgets/accessibility-helper-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", @@ -49,6 +53,7 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/accessibility-helper-web/vite.config.js b/packages/pluggableWidgets/accessibility-helper-web/vite.config.js new file mode 100644 index 0000000000..be371e283c --- /dev/null +++ b/packages/pluggableWidgets/accessibility-helper-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "AccessibilityHelper" }); diff --git a/packages/pluggableWidgets/accordion-web/package.json b/packages/pluggableWidgets/accordion-web/package.json index 3cfed18613..45c42725e6 100644 --- a/packages/pluggableWidgets/accordion-web/package.json +++ b/packages/pluggableWidgets/accordion-web/package.json @@ -27,7 +27,11 @@ "branchName": "accordion-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accordion-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -52,6 +56,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-component-kit": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/accordion-web/vite.config.js b/packages/pluggableWidgets/accordion-web/vite.config.js new file mode 100644 index 0000000000..b25839f7f2 --- /dev/null +++ b/packages/pluggableWidgets/accordion-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Accordion" }); diff --git a/packages/pluggableWidgets/badge-button-web/package.json b/packages/pluggableWidgets/badge-button-web/package.json index 440981b94d..7900416c84 100644 --- a/packages/pluggableWidgets/badge-button-web/package.json +++ b/packages/pluggableWidgets/badge-button-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools start:ts", @@ -52,6 +56,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/badge-button-web/vite.config.js b/packages/pluggableWidgets/badge-button-web/vite.config.js new file mode 100644 index 0000000000..f9d4e6ecaf --- /dev/null +++ b/packages/pluggableWidgets/badge-button-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "BadgeButton" }); diff --git a/packages/pluggableWidgets/barcode-generator-web/package.json b/packages/pluggableWidgets/barcode-generator-web/package.json index f11aecb8cb..86daf5e856 100644 --- a/packages/pluggableWidgets/barcode-generator-web/package.json +++ b/packages/pluggableWidgets/barcode-generator-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -56,6 +60,7 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/barcode-generator-web/vite.config.js b/packages/pluggableWidgets/barcode-generator-web/vite.config.js new file mode 100644 index 0000000000..04c4bfc7ad --- /dev/null +++ b/packages/pluggableWidgets/barcode-generator-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "BarcodeGenerator" }); diff --git a/packages/pluggableWidgets/carousel-web/package.json b/packages/pluggableWidgets/carousel-web/package.json index 6a6e1b62aa..0a978c02ba 100644 --- a/packages/pluggableWidgets/carousel-web/package.json +++ b/packages/pluggableWidgets/carousel-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools start:web", @@ -53,6 +57,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/carousel-web/vite.config.js b/packages/pluggableWidgets/carousel-web/vite.config.js new file mode 100644 index 0000000000..1522411d53 --- /dev/null +++ b/packages/pluggableWidgets/carousel-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Carousel" }); diff --git a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json index d958726d8e..1ca55148fc 100644 --- a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json +++ b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json @@ -30,8 +30,12 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -61,6 +65,7 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/checkbox-radio-selection-web/vite.config.js b/packages/pluggableWidgets/checkbox-radio-selection-web/vite.config.js new file mode 100644 index 0000000000..4f263cb64b --- /dev/null +++ b/packages/pluggableWidgets/checkbox-radio-selection-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "CheckboxRadioSelection" }); diff --git a/packages/pluggableWidgets/combobox-web/package.json b/packages/pluggableWidgets/combobox-web/package.json index 5deefe0919..0f686c9cf4 100644 --- a/packages/pluggableWidgets/combobox-web/package.json +++ b/packages/pluggableWidgets/combobox-web/package.json @@ -30,8 +30,12 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -63,6 +67,7 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/combobox-web/vite.config.js b/packages/pluggableWidgets/combobox-web/vite.config.js new file mode 100644 index 0000000000..c6505073e1 --- /dev/null +++ b/packages/pluggableWidgets/combobox-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Combobox" }); diff --git a/packages/pluggableWidgets/datagrid-date-filter-web/package.json b/packages/pluggableWidgets/datagrid-date-filter-web/package.json index ae25ea3d25..d18756f703 100644 --- a/packages/pluggableWidgets/datagrid-date-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-date-filter-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -57,6 +61,7 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "@types/react-datepicker": "^6.2.0" + "@types/react-datepicker": "^6.2.0", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/datagrid-date-filter-web/vite.config.js b/packages/pluggableWidgets/datagrid-date-filter-web/vite.config.js new file mode 100644 index 0000000000..5c218b36c4 --- /dev/null +++ b/packages/pluggableWidgets/datagrid-date-filter-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "DatagridDateFilter" }); diff --git a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json index 69a51928ea..97bf596771 100644 --- a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -55,6 +59,7 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*" + "@mendix/widget-plugin-test-utils": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/datagrid-dropdown-filter-web/vite.config.js b/packages/pluggableWidgets/datagrid-dropdown-filter-web/vite.config.js new file mode 100644 index 0000000000..f21cf7e072 --- /dev/null +++ b/packages/pluggableWidgets/datagrid-dropdown-filter-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "DatagridDropdownFilter" }); diff --git a/packages/pluggableWidgets/datagrid-number-filter-web/package.json b/packages/pluggableWidgets/datagrid-number-filter-web/package.json index 02513af4dd..59b59b8a63 100644 --- a/packages/pluggableWidgets/datagrid-number-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-number-filter-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -54,6 +58,7 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*" + "@mendix/widget-plugin-test-utils": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/datagrid-number-filter-web/vite.config.js b/packages/pluggableWidgets/datagrid-number-filter-web/vite.config.js new file mode 100644 index 0000000000..ec6e647976 --- /dev/null +++ b/packages/pluggableWidgets/datagrid-number-filter-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "DatagridNumberFilter" }); diff --git a/packages/pluggableWidgets/datagrid-text-filter-web/package.json b/packages/pluggableWidgets/datagrid-text-filter-web/package.json index 7eb847f677..ee7f4b672e 100644 --- a/packages/pluggableWidgets/datagrid-text-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-text-filter-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -57,6 +61,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:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/datagrid-text-filter-web/vite.config.js b/packages/pluggableWidgets/datagrid-text-filter-web/vite.config.js new file mode 100644 index 0000000000..a185e48994 --- /dev/null +++ b/packages/pluggableWidgets/datagrid-text-filter-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "DatagridTextFilter" }); diff --git a/packages/pluggableWidgets/dropdown-sort-web/package.json b/packages/pluggableWidgets/dropdown-sort-web/package.json index e9539c8147..50ae4143cf 100644 --- a/packages/pluggableWidgets/dropdown-sort-web/package.json +++ b/packages/pluggableWidgets/dropdown-sort-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -56,6 +60,7 @@ "@mendix/widget-plugin-test-utils": "workspace:*", "@types/enzyme": "^3.10.13", "classnames": "^2.5.1", - "jest": "^29.7.0" + "jest": "^29.7.0", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/dropdown-sort-web/vite.config.js b/packages/pluggableWidgets/dropdown-sort-web/vite.config.js new file mode 100644 index 0000000000..ea8f3cbfec --- /dev/null +++ b/packages/pluggableWidgets/dropdown-sort-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "DropdownSort" }); diff --git a/packages/pluggableWidgets/events-web/package.json b/packages/pluggableWidgets/events-web/package.json index 6d6a1245d7..d56abef22d 100644 --- a/packages/pluggableWidgets/events-web/package.json +++ b/packages/pluggableWidgets/events-web/package.json @@ -30,7 +30,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -58,6 +62,7 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/events-web/vite.config.js b/packages/pluggableWidgets/events-web/vite.config.js new file mode 100644 index 0000000000..d0c09f4d82 --- /dev/null +++ b/packages/pluggableWidgets/events-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Events" }); diff --git a/packages/pluggableWidgets/fieldset-web/package.json b/packages/pluggableWidgets/fieldset-web/package.json index 0abd9b6de1..922b609361 100644 --- a/packages/pluggableWidgets/fieldset-web/package.json +++ b/packages/pluggableWidgets/fieldset-web/package.json @@ -26,7 +26,11 @@ "branchName": "fieldset-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/fieldset-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -51,6 +55,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/fieldset-web/vite.config.js b/packages/pluggableWidgets/fieldset-web/vite.config.js new file mode 100644 index 0000000000..025edff1ad --- /dev/null +++ b/packages/pluggableWidgets/fieldset-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Fieldset" }); diff --git a/packages/pluggableWidgets/gallery-web/package.json b/packages/pluggableWidgets/gallery-web/package.json index c9ab5b5582..cb49531bad 100644 --- a/packages/pluggableWidgets/gallery-web/package.json +++ b/packages/pluggableWidgets/gallery-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", @@ -61,6 +65,7 @@ "@mendix/widget-plugin-grid": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/gallery-web/vite.config.js b/packages/pluggableWidgets/gallery-web/vite.config.js new file mode 100644 index 0000000000..fc277cbfde --- /dev/null +++ b/packages/pluggableWidgets/gallery-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Gallery" }); diff --git a/packages/pluggableWidgets/google-tag-web/package.json b/packages/pluggableWidgets/google-tag-web/package.json index d878b50ba0..895600a37f 100644 --- a/packages/pluggableWidgets/google-tag-web/package.json +++ b/packages/pluggableWidgets/google-tag-web/package.json @@ -30,7 +30,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "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", @@ -50,6 +54,7 @@ "@mendix/automation-utils": "workspace:*", "@mendix/eslint-config-web-widgets": "workspace:*", "@mendix/pluggable-widgets-tools": "*", - "@mendix/prettier-config-web-widgets": "workspace:*" + "@mendix/prettier-config-web-widgets": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/google-tag-web/vite.config.js b/packages/pluggableWidgets/google-tag-web/vite.config.js new file mode 100644 index 0000000000..fa296f8eb8 --- /dev/null +++ b/packages/pluggableWidgets/google-tag-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "TXhHdGFn" }); diff --git a/packages/pluggableWidgets/html-element-web/package.json b/packages/pluggableWidgets/html-element-web/package.json index b982538084..f5a1abe288 100644 --- a/packages/pluggableWidgets/html-element-web/package.json +++ b/packages/pluggableWidgets/html-element-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -49,6 +53,7 @@ "@mendix/eslint-config-web-widgets": "workspace:*", "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/html-element-web/vite.config.js b/packages/pluggableWidgets/html-element-web/vite.config.js new file mode 100644 index 0000000000..681aa378de --- /dev/null +++ b/packages/pluggableWidgets/html-element-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "HTMLElement" }); diff --git a/packages/pluggableWidgets/image-web/package.json b/packages/pluggableWidgets/image-web/package.json index 9698c9c721..e87a50760f 100644 --- a/packages/pluggableWidgets/image-web/package.json +++ b/packages/pluggableWidgets/image-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -54,6 +58,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/rollup-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/image-web/vite.config.js b/packages/pluggableWidgets/image-web/vite.config.js new file mode 100644 index 0000000000..edb38a2da9 --- /dev/null +++ b/packages/pluggableWidgets/image-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Image" }); diff --git a/packages/pluggableWidgets/language-selector-web/package.json b/packages/pluggableWidgets/language-selector-web/package.json index f1ff4f954b..37bae3296c 100644 --- a/packages/pluggableWidgets/language-selector-web/package.json +++ b/packages/pluggableWidgets/language-selector-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -52,6 +56,7 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/language-selector-web/vite.config.js b/packages/pluggableWidgets/language-selector-web/vite.config.js new file mode 100644 index 0000000000..0c8cdc13a2 --- /dev/null +++ b/packages/pluggableWidgets/language-selector-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "LanguageSelector" }); diff --git a/packages/pluggableWidgets/maps-web/package.json b/packages/pluggableWidgets/maps-web/package.json index ad4b1ca6fd..b1d6192254 100644 --- a/packages/pluggableWidgets/maps-web/package.json +++ b/packages/pluggableWidgets/maps-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Maps.mpk pluggable-widgets-tools start:web", @@ -62,6 +66,7 @@ "@types/deep-equal": "^1.0.1", "@types/leaflet": "^1.9.3", "@types/react-leaflet": "^2.8.3", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/maps-web/vite.config.js b/packages/pluggableWidgets/maps-web/vite.config.js new file mode 100644 index 0000000000..77e8259bce --- /dev/null +++ b/packages/pluggableWidgets/maps-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Maps", runtimeDirectoryName: "Maps" }); diff --git a/packages/pluggableWidgets/markdown-web/package.json b/packages/pluggableWidgets/markdown-web/package.json index 69cedc7e1f..5819da2f6e 100644 --- a/packages/pluggableWidgets/markdown-web/package.json +++ b/packages/pluggableWidgets/markdown-web/package.json @@ -28,7 +28,11 @@ "branchName": "markdown-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/markdown-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -58,6 +62,7 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "@types/markdown-it": "^14.1.1" + "@types/markdown-it": "^14.1.1", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/markdown-web/vite.config.js b/packages/pluggableWidgets/markdown-web/vite.config.js new file mode 100644 index 0000000000..6859451b67 --- /dev/null +++ b/packages/pluggableWidgets/markdown-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Markdown" }); diff --git a/packages/pluggableWidgets/popup-menu-web/package.json b/packages/pluggableWidgets/popup-menu-web/package.json index ece020e720..59a1e0d7a3 100644 --- a/packages/pluggableWidgets/popup-menu-web/package.json +++ b/packages/pluggableWidgets/popup-menu-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -54,6 +58,7 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "classnames": "^2.5.1" + "classnames": "^2.5.1", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/popup-menu-web/vite.config.js b/packages/pluggableWidgets/popup-menu-web/vite.config.js new file mode 100644 index 0000000000..738cb380e3 --- /dev/null +++ b/packages/pluggableWidgets/popup-menu-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "PopupMenu" }); diff --git a/packages/pluggableWidgets/progress-bar-web/package.json b/packages/pluggableWidgets/progress-bar-web/package.json index 7f4b99d18c..0ff21d1d7d 100644 --- a/packages/pluggableWidgets/progress-bar-web/package.json +++ b/packages/pluggableWidgets/progress-bar-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ProgressBar.mpk pluggable-widgets-tools start:web", @@ -53,6 +57,7 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/progress-bar-web/vite.config.js b/packages/pluggableWidgets/progress-bar-web/vite.config.js new file mode 100644 index 0000000000..f4dfa5a035 --- /dev/null +++ b/packages/pluggableWidgets/progress-bar-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "ProgressBar" }); diff --git a/packages/pluggableWidgets/progress-circle-web/package.json b/packages/pluggableWidgets/progress-circle-web/package.json index 9e18c4aa02..1850c1b0a2 100644 --- a/packages/pluggableWidgets/progress-circle-web/package.json +++ b/packages/pluggableWidgets/progress-circle-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ProgressCircle.mpk pluggable-widgets-tools start:web", @@ -54,6 +58,7 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/progress-circle-web/vite.config.js b/packages/pluggableWidgets/progress-circle-web/vite.config.js new file mode 100644 index 0000000000..f8b1c5657a --- /dev/null +++ b/packages/pluggableWidgets/progress-circle-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "ProgressCircle" }); diff --git a/packages/pluggableWidgets/range-slider-web/package.json b/packages/pluggableWidgets/range-slider-web/package.json index 67e1760445..a67a20e887 100644 --- a/packages/pluggableWidgets/range-slider-web/package.json +++ b/packages/pluggableWidgets/range-slider-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=RangeSlider.mpk pluggable-widgets-tools start:web", @@ -58,6 +62,7 @@ "@mendix/widget-plugin-platform": "workspace:*", "@types/rc-slider": "^8.6.6", "@types/rc-tooltip": "^3.7.7", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } 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/range-slider-web/vite.config.js b/packages/pluggableWidgets/range-slider-web/vite.config.js new file mode 100644 index 0000000000..39808f91fd --- /dev/null +++ b/packages/pluggableWidgets/range-slider-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "RangeSlider", runtimeDirectoryName: "RangeSlider" }); diff --git a/packages/pluggableWidgets/rating-web/package.json b/packages/pluggableWidgets/rating-web/package.json index c78a98bc76..dd720c16f0 100644 --- a/packages/pluggableWidgets/rating-web/package.json +++ b/packages/pluggableWidgets/rating-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=StarRating.mpk pluggable-widgets-tools start:web", @@ -54,6 +58,7 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/rating-web/vite.config.js b/packages/pluggableWidgets/rating-web/vite.config.js new file mode 100644 index 0000000000..3abf1509dd --- /dev/null +++ b/packages/pluggableWidgets/rating-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "StarRating" }); diff --git a/packages/pluggableWidgets/selection-helper-web/package.json b/packages/pluggableWidgets/selection-helper-web/package.json index 915dbb2404..1fdbca3419 100644 --- a/packages/pluggableWidgets/selection-helper-web/package.json +++ b/packages/pluggableWidgets/selection-helper-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", @@ -47,6 +51,7 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-grid": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/selection-helper-web/vite.config.js b/packages/pluggableWidgets/selection-helper-web/vite.config.js new file mode 100644 index 0000000000..2cd0935544 --- /dev/null +++ b/packages/pluggableWidgets/selection-helper-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "SelectionHelper" }); diff --git a/packages/pluggableWidgets/skiplink-web/package.json b/packages/pluggableWidgets/skiplink-web/package.json index 934124d975..15c4a1f856 100644 --- a/packages/pluggableWidgets/skiplink-web/package.json +++ b/packages/pluggableWidgets/skiplink-web/package.json @@ -27,7 +27,11 @@ "branchName": "skiplink-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/skiplink-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -55,6 +59,7 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*" + "@mendix/widget-plugin-test-utils": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/skiplink-web/vite.config.js b/packages/pluggableWidgets/skiplink-web/vite.config.js new file mode 100644 index 0000000000..5aafddad0b --- /dev/null +++ b/packages/pluggableWidgets/skiplink-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "SkipLink" }); diff --git a/packages/pluggableWidgets/slider-web/package.json b/packages/pluggableWidgets/slider-web/package.json index b0db0fa04e..d1c14a25d5 100644 --- a/packages/pluggableWidgets/slider-web/package.json +++ b/packages/pluggableWidgets/slider-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Slider.mpk pluggable-widgets-tools start:web", @@ -56,6 +60,7 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/slider-web/vite.config.js b/packages/pluggableWidgets/slider-web/vite.config.js new file mode 100644 index 0000000000..3540a51c0a --- /dev/null +++ b/packages/pluggableWidgets/slider-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Slider" }); diff --git a/packages/pluggableWidgets/switch-web/package.json b/packages/pluggableWidgets/switch-web/package.json index 314ef2d04f..c08c48e704 100644 --- a/packages/pluggableWidgets/switch-web/package.json +++ b/packages/pluggableWidgets/switch-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Switch.mpk pluggable-widgets-tools start:web", @@ -54,6 +58,7 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3" + "cross-env": "^7.0.3", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/switch-web/vite.config.js b/packages/pluggableWidgets/switch-web/vite.config.js new file mode 100644 index 0000000000..e7bbb7a70c --- /dev/null +++ b/packages/pluggableWidgets/switch-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Switch" }); diff --git a/packages/pluggableWidgets/timeline-web/package.json b/packages/pluggableWidgets/timeline-web/package.json index b413671ad3..9a358e0c98 100644 --- a/packages/pluggableWidgets/timeline-web/package.json +++ b/packages/pluggableWidgets/timeline-web/package.json @@ -26,7 +26,11 @@ "branchName": "timeline-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/timeline-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -52,6 +56,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*" + "@mendix/widget-plugin-test-utils": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/timeline-web/vite.config.js b/packages/pluggableWidgets/timeline-web/vite.config.js new file mode 100644 index 0000000000..970e93c071 --- /dev/null +++ b/packages/pluggableWidgets/timeline-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Timeline" }); diff --git a/packages/pluggableWidgets/tooltip-web/package.json b/packages/pluggableWidgets/tooltip-web/package.json index 83e26ba941..9060dbe2a7 100644 --- a/packages/pluggableWidgets/tooltip-web/package.json +++ b/packages/pluggableWidgets/tooltip-web/package.json @@ -27,7 +27,11 @@ "branchName": "tooltip-web" }, "scripts": { + "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/tooltip-web", "build": "pluggable-widgets-tools build:web", + "build:vite": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -54,6 +58,7 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/tooltip-web/vite.config.js b/packages/pluggableWidgets/tooltip-web/vite.config.js new file mode 100644 index 0000000000..52df01dbff --- /dev/null +++ b/packages/pluggableWidgets/tooltip-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Tooltip" }); diff --git a/packages/pluggableWidgets/tree-node-web/package.json b/packages/pluggableWidgets/tree-node-web/package.json index 421fd2e536..955a251b9c 100644 --- a/packages/pluggableWidgets/tree-node-web/package.json +++ b/packages/pluggableWidgets/tree-node-web/package.json @@ -26,7 +26,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", @@ -50,6 +54,7 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/tree-node-web/vite.config.js b/packages/pluggableWidgets/tree-node-web/vite.config.js new file mode 100644 index 0000000000..1cddb29910 --- /dev/null +++ b/packages/pluggableWidgets/tree-node-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "TreeNode" }); diff --git a/packages/pluggableWidgets/video-player-web/package.json b/packages/pluggableWidgets/video-player-web/package.json index 16e6109d27..39e8cc5de3 100644 --- a/packages/pluggableWidgets/video-player-web/package.json +++ b/packages/pluggableWidgets/video-player-web/package.json @@ -27,7 +27,11 @@ "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": "pnpm run build:vite:rollup", + "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", + "build:vite:rollup": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -52,6 +56,7 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*" + "@mendix/widget-plugin-platform": "workspace:*", + "vite": "^7.3.1" } } diff --git a/packages/pluggableWidgets/video-player-web/vite.config.js b/packages/pluggableWidgets/video-player-web/vite.config.js new file mode 100644 index 0000000000..0cf834ce9f --- /dev/null +++ b/packages/pluggableWidgets/video-player-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "VideoPlayer" }); From 9596ddfbbbaf6af12250117dc8504de47859dea7 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 10:27:23 +0100 Subject: [PATCH 13/21] refactor: simplify build scripts in pluggable widgets - Update build scripts in pluggable widgets to remove unnecessary - rollup and rolldown configurations, standardizing to a single command - Removed redundant vite from package.json files across widgets - Ensured consistency in the use of cross-env in build scripts --- package.json | 3 ++- .../pluggableWidgets/accessibility-helper-web/package.json | 7 ++----- packages/pluggableWidgets/accordion-web/package.json | 7 ++----- packages/pluggableWidgets/badge-button-web/package.json | 7 ++----- packages/pluggableWidgets/badge-web/package.json | 7 ++----- .../pluggableWidgets/barcode-generator-web/package.json | 7 ++----- packages/pluggableWidgets/carousel-web/package.json | 7 ++----- .../checkbox-radio-selection-web/package.json | 7 ++----- packages/pluggableWidgets/combobox-web/package.json | 7 ++----- .../pluggableWidgets/datagrid-date-filter-web/package.json | 7 ++----- .../datagrid-dropdown-filter-web/package.json | 7 ++----- .../datagrid-number-filter-web/package.json | 7 ++----- .../pluggableWidgets/datagrid-text-filter-web/package.json | 7 ++----- packages/pluggableWidgets/datagrid-web/package.json | 7 ++----- packages/pluggableWidgets/dropdown-sort-web/package.json | 7 ++----- packages/pluggableWidgets/events-web/package.json | 7 ++----- packages/pluggableWidgets/fieldset-web/package.json | 7 ++----- packages/pluggableWidgets/gallery-web/package.json | 7 ++----- packages/pluggableWidgets/google-tag-web/package.json | 7 ++----- packages/pluggableWidgets/html-element-web/package.json | 7 ++----- packages/pluggableWidgets/image-web/package.json | 7 ++----- .../pluggableWidgets/language-selector-web/package.json | 7 ++----- packages/pluggableWidgets/maps-web/package.json | 7 ++----- packages/pluggableWidgets/markdown-web/package.json | 7 ++----- packages/pluggableWidgets/popup-menu-web/package.json | 7 ++----- packages/pluggableWidgets/progress-bar-web/package.json | 7 ++----- packages/pluggableWidgets/progress-circle-web/package.json | 7 ++----- packages/pluggableWidgets/range-slider-web/package.json | 7 ++----- packages/pluggableWidgets/rating-web/package.json | 7 ++----- packages/pluggableWidgets/rich-text-web/package.json | 7 ++----- .../pluggableWidgets/selection-helper-web/package.json | 7 ++----- packages/pluggableWidgets/skiplink-web/package.json | 7 ++----- packages/pluggableWidgets/slider-web/package.json | 7 ++----- packages/pluggableWidgets/switch-web/package.json | 7 ++----- packages/pluggableWidgets/timeline-web/package.json | 7 ++----- packages/pluggableWidgets/tooltip-web/package.json | 7 ++----- packages/pluggableWidgets/tree-node-web/package.json | 7 ++----- packages/pluggableWidgets/video-player-web/package.json | 7 ++----- 38 files changed, 76 insertions(+), 186 deletions(-) diff --git a/package.json b/package.json index 0ad217524f..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", diff --git a/packages/pluggableWidgets/accessibility-helper-web/package.json b/packages/pluggableWidgets/accessibility-helper-web/package.json index c1b6762c79..8d8eec03a4 100644 --- a/packages/pluggableWidgets/accessibility-helper-web/package.json +++ b/packages/pluggableWidgets/accessibility-helper-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accessibility-helper-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", @@ -53,7 +51,6 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } diff --git a/packages/pluggableWidgets/accordion-web/package.json b/packages/pluggableWidgets/accordion-web/package.json index 45c42725e6..02ec43ea4b 100644 --- a/packages/pluggableWidgets/accordion-web/package.json +++ b/packages/pluggableWidgets/accordion-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accordion-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -56,7 +54,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-component-kit": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } diff --git a/packages/pluggableWidgets/badge-button-web/package.json b/packages/pluggableWidgets/badge-button-web/package.json index 7900416c84..b03e1bc8a0 100644 --- a/packages/pluggableWidgets/badge-button-web/package.json +++ b/packages/pluggableWidgets/badge-button-web/package.json @@ -28,9 +28,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=BadgeButton.mpk pluggable-widgets-tools start:ts", @@ -56,7 +54,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/badge-web/package.json b/packages/pluggableWidgets/badge-web/package.json index 6e45e6b7dc..bf6cfb9153 100644 --- a/packages/pluggableWidgets/badge-web/package.json +++ b/packages/pluggableWidgets/badge-web/package.json @@ -28,9 +28,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Badge.mpk pluggable-widgets-tools start:web", @@ -57,7 +55,6 @@ "@mendix/run-e2e": "workspace:^*", "@mendix/widget-plugin-platform": "workspace:*", "archiver": "^6.0.0", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/barcode-generator-web/package.json b/packages/pluggableWidgets/barcode-generator-web/package.json index 86daf5e856..bc2794f8ec 100644 --- a/packages/pluggableWidgets/barcode-generator-web/package.json +++ b/packages/pluggableWidgets/barcode-generator-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/barcode-generator-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -60,7 +58,6 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/carousel-web/package.json b/packages/pluggableWidgets/carousel-web/package.json index 0a978c02ba..efefb136dc 100644 --- a/packages/pluggableWidgets/carousel-web/package.json +++ b/packages/pluggableWidgets/carousel-web/package.json @@ -28,9 +28,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Carousel.mpk pluggable-widgets-tools start:web", @@ -57,7 +55,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json index 1ca55148fc..4f30e447fb 100644 --- a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json +++ b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json @@ -33,9 +33,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -65,7 +63,6 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/combobox-web/package.json b/packages/pluggableWidgets/combobox-web/package.json index 0f686c9cf4..f599455b31 100644 --- a/packages/pluggableWidgets/combobox-web/package.json +++ b/packages/pluggableWidgets/combobox-web/package.json @@ -33,9 +33,7 @@ "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/combobox-web", "prebuild": "rui-create-translation", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -67,7 +65,6 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/datagrid-date-filter-web/package.json b/packages/pluggableWidgets/datagrid-date-filter-web/package.json index d18756f703..675539e683 100644 --- a/packages/pluggableWidgets/datagrid-date-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-date-filter-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-date-filter-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -61,7 +59,6 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "@types/react-datepicker": "^6.2.0", - "vite": "^7.3.1" + "@types/react-datepicker": "^6.2.0" } } diff --git a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json index 97bf596771..899a3e9d55 100644 --- a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-dropdown-filter-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -59,7 +57,6 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-test-utils": "workspace:*" } } diff --git a/packages/pluggableWidgets/datagrid-number-filter-web/package.json b/packages/pluggableWidgets/datagrid-number-filter-web/package.json index 59b59b8a63..213048c8e5 100644 --- a/packages/pluggableWidgets/datagrid-number-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-number-filter-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-number-filter-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -58,7 +56,6 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-test-utils": "workspace:*" } } diff --git a/packages/pluggableWidgets/datagrid-text-filter-web/package.json b/packages/pluggableWidgets/datagrid-text-filter-web/package.json index ee7f4b672e..32e7947534 100644 --- a/packages/pluggableWidgets/datagrid-text-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-text-filter-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-text-filter-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -61,7 +59,6 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-test-utils": "workspace:*" } } diff --git a/packages/pluggableWidgets/datagrid-web/package.json b/packages/pluggableWidgets/datagrid-web/package.json index 7cb89874c9..a165597ed4 100644 --- a/packages/pluggableWidgets/datagrid-web/package.json +++ b/packages/pluggableWidgets/datagrid-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -68,7 +66,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "archiver": "^6.0.0", - "vite": "^7.3.1" + "archiver": "^6.0.0" } } diff --git a/packages/pluggableWidgets/dropdown-sort-web/package.json b/packages/pluggableWidgets/dropdown-sort-web/package.json index 50ae4143cf..6d519a726e 100644 --- a/packages/pluggableWidgets/dropdown-sort-web/package.json +++ b/packages/pluggableWidgets/dropdown-sort-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/dropdown-sort-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:ts", "e2e": "run-e2e ci", @@ -60,7 +58,6 @@ "@mendix/widget-plugin-test-utils": "workspace:*", "@types/enzyme": "^3.10.13", "classnames": "^2.5.1", - "jest": "^29.7.0", - "vite": "^7.3.1" + "jest": "^29.7.0" } } diff --git a/packages/pluggableWidgets/events-web/package.json b/packages/pluggableWidgets/events-web/package.json index d56abef22d..5bf46de9ab 100644 --- a/packages/pluggableWidgets/events-web/package.json +++ b/packages/pluggableWidgets/events-web/package.json @@ -32,9 +32,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/app-events-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -62,7 +60,6 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/fieldset-web/package.json b/packages/pluggableWidgets/fieldset-web/package.json index 922b609361..2f69288c18 100644 --- a/packages/pluggableWidgets/fieldset-web/package.json +++ b/packages/pluggableWidgets/fieldset-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/fieldset-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -55,7 +53,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/gallery-web/package.json b/packages/pluggableWidgets/gallery-web/package.json index cb49531bad..13542cf861 100644 --- a/packages/pluggableWidgets/gallery-web/package.json +++ b/packages/pluggableWidgets/gallery-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/gallery-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", @@ -65,7 +63,6 @@ "@mendix/widget-plugin-grid": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/google-tag-web/package.json b/packages/pluggableWidgets/google-tag-web/package.json index 895600a37f..e8b2906f5c 100644 --- a/packages/pluggableWidgets/google-tag-web/package.json +++ b/packages/pluggableWidgets/google-tag-web/package.json @@ -32,9 +32,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "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", @@ -54,7 +52,6 @@ "@mendix/automation-utils": "workspace:*", "@mendix/eslint-config-web-widgets": "workspace:*", "@mendix/pluggable-widgets-tools": "*", - "@mendix/prettier-config-web-widgets": "workspace:*", - "vite": "^7.3.1" + "@mendix/prettier-config-web-widgets": "workspace:*" } } diff --git a/packages/pluggableWidgets/html-element-web/package.json b/packages/pluggableWidgets/html-element-web/package.json index f5a1abe288..8e4c867438 100644 --- a/packages/pluggableWidgets/html-element-web/package.json +++ b/packages/pluggableWidgets/html-element-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/html-element-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -53,7 +51,6 @@ "@mendix/eslint-config-web-widgets": "workspace:*", "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } diff --git a/packages/pluggableWidgets/image-web/package.json b/packages/pluggableWidgets/image-web/package.json index e87a50760f..b6ddb5687f 100644 --- a/packages/pluggableWidgets/image-web/package.json +++ b/packages/pluggableWidgets/image-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/image-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -58,7 +56,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/rollup-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } diff --git a/packages/pluggableWidgets/language-selector-web/package.json b/packages/pluggableWidgets/language-selector-web/package.json index 37bae3296c..d0336172af 100644 --- a/packages/pluggableWidgets/language-selector-web/package.json +++ b/packages/pluggableWidgets/language-selector-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/language-selector-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -56,7 +54,6 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } diff --git a/packages/pluggableWidgets/maps-web/package.json b/packages/pluggableWidgets/maps-web/package.json index b1d6192254..89b23648a5 100644 --- a/packages/pluggableWidgets/maps-web/package.json +++ b/packages/pluggableWidgets/maps-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Maps.mpk pluggable-widgets-tools start:web", @@ -66,7 +64,6 @@ "@types/deep-equal": "^1.0.1", "@types/leaflet": "^1.9.3", "@types/react-leaflet": "^2.8.3", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/markdown-web/package.json b/packages/pluggableWidgets/markdown-web/package.json index 5819da2f6e..a86f8f5151 100644 --- a/packages/pluggableWidgets/markdown-web/package.json +++ b/packages/pluggableWidgets/markdown-web/package.json @@ -30,9 +30,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/markdown-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -62,7 +60,6 @@ "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "@types/markdown-it": "^14.1.1", - "vite": "^7.3.1" + "@types/markdown-it": "^14.1.1" } } diff --git a/packages/pluggableWidgets/popup-menu-web/package.json b/packages/pluggableWidgets/popup-menu-web/package.json index 59a1e0d7a3..8cd965af0e 100644 --- a/packages/pluggableWidgets/popup-menu-web/package.json +++ b/packages/pluggableWidgets/popup-menu-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/popup-menu-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -58,7 +56,6 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "classnames": "^2.5.1", - "vite": "^7.3.1" + "classnames": "^2.5.1" } } diff --git a/packages/pluggableWidgets/progress-bar-web/package.json b/packages/pluggableWidgets/progress-bar-web/package.json index 0ff21d1d7d..d163d79a4c 100644 --- a/packages/pluggableWidgets/progress-bar-web/package.json +++ b/packages/pluggableWidgets/progress-bar-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ProgressBar.mpk pluggable-widgets-tools start:web", @@ -57,7 +55,6 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/progress-circle-web/package.json b/packages/pluggableWidgets/progress-circle-web/package.json index 1850c1b0a2..85c610f4ba 100644 --- a/packages/pluggableWidgets/progress-circle-web/package.json +++ b/packages/pluggableWidgets/progress-circle-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ProgressCircle.mpk pluggable-widgets-tools start:web", @@ -58,7 +56,6 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/range-slider-web/package.json b/packages/pluggableWidgets/range-slider-web/package.json index a67a20e887..ee9a94722c 100644 --- a/packages/pluggableWidgets/range-slider-web/package.json +++ b/packages/pluggableWidgets/range-slider-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=RangeSlider.mpk pluggable-widgets-tools start:web", @@ -62,7 +60,6 @@ "@mendix/widget-plugin-platform": "workspace:*", "@types/rc-slider": "^8.6.6", "@types/rc-tooltip": "^3.7.7", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/rating-web/package.json b/packages/pluggableWidgets/rating-web/package.json index dd720c16f0..50fa22c4e3 100644 --- a/packages/pluggableWidgets/rating-web/package.json +++ b/packages/pluggableWidgets/rating-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=StarRating.mpk pluggable-widgets-tools start:web", @@ -58,7 +56,6 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/rich-text-web/package.json b/packages/pluggableWidgets/rich-text-web/package.json index 932ec4a03e..badd3fe3ab 100644 --- a/packages/pluggableWidgets/rich-text-web/package.json +++ b/packages/pluggableWidgets/rich-text-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=RichText.mpk pluggable-widgets-tools start:web", @@ -82,7 +80,6 @@ "postcss": "^8.5.6", "postcss-import": "^16.1.1", "postcss-url": "^10.1.3", - "rollup-plugin-postcss": "^4.0.2", - "vite": "^7.3.1" + "rollup-plugin-postcss": "^4.0.2" } } diff --git a/packages/pluggableWidgets/selection-helper-web/package.json b/packages/pluggableWidgets/selection-helper-web/package.json index 1fdbca3419..fd1ef95170 100644 --- a/packages/pluggableWidgets/selection-helper-web/package.json +++ b/packages/pluggableWidgets/selection-helper-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/selection-helper-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", @@ -51,7 +49,6 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-grid": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/skiplink-web/package.json b/packages/pluggableWidgets/skiplink-web/package.json index 15c4a1f856..c92b61ad0a 100644 --- a/packages/pluggableWidgets/skiplink-web/package.json +++ b/packages/pluggableWidgets/skiplink-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/skiplink-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -59,7 +57,6 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-test-utils": "workspace:*" } } diff --git a/packages/pluggableWidgets/slider-web/package.json b/packages/pluggableWidgets/slider-web/package.json index d1c14a25d5..c8329cbd6e 100644 --- a/packages/pluggableWidgets/slider-web/package.json +++ b/packages/pluggableWidgets/slider-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Slider.mpk pluggable-widgets-tools start:web", @@ -60,7 +58,6 @@ "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/switch-web/package.json b/packages/pluggableWidgets/switch-web/package.json index c08c48e704..e1cf28f8b5 100644 --- a/packages/pluggableWidgets/switch-web/package.json +++ b/packages/pluggableWidgets/switch-web/package.json @@ -29,9 +29,7 @@ "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": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Switch.mpk pluggable-widgets-tools start:web", @@ -58,7 +56,6 @@ "@mendix/widget-plugin-component-kit": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", "@mendix/widget-plugin-test-utils": "workspace:*", - "cross-env": "^7.0.3", - "vite": "^7.3.1" + "cross-env": "^7.0.3" } } diff --git a/packages/pluggableWidgets/timeline-web/package.json b/packages/pluggableWidgets/timeline-web/package.json index 9a358e0c98..c05e36496f 100644 --- a/packages/pluggableWidgets/timeline-web/package.json +++ b/packages/pluggableWidgets/timeline-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/timeline-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -56,7 +54,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-platform": "workspace:*", - "@mendix/widget-plugin-test-utils": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-test-utils": "workspace:*" } } diff --git a/packages/pluggableWidgets/tooltip-web/package.json b/packages/pluggableWidgets/tooltip-web/package.json index 9060dbe2a7..920223e867 100644 --- a/packages/pluggableWidgets/tooltip-web/package.json +++ b/packages/pluggableWidgets/tooltip-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/tooltip-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -58,7 +56,6 @@ "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", "@mendix/widget-plugin-hooks": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } diff --git a/packages/pluggableWidgets/tree-node-web/package.json b/packages/pluggableWidgets/tree-node-web/package.json index 955a251b9c..91e5788993 100644 --- a/packages/pluggableWidgets/tree-node-web/package.json +++ b/packages/pluggableWidgets/tree-node-web/package.json @@ -28,9 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/tree-node-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", @@ -54,7 +52,6 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } diff --git a/packages/pluggableWidgets/video-player-web/package.json b/packages/pluggableWidgets/video-player-web/package.json index 39e8cc5de3..7a5aee8841 100644 --- a/packages/pluggableWidgets/video-player-web/package.json +++ b/packages/pluggableWidgets/video-player-web/package.json @@ -29,9 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/video-player-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "pnpm run build:vite:rollup", - "build:vite:rolldown": "VITE_RUNTIME_FORMAT=cjs pnpm --package=esbuild --package=rolldown-vite dlx vite build --config vite.config.js", - "build:vite:rollup": "vite build --config vite.config.js", + "build:vite": "vite build --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", @@ -56,7 +54,6 @@ "@mendix/pluggable-widgets-tools": "*", "@mendix/prettier-config-web-widgets": "workspace:*", "@mendix/run-e2e": "workspace:*", - "@mendix/widget-plugin-platform": "workspace:*", - "vite": "^7.3.1" + "@mendix/widget-plugin-platform": "workspace:*" } } From 32ebbbf6a9a9958cb62eda834f0c7e33783fd3e8 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 11:09:27 +0100 Subject: [PATCH 14/21] chore: add Vite build scripts and benchmark commands for remaining widgets --- packages/pluggableWidgets/area-chart-web/package.json | 2 ++ packages/pluggableWidgets/area-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/bar-chart-web/package.json | 2 ++ packages/pluggableWidgets/bar-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/barcode-scanner-web/package.json | 2 ++ packages/pluggableWidgets/barcode-scanner-web/vite.config.js | 3 +++ packages/pluggableWidgets/bubble-chart-web/package.json | 2 ++ packages/pluggableWidgets/bubble-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/calendar-web/package.json | 2 ++ packages/pluggableWidgets/calendar-web/vite.config.js | 3 +++ packages/pluggableWidgets/chart-playground-web/package.json | 2 ++ packages/pluggableWidgets/chart-playground-web/vite.config.js | 3 +++ packages/pluggableWidgets/color-picker-web/package.json | 2 ++ packages/pluggableWidgets/color-picker-web/vite.config.js | 3 +++ packages/pluggableWidgets/column-chart-web/package.json | 2 ++ packages/pluggableWidgets/column-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/custom-chart-web/package.json | 2 ++ packages/pluggableWidgets/custom-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/document-viewer-web/package.json | 2 ++ packages/pluggableWidgets/document-viewer-web/vite.config.js | 3 +++ packages/pluggableWidgets/file-uploader-web/package.json | 2 ++ packages/pluggableWidgets/file-uploader-web/vite.config.js | 3 +++ packages/pluggableWidgets/heatmap-chart-web/package.json | 2 ++ packages/pluggableWidgets/heatmap-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/line-chart-web/package.json | 2 ++ packages/pluggableWidgets/line-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/pie-doughnut-chart-web/package.json | 2 ++ .../pluggableWidgets/pie-doughnut-chart-web/vite.config.js | 3 +++ packages/pluggableWidgets/time-series-chart-web/package.json | 2 ++ packages/pluggableWidgets/time-series-chart-web/vite.config.js | 3 +++ 30 files changed, 75 insertions(+) create mode 100644 packages/pluggableWidgets/area-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/bar-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/barcode-scanner-web/vite.config.js create mode 100644 packages/pluggableWidgets/bubble-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/calendar-web/vite.config.js create mode 100644 packages/pluggableWidgets/chart-playground-web/vite.config.js create mode 100644 packages/pluggableWidgets/color-picker-web/vite.config.js create mode 100644 packages/pluggableWidgets/column-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/custom-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/document-viewer-web/vite.config.js create mode 100644 packages/pluggableWidgets/file-uploader-web/vite.config.js create mode 100644 packages/pluggableWidgets/heatmap-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/line-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/pie-doughnut-chart-web/vite.config.js create mode 100644 packages/pluggableWidgets/time-series-chart-web/vite.config.js diff --git a/packages/pluggableWidgets/area-chart-web/package.json b/packages/pluggableWidgets/area-chart-web/package.json index 885e7a93f3..1d72c61004 100644 --- a/packages/pluggableWidgets/area-chart-web/package.json +++ b/packages/pluggableWidgets/area-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", diff --git a/packages/pluggableWidgets/area-chart-web/vite.config.js b/packages/pluggableWidgets/area-chart-web/vite.config.js new file mode 100644 index 0000000000..d8b0e54d11 --- /dev/null +++ b/packages/pluggableWidgets/area-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "AreaChart" }); diff --git a/packages/pluggableWidgets/bar-chart-web/package.json b/packages/pluggableWidgets/bar-chart-web/package.json index 32121d7224..2e7a06c8fd 100644 --- a/packages/pluggableWidgets/bar-chart-web/package.json +++ b/packages/pluggableWidgets/bar-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", diff --git a/packages/pluggableWidgets/bar-chart-web/vite.config.js b/packages/pluggableWidgets/bar-chart-web/vite.config.js new file mode 100644 index 0000000000..543283a25a --- /dev/null +++ b/packages/pluggableWidgets/bar-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "BarChart" }); diff --git a/packages/pluggableWidgets/barcode-scanner-web/package.json b/packages/pluggableWidgets/barcode-scanner-web/package.json index 3884209df4..a8267c0c0d 100644 --- a/packages/pluggableWidgets/barcode-scanner-web/package.json +++ b/packages/pluggableWidgets/barcode-scanner-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", diff --git a/packages/pluggableWidgets/barcode-scanner-web/vite.config.js b/packages/pluggableWidgets/barcode-scanner-web/vite.config.js new file mode 100644 index 0000000000..517b4130f9 --- /dev/null +++ b/packages/pluggableWidgets/barcode-scanner-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "BarcodeScanner" }); diff --git a/packages/pluggableWidgets/bubble-chart-web/package.json b/packages/pluggableWidgets/bubble-chart-web/package.json index 3d9774c29b..d588eb87ac 100644 --- a/packages/pluggableWidgets/bubble-chart-web/package.json +++ b/packages/pluggableWidgets/bubble-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "format": "prettier --ignore-path ./node_modules/@mendix/prettier-config-web-widgets/global-prettierignore --write .", diff --git a/packages/pluggableWidgets/bubble-chart-web/vite.config.js b/packages/pluggableWidgets/bubble-chart-web/vite.config.js new file mode 100644 index 0000000000..d89c4f2961 --- /dev/null +++ b/packages/pluggableWidgets/bubble-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "BubbleChart" }); diff --git a/packages/pluggableWidgets/calendar-web/package.json b/packages/pluggableWidgets/calendar-web/package.json index aae948d5df..3951abb936 100644 --- a/packages/pluggableWidgets/calendar-web/package.json +++ b/packages/pluggableWidgets/calendar-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=Calendar.mpk pluggable-widgets-tools start:web", diff --git a/packages/pluggableWidgets/calendar-web/vite.config.js b/packages/pluggableWidgets/calendar-web/vite.config.js new file mode 100644 index 0000000000..d76788ae1e --- /dev/null +++ b/packages/pluggableWidgets/calendar-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "Calendar" }); diff --git a/packages/pluggableWidgets/chart-playground-web/package.json b/packages/pluggableWidgets/chart-playground-web/package.json index fb7ad9ed63..abfe913240 100644 --- a/packages/pluggableWidgets/chart-playground-web/package.json +++ b/packages/pluggableWidgets/chart-playground-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", diff --git a/packages/pluggableWidgets/chart-playground-web/vite.config.js b/packages/pluggableWidgets/chart-playground-web/vite.config.js new file mode 100644 index 0000000000..b0dd12146a --- /dev/null +++ b/packages/pluggableWidgets/chart-playground-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "ChartPlayground" }); diff --git a/packages/pluggableWidgets/color-picker-web/package.json b/packages/pluggableWidgets/color-picker-web/package.json index 66c7839c35..562fad3e28 100644 --- a/packages/pluggableWidgets/color-picker-web/package.json +++ b/packages/pluggableWidgets/color-picker-web/package.json @@ -27,7 +27,9 @@ "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 --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "cross-env MPKOUTPUT=ColorPicker.mpk pluggable-widgets-tools start:web", diff --git a/packages/pluggableWidgets/color-picker-web/vite.config.js b/packages/pluggableWidgets/color-picker-web/vite.config.js new file mode 100644 index 0000000000..bd2209f6b9 --- /dev/null +++ b/packages/pluggableWidgets/color-picker-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "ColorPicker" }); diff --git a/packages/pluggableWidgets/column-chart-web/package.json b/packages/pluggableWidgets/column-chart-web/package.json index 1f9a5887a7..72e374968e 100644 --- a/packages/pluggableWidgets/column-chart-web/package.json +++ b/packages/pluggableWidgets/column-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", diff --git a/packages/pluggableWidgets/column-chart-web/vite.config.js b/packages/pluggableWidgets/column-chart-web/vite.config.js new file mode 100644 index 0000000000..79285609b1 --- /dev/null +++ b/packages/pluggableWidgets/column-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "ColumnChart" }); diff --git a/packages/pluggableWidgets/custom-chart-web/package.json b/packages/pluggableWidgets/custom-chart-web/package.json index a8b3d28fb2..789dc8909c 100644 --- a/packages/pluggableWidgets/custom-chart-web/package.json +++ b/packages/pluggableWidgets/custom-chart-web/package.json @@ -29,7 +29,9 @@ "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 --config vite.config.js", "create-gh-release": "rui-create-gh-release", "dev": "pluggable-widgets-tools start:web", "e2e": "echo 'FIXME: Finish custom-chart-web e2e test migration'", diff --git a/packages/pluggableWidgets/custom-chart-web/vite.config.js b/packages/pluggableWidgets/custom-chart-web/vite.config.js new file mode 100644 index 0000000000..0cd40044df --- /dev/null +++ b/packages/pluggableWidgets/custom-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "CustomChart" }); diff --git a/packages/pluggableWidgets/document-viewer-web/package.json b/packages/pluggableWidgets/document-viewer-web/package.json index 7d974a604d..9f317dd10b 100644 --- a/packages/pluggableWidgets/document-viewer-web/package.json +++ b/packages/pluggableWidgets/document-viewer-web/package.json @@ -30,7 +30,9 @@ "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 --config vite.config.js", "create-gh-release": "rui-create-gh-release", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", diff --git a/packages/pluggableWidgets/document-viewer-web/vite.config.js b/packages/pluggableWidgets/document-viewer-web/vite.config.js new file mode 100644 index 0000000000..21945cbfd5 --- /dev/null +++ b/packages/pluggableWidgets/document-viewer-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "DocumentViewer" }); diff --git a/packages/pluggableWidgets/file-uploader-web/package.json b/packages/pluggableWidgets/file-uploader-web/package.json index 62bbf00af8..9a3887acbe 100644 --- a/packages/pluggableWidgets/file-uploader-web/package.json +++ b/packages/pluggableWidgets/file-uploader-web/package.json @@ -27,7 +27,9 @@ }, "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "echo \"Skipping this e2e test\"", diff --git a/packages/pluggableWidgets/file-uploader-web/vite.config.js b/packages/pluggableWidgets/file-uploader-web/vite.config.js new file mode 100644 index 0000000000..5246f5c26d --- /dev/null +++ b/packages/pluggableWidgets/file-uploader-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "FileUploader" }); diff --git a/packages/pluggableWidgets/heatmap-chart-web/package.json b/packages/pluggableWidgets/heatmap-chart-web/package.json index 7f98f2ffff..c9ffb369cd 100644 --- a/packages/pluggableWidgets/heatmap-chart-web/package.json +++ b/packages/pluggableWidgets/heatmap-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", diff --git a/packages/pluggableWidgets/heatmap-chart-web/vite.config.js b/packages/pluggableWidgets/heatmap-chart-web/vite.config.js new file mode 100644 index 0000000000..dff604a626 --- /dev/null +++ b/packages/pluggableWidgets/heatmap-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "HeatMap" }); diff --git a/packages/pluggableWidgets/line-chart-web/package.json b/packages/pluggableWidgets/line-chart-web/package.json index 026c9d058c..a4c2b3a989 100644 --- a/packages/pluggableWidgets/line-chart-web/package.json +++ b/packages/pluggableWidgets/line-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", diff --git a/packages/pluggableWidgets/line-chart-web/vite.config.js b/packages/pluggableWidgets/line-chart-web/vite.config.js new file mode 100644 index 0000000000..ec7520f481 --- /dev/null +++ b/packages/pluggableWidgets/line-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "LineChart" }); diff --git a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json index 9338d24937..5fb8e28faa 100644 --- a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json +++ b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", diff --git a/packages/pluggableWidgets/pie-doughnut-chart-web/vite.config.js b/packages/pluggableWidgets/pie-doughnut-chart-web/vite.config.js new file mode 100644 index 0000000000..ac46c5e04b --- /dev/null +++ b/packages/pluggableWidgets/pie-doughnut-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "PieChart" }); diff --git a/packages/pluggableWidgets/time-series-chart-web/package.json b/packages/pluggableWidgets/time-series-chart-web/package.json index ea8932acd5..0f8c095333 100644 --- a/packages/pluggableWidgets/time-series-chart-web/package.json +++ b/packages/pluggableWidgets/time-series-chart-web/package.json @@ -26,7 +26,9 @@ "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 --config vite.config.js", "create-translation": "rui-create-translation", "dev": "pluggable-widgets-tools start:web", "e2e": "run-e2e ci", diff --git a/packages/pluggableWidgets/time-series-chart-web/vite.config.js b/packages/pluggableWidgets/time-series-chart-web/vite.config.js new file mode 100644 index 0000000000..c412573863 --- /dev/null +++ b/packages/pluggableWidgets/time-series-chart-web/vite.config.js @@ -0,0 +1,3 @@ +import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; + +export default createWidgetViteConfig({ widgetName: "TimeSeries" }); From c92ac4184d9358a502e2f9adbd5e9695d4abfe78 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Wed, 4 Mar 2026 18:06:29 +0100 Subject: [PATCH 15/21] chore: update pnpm-lock --- pnpm-lock.yaml | 371 +++++++++++++++++++++---------------------------- 1 file changed, 156 insertions(+), 215 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0bd9083240..ecb2019243 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -62,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: @@ -238,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 @@ -420,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 @@ -445,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 @@ -485,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 @@ -513,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 @@ -560,9 +563,6 @@ importers: cross-env: specifier: ^7.0.3 version: 7.0.3 - 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/pluggableWidgets/bar-chart-web: dependencies: @@ -590,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 @@ -621,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 @@ -658,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 @@ -704,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 @@ -735,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 @@ -781,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 @@ -830,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 @@ -901,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 @@ -947,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 @@ -993,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 @@ -1027,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 @@ -1085,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 @@ -1122,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 @@ -1168,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 @@ -1208,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 @@ -1266,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 @@ -1333,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 @@ -1346,9 +1346,6 @@ importers: archiver: specifier: ^6.0.0 version: 6.0.2 - 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/pluggableWidgets/document-viewer-web: dependencies: @@ -1385,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 @@ -1407,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 @@ -1453,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 @@ -1490,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 @@ -1533,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 @@ -1597,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 @@ -1634,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 @@ -1668,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 @@ -1699,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 @@ -1727,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 @@ -1761,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 @@ -1798,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 @@ -1841,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 @@ -1890,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 @@ -1942,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 @@ -1973,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 @@ -2004,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 @@ -2038,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 @@ -2078,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 @@ -2115,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 @@ -2194,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 @@ -2240,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)) - 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/pluggableWidgets/selection-helper-web: dependencies: @@ -2258,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 @@ -2295,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 @@ -2335,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 @@ -2366,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 @@ -2412,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 @@ -2443,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 @@ -2477,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 @@ -2508,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 @@ -2536,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 @@ -2706,7 +2700,7 @@ 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 @@ -2714,6 +2708,10 @@ importers: 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 @@ -5767,6 +5765,10 @@ packages: 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'} @@ -5775,6 +5777,10 @@ packages: 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==} @@ -6085,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'} @@ -6338,6 +6351,10 @@ packages: 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==} @@ -6435,6 +6452,10 @@ packages: 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==} @@ -9647,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'} @@ -9908,6 +9933,10 @@ 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==} @@ -11328,6 +11357,10 @@ packages: 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'} @@ -13010,113 +13043,6 @@ 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)(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) - '@babel/plugin-transform-private-methods': 7.27.1(@babel/core@7.28.4) - '@babel/plugin-transform-react-jsx': 7.27.1(@babel/core@7.28.4) - '@babel/preset-env': 7.28.3(@babel/core@7.28.4) - '@babel/preset-react': 7.27.1(@babel/core@7.28.4) - '@cfaester/enzyme-adapter-react-18': 0.6.0(enzyme@3.11.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@prettier/plugin-xml': 3.4.2(prettier@3.5.3) - '@rollup/plugin-alias': 5.1.1(rollup@3.29.5) - '@rollup/plugin-babel': 6.1.0(@babel/core@7.28.4)(@types/babel__core@7.20.5)(rollup@3.29.5) - '@rollup/plugin-commonjs': 28.0.7(rollup@3.29.5) - '@rollup/plugin-image': 3.0.3(rollup@3.29.5) - '@rollup/plugin-json': 6.1.0(rollup@3.29.5) - '@rollup/plugin-node-resolve': 15.3.1(rollup@3.29.5) - '@rollup/plugin-terser': 0.4.4(rollup@3.29.5) - '@rollup/plugin-typescript': 12.1.4(rollup@3.29.5)(tslib@2.8.1)(typescript@5.9.3) - '@rollup/plugin-url': 8.0.2(rollup@3.29.5) - '@rollup/pluginutils': 5.3.0(rollup@3.29.5) - '@testing-library/dom': 8.20.1 - '@testing-library/jest-dom': 5.17.0 - '@testing-library/react': 16.3.0(@testing-library/dom@8.20.1)(@types/react-dom@18.3.7(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@testing-library/user-event': 14.6.1(@testing-library/dom@8.20.1) - '@types/react': 19.2.2 - '@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@7.32.0)(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) - babel-jest: 29.7.0(@babel/core@7.28.4) - big.js: 6.2.2 - concurrently: 6.5.1 - core-js: 3.46.0 - dotenv: 8.6.0 - enzyme: 3.11.0 - 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-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) - eslint-plugin-react-hooks: 4.6.2(eslint@7.32.0) - fast-glob: 3.3.3 - find-free-port: 2.0.0 - fs-extra: 9.1.0 - identity-obj-proxy: 3.0.0 - jasmine: 3.99.0 - jasmine-core: 3.99.1 - jest: 29.7.0(@types/node@22.14.1)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3)) - jest-environment-jsdom: 29.7.0 - jest-jasmine2: 29.7.0 - jest-junit: 13.2.0 - jest-react-hooks-shallow: 1.5.1 - make-dir: 3.1.0 - mendix: 10.24.75382 - metro-react-native-babel-preset: 0.74.1(@babel/core@7.28.4) - mime: 3.0.0 - node-fetch: 2.7.0 - postcss: 8.5.6 - postcss-import: 14.1.0(postcss@8.5.6) - postcss-url: 10.1.3(postcss@8.5.6) - prettier: 3.5.3 - react-test-renderer: 18.2.0(react@18.3.1) - recursive-copy: 2.0.14 - resolve: 1.22.10 - rollup: 3.29.5 - rollup-plugin-clear: 2.0.7 - rollup-plugin-command: 1.1.3 - 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 - sass: 1.93.2 - semver: 7.7.3 - shelljs: 0.8.5 - shx: 0.3.4 - ts-jest: 29.4.5(@babel/core@7.28.4)(@jest/transform@29.7.0)(@jest/types@30.2.0)(babel-jest@29.7.0(@babel/core@7.28.4))(jest-util@30.2.0)(jest@29.7.0(@types/node@22.14.1)(ts-node@10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3)))(typescript@5.9.3) - ts-node: 10.9.2(@swc/core@1.13.5)(@types/node@22.14.1)(typescript@5.9.3) - typescript: 5.9.3 - xml2js: 0.6.2 - zip-a-folder: 0.0.12 - transitivePeerDependencies: - - '@jest/transform' - - '@jest/types' - - '@swc/core' - - '@swc/wasm' - - '@types/babel__core' - - '@types/node' - - babel-plugin-macros - - bufferutil - - canvas - - encoding - - esbuild - - jest-util - - node-notifier - - picomatch - - react - - react-dom - - react-native - - supports-color - - tslib - - utf-8-validate - - '@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)': dependencies: '@babel/core': 7.28.4 '@babel/plugin-transform-class-properties': 7.27.1(@babel/core@7.28.4) @@ -13188,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 @@ -14118,25 +14044,6 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@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)': - dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 5.62.0(eslint@7.32.0)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 5.62.0 - '@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: 7.32.0 - graphemer: 1.4.0 - ignore: 5.3.2 - natural-compare-lite: 1.4.0 - semver: 7.7.3 - tsutils: 3.21.0(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@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 @@ -14688,6 +14595,16 @@ snapshots: 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 @@ -14712,6 +14629,20 @@ snapshots: - 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: @@ -15053,6 +14984,8 @@ snapshots: buffer-crc32@0.2.13: {} + buffer-crc32@1.0.0: {} + buffer-from@1.1.2: {} buffer@5.7.1: @@ -15060,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 @@ -15340,6 +15278,14 @@ snapshots: 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: {} @@ -15454,6 +15400,11 @@ snapshots: 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 @@ -16241,16 +16192,6 @@ 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): - 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@7.32.0)(typescript@5.9.3))(eslint@7.32.0)(typescript@5.9.3) - transitivePeerDependencies: - - supports-color - - typescript - 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) @@ -16640,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 @@ -19414,6 +19353,8 @@ snapshots: process-nextick-args@2.0.1: {} + process@0.11.10: {} + progress@2.0.3: {} promise.series@0.2.0: {} @@ -19788,6 +19729,14 @@ 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 @@ -20023,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 @@ -21368,6 +21303,12 @@ snapshots: 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 From ac402eba2f31bbcd35517e20f5643345c205ca16 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Mon, 9 Mar 2026 12:42:32 +0100 Subject: [PATCH 16/21] refactor: update build configurations for pluggable widgets to use shared vite config - Removed individual vite.config.js files from multiple pluggable widgets - Updated package.json scripts to use the shared vite.config.ts for both dev and prod builds - Ensured consistency across all pluggable widgets by standardizing the build process --- .../pluggableWidgets/accessibility-helper-web/package.json | 3 ++- .../pluggableWidgets/accessibility-helper-web/vite.config.js | 3 --- packages/pluggableWidgets/accordion-web/package.json | 3 ++- packages/pluggableWidgets/accordion-web/vite.config.js | 3 --- packages/pluggableWidgets/area-chart-web/package.json | 3 ++- packages/pluggableWidgets/area-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/badge-button-web/package.json | 3 ++- packages/pluggableWidgets/badge-button-web/vite.config.js | 3 --- packages/pluggableWidgets/badge-web/package.json | 3 ++- packages/pluggableWidgets/badge-web/vite.config.js | 3 --- packages/pluggableWidgets/bar-chart-web/package.json | 3 ++- packages/pluggableWidgets/bar-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/barcode-generator-web/package.json | 3 ++- packages/pluggableWidgets/barcode-generator-web/vite.config.js | 3 --- packages/pluggableWidgets/barcode-scanner-web/package.json | 3 ++- packages/pluggableWidgets/barcode-scanner-web/vite.config.js | 3 --- packages/pluggableWidgets/bubble-chart-web/package.json | 3 ++- packages/pluggableWidgets/bubble-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/calendar-web/package.json | 3 ++- packages/pluggableWidgets/calendar-web/vite.config.js | 3 --- packages/pluggableWidgets/carousel-web/package.json | 3 ++- packages/pluggableWidgets/carousel-web/vite.config.js | 3 --- packages/pluggableWidgets/chart-playground-web/package.json | 3 ++- packages/pluggableWidgets/chart-playground-web/vite.config.js | 3 --- .../pluggableWidgets/checkbox-radio-selection-web/package.json | 3 ++- .../checkbox-radio-selection-web/vite.config.js | 3 --- packages/pluggableWidgets/color-picker-web/package.json | 3 ++- packages/pluggableWidgets/color-picker-web/vite.config.js | 3 --- packages/pluggableWidgets/column-chart-web/package.json | 3 ++- packages/pluggableWidgets/column-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/combobox-web/package.json | 3 ++- packages/pluggableWidgets/combobox-web/vite.config.js | 3 --- packages/pluggableWidgets/custom-chart-web/package.json | 3 ++- packages/pluggableWidgets/custom-chart-web/vite.config.js | 3 --- .../pluggableWidgets/datagrid-date-filter-web/package.json | 3 ++- .../pluggableWidgets/datagrid-date-filter-web/vite.config.js | 3 --- .../pluggableWidgets/datagrid-dropdown-filter-web/package.json | 3 ++- .../datagrid-dropdown-filter-web/vite.config.js | 3 --- .../pluggableWidgets/datagrid-number-filter-web/package.json | 3 ++- .../pluggableWidgets/datagrid-number-filter-web/vite.config.js | 3 --- .../pluggableWidgets/datagrid-text-filter-web/package.json | 3 ++- .../pluggableWidgets/datagrid-text-filter-web/vite.config.js | 3 --- packages/pluggableWidgets/datagrid-web/package.json | 3 ++- packages/pluggableWidgets/datagrid-web/vite.config.js | 3 --- packages/pluggableWidgets/document-viewer-web/package.json | 3 ++- packages/pluggableWidgets/document-viewer-web/vite.config.js | 3 --- packages/pluggableWidgets/dropdown-sort-web/package.json | 3 ++- packages/pluggableWidgets/dropdown-sort-web/vite.config.js | 3 --- packages/pluggableWidgets/events-web/package.json | 3 ++- packages/pluggableWidgets/events-web/vite.config.js | 3 --- packages/pluggableWidgets/fieldset-web/package.json | 3 ++- packages/pluggableWidgets/fieldset-web/vite.config.js | 3 --- packages/pluggableWidgets/file-uploader-web/package.json | 3 ++- packages/pluggableWidgets/file-uploader-web/vite.config.js | 3 --- packages/pluggableWidgets/gallery-web/package.json | 3 ++- packages/pluggableWidgets/gallery-web/vite.config.js | 3 --- packages/pluggableWidgets/google-tag-web/package.json | 3 ++- packages/pluggableWidgets/google-tag-web/vite.config.js | 3 --- packages/pluggableWidgets/heatmap-chart-web/package.json | 3 ++- packages/pluggableWidgets/heatmap-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/html-element-web/package.json | 3 ++- packages/pluggableWidgets/html-element-web/vite.config.js | 3 --- packages/pluggableWidgets/image-web/package.json | 3 ++- packages/pluggableWidgets/image-web/vite.config.js | 3 --- packages/pluggableWidgets/language-selector-web/package.json | 3 ++- packages/pluggableWidgets/language-selector-web/vite.config.js | 3 --- packages/pluggableWidgets/line-chart-web/package.json | 3 ++- packages/pluggableWidgets/line-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/maps-web/package.json | 3 ++- packages/pluggableWidgets/maps-web/vite.config.js | 3 --- packages/pluggableWidgets/markdown-web/package.json | 3 ++- packages/pluggableWidgets/markdown-web/vite.config.js | 3 --- packages/pluggableWidgets/pie-doughnut-chart-web/package.json | 3 ++- .../pluggableWidgets/pie-doughnut-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/popup-menu-web/package.json | 3 ++- packages/pluggableWidgets/popup-menu-web/vite.config.js | 3 --- packages/pluggableWidgets/progress-bar-web/package.json | 3 ++- packages/pluggableWidgets/progress-bar-web/vite.config.js | 3 --- packages/pluggableWidgets/progress-circle-web/package.json | 3 ++- packages/pluggableWidgets/progress-circle-web/vite.config.js | 3 --- packages/pluggableWidgets/range-slider-web/package.json | 3 ++- packages/pluggableWidgets/range-slider-web/vite.config.js | 3 --- packages/pluggableWidgets/rating-web/package.json | 3 ++- packages/pluggableWidgets/rating-web/vite.config.js | 3 --- packages/pluggableWidgets/rich-text-web/package.json | 3 ++- packages/pluggableWidgets/rich-text-web/vite.config.js | 3 --- packages/pluggableWidgets/selection-helper-web/package.json | 3 ++- packages/pluggableWidgets/selection-helper-web/vite.config.js | 3 --- packages/pluggableWidgets/skiplink-web/package.json | 3 ++- packages/pluggableWidgets/skiplink-web/vite.config.js | 3 --- packages/pluggableWidgets/slider-web/package.json | 3 ++- packages/pluggableWidgets/slider-web/vite.config.js | 3 --- packages/pluggableWidgets/switch-web/package.json | 3 ++- packages/pluggableWidgets/switch-web/vite.config.js | 3 --- packages/pluggableWidgets/time-series-chart-web/package.json | 3 ++- packages/pluggableWidgets/time-series-chart-web/vite.config.js | 3 --- packages/pluggableWidgets/timeline-web/package.json | 3 ++- packages/pluggableWidgets/timeline-web/vite.config.js | 3 --- packages/pluggableWidgets/tooltip-web/package.json | 3 ++- packages/pluggableWidgets/tooltip-web/vite.config.js | 3 --- packages/pluggableWidgets/tree-node-web/package.json | 3 ++- packages/pluggableWidgets/tree-node-web/vite.config.js | 3 --- packages/pluggableWidgets/video-player-web/package.json | 3 ++- packages/pluggableWidgets/video-player-web/vite.config.js | 3 --- 104 files changed, 104 insertions(+), 208 deletions(-) delete mode 100644 packages/pluggableWidgets/accessibility-helper-web/vite.config.js delete mode 100644 packages/pluggableWidgets/accordion-web/vite.config.js delete mode 100644 packages/pluggableWidgets/area-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/badge-button-web/vite.config.js delete mode 100644 packages/pluggableWidgets/badge-web/vite.config.js delete mode 100644 packages/pluggableWidgets/bar-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/barcode-generator-web/vite.config.js delete mode 100644 packages/pluggableWidgets/barcode-scanner-web/vite.config.js delete mode 100644 packages/pluggableWidgets/bubble-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/calendar-web/vite.config.js delete mode 100644 packages/pluggableWidgets/carousel-web/vite.config.js delete mode 100644 packages/pluggableWidgets/chart-playground-web/vite.config.js delete mode 100644 packages/pluggableWidgets/checkbox-radio-selection-web/vite.config.js delete mode 100644 packages/pluggableWidgets/color-picker-web/vite.config.js delete mode 100644 packages/pluggableWidgets/column-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/combobox-web/vite.config.js delete mode 100644 packages/pluggableWidgets/custom-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/datagrid-date-filter-web/vite.config.js delete mode 100644 packages/pluggableWidgets/datagrid-dropdown-filter-web/vite.config.js delete mode 100644 packages/pluggableWidgets/datagrid-number-filter-web/vite.config.js delete mode 100644 packages/pluggableWidgets/datagrid-text-filter-web/vite.config.js delete mode 100644 packages/pluggableWidgets/datagrid-web/vite.config.js delete mode 100644 packages/pluggableWidgets/document-viewer-web/vite.config.js delete mode 100644 packages/pluggableWidgets/dropdown-sort-web/vite.config.js delete mode 100644 packages/pluggableWidgets/events-web/vite.config.js delete mode 100644 packages/pluggableWidgets/fieldset-web/vite.config.js delete mode 100644 packages/pluggableWidgets/file-uploader-web/vite.config.js delete mode 100644 packages/pluggableWidgets/gallery-web/vite.config.js delete mode 100644 packages/pluggableWidgets/google-tag-web/vite.config.js delete mode 100644 packages/pluggableWidgets/heatmap-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/html-element-web/vite.config.js delete mode 100644 packages/pluggableWidgets/image-web/vite.config.js delete mode 100644 packages/pluggableWidgets/language-selector-web/vite.config.js delete mode 100644 packages/pluggableWidgets/line-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/maps-web/vite.config.js delete mode 100644 packages/pluggableWidgets/markdown-web/vite.config.js delete mode 100644 packages/pluggableWidgets/pie-doughnut-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/popup-menu-web/vite.config.js delete mode 100644 packages/pluggableWidgets/progress-bar-web/vite.config.js delete mode 100644 packages/pluggableWidgets/progress-circle-web/vite.config.js delete mode 100644 packages/pluggableWidgets/range-slider-web/vite.config.js delete mode 100644 packages/pluggableWidgets/rating-web/vite.config.js delete mode 100644 packages/pluggableWidgets/rich-text-web/vite.config.js delete mode 100644 packages/pluggableWidgets/selection-helper-web/vite.config.js delete mode 100644 packages/pluggableWidgets/skiplink-web/vite.config.js delete mode 100644 packages/pluggableWidgets/slider-web/vite.config.js delete mode 100644 packages/pluggableWidgets/switch-web/vite.config.js delete mode 100644 packages/pluggableWidgets/time-series-chart-web/vite.config.js delete mode 100644 packages/pluggableWidgets/timeline-web/vite.config.js delete mode 100644 packages/pluggableWidgets/tooltip-web/vite.config.js delete mode 100644 packages/pluggableWidgets/tree-node-web/vite.config.js delete mode 100644 packages/pluggableWidgets/video-player-web/vite.config.js diff --git a/packages/pluggableWidgets/accessibility-helper-web/package.json b/packages/pluggableWidgets/accessibility-helper-web/package.json index 8d8eec03a4..32948826b4 100644 --- a/packages/pluggableWidgets/accessibility-helper-web/package.json +++ b/packages/pluggableWidgets/accessibility-helper-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accessibility-helper-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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/accessibility-helper-web/vite.config.js b/packages/pluggableWidgets/accessibility-helper-web/vite.config.js deleted file mode 100644 index be371e283c..0000000000 --- a/packages/pluggableWidgets/accessibility-helper-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "AccessibilityHelper" }); diff --git a/packages/pluggableWidgets/accordion-web/package.json b/packages/pluggableWidgets/accordion-web/package.json index 02ec43ea4b..e76f60bde7 100644 --- a/packages/pluggableWidgets/accordion-web/package.json +++ b/packages/pluggableWidgets/accordion-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/accordion-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/accordion-web/vite.config.js b/packages/pluggableWidgets/accordion-web/vite.config.js deleted file mode 100644 index b25839f7f2..0000000000 --- a/packages/pluggableWidgets/accordion-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Accordion" }); diff --git a/packages/pluggableWidgets/area-chart-web/package.json b/packages/pluggableWidgets/area-chart-web/package.json index 1d72c61004..98d433554b 100644 --- a/packages/pluggableWidgets/area-chart-web/package.json +++ b/packages/pluggableWidgets/area-chart-web/package.json @@ -28,12 +28,13 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/area-chart-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "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/area-chart-web/vite.config.js b/packages/pluggableWidgets/area-chart-web/vite.config.js deleted file mode 100644 index d8b0e54d11..0000000000 --- a/packages/pluggableWidgets/area-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "AreaChart" }); diff --git a/packages/pluggableWidgets/badge-button-web/package.json b/packages/pluggableWidgets/badge-button-web/package.json index b03e1bc8a0..164c66c0b3 100644 --- a/packages/pluggableWidgets/badge-button-web/package.json +++ b/packages/pluggableWidgets/badge-button-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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-button-web/vite.config.js b/packages/pluggableWidgets/badge-button-web/vite.config.js deleted file mode 100644 index f9d4e6ecaf..0000000000 --- a/packages/pluggableWidgets/badge-button-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "BadgeButton" }); diff --git a/packages/pluggableWidgets/badge-web/package.json b/packages/pluggableWidgets/badge-web/package.json index bf6cfb9153..752e04ae08 100644 --- a/packages/pluggableWidgets/badge-web/package.json +++ b/packages/pluggableWidgets/badge-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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", diff --git a/packages/pluggableWidgets/badge-web/vite.config.js b/packages/pluggableWidgets/badge-web/vite.config.js deleted file mode 100644 index 7a6970ff66..0000000000 --- a/packages/pluggableWidgets/badge-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Badge" }); diff --git a/packages/pluggableWidgets/bar-chart-web/package.json b/packages/pluggableWidgets/bar-chart-web/package.json index 2e7a06c8fd..64be26472e 100644 --- a/packages/pluggableWidgets/bar-chart-web/package.json +++ b/packages/pluggableWidgets/bar-chart-web/package.json @@ -28,12 +28,13 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/bar-chart-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "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/bar-chart-web/vite.config.js b/packages/pluggableWidgets/bar-chart-web/vite.config.js deleted file mode 100644 index 543283a25a..0000000000 --- a/packages/pluggableWidgets/bar-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "BarChart" }); diff --git a/packages/pluggableWidgets/barcode-generator-web/package.json b/packages/pluggableWidgets/barcode-generator-web/package.json index bc2794f8ec..92d7dbd1e9 100644 --- a/packages/pluggableWidgets/barcode-generator-web/package.json +++ b/packages/pluggableWidgets/barcode-generator-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/barcode-generator-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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-generator-web/vite.config.js b/packages/pluggableWidgets/barcode-generator-web/vite.config.js deleted file mode 100644 index 04c4bfc7ad..0000000000 --- a/packages/pluggableWidgets/barcode-generator-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "BarcodeGenerator" }); diff --git a/packages/pluggableWidgets/barcode-scanner-web/package.json b/packages/pluggableWidgets/barcode-scanner-web/package.json index a8267c0c0d..aef84d7b17 100644 --- a/packages/pluggableWidgets/barcode-scanner-web/package.json +++ b/packages/pluggableWidgets/barcode-scanner-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/barcode-scanner-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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/vite.config.js b/packages/pluggableWidgets/barcode-scanner-web/vite.config.js deleted file mode 100644 index 517b4130f9..0000000000 --- a/packages/pluggableWidgets/barcode-scanner-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "BarcodeScanner" }); diff --git a/packages/pluggableWidgets/bubble-chart-web/package.json b/packages/pluggableWidgets/bubble-chart-web/package.json index d588eb87ac..411cd65b85 100644 --- a/packages/pluggableWidgets/bubble-chart-web/package.json +++ b/packages/pluggableWidgets/bubble-chart-web/package.json @@ -28,12 +28,13 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/bubble-chart-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "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/bubble-chart-web/vite.config.js b/packages/pluggableWidgets/bubble-chart-web/vite.config.js deleted file mode 100644 index d89c4f2961..0000000000 --- a/packages/pluggableWidgets/bubble-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "BubbleChart" }); diff --git a/packages/pluggableWidgets/calendar-web/package.json b/packages/pluggableWidgets/calendar-web/package.json index 3951abb936..85f22ebc5a 100644 --- a/packages/pluggableWidgets/calendar-web/package.json +++ b/packages/pluggableWidgets/calendar-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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/calendar-web/vite.config.js b/packages/pluggableWidgets/calendar-web/vite.config.js deleted file mode 100644 index d76788ae1e..0000000000 --- a/packages/pluggableWidgets/calendar-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Calendar" }); diff --git a/packages/pluggableWidgets/carousel-web/package.json b/packages/pluggableWidgets/carousel-web/package.json index efefb136dc..3a57fe3ce1 100644 --- a/packages/pluggableWidgets/carousel-web/package.json +++ b/packages/pluggableWidgets/carousel-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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/carousel-web/vite.config.js b/packages/pluggableWidgets/carousel-web/vite.config.js deleted file mode 100644 index 1522411d53..0000000000 --- a/packages/pluggableWidgets/carousel-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Carousel" }); diff --git a/packages/pluggableWidgets/chart-playground-web/package.json b/packages/pluggableWidgets/chart-playground-web/package.json index abfe913240..1f61f3012c 100644 --- a/packages/pluggableWidgets/chart-playground-web/package.json +++ b/packages/pluggableWidgets/chart-playground-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/chart-playground-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -36,6 +36,7 @@ "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/chart-playground-web/vite.config.js b/packages/pluggableWidgets/chart-playground-web/vite.config.js deleted file mode 100644 index b0dd12146a..0000000000 --- a/packages/pluggableWidgets/chart-playground-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "ChartPlayground" }); diff --git a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json index 4f30e447fb..64a9cd1e65 100644 --- a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json +++ b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json @@ -33,7 +33,7 @@ "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 --config vite.config.js", + "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", @@ -43,6 +43,7 @@ "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/vite.config.js b/packages/pluggableWidgets/checkbox-radio-selection-web/vite.config.js deleted file mode 100644 index 4f263cb64b..0000000000 --- a/packages/pluggableWidgets/checkbox-radio-selection-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "CheckboxRadioSelection" }); diff --git a/packages/pluggableWidgets/color-picker-web/package.json b/packages/pluggableWidgets/color-picker-web/package.json index 562fad3e28..b1c22605f5 100644 --- a/packages/pluggableWidgets/color-picker-web/package.json +++ b/packages/pluggableWidgets/color-picker-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/color-picker-web/vite.config.js b/packages/pluggableWidgets/color-picker-web/vite.config.js deleted file mode 100644 index bd2209f6b9..0000000000 --- a/packages/pluggableWidgets/color-picker-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "ColorPicker" }); diff --git a/packages/pluggableWidgets/column-chart-web/package.json b/packages/pluggableWidgets/column-chart-web/package.json index 72e374968e..1b10bd0459 100644 --- a/packages/pluggableWidgets/column-chart-web/package.json +++ b/packages/pluggableWidgets/column-chart-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/column-chart-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -36,6 +36,7 @@ "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/column-chart-web/vite.config.js b/packages/pluggableWidgets/column-chart-web/vite.config.js deleted file mode 100644 index 79285609b1..0000000000 --- a/packages/pluggableWidgets/column-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "ColumnChart" }); diff --git a/packages/pluggableWidgets/combobox-web/package.json b/packages/pluggableWidgets/combobox-web/package.json index f599455b31..40cc9203f8 100644 --- a/packages/pluggableWidgets/combobox-web/package.json +++ b/packages/pluggableWidgets/combobox-web/package.json @@ -33,7 +33,7 @@ "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 --config vite.config.js", + "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", @@ -43,6 +43,7 @@ "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/combobox-web/vite.config.js b/packages/pluggableWidgets/combobox-web/vite.config.js deleted file mode 100644 index c6505073e1..0000000000 --- a/packages/pluggableWidgets/combobox-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Combobox" }); diff --git a/packages/pluggableWidgets/custom-chart-web/package.json b/packages/pluggableWidgets/custom-chart-web/package.json index 789dc8909c..b0e47d98be 100644 --- a/packages/pluggableWidgets/custom-chart-web/package.json +++ b/packages/pluggableWidgets/custom-chart-web/package.json @@ -31,7 +31,7 @@ "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 --config vite.config.js", + "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", "e2e": "echo 'FIXME: Finish custom-chart-web e2e test migration'", @@ -40,6 +40,7 @@ "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/custom-chart-web/vite.config.js b/packages/pluggableWidgets/custom-chart-web/vite.config.js deleted file mode 100644 index 0cd40044df..0000000000 --- a/packages/pluggableWidgets/custom-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "CustomChart" }); diff --git a/packages/pluggableWidgets/datagrid-date-filter-web/package.json b/packages/pluggableWidgets/datagrid-date-filter-web/package.json index 675539e683..2c43a3686a 100644 --- a/packages/pluggableWidgets/datagrid-date-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-date-filter-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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-date-filter-web/vite.config.js b/packages/pluggableWidgets/datagrid-date-filter-web/vite.config.js deleted file mode 100644 index 5c218b36c4..0000000000 --- a/packages/pluggableWidgets/datagrid-date-filter-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "DatagridDateFilter" }); diff --git a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json index 899a3e9d55..2f841103b7 100644 --- a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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/vite.config.js b/packages/pluggableWidgets/datagrid-dropdown-filter-web/vite.config.js deleted file mode 100644 index f21cf7e072..0000000000 --- a/packages/pluggableWidgets/datagrid-dropdown-filter-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "DatagridDropdownFilter" }); diff --git a/packages/pluggableWidgets/datagrid-number-filter-web/package.json b/packages/pluggableWidgets/datagrid-number-filter-web/package.json index 213048c8e5..8f267dd82e 100644 --- a/packages/pluggableWidgets/datagrid-number-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-number-filter-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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-number-filter-web/vite.config.js b/packages/pluggableWidgets/datagrid-number-filter-web/vite.config.js deleted file mode 100644 index ec6e647976..0000000000 --- a/packages/pluggableWidgets/datagrid-number-filter-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "DatagridNumberFilter" }); diff --git a/packages/pluggableWidgets/datagrid-text-filter-web/package.json b/packages/pluggableWidgets/datagrid-text-filter-web/package.json index 32e7947534..8fb2d71e9c 100644 --- a/packages/pluggableWidgets/datagrid-text-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-text-filter-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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-text-filter-web/vite.config.js b/packages/pluggableWidgets/datagrid-text-filter-web/vite.config.js deleted file mode 100644 index a185e48994..0000000000 --- a/packages/pluggableWidgets/datagrid-text-filter-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "DatagridTextFilter" }); diff --git a/packages/pluggableWidgets/datagrid-web/package.json b/packages/pluggableWidgets/datagrid-web/package.json index a165597ed4..21574ebcf0 100644 --- a/packages/pluggableWidgets/datagrid-web/package.json +++ b/packages/pluggableWidgets/datagrid-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/datagrid-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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/vite.config.js b/packages/pluggableWidgets/datagrid-web/vite.config.js deleted file mode 100644 index 3fca5e2fe4..0000000000 --- a/packages/pluggableWidgets/datagrid-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Datagrid" }); diff --git a/packages/pluggableWidgets/document-viewer-web/package.json b/packages/pluggableWidgets/document-viewer-web/package.json index 9f317dd10b..d90b7d3843 100644 --- a/packages/pluggableWidgets/document-viewer-web/package.json +++ b/packages/pluggableWidgets/document-viewer-web/package.json @@ -32,7 +32,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/document-viewer-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -40,6 +40,7 @@ "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/document-viewer-web/vite.config.js b/packages/pluggableWidgets/document-viewer-web/vite.config.js deleted file mode 100644 index 21945cbfd5..0000000000 --- a/packages/pluggableWidgets/document-viewer-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "DocumentViewer" }); diff --git a/packages/pluggableWidgets/dropdown-sort-web/package.json b/packages/pluggableWidgets/dropdown-sort-web/package.json index 6d519a726e..b438f04922 100644 --- a/packages/pluggableWidgets/dropdown-sort-web/package.json +++ b/packages/pluggableWidgets/dropdown-sort-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/dropdown-sort-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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/dropdown-sort-web/vite.config.js b/packages/pluggableWidgets/dropdown-sort-web/vite.config.js deleted file mode 100644 index ea8f3cbfec..0000000000 --- a/packages/pluggableWidgets/dropdown-sort-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "DropdownSort" }); diff --git a/packages/pluggableWidgets/events-web/package.json b/packages/pluggableWidgets/events-web/package.json index 5bf46de9ab..220997e6c2 100644 --- a/packages/pluggableWidgets/events-web/package.json +++ b/packages/pluggableWidgets/events-web/package.json @@ -32,7 +32,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/app-events-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -42,6 +42,7 @@ "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/events-web/vite.config.js b/packages/pluggableWidgets/events-web/vite.config.js deleted file mode 100644 index d0c09f4d82..0000000000 --- a/packages/pluggableWidgets/events-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Events" }); diff --git a/packages/pluggableWidgets/fieldset-web/package.json b/packages/pluggableWidgets/fieldset-web/package.json index 2f69288c18..d40be3d19e 100644 --- a/packages/pluggableWidgets/fieldset-web/package.json +++ b/packages/pluggableWidgets/fieldset-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/fieldset-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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/vite.config.js b/packages/pluggableWidgets/fieldset-web/vite.config.js deleted file mode 100644 index 025edff1ad..0000000000 --- a/packages/pluggableWidgets/fieldset-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Fieldset" }); diff --git a/packages/pluggableWidgets/file-uploader-web/package.json b/packages/pluggableWidgets/file-uploader-web/package.json index 9a3887acbe..e59959740a 100644 --- a/packages/pluggableWidgets/file-uploader-web/package.json +++ b/packages/pluggableWidgets/file-uploader-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", "e2e": "echo \"Skipping this e2e test\"", @@ -37,6 +37,7 @@ "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/file-uploader-web/vite.config.js b/packages/pluggableWidgets/file-uploader-web/vite.config.js deleted file mode 100644 index 5246f5c26d..0000000000 --- a/packages/pluggableWidgets/file-uploader-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "FileUploader" }); diff --git a/packages/pluggableWidgets/gallery-web/package.json b/packages/pluggableWidgets/gallery-web/package.json index 13542cf861..1732cb5fbe 100644 --- a/packages/pluggableWidgets/gallery-web/package.json +++ b/packages/pluggableWidgets/gallery-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/gallery-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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/gallery-web/vite.config.js b/packages/pluggableWidgets/gallery-web/vite.config.js deleted file mode 100644 index fc277cbfde..0000000000 --- a/packages/pluggableWidgets/gallery-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Gallery" }); diff --git a/packages/pluggableWidgets/google-tag-web/package.json b/packages/pluggableWidgets/google-tag-web/package.json index e8b2906f5c..8b4a34bcc8 100644 --- a/packages/pluggableWidgets/google-tag-web/package.json +++ b/packages/pluggableWidgets/google-tag-web/package.json @@ -32,7 +32,7 @@ "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 --config vite.config.js", + "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", @@ -40,6 +40,7 @@ "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/google-tag-web/vite.config.js b/packages/pluggableWidgets/google-tag-web/vite.config.js deleted file mode 100644 index fa296f8eb8..0000000000 --- a/packages/pluggableWidgets/google-tag-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "TXhHdGFn" }); diff --git a/packages/pluggableWidgets/heatmap-chart-web/package.json b/packages/pluggableWidgets/heatmap-chart-web/package.json index c9ffb369cd..0282f8846c 100644 --- a/packages/pluggableWidgets/heatmap-chart-web/package.json +++ b/packages/pluggableWidgets/heatmap-chart-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/heatmap-chart-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -36,6 +36,7 @@ "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/heatmap-chart-web/vite.config.js b/packages/pluggableWidgets/heatmap-chart-web/vite.config.js deleted file mode 100644 index dff604a626..0000000000 --- a/packages/pluggableWidgets/heatmap-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "HeatMap" }); diff --git a/packages/pluggableWidgets/html-element-web/package.json b/packages/pluggableWidgets/html-element-web/package.json index 8e4c867438..d4a6bcc344 100644 --- a/packages/pluggableWidgets/html-element-web/package.json +++ b/packages/pluggableWidgets/html-element-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/html-element-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -37,6 +37,7 @@ "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/html-element-web/vite.config.js b/packages/pluggableWidgets/html-element-web/vite.config.js deleted file mode 100644 index 681aa378de..0000000000 --- a/packages/pluggableWidgets/html-element-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "HTMLElement" }); diff --git a/packages/pluggableWidgets/image-web/package.json b/packages/pluggableWidgets/image-web/package.json index b6ddb5687f..b6fbc8c199 100644 --- a/packages/pluggableWidgets/image-web/package.json +++ b/packages/pluggableWidgets/image-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/image-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/vite.config.js b/packages/pluggableWidgets/image-web/vite.config.js deleted file mode 100644 index edb38a2da9..0000000000 --- a/packages/pluggableWidgets/image-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Image" }); diff --git a/packages/pluggableWidgets/language-selector-web/package.json b/packages/pluggableWidgets/language-selector-web/package.json index d0336172af..270fecb7ec 100644 --- a/packages/pluggableWidgets/language-selector-web/package.json +++ b/packages/pluggableWidgets/language-selector-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/language-selector-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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/vite.config.js b/packages/pluggableWidgets/language-selector-web/vite.config.js deleted file mode 100644 index 0c8cdc13a2..0000000000 --- a/packages/pluggableWidgets/language-selector-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "LanguageSelector" }); diff --git a/packages/pluggableWidgets/line-chart-web/package.json b/packages/pluggableWidgets/line-chart-web/package.json index a4c2b3a989..5ab841ea30 100644 --- a/packages/pluggableWidgets/line-chart-web/package.json +++ b/packages/pluggableWidgets/line-chart-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/line-chart-web", "build": "pluggable-widgets-tools build:ts", - "build:vite": "vite build --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -36,6 +36,7 @@ "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/line-chart-web/vite.config.js b/packages/pluggableWidgets/line-chart-web/vite.config.js deleted file mode 100644 index ec7520f481..0000000000 --- a/packages/pluggableWidgets/line-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "LineChart" }); diff --git a/packages/pluggableWidgets/maps-web/package.json b/packages/pluggableWidgets/maps-web/package.json index 89b23648a5..07151dbb6c 100644 --- a/packages/pluggableWidgets/maps-web/package.json +++ b/packages/pluggableWidgets/maps-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/maps-web/vite.config.js b/packages/pluggableWidgets/maps-web/vite.config.js deleted file mode 100644 index 77e8259bce..0000000000 --- a/packages/pluggableWidgets/maps-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Maps", runtimeDirectoryName: "Maps" }); diff --git a/packages/pluggableWidgets/markdown-web/package.json b/packages/pluggableWidgets/markdown-web/package.json index a86f8f5151..78bf5a3cce 100644 --- a/packages/pluggableWidgets/markdown-web/package.json +++ b/packages/pluggableWidgets/markdown-web/package.json @@ -30,7 +30,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/markdown-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -40,6 +40,7 @@ "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/markdown-web/vite.config.js b/packages/pluggableWidgets/markdown-web/vite.config.js deleted file mode 100644 index 6859451b67..0000000000 --- a/packages/pluggableWidgets/markdown-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Markdown" }); diff --git a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json index 5fb8e28faa..a32036c3e2 100644 --- a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json +++ b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -36,6 +36,7 @@ "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/pie-doughnut-chart-web/vite.config.js b/packages/pluggableWidgets/pie-doughnut-chart-web/vite.config.js deleted file mode 100644 index ac46c5e04b..0000000000 --- a/packages/pluggableWidgets/pie-doughnut-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "PieChart" }); diff --git a/packages/pluggableWidgets/popup-menu-web/package.json b/packages/pluggableWidgets/popup-menu-web/package.json index 8cd965af0e..592254d8ad 100644 --- a/packages/pluggableWidgets/popup-menu-web/package.json +++ b/packages/pluggableWidgets/popup-menu-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/popup-menu-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/popup-menu-web/vite.config.js b/packages/pluggableWidgets/popup-menu-web/vite.config.js deleted file mode 100644 index 738cb380e3..0000000000 --- a/packages/pluggableWidgets/popup-menu-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "PopupMenu" }); diff --git a/packages/pluggableWidgets/progress-bar-web/package.json b/packages/pluggableWidgets/progress-bar-web/package.json index d163d79a4c..7947127aba 100644 --- a/packages/pluggableWidgets/progress-bar-web/package.json +++ b/packages/pluggableWidgets/progress-bar-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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-bar-web/vite.config.js b/packages/pluggableWidgets/progress-bar-web/vite.config.js deleted file mode 100644 index f4dfa5a035..0000000000 --- a/packages/pluggableWidgets/progress-bar-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "ProgressBar" }); diff --git a/packages/pluggableWidgets/progress-circle-web/package.json b/packages/pluggableWidgets/progress-circle-web/package.json index 85c610f4ba..f1b7263745 100644 --- a/packages/pluggableWidgets/progress-circle-web/package.json +++ b/packages/pluggableWidgets/progress-circle-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/progress-circle-web/vite.config.js b/packages/pluggableWidgets/progress-circle-web/vite.config.js deleted file mode 100644 index f8b1c5657a..0000000000 --- a/packages/pluggableWidgets/progress-circle-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "ProgressCircle" }); diff --git a/packages/pluggableWidgets/range-slider-web/package.json b/packages/pluggableWidgets/range-slider-web/package.json index ee9a94722c..ef2c2112ed 100644 --- a/packages/pluggableWidgets/range-slider-web/package.json +++ b/packages/pluggableWidgets/range-slider-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/vite.config.js b/packages/pluggableWidgets/range-slider-web/vite.config.js deleted file mode 100644 index 39808f91fd..0000000000 --- a/packages/pluggableWidgets/range-slider-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "RangeSlider", runtimeDirectoryName: "RangeSlider" }); diff --git a/packages/pluggableWidgets/rating-web/package.json b/packages/pluggableWidgets/rating-web/package.json index 50fa22c4e3..b263f9fcc0 100644 --- a/packages/pluggableWidgets/rating-web/package.json +++ b/packages/pluggableWidgets/rating-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/rating-web/vite.config.js b/packages/pluggableWidgets/rating-web/vite.config.js deleted file mode 100644 index 3abf1509dd..0000000000 --- a/packages/pluggableWidgets/rating-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "StarRating" }); diff --git a/packages/pluggableWidgets/rich-text-web/package.json b/packages/pluggableWidgets/rich-text-web/package.json index badd3fe3ab..3245e10f79 100644 --- a/packages/pluggableWidgets/rich-text-web/package.json +++ b/packages/pluggableWidgets/rich-text-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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", diff --git a/packages/pluggableWidgets/rich-text-web/vite.config.js b/packages/pluggableWidgets/rich-text-web/vite.config.js deleted file mode 100644 index b64ee75dcc..0000000000 --- a/packages/pluggableWidgets/rich-text-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "RichText" }); diff --git a/packages/pluggableWidgets/selection-helper-web/package.json b/packages/pluggableWidgets/selection-helper-web/package.json index fd1ef95170..4272361855 100644 --- a/packages/pluggableWidgets/selection-helper-web/package.json +++ b/packages/pluggableWidgets/selection-helper-web/package.json @@ -28,12 +28,13 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/selection-helper-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", "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/selection-helper-web/vite.config.js b/packages/pluggableWidgets/selection-helper-web/vite.config.js deleted file mode 100644 index 2cd0935544..0000000000 --- a/packages/pluggableWidgets/selection-helper-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "SelectionHelper" }); diff --git a/packages/pluggableWidgets/skiplink-web/package.json b/packages/pluggableWidgets/skiplink-web/package.json index c92b61ad0a..8926a2f96c 100644 --- a/packages/pluggableWidgets/skiplink-web/package.json +++ b/packages/pluggableWidgets/skiplink-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/skiplink-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/skiplink-web/vite.config.js b/packages/pluggableWidgets/skiplink-web/vite.config.js deleted file mode 100644 index 5aafddad0b..0000000000 --- a/packages/pluggableWidgets/skiplink-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "SkipLink" }); diff --git a/packages/pluggableWidgets/slider-web/package.json b/packages/pluggableWidgets/slider-web/package.json index c8329cbd6e..b433310ceb 100644 --- a/packages/pluggableWidgets/slider-web/package.json +++ b/packages/pluggableWidgets/slider-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/slider-web/vite.config.js b/packages/pluggableWidgets/slider-web/vite.config.js deleted file mode 100644 index 3540a51c0a..0000000000 --- a/packages/pluggableWidgets/slider-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Slider" }); diff --git a/packages/pluggableWidgets/switch-web/package.json b/packages/pluggableWidgets/switch-web/package.json index e1cf28f8b5..887d1184e7 100644 --- a/packages/pluggableWidgets/switch-web/package.json +++ b/packages/pluggableWidgets/switch-web/package.json @@ -29,7 +29,7 @@ "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 --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/switch-web/vite.config.js b/packages/pluggableWidgets/switch-web/vite.config.js deleted file mode 100644 index e7bbb7a70c..0000000000 --- a/packages/pluggableWidgets/switch-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Switch" }); diff --git a/packages/pluggableWidgets/time-series-chart-web/package.json b/packages/pluggableWidgets/time-series-chart-web/package.json index 0f8c095333..3e2d4b552d 100644 --- a/packages/pluggableWidgets/time-series-chart-web/package.json +++ b/packages/pluggableWidgets/time-series-chart-web/package.json @@ -28,7 +28,7 @@ "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 --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -36,6 +36,7 @@ "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/time-series-chart-web/vite.config.js b/packages/pluggableWidgets/time-series-chart-web/vite.config.js deleted file mode 100644 index c412573863..0000000000 --- a/packages/pluggableWidgets/time-series-chart-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "TimeSeries" }); diff --git a/packages/pluggableWidgets/timeline-web/package.json b/packages/pluggableWidgets/timeline-web/package.json index c05e36496f..e21541b53e 100644 --- a/packages/pluggableWidgets/timeline-web/package.json +++ b/packages/pluggableWidgets/timeline-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/timeline-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -38,6 +38,7 @@ "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/timeline-web/vite.config.js b/packages/pluggableWidgets/timeline-web/vite.config.js deleted file mode 100644 index 970e93c071..0000000000 --- a/packages/pluggableWidgets/timeline-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Timeline" }); diff --git a/packages/pluggableWidgets/tooltip-web/package.json b/packages/pluggableWidgets/tooltip-web/package.json index 920223e867..db8d13cff3 100644 --- a/packages/pluggableWidgets/tooltip-web/package.json +++ b/packages/pluggableWidgets/tooltip-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/tooltip-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/tooltip-web/vite.config.js b/packages/pluggableWidgets/tooltip-web/vite.config.js deleted file mode 100644 index 52df01dbff..0000000000 --- a/packages/pluggableWidgets/tooltip-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "Tooltip" }); diff --git a/packages/pluggableWidgets/tree-node-web/package.json b/packages/pluggableWidgets/tree-node-web/package.json index 91e5788993..3797ec718d 100644 --- a/packages/pluggableWidgets/tree-node-web/package.json +++ b/packages/pluggableWidgets/tree-node-web/package.json @@ -28,7 +28,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/tree-node-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", "e2e": "run-e2e ci", @@ -37,6 +37,7 @@ "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/tree-node-web/vite.config.js b/packages/pluggableWidgets/tree-node-web/vite.config.js deleted file mode 100644 index 1cddb29910..0000000000 --- a/packages/pluggableWidgets/tree-node-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "TreeNode" }); diff --git a/packages/pluggableWidgets/video-player-web/package.json b/packages/pluggableWidgets/video-player-web/package.json index 7a5aee8841..409dc6dbb9 100644 --- a/packages/pluggableWidgets/video-player-web/package.json +++ b/packages/pluggableWidgets/video-player-web/package.json @@ -29,7 +29,7 @@ "scripts": { "benchmark:vite": "node ../../shared/vite-web-widgets/benchmark.js @mendix/video-player-web", "build": "pluggable-widgets-tools build:web", - "build:vite": "vite build --config vite.config.js", + "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", @@ -39,6 +39,7 @@ "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/video-player-web/vite.config.js b/packages/pluggableWidgets/video-player-web/vite.config.js deleted file mode 100644 index 0cf834ce9f..0000000000 --- a/packages/pluggableWidgets/video-player-web/vite.config.js +++ /dev/null @@ -1,3 +0,0 @@ -import createWidgetViteConfig from "@mendix/vite-web-widgets/vite.config"; - -export default createWidgetViteConfig({ widgetName: "VideoPlayer" }); From ce2b56cc5cb23da239257d448c1d58e084d33782 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Mon, 9 Mar 2026 13:00:00 +0100 Subject: [PATCH 17/21] refactor(vite-web-widgets): split shared vite config into domain modules extract config creation/resolution into config/* extract mpk/editor build steps into build/* extract package/json helpers into helpers/* centralize shared types in types.ts keep both direct CLI and programmatic createWidgetViteConfig compatibility update README to document module layout and usage modes --- packages/shared/vite-web-widgets/README.md | 102 +++++- .../build/editor-artifacts.ts | 39 ++ packages/shared/vite-web-widgets/build/mpk.ts | 70 ++++ .../shared/vite-web-widgets/config/create.ts | 56 +++ .../shared/vite-web-widgets/config/infer.ts | 75 ++++ .../shared/vite-web-widgets/config/resolve.ts | 67 ++++ .../vite-web-widgets/helpers/package-json.ts | 28 ++ packages/shared/vite-web-widgets/types.ts | 46 +++ .../shared/vite-web-widgets/vite.config.ts | 332 +----------------- 9 files changed, 488 insertions(+), 327 deletions(-) create mode 100644 packages/shared/vite-web-widgets/build/editor-artifacts.ts create mode 100644 packages/shared/vite-web-widgets/build/mpk.ts create mode 100644 packages/shared/vite-web-widgets/config/create.ts create mode 100644 packages/shared/vite-web-widgets/config/infer.ts create mode 100644 packages/shared/vite-web-widgets/config/resolve.ts create mode 100644 packages/shared/vite-web-widgets/helpers/package-json.ts create mode 100644 packages/shared/vite-web-widgets/types.ts diff --git a/packages/shared/vite-web-widgets/README.md b/packages/shared/vite-web-widgets/README.md index 6c1b75d361..94271997e2 100644 --- a/packages/shared/vite-web-widgets/README.md +++ b/packages/shared/vite-web-widgets/README.md @@ -10,14 +10,110 @@ web widgets with **Vite** (and optionally `rolldown`). ## Contents -- `vite.config.ts` – function that returns a baseline Vite config for a widget. +- `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. - To test this locally, pick a widget package and add the following script: + +## 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 --config ../../shared/vite-web-widgets/vite.config.ts" + "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" } ``` 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..697e5b6f31 --- /dev/null +++ b/packages/shared/vite-web-widgets/build/mpk.ts @@ -0,0 +1,70 @@ +import Archiver from "archiver"; +import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; +import { cp } from "fs/promises"; +import { 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, file.dest.split("/").slice(0, -1).join("/")), { 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); + } + } + + 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("close", () => { + console.log(`Created ${mpkPath} (${archive.pointer()} bytes)`); + resolvePromise(); + }); + + archive.on("error", reject); + archive.pipe(output); + archive.directory(stagingDir, false); + archive.finalize(); + }); +} 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..64751b40b7 --- /dev/null +++ b/packages/shared/vite-web-widgets/config/create.ts @@ -0,0 +1,56 @@ +import type { ConfigEnv, UserConfig } from "vite"; +import type { WidgetViteConfigOptions } from "../types"; +import { buildEditorArtifacts } from "../build/editor-artifacts"; +import { createMPK } 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..."); + await createMPK(resolvedConfig); + } + } + ] + }; +} 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/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 index 13a0cef8dc..ef65076dbd 100644 --- a/packages/shared/vite-web-widgets/vite.config.ts +++ b/packages/shared/vite-web-widgets/vite.config.ts @@ -1,327 +1,11 @@ -import Archiver from "archiver"; -import { copyFileSync, createWriteStream, existsSync, mkdirSync, readFileSync, rmSync } from "fs"; -import { cp } from "fs/promises"; -import { join, resolve } from "path"; -import { build as viteBuild, defineConfig, type UserConfig } from "vite"; +import { defineConfig, type ConfigEnv } from "vite"; +import { createConfig } from "./config/create"; +import type { WidgetViteConfigOptions } from "./types"; -type EditorBuild = { - entry: string; - outputFile: string; - externals: Array; - format?: "cjs" | "es"; -}; - -type RuntimeOutput = { - format: "cjs" | "es" | "amd"; - entryFileName: string; -}; - -type FileCopy = { - src: string; - dest: string; -}; - -type WidgetPackageJson = { - name: string; - version: string; - packagePath: string; - mxpackage?: { - mpkName?: string; - }; -}; - -type WidgetViteConfigOptions = { - widgetName: string; - runtimeDirectoryName?: string; -}; - -function getResolveAlias(): { find: RegExp; replacement: string }[] { - return [ - { - find: /^~(.+)/, - replacement: "$1" - }, - { - find: /^src\//, - replacement: `${resolve(process.cwd(), "src")}/` - } - ]; -} - -async function copyDir(src: string, dest: string): Promise { - mkdirSync(dest, { recursive: true }); - if (existsSync(src)) { - await cp(src, dest, { recursive: true, force: true }); - } -} - -async function buildEditorArtifacts(editorBuilds: EditorBuild[]): Promise { - const editorOutDir = "dist/tmp/widgets"; - const alias = getResolveAlias(); - - for (const editorBuild of editorBuilds) { - await viteBuild({ - configFile: false, - resolve: { - alias - }, - build: { - target: "es2019", - minify: "esbuild", - 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 - } - } - } - }); - } -} - -function readWidgetPackageJson(): WidgetPackageJson { - const packageJsonPath = resolve(process.cwd(), "package.json"); - const packageJsonText = readFileSync(packageJsonPath, "utf-8"); - return JSON.parse(packageJsonText) as WidgetPackageJson; -} - -function toPackagePathDir(packagePath: string): string { - return packagePath.replace(/\./g, "/"); -} - -function inferPrimaryRuntimeFormat(): "cjs" | "amd" { - if (process.env.VITE_RUNTIME_FORMAT === "cjs") { - return "cjs"; - } - - return "amd"; -} - -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" } - ]; -} - -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` - ]; -} - -function inferRuntimeOutDir(packagePath: string, runtimeDirectoryName: string): string { - const packagePathDir = toPackagePathDir(packagePath); - return `dist/tmp/widgets/${packagePathDir}/${runtimeDirectoryName}`; +export function createWidgetViteConfig(options: WidgetViteConfigOptions = {}) { + return defineConfig((env: ConfigEnv) => createConfig(options, env)); } -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; -} - -function inferRemoveBeforeCopy(packageName: string): string[] { - const widgetPackageName = packageName.split("/").pop(); - return widgetPackageName ? [`${widgetPackageName}.css`] : []; -} - -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; -}; - -function resolveConfig(options: WidgetViteConfigOptions): ResolvedConfig { - const widgetPackageJson = readWidgetPackageJson(); - const primaryRuntimeFormat = inferPrimaryRuntimeFormat(); - const editorBuilds = inferEditorBuilds(options.widgetName); - const runtimeDirectoryName = options.runtimeDirectoryName ?? options.widgetName.toLowerCase(); - - return { - widgetName: options.widgetName, - widgetVersion: widgetPackageJson.version, - mpkName: widgetPackageJson.mxpackage?.mpkName ?? `${options.widgetName}.mpk`, - runtimeEntry: `src/${options.widgetName}.tsx`, - runtimeOutDir: inferRuntimeOutDir(widgetPackageJson.packagePath, runtimeDirectoryName), - runtimeOutputs: [ - { - format: primaryRuntimeFormat, - entryFileName: `${options.widgetName}.js` - }, - { - format: "es", - entryFileName: `${options.widgetName}.mjs` - } - ], - runtimeExternals: ["react", "react-dom", "@mendix/widget-plugin-component-kit", "big.js", /^mendix($|\/)/], - metadataFiles: inferMetadataFiles(options.widgetName), - editorBuilds, - requiredArtifacts: inferRequiredArtifacts( - options.widgetName, - widgetPackageJson.packagePath, - runtimeDirectoryName, - editorBuilds - ), - removeBeforeCopy: inferRemoveBeforeCopy(widgetPackageJson.name), - define: { - "process.env.NODE_ENV": JSON.stringify("production") - } - }; -} - -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, file.dest.split("/").slice(0, -1).join("/")), { 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); - } - } - - 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("close", () => { - console.log(`✓ Created ${mpkPath} (${archive.pointer()} bytes)`); - resolvePromise(); - }); - - archive.on("error", reject); - archive.pipe(output); - archive.directory(stagingDir, false); - archive.finalize(); - }); -} - -export default function createWidgetViteConfig(options: WidgetViteConfigOptions): UserConfig { - const resolvedConfig = resolveConfig(options); - const alias = getResolveAlias(); - - return defineConfig({ - define: resolvedConfig.define, - resolve: { - alias - }, - build: { - target: "es2019", - minify: "esbuild", - 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); - } - - console.log("Building MPK..."); - await createMPK(resolvedConfig); - } - } - ] - }); -} +// Default export supports direct CLI usage: +// `vite build --config ../../shared/vite-web-widgets/vite.config.ts` +export default defineConfig((env: ConfigEnv) => createConfig({}, env)); From dddd6d4784626c69d5bd4b493912b829dfa4d4d1 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Mon, 9 Mar 2026 13:48:23 +0100 Subject: [PATCH 18/21] feat(vite-web-widgets): deploy built MPK to MX project widgets folder --- packages/shared/vite-web-widgets/build/mpk.ts | 24 ++++++++++++++++++- .../shared/vite-web-widgets/config/create.ts | 5 ++-- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/packages/shared/vite-web-widgets/build/mpk.ts b/packages/shared/vite-web-widgets/build/mpk.ts index 697e5b6f31..09476162ed 100644 --- a/packages/shared/vite-web-widgets/build/mpk.ts +++ b/packages/shared/vite-web-widgets/build/mpk.ts @@ -11,7 +11,7 @@ async function copyDir(src: string, dest: string): Promise { } } -export async function createMPK(options: ResolvedConfig): Promise { +export async function createMPK(options: ResolvedConfig): Promise { const distPath = resolve(process.cwd(), "dist"); const tmpWidgetsPath = join(distPath, "tmp", "widgets"); const stagingDir = join(distPath, "widgets"); @@ -67,4 +67,26 @@ export async function createMPK(options: ResolvedConfig): Promise { 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 = mpkPath.split("/").pop(); + + 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 index 64751b40b7..0f9265d539 100644 --- a/packages/shared/vite-web-widgets/config/create.ts +++ b/packages/shared/vite-web-widgets/config/create.ts @@ -1,7 +1,7 @@ import type { ConfigEnv, UserConfig } from "vite"; import type { WidgetViteConfigOptions } from "../types"; import { buildEditorArtifacts } from "../build/editor-artifacts"; -import { createMPK } from "../build/mpk"; +import { createMPK, deployMPKToMxProject } from "../build/mpk"; import { getResolveAlias, isBuildDev, resolveConfig } from "./resolve"; export function createConfig(options: WidgetViteConfigOptions, env: ConfigEnv): UserConfig { @@ -48,7 +48,8 @@ export function createConfig(options: WidgetViteConfigOptions, env: ConfigEnv): } console.log("Building MPK..."); - await createMPK(resolvedConfig); + const mpkPath = await createMPK(resolvedConfig); + await deployMPKToMxProject(mpkPath); } } ] From 7b5b7dfe29ee3a998953a774a491f4e1df546319 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Mon, 9 Mar 2026 13:49:21 +0100 Subject: [PATCH 19/21] chore(vite): add dev:vite watch script to pluggable widget packages --- packages/pluggableWidgets/accessibility-helper-web/package.json | 1 + packages/pluggableWidgets/accordion-web/package.json | 1 + packages/pluggableWidgets/area-chart-web/package.json | 1 + packages/pluggableWidgets/badge-button-web/package.json | 1 + packages/pluggableWidgets/badge-web/package.json | 1 + packages/pluggableWidgets/bar-chart-web/package.json | 1 + packages/pluggableWidgets/barcode-generator-web/package.json | 1 + packages/pluggableWidgets/barcode-scanner-web/package.json | 1 + packages/pluggableWidgets/bubble-chart-web/package.json | 1 + packages/pluggableWidgets/calendar-web/package.json | 1 + packages/pluggableWidgets/carousel-web/package.json | 1 + packages/pluggableWidgets/chart-playground-web/package.json | 1 + .../pluggableWidgets/checkbox-radio-selection-web/package.json | 1 + packages/pluggableWidgets/color-picker-web/package.json | 1 + packages/pluggableWidgets/column-chart-web/package.json | 1 + packages/pluggableWidgets/combobox-web/package.json | 1 + packages/pluggableWidgets/custom-chart-web/package.json | 1 + packages/pluggableWidgets/datagrid-date-filter-web/package.json | 1 + .../pluggableWidgets/datagrid-dropdown-filter-web/package.json | 1 + .../pluggableWidgets/datagrid-number-filter-web/package.json | 1 + packages/pluggableWidgets/datagrid-text-filter-web/package.json | 1 + packages/pluggableWidgets/datagrid-web/package.json | 1 + packages/pluggableWidgets/document-viewer-web/package.json | 1 + packages/pluggableWidgets/dropdown-sort-web/package.json | 1 + packages/pluggableWidgets/events-web/package.json | 1 + packages/pluggableWidgets/fieldset-web/package.json | 1 + packages/pluggableWidgets/file-uploader-web/package.json | 1 + packages/pluggableWidgets/gallery-web/package.json | 1 + packages/pluggableWidgets/google-tag-web/package.json | 1 + packages/pluggableWidgets/heatmap-chart-web/package.json | 1 + packages/pluggableWidgets/html-element-web/package.json | 1 + packages/pluggableWidgets/image-web/package.json | 1 + packages/pluggableWidgets/language-selector-web/package.json | 1 + packages/pluggableWidgets/line-chart-web/package.json | 1 + packages/pluggableWidgets/maps-web/package.json | 1 + packages/pluggableWidgets/markdown-web/package.json | 1 + packages/pluggableWidgets/pie-doughnut-chart-web/package.json | 1 + packages/pluggableWidgets/popup-menu-web/package.json | 1 + packages/pluggableWidgets/progress-bar-web/package.json | 1 + packages/pluggableWidgets/progress-circle-web/package.json | 1 + packages/pluggableWidgets/range-slider-web/package.json | 1 + packages/pluggableWidgets/rating-web/package.json | 1 + packages/pluggableWidgets/rich-text-web/package.json | 1 + packages/pluggableWidgets/selection-helper-web/package.json | 1 + packages/pluggableWidgets/skiplink-web/package.json | 1 + packages/pluggableWidgets/slider-web/package.json | 1 + packages/pluggableWidgets/switch-web/package.json | 1 + packages/pluggableWidgets/time-series-chart-web/package.json | 1 + packages/pluggableWidgets/timeline-web/package.json | 1 + packages/pluggableWidgets/tooltip-web/package.json | 1 + packages/pluggableWidgets/tree-node-web/package.json | 1 + packages/pluggableWidgets/video-player-web/package.json | 1 + 52 files changed, 52 insertions(+) diff --git a/packages/pluggableWidgets/accessibility-helper-web/package.json b/packages/pluggableWidgets/accessibility-helper-web/package.json index 32948826b4..1a9e0a499a 100644 --- a/packages/pluggableWidgets/accessibility-helper-web/package.json +++ b/packages/pluggableWidgets/accessibility-helper-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/accordion-web/package.json b/packages/pluggableWidgets/accordion-web/package.json index e76f60bde7..32bc40c093 100644 --- a/packages/pluggableWidgets/accordion-web/package.json +++ b/packages/pluggableWidgets/accordion-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/area-chart-web/package.json b/packages/pluggableWidgets/area-chart-web/package.json index 98d433554b..3807fa95e7 100644 --- a/packages/pluggableWidgets/area-chart-web/package.json +++ b/packages/pluggableWidgets/area-chart-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/badge-button-web/package.json b/packages/pluggableWidgets/badge-button-web/package.json index 164c66c0b3..fac0c881d3 100644 --- a/packages/pluggableWidgets/badge-button-web/package.json +++ b/packages/pluggableWidgets/badge-button-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/badge-web/package.json b/packages/pluggableWidgets/badge-web/package.json index 752e04ae08..431a11b630 100644 --- a/packages/pluggableWidgets/badge-web/package.json +++ b/packages/pluggableWidgets/badge-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/bar-chart-web/package.json b/packages/pluggableWidgets/bar-chart-web/package.json index 64be26472e..121c9e8d0b 100644 --- a/packages/pluggableWidgets/bar-chart-web/package.json +++ b/packages/pluggableWidgets/bar-chart-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/barcode-generator-web/package.json b/packages/pluggableWidgets/barcode-generator-web/package.json index 92d7dbd1e9..9d9a36fdbc 100644 --- a/packages/pluggableWidgets/barcode-generator-web/package.json +++ b/packages/pluggableWidgets/barcode-generator-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/barcode-scanner-web/package.json b/packages/pluggableWidgets/barcode-scanner-web/package.json index aef84d7b17..f89b5f14aa 100644 --- a/packages/pluggableWidgets/barcode-scanner-web/package.json +++ b/packages/pluggableWidgets/barcode-scanner-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/bubble-chart-web/package.json b/packages/pluggableWidgets/bubble-chart-web/package.json index 411cd65b85..1a0daa8ddc 100644 --- a/packages/pluggableWidgets/bubble-chart-web/package.json +++ b/packages/pluggableWidgets/bubble-chart-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/calendar-web/package.json b/packages/pluggableWidgets/calendar-web/package.json index 85f22ebc5a..fd8822c83e 100644 --- a/packages/pluggableWidgets/calendar-web/package.json +++ b/packages/pluggableWidgets/calendar-web/package.json @@ -32,6 +32,7 @@ "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", diff --git a/packages/pluggableWidgets/carousel-web/package.json b/packages/pluggableWidgets/carousel-web/package.json index 3a57fe3ce1..a901b2d04d 100644 --- a/packages/pluggableWidgets/carousel-web/package.json +++ b/packages/pluggableWidgets/carousel-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/chart-playground-web/package.json b/packages/pluggableWidgets/chart-playground-web/package.json index 1f61f3012c..f32b34e493 100644 --- a/packages/pluggableWidgets/chart-playground-web/package.json +++ b/packages/pluggableWidgets/chart-playground-web/package.json @@ -32,6 +32,7 @@ "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", diff --git a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json index 64a9cd1e65..95633dd56e 100644 --- a/packages/pluggableWidgets/checkbox-radio-selection-web/package.json +++ b/packages/pluggableWidgets/checkbox-radio-selection-web/package.json @@ -37,6 +37,7 @@ "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 .", diff --git a/packages/pluggableWidgets/color-picker-web/package.json b/packages/pluggableWidgets/color-picker-web/package.json index b1c22605f5..cb78a1885a 100644 --- a/packages/pluggableWidgets/color-picker-web/package.json +++ b/packages/pluggableWidgets/color-picker-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/column-chart-web/package.json b/packages/pluggableWidgets/column-chart-web/package.json index 1b10bd0459..1b8e74aa48 100644 --- a/packages/pluggableWidgets/column-chart-web/package.json +++ b/packages/pluggableWidgets/column-chart-web/package.json @@ -31,6 +31,7 @@ "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 .", diff --git a/packages/pluggableWidgets/combobox-web/package.json b/packages/pluggableWidgets/combobox-web/package.json index 40cc9203f8..8ce39049bf 100644 --- a/packages/pluggableWidgets/combobox-web/package.json +++ b/packages/pluggableWidgets/combobox-web/package.json @@ -37,6 +37,7 @@ "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 .", diff --git a/packages/pluggableWidgets/custom-chart-web/package.json b/packages/pluggableWidgets/custom-chart-web/package.json index b0e47d98be..6ea56b788d 100644 --- a/packages/pluggableWidgets/custom-chart-web/package.json +++ b/packages/pluggableWidgets/custom-chart-web/package.json @@ -34,6 +34,7 @@ "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 .", diff --git a/packages/pluggableWidgets/datagrid-date-filter-web/package.json b/packages/pluggableWidgets/datagrid-date-filter-web/package.json index 2c43a3686a..e2f9f2d17e 100644 --- a/packages/pluggableWidgets/datagrid-date-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-date-filter-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json index 2f841103b7..4f0d4a1a6b 100644 --- a/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-dropdown-filter-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/datagrid-number-filter-web/package.json b/packages/pluggableWidgets/datagrid-number-filter-web/package.json index 8f267dd82e..5d26974c46 100644 --- a/packages/pluggableWidgets/datagrid-number-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-number-filter-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/datagrid-text-filter-web/package.json b/packages/pluggableWidgets/datagrid-text-filter-web/package.json index 8fb2d71e9c..e5da3c11fb 100644 --- a/packages/pluggableWidgets/datagrid-text-filter-web/package.json +++ b/packages/pluggableWidgets/datagrid-text-filter-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/datagrid-web/package.json b/packages/pluggableWidgets/datagrid-web/package.json index 21574ebcf0..1fb3dcfe09 100644 --- a/packages/pluggableWidgets/datagrid-web/package.json +++ b/packages/pluggableWidgets/datagrid-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/document-viewer-web/package.json b/packages/pluggableWidgets/document-viewer-web/package.json index d90b7d3843..d9f3639eb0 100644 --- a/packages/pluggableWidgets/document-viewer-web/package.json +++ b/packages/pluggableWidgets/document-viewer-web/package.json @@ -36,6 +36,7 @@ "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", diff --git a/packages/pluggableWidgets/dropdown-sort-web/package.json b/packages/pluggableWidgets/dropdown-sort-web/package.json index b438f04922..09a5bbef29 100644 --- a/packages/pluggableWidgets/dropdown-sort-web/package.json +++ b/packages/pluggableWidgets/dropdown-sort-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/events-web/package.json b/packages/pluggableWidgets/events-web/package.json index 220997e6c2..3b4838a39e 100644 --- a/packages/pluggableWidgets/events-web/package.json +++ b/packages/pluggableWidgets/events-web/package.json @@ -36,6 +36,7 @@ "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 .", diff --git a/packages/pluggableWidgets/fieldset-web/package.json b/packages/pluggableWidgets/fieldset-web/package.json index d40be3d19e..5551fada5c 100644 --- a/packages/pluggableWidgets/fieldset-web/package.json +++ b/packages/pluggableWidgets/fieldset-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/file-uploader-web/package.json b/packages/pluggableWidgets/file-uploader-web/package.json index e59959740a..10fa238c40 100644 --- a/packages/pluggableWidgets/file-uploader-web/package.json +++ b/packages/pluggableWidgets/file-uploader-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/gallery-web/package.json b/packages/pluggableWidgets/gallery-web/package.json index 1732cb5fbe..c23544224e 100644 --- a/packages/pluggableWidgets/gallery-web/package.json +++ b/packages/pluggableWidgets/gallery-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/google-tag-web/package.json b/packages/pluggableWidgets/google-tag-web/package.json index 8b4a34bcc8..75ed90e17d 100644 --- a/packages/pluggableWidgets/google-tag-web/package.json +++ b/packages/pluggableWidgets/google-tag-web/package.json @@ -36,6 +36,7 @@ "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", diff --git a/packages/pluggableWidgets/heatmap-chart-web/package.json b/packages/pluggableWidgets/heatmap-chart-web/package.json index 0282f8846c..31718eb0fa 100644 --- a/packages/pluggableWidgets/heatmap-chart-web/package.json +++ b/packages/pluggableWidgets/heatmap-chart-web/package.json @@ -31,6 +31,7 @@ "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 .", diff --git a/packages/pluggableWidgets/html-element-web/package.json b/packages/pluggableWidgets/html-element-web/package.json index d4a6bcc344..ffa2484ed0 100644 --- a/packages/pluggableWidgets/html-element-web/package.json +++ b/packages/pluggableWidgets/html-element-web/package.json @@ -33,6 +33,7 @@ "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", diff --git a/packages/pluggableWidgets/image-web/package.json b/packages/pluggableWidgets/image-web/package.json index b6fbc8c199..3e88d3f160 100644 --- a/packages/pluggableWidgets/image-web/package.json +++ b/packages/pluggableWidgets/image-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/language-selector-web/package.json b/packages/pluggableWidgets/language-selector-web/package.json index 270fecb7ec..633188ebc8 100644 --- a/packages/pluggableWidgets/language-selector-web/package.json +++ b/packages/pluggableWidgets/language-selector-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/line-chart-web/package.json b/packages/pluggableWidgets/line-chart-web/package.json index 5ab841ea30..6c17353e05 100644 --- a/packages/pluggableWidgets/line-chart-web/package.json +++ b/packages/pluggableWidgets/line-chart-web/package.json @@ -31,6 +31,7 @@ "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 .", diff --git a/packages/pluggableWidgets/maps-web/package.json b/packages/pluggableWidgets/maps-web/package.json index 07151dbb6c..54a3c1dc3a 100644 --- a/packages/pluggableWidgets/maps-web/package.json +++ b/packages/pluggableWidgets/maps-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/markdown-web/package.json b/packages/pluggableWidgets/markdown-web/package.json index 78bf5a3cce..e273115e39 100644 --- a/packages/pluggableWidgets/markdown-web/package.json +++ b/packages/pluggableWidgets/markdown-web/package.json @@ -34,6 +34,7 @@ "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 .", diff --git a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json index a32036c3e2..b16546707c 100644 --- a/packages/pluggableWidgets/pie-doughnut-chart-web/package.json +++ b/packages/pluggableWidgets/pie-doughnut-chart-web/package.json @@ -31,6 +31,7 @@ "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 .", diff --git a/packages/pluggableWidgets/popup-menu-web/package.json b/packages/pluggableWidgets/popup-menu-web/package.json index 592254d8ad..b6902c1839 100644 --- a/packages/pluggableWidgets/popup-menu-web/package.json +++ b/packages/pluggableWidgets/popup-menu-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/progress-bar-web/package.json b/packages/pluggableWidgets/progress-bar-web/package.json index 7947127aba..d6f65b7466 100644 --- a/packages/pluggableWidgets/progress-bar-web/package.json +++ b/packages/pluggableWidgets/progress-bar-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/progress-circle-web/package.json b/packages/pluggableWidgets/progress-circle-web/package.json index f1b7263745..416fee334b 100644 --- a/packages/pluggableWidgets/progress-circle-web/package.json +++ b/packages/pluggableWidgets/progress-circle-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/range-slider-web/package.json b/packages/pluggableWidgets/range-slider-web/package.json index ef2c2112ed..eb61951fd4 100644 --- a/packages/pluggableWidgets/range-slider-web/package.json +++ b/packages/pluggableWidgets/range-slider-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/rating-web/package.json b/packages/pluggableWidgets/rating-web/package.json index b263f9fcc0..40b9c39495 100644 --- a/packages/pluggableWidgets/rating-web/package.json +++ b/packages/pluggableWidgets/rating-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/rich-text-web/package.json b/packages/pluggableWidgets/rich-text-web/package.json index 3245e10f79..6cd5a6f64b 100644 --- a/packages/pluggableWidgets/rich-text-web/package.json +++ b/packages/pluggableWidgets/rich-text-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/selection-helper-web/package.json b/packages/pluggableWidgets/selection-helper-web/package.json index 4272361855..b31f9e9fed 100644 --- a/packages/pluggableWidgets/selection-helper-web/package.json +++ b/packages/pluggableWidgets/selection-helper-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/skiplink-web/package.json b/packages/pluggableWidgets/skiplink-web/package.json index 8926a2f96c..a8de577ce0 100644 --- a/packages/pluggableWidgets/skiplink-web/package.json +++ b/packages/pluggableWidgets/skiplink-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/slider-web/package.json b/packages/pluggableWidgets/slider-web/package.json index b433310ceb..384b3b76d4 100644 --- a/packages/pluggableWidgets/slider-web/package.json +++ b/packages/pluggableWidgets/slider-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/switch-web/package.json b/packages/pluggableWidgets/switch-web/package.json index 887d1184e7..ade7425309 100644 --- a/packages/pluggableWidgets/switch-web/package.json +++ b/packages/pluggableWidgets/switch-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/time-series-chart-web/package.json b/packages/pluggableWidgets/time-series-chart-web/package.json index 3e2d4b552d..f0a32a4864 100644 --- a/packages/pluggableWidgets/time-series-chart-web/package.json +++ b/packages/pluggableWidgets/time-series-chart-web/package.json @@ -31,6 +31,7 @@ "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 .", diff --git a/packages/pluggableWidgets/timeline-web/package.json b/packages/pluggableWidgets/timeline-web/package.json index e21541b53e..40b3a1db1a 100644 --- a/packages/pluggableWidgets/timeline-web/package.json +++ b/packages/pluggableWidgets/timeline-web/package.json @@ -32,6 +32,7 @@ "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 .", diff --git a/packages/pluggableWidgets/tooltip-web/package.json b/packages/pluggableWidgets/tooltip-web/package.json index db8d13cff3..016b929ea0 100644 --- a/packages/pluggableWidgets/tooltip-web/package.json +++ b/packages/pluggableWidgets/tooltip-web/package.json @@ -33,6 +33,7 @@ "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 .", diff --git a/packages/pluggableWidgets/tree-node-web/package.json b/packages/pluggableWidgets/tree-node-web/package.json index 3797ec718d..4531057d1b 100644 --- a/packages/pluggableWidgets/tree-node-web/package.json +++ b/packages/pluggableWidgets/tree-node-web/package.json @@ -31,6 +31,7 @@ "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", diff --git a/packages/pluggableWidgets/video-player-web/package.json b/packages/pluggableWidgets/video-player-web/package.json index 409dc6dbb9..7d9c5eac01 100644 --- a/packages/pluggableWidgets/video-player-web/package.json +++ b/packages/pluggableWidgets/video-player-web/package.json @@ -33,6 +33,7 @@ "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 .", From 995a3abf2087d8790b8cc5b850c16a4f1db4bfc4 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Mon, 9 Mar 2026 16:02:14 +0100 Subject: [PATCH 20/21] refactor(vite-web-widgets): improve directory handling and error management in MPK creation --- packages/shared/vite-web-widgets/build/mpk.ts | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/shared/vite-web-widgets/build/mpk.ts b/packages/shared/vite-web-widgets/build/mpk.ts index 09476162ed..b94fd83e0f 100644 --- a/packages/shared/vite-web-widgets/build/mpk.ts +++ b/packages/shared/vite-web-widgets/build/mpk.ts @@ -1,7 +1,7 @@ import Archiver from "archiver"; import { copyFileSync, createWriteStream, existsSync, mkdirSync, rmSync } from "fs"; import { cp } from "fs/promises"; -import { join, resolve } from "path"; +import { basename, dirname, join, resolve } from "path"; import type { ResolvedConfig } from "../types"; async function copyDir(src: string, dest: string): Promise { @@ -27,7 +27,7 @@ export async function createMPK(options: ResolvedConfig): Promise { for (const file of options.metadataFiles) { const srcPath = resolve(process.cwd(), file.src); const destPath = join(stagingDir, file.dest); - mkdirSync(join(stagingDir, file.dest.split("/").slice(0, -1).join("/")), { recursive: true }); + mkdirSync(join(stagingDir, dirname(file.dest)), { recursive: true }); if (existsSync(srcPath)) { copyFileSync(srcPath, destPath); } @@ -43,7 +43,7 @@ export async function createMPK(options: ResolvedConfig): Promise { for (const removePath of options.removeBeforeCopy ?? []) { const absolutePath = join(tmpWidgetsPath, removePath); if (existsSync(absolutePath)) { - rmSync(absolutePath); + rmSync(absolutePath, { recursive: true, force: true }); } } @@ -57,6 +57,8 @@ export async function createMPK(options: ResolvedConfig): Promise { zlib: { level: 9 } }); + output.on("error", reject); + output.on("close", () => { console.log(`Created ${mpkPath} (${archive.pointer()} bytes)`); resolvePromise(); @@ -79,7 +81,7 @@ export async function deployMPKToMxProject(mpkPath: string): Promise { } const widgetsDir = resolve(mxProjectPath, "widgets"); - const fileName = mpkPath.split("/").pop(); + const fileName = basename(mpkPath); if (!fileName) { throw new Error(`Invalid MPK path: ${mpkPath}`); From e70d708402af767c6ece76af85a605cf1279b853 Mon Sep 17 00:00:00 2001 From: Samuel Reichert Date: Mon, 9 Mar 2026 16:02:47 +0100 Subject: [PATCH 21/21] chore(benchmark): improve code readability --- packages/shared/vite-web-widgets/benchmark.js | 71 +++++++++++++++++-- 1 file changed, 64 insertions(+), 7 deletions(-) diff --git a/packages/shared/vite-web-widgets/benchmark.js b/packages/shared/vite-web-widgets/benchmark.js index 591ce79c12..903e0a6fe7 100644 --- a/packages/shared/vite-web-widgets/benchmark.js +++ b/packages/shared/vite-web-widgets/benchmark.js @@ -1,5 +1,5 @@ #!/usr/bin/env node -const { execSync } = require("child_process"); +const { execSync, execFileSync } = require("child_process"); const { statSync, readdirSync, mkdirSync, rmSync, copyFileSync } = require("fs"); const path = require("path"); const repoRoot = path.resolve(__dirname, "../../.."); @@ -52,16 +52,72 @@ function formatDelta(oldSize, newSize) { } function formatSpeed(oldTimeMs, newTimeMs) { - if (newTimeMs <= 0) { + if (oldTimeMs <= 0 || newTimeMs <= 0) { return "n/a"; } - const ratio = oldTimeMs / newTimeMs; - const pctLessTime = oldTimeMs <= 0 ? null : ((oldTimeMs - newTimeMs) / oldTimeMs) * 100; - const ratioText = `${ratio.toFixed(2)}x faster`; - const pctText = pctLessTime === null ? "n/a" : `${pctLessTime.toFixed(2)}% less time`; + + 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()) { @@ -134,7 +190,8 @@ function main() { } console.log(`benchmarking ${pkg}`); const simpleName = pkg.replace(/^@mendix\//, ""); - const pkgDir = path.join(repoRoot, "packages/pluggableWidgets", simpleName); + 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);