diff --git a/ProcessMaker/Http/Controllers/Process/ModelerController.php b/ProcessMaker/Http/Controllers/Process/ModelerController.php index e45d183445..67ee00a72d 100644 --- a/ProcessMaker/Http/Controllers/Process/ModelerController.php +++ b/ProcessMaker/Http/Controllers/Process/ModelerController.php @@ -128,9 +128,15 @@ public function prepareModelerData( $defaultEmailNotification = $this->getDefaultEmailNotification(); + $modelerPackageScripts = array_values(array_filter( + $manager->getScriptWithParams(), + fn ($params) => !str_contains($params['src'], 'initialLoad') + )); + return [ 'process' => $process, 'manager' => $manager, + 'modelerPackageScripts' => $modelerPackageScripts, 'signalPermissions' => SignalManager::permissions($request->user()), 'autoSaveDelay' => config('versions.delay.process', 5000), 'isVersionsInstalled' => PackageHelper::isPackageInstalled('ProcessMaker\Package\Versions\PluginServiceProvider'), diff --git a/composer.json b/composer.json index ada5d40a50..526cddb10f 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,7 @@ "laravel/ui": "^4.6", "lavary/laravel-menu": "^1.8", "lcobucci/jwt": "^5.6", - "league/commonmark": "^2.9.0", + "league/commonmark": "^2.10.0", "league/flysystem-aws-s3-v3": "^3.25.1", "mateusjunges/laravel-kafka": "^2.11", "mittwald/vault-php": "^2.1", @@ -254,4 +254,4 @@ "ignore": [] } } -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index 11c8f03784..3b9ca347ac 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c997e22562116936e09802acf25e699a", + "content-hash": "d9827bc0486bccbd88d0c56d5e1d5043", "packages": [ { "name": "aws/aws-crt-php", @@ -4184,16 +4184,16 @@ }, { "name": "league/commonmark", - "version": "2.9.0", + "version": "2.10.1", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "5703d83ba3da3b2e356a5fedc848ed6d8ffb6529" + "reference": "9d489ab67a02960fd8ffe624d93f751daf95439e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/5703d83ba3da3b2e356a5fedc848ed6d8ffb6529", - "reference": "5703d83ba3da3b2e356a5fedc848ed6d8ffb6529", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/9d489ab67a02960fd8ffe624d93f751daf95439e", + "reference": "9d489ab67a02960fd8ffe624d93f751daf95439e", "shasum": "" }, "require": { @@ -4230,7 +4230,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "2.10-dev" + "dev-main": "2.11-dev" } }, "autoload": { @@ -4287,7 +4287,7 @@ "type": "tidelift" } ], - "time": "2026-08-03T13:42:31+00:00" + "time": "2026-09-07T13:44:26+00:00" }, { "name": "league/config", diff --git a/package-lock.json b/package-lock.json index 2224904e9b..855a0b8cf3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,6 +62,7 @@ "tinymce": "5.10.0", "tooltip.js": "^1.3.3", "v-tooltip": "^2.0.3", + "vite-plugin-static-copy": "^4.1.1", "vue": "^2.7.16", "vue-chartjs": "^3.5.0", "vue-color": "^2.7.1", @@ -1842,7 +1843,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2115,7 +2115,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2148,7 +2147,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2181,7 +2179,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5287,7 +5284,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5301,7 +5297,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5315,7 +5310,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5329,7 +5323,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5343,7 +5336,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5357,7 +5349,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5371,7 +5362,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5385,7 +5375,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5399,7 +5388,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5413,7 +5401,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5427,7 +5414,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5441,7 +5427,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5455,7 +5440,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5469,7 +5453,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5483,7 +5466,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5497,7 +5479,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5511,7 +5492,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5525,7 +5505,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5539,7 +5518,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5553,7 +5531,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5567,7 +5544,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5581,7 +5557,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5595,7 +5570,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5609,7 +5583,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5623,7 +5596,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -9440,15 +9412,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -9461,6 +9428,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -13798,7 +13768,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", - "dev": true + "devOptional": true }, "node_modules/import-fresh": { "version": "3.3.0", @@ -19896,7 +19866,6 @@ "version": "4.62.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", - "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.9" @@ -20050,7 +20019,7 @@ "version": "1.77.4", "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz", "integrity": "sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==", - "dev": true, + "devOptional": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -21873,7 +21842,6 @@ "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -21890,7 +21858,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -21908,7 +21875,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -22743,7 +22709,6 @@ "version": "7.3.6", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", - "dev": true, "license": "MIT", "dependencies": { "esbuild": "^0.27.0 || ^0.28.0", @@ -22825,6 +22790,40 @@ "picomatch": "^2.3.1" } }, + "node_modules/vite-plugin-static-copy": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-4.1.1.tgz", + "integrity": "sha512-GrlA8YklrAfSyxJ4M3fdQLOo9oNkp56IM9FYgX/WtEgeIFkPwhu4wzpufBCIuNKCa6Fn77FkRdYxkHqV0FwjAw==", + "license": "MIT", + "dependencies": { + "chokidar": "^3.6.0", + "p-map": "^7.0.4", + "picocolors": "^1.1.1", + "tinyglobby": "^0.2.17" + }, + "engines": { + "node": "^22.0.0 || >=24.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/sapphi-red" + }, + "peerDependencies": { + "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/vite-plugin-static-copy/node_modules/p-map": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.8.tgz", + "integrity": "sha512-MitaVsCuCFIvOLLPIU7NnfrZvS9H9h7kwMUkDo+T2pEISaJD48IV9S8iIdXB7PsvvdxyYcsSTTrr90XKsbulNw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/vite/node_modules/@esbuild/android-arm": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", @@ -22832,7 +22831,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22849,7 +22847,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22866,7 +22863,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22883,7 +22879,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22900,7 +22895,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22917,7 +22911,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22934,7 +22927,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22951,7 +22943,6 @@ "cpu": [ "arm" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22968,7 +22959,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -22985,7 +22975,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23002,7 +22991,6 @@ "cpu": [ "loong64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23019,7 +23007,6 @@ "cpu": [ "mips64el" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23036,7 +23023,6 @@ "cpu": [ "ppc64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23053,7 +23039,6 @@ "cpu": [ "riscv64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23070,7 +23055,6 @@ "cpu": [ "s390x" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23087,7 +23071,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23104,7 +23087,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23121,7 +23103,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23138,7 +23119,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23155,7 +23135,6 @@ "cpu": [ "arm64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23172,7 +23151,6 @@ "cpu": [ "ia32" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23189,7 +23167,6 @@ "cpu": [ "x64" ], - "dev": true, "license": "MIT", "optional": true, "os": [ @@ -23203,7 +23180,6 @@ "version": "0.28.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", - "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -23245,7 +23221,6 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -23263,7 +23238,6 @@ "version": "4.0.5", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -26045,7 +26019,6 @@ "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.1.tgz", "integrity": "sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==", - "dev": true, "optional": true }, "@esbuild/android-arm": { @@ -26148,7 +26121,6 @@ "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.1.tgz", "integrity": "sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==", - "dev": true, "optional": true }, "@esbuild/netbsd-x64": { @@ -26161,7 +26133,6 @@ "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.1.tgz", "integrity": "sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==", - "dev": true, "optional": true }, "@esbuild/openbsd-x64": { @@ -26174,7 +26145,6 @@ "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.1.tgz", "integrity": "sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==", - "dev": true, "optional": true }, "@esbuild/sunos-x64": { @@ -28019,175 +27989,150 @@ "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.62.2.tgz", "integrity": "sha512-6o7ZLZK+BeenkZCFNDXqpbjw9bD6nuWonvS/lwQJp7NoVVxm6p3qE7qQ5jGuBjiFsgvqjD8mZAU5oWxTmbOeOg==", - "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.62.2.tgz", "integrity": "sha512-BaH7BllCACHoH1LguOU56UItGfUWjujlO65kS9LAodViaN4bwIKd7oeW/ZHJ/4ljr/7MIiENnNy3HJ0zXv8Zkw==", - "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.62.2.tgz", "integrity": "sha512-v39RCCvj4He82I9sFmk+M1VZ0PLM9sfsLVikjfx2hYBNALhrrOR2D3JjQA6AhlaSOgcR+RzrKY7e1+bT6SUO/A==", - "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.62.2.tgz", "integrity": "sha512-yl0y2vq3S3lHeuXhEdss6TWfKW8vkujImO12tn4ZkG/4oghr09LvdYm2RElVjokTQiUvDUGXLGsYeLqUMCKpGA==", - "dev": true, "optional": true }, "@rollup/rollup-freebsd-arm64": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.62.2.tgz", "integrity": "sha512-tT4pvt4qXD+vEoezupCWi+a1F0vvDiksiHc+PxRlYTOH1I6/X4id9jPxTP+Fg+545euaFT1jJVs4CEdHZAU1vw==", - "dev": true, "optional": true }, "@rollup/rollup-freebsd-x64": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.62.2.tgz", "integrity": "sha512-6nU5F2wCW+qvCBhTn1pdIU3bzsIoF7EUwsCDRxilWGprQR6yd508YnH9+OKFCwpfS8pjZqDUmnCAr7exax0XCg==", - "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.62.2.tgz", "integrity": "sha512-n1GJHPOvpIfhi3TmrCeh6S6URt9BFCt0KQE3qvexyGCTAKpR4Lg+eWvNZEqu7epxwus/8ElT3hacYEucm49SZg==", - "dev": true, "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.62.2.tgz", "integrity": "sha512-JqgflS8wEB+UXV/vS1RpRbifGBeN4D5lz8D8oOFbFZw4vedvdOgCFAjfBmIMdW3yL10XpQQ0Ambepw6MXrhOnA==", - "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.62.2.tgz", "integrity": "sha512-wnFJkogWvN4jm/hQRF2UBaeUmk20j5+DmHvoyWii2b8HJDyvz1MF2OU/6ynXt2KR63rbZLWkFpoytpdc/yBuSA==", - "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.62.2.tgz", "integrity": "sha512-HVu2bp0zhvJ8xHEV9+UUs7S90VadmBSY3LcIMvozbPo4AuMGDWlz3ymHLHZPX4hR67TKTt8Qp5PJ5RBg/i+RMQ==", - "dev": true, "optional": true }, "@rollup/rollup-linux-loong64-gnu": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.62.2.tgz", "integrity": "sha512-mQqqAV8QaoSgr9I2fKDLY2BAVvmKjWoGiu/cSYQonsLvtqwEn1E4QYfnCOcp5zoEqNhsDYin1s6jx/VJmrxlZg==", - "dev": true, "optional": true }, "@rollup/rollup-linux-loong64-musl": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.62.2.tgz", "integrity": "sha512-IxKLoxCQ2IWi6bT2akyDUBGsOImDKB+sPp4EsTmwFQ/fMwpCKm8uLSSgP/Kx/QYUgKis6SEZ5/Nlhup0DIA0PQ==", - "dev": true, "optional": true }, "@rollup/rollup-linux-ppc64-gnu": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.62.2.tgz", "integrity": "sha512-Mk5ha2RQSgyFfmYYLkBpPnUk8D8FriBxesO1u9O75X0mHgXL1UQcH5Itl2lurWL2tj0RxV9b9tJgipac0hRY9A==", - "dev": true, "optional": true }, "@rollup/rollup-linux-ppc64-musl": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.62.2.tgz", "integrity": "sha512-CjvEnqJL/0/TQ3TXX3OPIJ/kmBellrWd4heXUmHeJlTnmwjKpSJzoehLaL6Xk0ZnMHBu9dZuFADNOrtjF4v+2w==", - "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.62.2.tgz", "integrity": "sha512-1SiZbzwdkaDURsew/tSOrooKiYy7EQGT6m8ufavAi9NEyQb/6VuIxFXAL1fqa4iZe3g4NbNk4P7J32z2tw5Mgg==", - "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-musl": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.62.2.tgz", "integrity": "sha512-nQts12zJ3NQRoE6uYljOH89v7szzLDvG2JD/vsX+vGXU8w/At1GowTZ5/7qeFQ8m7L55rpR8Okugnuo5bgjy2Q==", - "dev": true, "optional": true }, "@rollup/rollup-linux-s390x-gnu": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.62.2.tgz", "integrity": "sha512-E9/ll019jhPIJgpzfZoIkBGhcz+kKNgVWYRY0zr9srBdPPFVpvOKW8VaJKUbeK+eZXyQF9ltME+Kk6affeaPgg==", - "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.62.2.tgz", "integrity": "sha512-5BqxR/pshjey51iliyzTD5Xi3EN0aLmQ2lZ3lvefVV9c82BvrLo2/6OT55iifpWBufs6kdwWbuOKS841DrmK9A==", - "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.62.2.tgz", "integrity": "sha512-uNN83XxQrRAh/w0/pmAfibcwyb6YWt4gP+dpnQKPVJshAloQ785ii8CT8ZCIxkGg9opVsvAlGhFitSm6D1Jjpg==", - "dev": true, "optional": true }, "@rollup/rollup-openbsd-x64": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.62.2.tgz", "integrity": "sha512-srjEIxSH3LRnJN6THczDHWQplqEMFiAJrTab0msUryh9kwNpkICf3Ea6q6MN/2cZwRFUNx5w+h6Hpi4QuHS6Zg==", - "dev": true, "optional": true }, "@rollup/rollup-openharmony-arm64": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.62.2.tgz", "integrity": "sha512-8hOJnxgbyObnCm5AlRA3A931xX19xq80RjVTKgJOvEKWqJruP/Uf12IbAOaDjjEXYRewwHLfmF0YRIdK3OwKWA==", - "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.62.2.tgz", "integrity": "sha512-mmF4AY1i0hG/bLWUctUq59gtmgaSIRa3cu/A3JFRp/sCNEme2bgDEiDS22P9FbnJB8NJNF4jPJiSP5RHQpUTDg==", - "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.62.2.tgz", "integrity": "sha512-DZgkknc6jhHrk46V25vbAM0zZkyP0nSDkJB8/dRkLTxv470dOmWDqGoEJl/9A0dFfS7yE3REOwNDxpHwSLSt0Q==", - "dev": true, "optional": true }, "@rollup/rollup-win32-x64-gnu": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.62.2.tgz", "integrity": "sha512-T6xr6ucWSFto+VGajA8YH26LdpHRuP4YLHEKAtCWvJDOlnmWcDZVCI2Jmjr+IFHDlt2zRaTAKE4tfjTaWLgJBg==", - "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { "version": "4.62.2", "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.62.2.tgz", "integrity": "sha512-BfzEnDJOt9T8M989/lA37EcJgat01wLRnoi5dQf3QzOH7jzpqTAzdDbVfRljVr5r+jzKqpbHeyOfAaXxAd0PAA==", - "dev": true, "optional": true }, "@sinclair/typebox": { @@ -31149,9 +31094,9 @@ } }, "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "requires": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -34434,7 +34379,7 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.0.tgz", "integrity": "sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==", - "dev": true + "devOptional": true }, "import-fresh": { "version": "3.3.0", @@ -38834,7 +38779,6 @@ "version": "4.62.2", "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.62.2.tgz", "integrity": "sha512-RFnrW4lhXA3s3eqHDZvN654g8OTjzRfqpIRJYczCGB6HzphckVAi/Qh4tbPUbRuDi7s1Llv8g/NspLkttY3gTA==", - "dev": true, "requires": { "@rollup/rollup-android-arm-eabi": "4.62.2", "@rollup/rollup-android-arm64": "4.62.2", @@ -38935,7 +38879,7 @@ "version": "1.77.4", "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.4.tgz", "integrity": "sha512-vcF3Ckow6g939GMA4PeU7b2K/9FALXk2KF9J87txdHzXbUF9XRQRwSxcAs/fGaTnJeBFd7UoV22j3lzMLdM0Pw==", - "dev": true, + "devOptional": true, "requires": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -40324,7 +40268,6 @@ "version": "0.2.17", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", - "dev": true, "requires": { "fdir": "^6.5.0", "picomatch": "^4.0.4" @@ -40334,14 +40277,12 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "requires": {} }, "picomatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==" } } }, @@ -40946,7 +40887,6 @@ "version": "7.3.6", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.6.tgz", "integrity": "sha512-4XP60spRGjSZFf1qYH+dJIkK2znL3zQfl9KkOV9MkkRR/3Dls0dxaBsQPTloEc5BLXWPL9vsOxopxyKoMmDueg==", - "dev": true, "requires": { "esbuild": "^0.27.0 || ^0.28.0", "fdir": "^6.5.0", @@ -40961,161 +40901,138 @@ "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.1.tgz", "integrity": "sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==", - "dev": true, "optional": true }, "@esbuild/android-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.1.tgz", "integrity": "sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==", - "dev": true, "optional": true }, "@esbuild/android-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.1.tgz", "integrity": "sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==", - "dev": true, "optional": true }, "@esbuild/darwin-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.1.tgz", "integrity": "sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==", - "dev": true, "optional": true }, "@esbuild/darwin-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.1.tgz", "integrity": "sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==", - "dev": true, "optional": true }, "@esbuild/freebsd-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.1.tgz", "integrity": "sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==", - "dev": true, "optional": true }, "@esbuild/freebsd-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.1.tgz", "integrity": "sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==", - "dev": true, "optional": true }, "@esbuild/linux-arm": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.1.tgz", "integrity": "sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==", - "dev": true, "optional": true }, "@esbuild/linux-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.1.tgz", "integrity": "sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==", - "dev": true, "optional": true }, "@esbuild/linux-ia32": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.1.tgz", "integrity": "sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==", - "dev": true, "optional": true }, "@esbuild/linux-loong64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.1.tgz", "integrity": "sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==", - "dev": true, "optional": true }, "@esbuild/linux-mips64el": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.1.tgz", "integrity": "sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==", - "dev": true, "optional": true }, "@esbuild/linux-ppc64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.1.tgz", "integrity": "sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==", - "dev": true, "optional": true }, "@esbuild/linux-riscv64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.1.tgz", "integrity": "sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==", - "dev": true, "optional": true }, "@esbuild/linux-s390x": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.1.tgz", "integrity": "sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==", - "dev": true, "optional": true }, "@esbuild/linux-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.1.tgz", "integrity": "sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==", - "dev": true, "optional": true }, "@esbuild/netbsd-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.1.tgz", "integrity": "sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==", - "dev": true, "optional": true }, "@esbuild/openbsd-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.1.tgz", "integrity": "sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==", - "dev": true, "optional": true }, "@esbuild/sunos-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.1.tgz", "integrity": "sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==", - "dev": true, "optional": true }, "@esbuild/win32-arm64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.1.tgz", "integrity": "sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==", - "dev": true, "optional": true }, "@esbuild/win32-ia32": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.1.tgz", "integrity": "sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==", - "dev": true, "optional": true }, "@esbuild/win32-x64": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.1.tgz", "integrity": "sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==", - "dev": true, "optional": true }, "esbuild": { "version": "0.28.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.1.tgz", "integrity": "sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==", - "dev": true, "requires": { "@esbuild/aix-ppc64": "0.28.1", "@esbuild/android-arm": "0.28.1", @@ -41149,14 +41066,12 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, "requires": {} }, "picomatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", - "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", - "dev": true + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==" } } }, @@ -41170,6 +41085,24 @@ "picomatch": "^2.3.1" } }, + "vite-plugin-static-copy": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/vite-plugin-static-copy/-/vite-plugin-static-copy-4.1.1.tgz", + "integrity": "sha512-GrlA8YklrAfSyxJ4M3fdQLOo9oNkp56IM9FYgX/WtEgeIFkPwhu4wzpufBCIuNKCa6Fn77FkRdYxkHqV0FwjAw==", + "requires": { + "chokidar": "^3.6.0", + "p-map": "^7.0.4", + "picocolors": "^1.1.1", + "tinyglobby": "^0.2.17" + }, + "dependencies": { + "p-map": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.8.tgz", + "integrity": "sha512-MitaVsCuCFIvOLLPIU7NnfrZvS9H9h7kwMUkDo+T2pEISaJD48IV9S8iIdXB7PsvvdxyYcsSTTrr90XKsbulNw==" + } + } + }, "vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", diff --git a/package.json b/package.json index 4e42bf8a54..822258766d 100644 --- a/package.json +++ b/package.json @@ -127,6 +127,7 @@ "vuedraggable": "^2.24.3", "vuetable-2": "^1.7.5", "vuex": "^3.6.2", + "vite-plugin-static-copy": "^4.1.1", "xml-js": "^1.6.7" }, "jest": { diff --git a/resources/js/components/common/mixins/datatable.js b/resources/js/components/common/mixins/datatable.js index 356fd25b1c..45521acb4d 100644 --- a/resources/js/components/common/mixins/datatable.js +++ b/resources/js/components/common/mixins/datatable.js @@ -3,6 +3,7 @@ * pagination transformers, etc. * */ +import _ from "lodash"; import Vuetable from "vuetable-2/src/components/Vuetable"; import Pagination from "../../../components/common/Pagination"; import FilterTableBodyMixin from "../../shared/FilterTableBodyMixin"; diff --git a/resources/js/components/shared/ProjectSelect.vue b/resources/js/components/shared/ProjectSelect.vue index 94df654293..50e8c3e199 100644 --- a/resources/js/components/shared/ProjectSelect.vue +++ b/resources/js/components/shared/ProjectSelect.vue @@ -65,6 +65,7 @@ diff --git a/resources/js/processes/modeler/globals.js b/resources/js/processes/modeler/globals.js new file mode 100644 index 0000000000..e6559bc6d4 --- /dev/null +++ b/resources/js/processes/modeler/globals.js @@ -0,0 +1,13 @@ +import * as ModelerInspector from "./components/inspector/index"; +import * as SharedComponents from "../../components/shared"; +import * as ProcessesComponents from "../../processes/components"; +import * as ScreensComponents from "../../processes/screens/components"; +import * as ScriptsComponents from "../../processes/scripts/components"; +import VueFormElements from "@processmaker/vue-form-elements"; + +window.ModelerInspector = ModelerInspector; +window.SharedComponents = SharedComponents; +window.ProcessesComponents = ProcessesComponents; +window.ScreensComponents = ScreensComponents; +window.ScriptsComponents = ScriptsComponents; +window.VueFormElements = VueFormElements; diff --git a/resources/js/processes/modeler/loaderModeler.js b/resources/js/processes/modeler/loaderModeler.js index 04547433bb..7196016935 100644 --- a/resources/js/processes/modeler/loaderModeler.js +++ b/resources/js/processes/modeler/loaderModeler.js @@ -1,8 +1,6 @@ import { setupMain } from "../../next/setupMain"; import monaco from "../../next/monaco"; import modeler from "../../next/modeler"; -import "../../next/libraries/vueFormElements"; -import "../../next/libraries/modelerInspector"; import * as ScreenBuilder from "@processmaker/screen-builder"; import * as ModelerLib from "@processmaker/modeler"; import VueFormElements from "@processmaker/vue-form-elements"; @@ -28,7 +26,19 @@ window.packages = window.ProcessMaker.packages; const boot = window.temporal || {}; window.ProcessMaker.defaultEmailNotification = boot.defaultEmailNotification; -window.ProcessMaker.multiplayer = boot.multiplayer; +const multiplayer = boot.multiplayer || {}; +const multiplayerHost = multiplayer.host && multiplayer.host !== "null" ? multiplayer.host : null; +const multiplayerEnabled = Boolean( + multiplayerHost + && multiplayer.enabled + && multiplayer.enabled !== "false" + && multiplayer.enabled !== "0", +); +window.ProcessMaker.multiplayer = { + ...multiplayer, + host: multiplayerHost, + enabled: multiplayerEnabled, +}; window.ProcessMaker.PMBlockList = boot.PMBlockList; window.ProcessMaker.ExternalIntegrationsList = boot.ExternalIntegrationsList; window.ProcessMaker.modeler = boot.modeler; @@ -39,3 +49,4 @@ window.ProcessMaker.EventBus.$on("modeler-start", ({ loadXML, addWarnings, addBr addWarnings(boot.warnings || []); addBreadcrumbs(boot.breadcrumbData || []); }); + diff --git a/resources/js/processes/scripts/components/ScriptEditor.vue b/resources/js/processes/scripts/components/ScriptEditor.vue index 08060d18f8..dd60307f70 100644 --- a/resources/js/processes/scripts/components/ScriptEditor.vue +++ b/resources/js/processes/scripts/components/ScriptEditor.vue @@ -405,8 +405,7 @@ import MonacoEditor from "vue-monaco"; import _ from "lodash"; import TopMenu from "../../../components/Menu.vue"; -// eslint-disable-next-line no-unused-vars -import customFilters from "../customFilters"; +import { formatScriptBoilerplate } from "../customFilters"; import autosaveMixins from "../../../modules/autosave/mixins"; import AssetRedirectMixin from "../../../components/shared/AssetRedirectMixin"; import AiTab from "./AiTab.vue"; @@ -885,28 +884,9 @@ export default { }, loadBoilerplateTemplate() { if (this.script.code === "[]") { - switch (this.script.language) { - case "php": - case "php-nayra": - this.code = Vue.filter("php")(this.boilerPlateTemplate); - break; - case "lua": - this.code = Vue.filter("lua")(this.boilerPlateTemplate); - break; - case "javascript": - this.code = Vue.filter("javascript")(this.boilerPlateTemplate); - break; - case "csharp": - this.code = Vue.filter("csharp")(this.boilerPlateTemplate); - break; - case "java": - this.code = Vue.filter("java")(this.boilerPlateTemplate); - break; - case "python": - this.code = Vue.filter("python")(this.boilerPlateTemplate); - break; - default: - break; + const formatted = formatScriptBoilerplate(this.language, this.boilerPlateTemplate); + if (formatted !== this.boilerPlateTemplate) { + this.code = formatted; } // Save boilerplate template to avoid issues when script code is []. diff --git a/resources/js/processes/scripts/customFilters.js b/resources/js/processes/scripts/customFilters.js index 10b9b70a55..52f97b0d40 100644 --- a/resources/js/processes/scripts/customFilters.js +++ b/resources/js/processes/scripts/customFilters.js @@ -1,5 +1,4 @@ -// PHP -Vue.filter("php", (value) => { +export function phpBoilerplate(value) { value = value.split("\r"); let format = ""; const content = []; @@ -21,10 +20,9 @@ Vue.filter("php", (value) => { }); return `${content.join("\n")}\n\n\ return [];`; -}); +} -// JAVASCRIPT -Vue.filter("javascript", (value) => { +export function javascriptBoilerplate(value) { value = value.split("\r"); let format = ""; const content = []; @@ -46,10 +44,9 @@ Vue.filter("javascript", (value) => { }); return `${content.join("\n")}\n\n\ return {};`; -}); +} -// LUA -Vue.filter("lua", (value) => { +export function luaBoilerplate(value) { value = value.split("\r"); let format = ""; const content = []; @@ -71,10 +68,9 @@ Vue.filter("lua", (value) => { }); return `${content.join("\n")}\n\n\ return {};`; -}); +} -// C# -Vue.filter("csharp", (value) => { +export function csharpBoilerplate(value) { value = value.split("\r"); let format = ""; const content = []; @@ -96,10 +92,9 @@ Vue.filter("csharp", (value) => { }); return `${content.join("\n")}\n\n\ return {};`; -}); +} -// JAVA -Vue.filter("java", (value) => { +export function javaBoilerplate(value) { value = value.split("\r"); let format = ""; const content = []; @@ -121,16 +116,15 @@ Vue.filter("java", (value) => { }); return `${content.join("\n")}\n\n\ return {};`; -}); +} -// Python -Vue.filter("python", (value) => { +export function pythonBoilerplate(value) { value = value.split("\r"); let format = ""; const content = []; value.shift(); - value.forEach((line, i) => { + value.forEach((line) => { line = line.replace("{accessEnvVar}", "os.environ['ENV_VAR_NAME']"); line = line.replace("{dataVariable}", "the data variable"); line = line.replace("{configVariable}", "the config variable"); @@ -144,4 +138,19 @@ Vue.filter("python", (value) => { content.push("# output = {\"name\": user.fullname}"); return `${content.join("\n")}\n\noutput={};`; -}); +} + +const boilerplateByLanguage = { + php: phpBoilerplate, + "php-nayra": phpBoilerplate, + javascript: javascriptBoilerplate, + lua: luaBoilerplate, + csharp: csharpBoilerplate, + java: javaBoilerplate, + python: pythonBoilerplate, +}; + +export function formatScriptBoilerplate(language, template) { + const formatter = boilerplateByLanguage[language]; + return formatter ? formatter(template) : template; +} diff --git a/resources/js/tasks/components/taskPreview/TaskPreviewAssignment.vue b/resources/js/tasks/components/taskPreview/TaskPreviewAssignment.vue index dab085918e..9a4d108c0e 100644 --- a/resources/js/tasks/components/taskPreview/TaskPreviewAssignment.vue +++ b/resources/js/tasks/components/taskPreview/TaskPreviewAssignment.vue @@ -57,11 +57,10 @@ import { ref, onMounted, nextTick, computed, } from "vue"; +import _ from "lodash"; import PMDropdownSuggest from "../../../components/PMDropdownSuggest.vue"; import { getReassignUsers, updateReassignUser, updateComment } from "../../api"; -const { _ } = window; - const props = defineProps({ task: { type: Object, diff --git a/resources/js/tasks/edit.js b/resources/js/tasks/edit.js index ca26358393..0b288940e7 100644 --- a/resources/js/tasks/edit.js +++ b/resources/js/tasks/edit.js @@ -1,3 +1,5 @@ +import Vue from "vue"; +import _, { debounce } from "lodash"; import TaskSaveNotification from "./components/TaskSaveNotification.vue"; import TasksList from "./components/TasksList.vue"; import TaskSavePanel from "./components/TaskSavePanel.vue"; diff --git a/resources/js/tasks/preview.js b/resources/js/tasks/preview.js index 5b191265de..946b8fe725 100644 --- a/resources/js/tasks/preview.js +++ b/resources/js/tasks/preview.js @@ -1,3 +1,5 @@ +import Vue from "vue"; +import _, { debounce } from "lodash"; import { submitCollectionData } from "./utils/index"; const { diff --git a/resources/js/vite/bootstrap-globals.js b/resources/js/vite/bootstrap-globals.js new file mode 100644 index 0000000000..cf2927ed51 --- /dev/null +++ b/resources/js/vite/bootstrap-globals.js @@ -0,0 +1,4 @@ +import lodash from "lodash"; + +window._ = lodash; +window.debounce = lodash.debounce; diff --git a/resources/js/vite/tasks/loaderTasks.js b/resources/js/vite/tasks/loaderTasks.js index 20787250f8..f2768631fe 100644 --- a/resources/js/vite/tasks/loaderTasks.js +++ b/resources/js/vite/tasks/loaderTasks.js @@ -1,3 +1,4 @@ +import "../../../js/vite/bootstrap-globals.js"; import { setupMain } from "../../../js/next/setupMain"; import vueFormElements from "../../../js/next/libraries/vueFormElements"; import modelerInspector from "../../../js/next/libraries/modelerInspector"; diff --git a/resources/js/vite/tasks/tasks.js b/resources/js/vite/tasks/tasks.js index f49c98ef1e..e02183db29 100644 --- a/resources/js/vite/tasks/tasks.js +++ b/resources/js/vite/tasks/tasks.js @@ -1,3 +1,4 @@ +import "../../vite/bootstrap-globals.js"; import Vue from "vue"; import TasksList from "../../tasks/components/TasksList.vue"; import TasksListCounter from "../../tasks/components/TasksListCounter.vue"; diff --git a/resources/jscomposition/cases/casesMain/casesMain.js b/resources/jscomposition/cases/casesMain/casesMain.js index 0778d9dfe4..6485bf1254 100644 --- a/resources/jscomposition/cases/casesMain/casesMain.js +++ b/resources/jscomposition/cases/casesMain/casesMain.js @@ -1,3 +1,4 @@ +import "../../../js/vite/bootstrap-globals.js"; import Vue from "vue"; import VueRouter from "vue-router"; import App from "./App.vue"; diff --git a/resources/jscomposition/cases/casesMain/loaderCasesMain.js b/resources/jscomposition/cases/casesMain/loaderCasesMain.js index 35b3ef543e..b81fd9902a 100644 --- a/resources/jscomposition/cases/casesMain/loaderCasesMain.js +++ b/resources/jscomposition/cases/casesMain/loaderCasesMain.js @@ -1,3 +1,4 @@ +import "../../../js/vite/bootstrap-globals.js"; import { setupMain } from "../../../js/next/setupMain.js"; import screenBuilderNext from "../../../js/next/screenBuilder.js"; import * as ScreenBuilder from "@processmaker/screen-builder"; diff --git a/resources/views/processes/modeler/index.blade.php b/resources/views/processes/modeler/index.blade.php index 3e0312b975..b94ac1bad6 100644 --- a/resources/views/processes/modeler/index.blade.php +++ b/resources/views/processes/modeler/index.blade.php @@ -65,9 +65,13 @@ window.temporal.defaultEmailNotification = @json($defaultEmailNotification); window.temporal.multiplayer = { - broadcaster: "{{config('multiplayer.default')}}", - host: "{{config('multiplayer.url')}}", - enabled: "{{ config('multiplayer.enabled') }}", + broadcaster: @json(config('multiplayer.default')), + host: @json(config('multiplayer.url') !== 'null' ? config('multiplayer.url') : null), + enabled: @json( + filter_var(config('multiplayer.enabled'), FILTER_VALIDATE_BOOLEAN) + && config('multiplayer.url') !== 'null' + && config('multiplayer.url') + ), }; window.temporal.PMBlockList = @json($pmBlockList); window.temporal.ExternalIntegrationsList = @json($externalIntegrationsList); @@ -107,20 +111,17 @@ window.temporal.warnings = @json($process->warnings); window.temporal.tceCustomizationEnable = @json($isTceCustomization); + @vite(['resources/js/processes/modeler/globals.js']) @vite(['resources/js/processes/modeler/loaderModeler.js']) @vite(['resources/js/leave-warning.js']) @vite(['resources/js/processes/modeler/initialLoad.js']) - @foreach($manager->getScriptWithParams() as $params) - - @endforeach - @vite(['resources/js/processes/modeler/index.js']) + @foreach($modelerPackageScripts as $script) + @if(($script['type'] ?? '') === 'module') + + @else + + @endif + @endforeach + @vite(['resources/js/processes/modeler/index.js']) @yield('extra_js') @endsection diff --git a/resources/views/processes/screen-builder/screen.blade.php b/resources/views/processes/screen-builder/screen.blade.php index 042d1bae15..e5bb09f04b 100644 --- a/resources/views/processes/screen-builder/screen.blade.php +++ b/resources/views/processes/screen-builder/screen.blade.php @@ -138,12 +138,6 @@ function handleClipboardError(error) { @endforeach - @if ($type === 'FORM') - @vite(['resources/js/processes/screen-builder/typeForm.js']) - @elseif ($type === 'DISPLAY') - @vite(['resources/js/processes/screen-builder/typeDisplay.js']) - @endif - @vite(['resources/js/leave-warning.js']) @vite(['resources/js/processes/screen-builder/main.js']) @endsection diff --git a/resources/views/requests/preview.blade.php b/resources/views/requests/preview.blade.php index 29e9185e54..64fe454cfc 100644 --- a/resources/views/requests/preview.blade.php +++ b/resources/views/requests/preview.blade.php @@ -35,12 +35,6 @@ var screenBuilderScripts = @json($manager->getScripts()); @vite(['resources/js/requests/loaderRequestsPreview.js']) - - @if ($type === 'FORM') - @vite(['resources/js/processes/screen-builder/typeForm.js']) - @elseif ($type === 'DISPLAY') - @vite(['resources/js/processes/screen-builder/typeDisplay.js']) - @endif