From 4dbfb30189db89ed830b77f887d0b61bface7911 Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Thu, 9 Oct 2025 14:41:01 +0200 Subject: [PATCH 1/9] Added activateOverlay support --- README.md | 19 +- package-lock.json | 3975 +++++++++++++++++++++++++++++++++ src/instance.js | 5212 +++++++++++++++++++++++++------------------ src/pluginConfig.js | 70 + 4 files changed, 7080 insertions(+), 2196 deletions(-) create mode 100644 package-lock.json diff --git a/README.md b/README.md index edcdd93..e45825e 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A plugin that integrate with Pipelab
Author: Armaldio
Website: https://github.com/CynToolkit/construct-plugin
Addon Url: https://github.com/CynToolkit/construct-plugin
-Download Latest Version : [Version: 2.2.0](https://github.com/CynToolkit/construct-plugin/releases/latest)
+Download Latest Version : [Version: 2.3.0](https://github.com/CynToolkit/construct-plugin/releases/latest)
Made using [c3ide2-framework](https://github.com/ConstructFund/c3ide2-framework)
## Table of Contents @@ -145,6 +145,10 @@ When Download type is Around the user, the offsets are the amount of entries aro | Download scores | Download scores from a leaderboard When Download type is Regular, offset are absolute. When Download type is Around the user, the offsets are the amount of entries around the user to fetch. | Leaderboard *(string)*
Download type *(combo)*
Start *(number)*
End *(number)*
Output *(object)*
| +| Activate Steam overlay to web page (synchronous) | Activates Steam Overlay web browser directly to the specified URL (synchronous) | URL *(string)*
Mode *(combo)*
Tag *(string)*
| +| Activate Steam overlay to web page | Activates Steam Overlay web browser directly to the specified URL | URL *(string)*
Mode *(combo)*
| +| Activate Steam overlay to store (synchronous) | Activates the Steam Overlay to the Steam store page for the provided app (synchronous) | App ID *(number)*
Flag *(combo)*
Tag *(string)*
| +| Activate Steam overlay to store | Activates the Steam Overlay to the Steam store page for the provided app | App ID *(number)*
Flag *(combo)*
| --- @@ -335,6 +339,14 @@ When Download type is Around the user, the offsets are the amount of entries aro | On any "LeaderboardDownloadScore" success | Trigger when any of the "LeaderboardDownloadScore" are executed with success. | | | On "LeaderboardDownloadScore" error | Trigger when the "LeaderboardDownloadScore" failed to execute. | Tag *(string)*
| | On any "LeaderboardDownloadScore" error | Trigger when any of the "LeaderboardDownloadScore" failed to execute. | | +| On "ActivateToWebPage" success | Trigger when the "ActivateToWebPage" is executed with success. | Tag *(string)*
| +| On any "ActivateToWebPage" success | Trigger when any of the "ActivateToWebPage" are executed with success. | | +| On "ActivateToWebPage" error | Trigger when the "ActivateToWebPage" failed to execute. | Tag *(string)*
| +| On any "ActivateToWebPage" error | Trigger when any of the "ActivateToWebPage" failed to execute. | | +| On "ActivateToStore" success | Trigger when the "ActivateToStore" is executed with success. | Tag *(string)*
| +| On any "ActivateToStore" success | Trigger when any of the "ActivateToStore" are executed with success. | | +| On "ActivateToStore" error | Trigger when the "ActivateToStore" failed to execute. | Tag *(string)*
| +| On any "ActivateToStore" error | Trigger when any of the "ActivateToStore" failed to execute. | | | Is engine | Return true if the engine running the app is the one selected | Engine *(combo)*
| | Is full screen | Returns true if the window is in full screen mode. | State *(combo)*
| | Last checked path exists | Returns true if the last checked path exists. | | @@ -436,6 +448,10 @@ When Download type is Around the user, the offsets are the amount of entries aro | LeaderboardUploadScoreWithMetadataResult | The result of the "LeaderboardUploadScoreWithMetadata last call" | string | | | LeaderboardDownloadScoreError | The error of the "LeaderboardDownloadScore last call" | string | | | LeaderboardDownloadScoreResult | The result of the "LeaderboardDownloadScore last call" | string | | +| ActivateToWebPageError | The error of the "ActivateToWebPage last call" | string | | +| ActivateToWebPageResult | The result of the "ActivateToWebPage last call" | string | | +| ActivateToStoreError | The error of the "ActivateToStore last call" | string | | +| ActivateToStoreResult | The result of the "ActivateToStore last call" | string | | | ArgumentAt | Get the argument at the given index. | string | Index *(number)*
| | ArgumentCount | Get the number of arguments. | number | | | AppFolderURL | Return the URL of the folder of the current app. | string | | @@ -480,6 +496,7 @@ When Download type is Around the user, the offsets are the amount of entries aro | SteamLevel | Get the Steam level. | number | | | SteamIpCountry | Get the Steam IP country. | string | | | SteamIsRunningOnSteamDeck | Return true if the app is running on a Steam Deck. | number | | +| SteamAppId | Get the currently used Steam App ID. | number | | ## Paths **ProjectFilesFolder**: Direct path to your games's content diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..234f9a7 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3975 @@ +{ + "name": "@pipelab/construct-plugin", + "version": "2.3.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "@pipelab/construct-plugin", + "version": "2.3.0", + "license": "LICENSE.md", + "dependencies": { + "@pipelab/core": "1.4.9", + "adm-zip": "0.5.16", + "c3addon": "1.0.9", + "chokidar": "4.0.3", + "cors": "2.8.5", + "express": "4.21.2", + "inquirer": "12.4.2" + }, + "devDependencies": { + "@types/node": "24.1.0", + "c3ide2-types": "1.0.1", + "electron": "35.0.3", + "esbuild": "0.25.10", + "lefthook": "1.11.3", + "steamworks.js": "0.4.0", + "typescript": "5.8.2" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", + "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", + "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", + "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", + "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", + "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", + "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", + "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", + "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", + "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", + "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", + "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", + "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", + "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", + "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", + "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", + "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", + "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", + "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", + "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", + "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", + "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", + "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", + "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", + "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", + "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", + "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", + "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.0.tgz", + "integrity": "sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.4.tgz", + "integrity": "sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.0", + "@inquirer/core": "^10.2.2", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.18", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.18.tgz", + "integrity": "sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.2.2", + "@inquirer/type": "^3.0.8" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.2.2.tgz", + "integrity": "sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.0", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.20", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.20.tgz", + "integrity": "sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.2.2", + "@inquirer/external-editor": "^1.0.2", + "@inquirer/type": "^3.0.8" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.20", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.20.tgz", + "integrity": "sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.2.2", + "@inquirer/type": "^3.0.8", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz", + "integrity": "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==", + "license": "MIT", + "dependencies": { + "chardet": "^2.1.0", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz", + "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.4.tgz", + "integrity": "sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.2.2", + "@inquirer/type": "^3.0.8" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.20.tgz", + "integrity": "sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.2.2", + "@inquirer/type": "^3.0.8" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.20", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.20.tgz", + "integrity": "sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.0", + "@inquirer/core": "^10.2.2", + "@inquirer/type": "^3.0.8" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.8.6", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.6.tgz", + "integrity": "sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==", + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.2.4", + "@inquirer/confirm": "^5.1.18", + "@inquirer/editor": "^4.2.20", + "@inquirer/expand": "^4.0.20", + "@inquirer/input": "^4.2.4", + "@inquirer/number": "^3.0.20", + "@inquirer/password": "^4.0.20", + "@inquirer/rawlist": "^4.1.8", + "@inquirer/search": "^3.1.3", + "@inquirer/select": "^4.3.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.8.tgz", + "integrity": "sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.2.2", + "@inquirer/type": "^3.0.8", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.1.3.tgz", + "integrity": "sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.2.2", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.4.tgz", + "integrity": "sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.0", + "@inquirer/core": "^10.2.2", + "@inquirer/figures": "^1.0.13", + "@inquirer/type": "^3.0.8", + "yoctocolors-cjs": "^2.1.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz", + "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@pipelab/core": { + "version": "1.4.9", + "resolved": "https://registry.npmjs.org/@pipelab/core/-/core-1.4.9.tgz", + "integrity": "sha512-eHz2UNZrDeaTUHS5BL4Mc6c2yBWt7N7xQ2hT0gu2UnAHsWO2QL/j2SVyyaYwGY9m6Ht6jXPXBwD0cngVWVy5vQ==", + "license": "LICENSE.md" + }, + "node_modules/@puppeteer/browsers": { + "version": "2.10.10", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.10.tgz", + "integrity": "sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==", + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.2", + "tar-fs": "^3.1.0", + "yargs": "^17.7.2" + }, + "bin": { + "browsers": "lib/cjs/main-cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@puppeteer/browsers/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dev": true, + "license": "MIT", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/quickjs-emscripten": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", + "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", + "license": "MIT" + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "24.1.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", + "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", + "license": "MIT", + "dependencies": { + "undici-types": "~7.8.0" + } + }, + "node_modules/@types/prompts": { + "version": "2.4.9", + "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz", + "integrity": "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==", + "license": "MIT", + "dependencies": { + "@types/node": "*", + "kleur": "^3.0.3" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "license": "MIT", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "license": "MIT", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/adm-zip": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", + "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", + "license": "MIT", + "engines": { + "node": ">=12.0" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "license": "MIT" + }, + "node_modules/ast-types": { + "version": "0.13.4", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", + "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/b4a": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", + "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", + "license": "Apache-2.0", + "peerDependencies": { + "react-native-b4a": "*" + }, + "peerDependenciesMeta": { + "react-native-b4a": { + "optional": true + } + } + }, + "node_modules/bare-events": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.7.0.tgz", + "integrity": "sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==", + "license": "Apache-2.0" + }, + "node_modules/bare-fs": { + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.4.7.tgz", + "integrity": "sha512-huJQxUWc2d1T+6dxnC/FoYpBgEHzJp33mYZqFtQqTTPPyP9xPvmjC16VpR4wTte4ZKd5VxkFAcfDYi51iwWMcg==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-events": "^2.5.4", + "bare-path": "^3.0.0", + "bare-stream": "^2.6.4", + "bare-url": "^2.2.2", + "fast-fifo": "^1.3.2" + }, + "engines": { + "bare": ">=1.16.0" + }, + "peerDependencies": { + "bare-buffer": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + } + } + }, + "node_modules/bare-os": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", + "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", + "license": "Apache-2.0", + "optional": true, + "engines": { + "bare": ">=1.14.0" + } + }, + "node_modules/bare-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", + "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-os": "^3.0.1" + } + }, + "node_modules/bare-stream": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", + "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "streamx": "^2.21.0" + }, + "peerDependencies": { + "bare-buffer": "*", + "bare-events": "*" + }, + "peerDependenciesMeta": { + "bare-buffer": { + "optional": true + }, + "bare-events": { + "optional": true + } + } + }, + "node_modules/bare-url": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.2.2.tgz", + "integrity": "sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==", + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "bare-path": "^3.0.0" + } + }, + "node_modules/basic-ftp": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", + "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.13.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/c3addon": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/c3addon/-/c3addon-1.0.9.tgz", + "integrity": "sha512-XX002G0LJ/LeH7F7z8vNLZDzQT3XUgQEjo0rxuVjkCSMWUbPdhH5fsKdswb0flTFM69Ki48gnkoVqiu7XA0Hcg==", + "license": "MIT", + "dependencies": { + "@types/prompts": "^2.4.9", + "commander": "^13.1.0", + "prompts": "^2.4.2", + "puppeteer": "^24.1.1", + "zip-lib": "^1.0.5" + }, + "bin": { + "c3addon": "dist/cli.cjs" + } + }, + "node_modules/c3ide2-types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/c3ide2-types/-/c3ide2-types-1.0.1.tgz", + "integrity": "sha512-YfFo9yIauDGJwVCw4OeD3z/M8dauc9F/elmh0MMw1q5/la74sgt8PhAITJVN8joee39Xm3MPq+IfXwoRi1Ld2A==", + "dev": true, + "license": "ISC" + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/chardet": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", + "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", + "license": "MIT" + }, + "node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/chromium-bidi": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-9.1.0.tgz", + "integrity": "sha512-rlUzQ4WzIAWdIbY/viPShhZU2n21CxDUgazXVbw4Hu1MwaeUSEksSeM6DqPgpRjCLXRk702AVRxJxoOz0dw4OA==", + "license": "Apache-2.0", + "dependencies": { + "mitt": "^3.0.1", + "zod": "^3.24.1" + }, + "peerDependencies": { + "devtools-protocol": "*" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/commander": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", + "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "license": "MIT", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "license": "MIT" + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "license": "MIT", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "license": "MIT", + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/data-uri-to-buffer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", + "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/degenerator": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", + "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", + "license": "MIT", + "dependencies": { + "ast-types": "^0.13.4", + "escodegen": "^2.1.0", + "esprima": "^4.0.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "license": "MIT", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/devtools-protocol": { + "version": "0.0.1508733", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1508733.tgz", + "integrity": "sha512-QJ1R5gtck6nDcdM+nlsaJXcelPEI7ZxSMw1ujHpO1c4+9l+Nue5qlebi9xO1Z2MGr92bFOQTW7/rrheh5hHxDg==", + "license": "BSD-3-Clause" + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "license": "MIT" + }, + "node_modules/electron": { + "version": "35.0.3", + "resolved": "https://registry.npmjs.org/electron/-/electron-35.0.3.tgz", + "integrity": "sha512-kjQAYEWXSr2TyK19IZoF85dzFIBaYuX7Yp/C+34b5Y/jmI2z270CGie+RjmEGMMitsy0G8YJKftukhYMuWlK6g==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^22.7.7", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron/node_modules/@types/node": { + "version": "22.18.8", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.8.tgz", + "integrity": "sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/electron/node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "license": "MIT", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/esbuild": { + "version": "0.25.10", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", + "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.10", + "@esbuild/android-arm": "0.25.10", + "@esbuild/android-arm64": "0.25.10", + "@esbuild/android-x64": "0.25.10", + "@esbuild/darwin-arm64": "0.25.10", + "@esbuild/darwin-x64": "0.25.10", + "@esbuild/freebsd-arm64": "0.25.10", + "@esbuild/freebsd-x64": "0.25.10", + "@esbuild/linux-arm": "0.25.10", + "@esbuild/linux-arm64": "0.25.10", + "@esbuild/linux-ia32": "0.25.10", + "@esbuild/linux-loong64": "0.25.10", + "@esbuild/linux-mips64el": "0.25.10", + "@esbuild/linux-ppc64": "0.25.10", + "@esbuild/linux-riscv64": "0.25.10", + "@esbuild/linux-s390x": "0.25.10", + "@esbuild/linux-x64": "0.25.10", + "@esbuild/netbsd-arm64": "0.25.10", + "@esbuild/netbsd-x64": "0.25.10", + "@esbuild/openbsd-arm64": "0.25.10", + "@esbuild/openbsd-x64": "0.25.10", + "@esbuild/openharmony-arm64": "0.25.10", + "@esbuild/sunos-x64": "0.25.10", + "@esbuild/win32-arm64": "0.25.10", + "@esbuild/win32-ia32": "0.25.10", + "@esbuild/win32-x64": "0.25.10" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "license": "MIT" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", + "license": "BSD-2-Clause", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "license": "BSD-2-Clause", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/events-universal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", + "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", + "license": "Apache-2.0", + "dependencies": { + "bare-events": "^2.7.0" + } + }, + "node_modules/express": { + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.3", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.7.1", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.3.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.3", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.12", + "proxy-addr": "~2.0.7", + "qs": "6.13.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.19.0", + "serve-static": "1.16.2", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "license": "BSD-2-Clause", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "license": "MIT" + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "license": "MIT", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/finalhandler": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-uri": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", + "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", + "license": "MIT", + "dependencies": { + "basic-ftp": "^5.0.2", + "data-uri-to-buffer": "^6.0.2", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/global-agent/node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", + "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", + "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", + "license": "MIT", + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "12.4.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.4.2.tgz", + "integrity": "sha512-reyjHcwyK2LObXgTJH4T1Dpfhwu88LNPTZmg/KenmTsy3T8lN/kZT8Oo7UwwkB9q8+ss2qjjN7GV8oFAfyz9Xg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.1.7", + "@inquirer/prompts": "^7.3.2", + "@inquirer/type": "^3.0.4", + "ansi-escapes": "^4.3.2", + "mute-stream": "^2.0.0", + "run-async": "^3.0.0", + "rxjs": "^7.8.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/ip-address": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", + "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", + "license": "MIT", + "engines": { + "node": ">= 12" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "license": "MIT" + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "license": "MIT", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/lefthook": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-1.11.3.tgz", + "integrity": "sha512-HJp37y62j3j8qzAOODWuUJl4ysLwsDvCTBV6odr3jIRHR/a5e+tI14VQGIBcpK9ysqC3pGWyW5Rp9Jv1YDubyw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "lefthook": "bin/index.js" + }, + "optionalDependencies": { + "lefthook-darwin-arm64": "1.11.3", + "lefthook-darwin-x64": "1.11.3", + "lefthook-freebsd-arm64": "1.11.3", + "lefthook-freebsd-x64": "1.11.3", + "lefthook-linux-arm64": "1.11.3", + "lefthook-linux-x64": "1.11.3", + "lefthook-openbsd-arm64": "1.11.3", + "lefthook-openbsd-x64": "1.11.3", + "lefthook-windows-arm64": "1.11.3", + "lefthook-windows-x64": "1.11.3" + } + }, + "node_modules/lefthook-darwin-arm64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.11.3.tgz", + "integrity": "sha512-IYzAOf8Qwqk7q+LoRyy7kSk9vzpUZ5wb/vLzEAH/F86Vay9AUaWe1f2pzeLwFg18qEc1QNklT69h9p/uLQMojA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/lefthook-darwin-x64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-1.11.3.tgz", + "integrity": "sha512-z/Wp7UMjE1Vyl+x9sjN3NvN6qKdwgHl+cDf98MKKDg/WyPE5XnzqLm9rLLJgImjyClfH7ptTfZxEyhTG3M3XvQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/lefthook-freebsd-arm64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.11.3.tgz", + "integrity": "sha512-QevwQ7lrv5wBCkk7LLTzT5KR3Bk/5nttSxT1UH2o0EsgirS/c2K5xSgQmV6m3CiZYuCe2Pja4BSIwN3zt17SMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/lefthook-freebsd-x64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.11.3.tgz", + "integrity": "sha512-PYbcyNgdJJ4J2pEO9Ss4oYo5yq4vmQGTKm3RTYbRx4viSWR65hvKCP0C4LnIqspMvmR05SJi2bqe7UBP2t60EA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/lefthook-linux-arm64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-1.11.3.tgz", + "integrity": "sha512-0pBMBAoafOAEg345eOPozsmRjWR0zCr6k+m5ZxwRBZbZx1bQFDqBakQ3TpFCphhcykmgFyaa1KeZJZUOrEsezA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/lefthook-linux-x64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-1.11.3.tgz", + "integrity": "sha512-eiezheZ/bisBCMB2Ur0mctug/RDFyu39B5wzoE8y4z0W1yw6jHGrWMJ4Y8+5qKZ7fmdZg+7YPuMHZ2eFxOnhQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/lefthook-openbsd-arm64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-1.11.3.tgz", + "integrity": "sha512-DRLTzXdtCj/TizpLcGSqXcnrqvgxeXgn/6nqzclIGqNdKCsNXDzpI0D3sP13Vwwmyoqv2etoTak2IHqZiXZDqg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/lefthook-openbsd-x64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-1.11.3.tgz", + "integrity": "sha512-l7om+ZjWpYrVZyDuElwnucZhEqa7YfwlRaKBenkBxEh2zMje8O6Zodeuma1KmyDbSFvnvEjARo/Ejiot4gLXEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/lefthook-windows-arm64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-1.11.3.tgz", + "integrity": "sha512-X0iTrql2gfPAkU2dzRwuHWgW5RcqCPbzJtKQ41X6Y/F7iQacRknmuYUGyC81funSvzGAsvlusMVLUvaFjIKnbA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/lefthook-windows-x64": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-1.11.3.tgz", + "integrity": "sha512-F+ORMn6YJXoS0EXU5LtN1FgV4QX9rC9LucZEkRmK6sKmS7hcb9IHpyb7siRGytArYzJvXVjPbxPBNSBdN4egZQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/netmask": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", + "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "license": "MIT", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/pac-proxy-agent": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", + "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", + "license": "MIT", + "dependencies": { + "@tootallnate/quickjs-emscripten": "^0.23.0", + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "get-uri": "^6.0.1", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.6", + "pac-resolver": "^7.0.1", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/pac-resolver": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", + "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", + "license": "MIT", + "dependencies": { + "degenerator": "^5.0.0", + "netmask": "^2.0.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "license": "MIT" + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "license": "MIT", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-agent": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", + "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "http-proxy-agent": "^7.0.1", + "https-proxy-agent": "^7.0.6", + "lru-cache": "^7.14.1", + "pac-proxy-agent": "^7.1.0", + "proxy-from-env": "^1.1.0", + "socks-proxy-agent": "^8.0.5" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/puppeteer": { + "version": "24.23.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.23.0.tgz", + "integrity": "sha512-BVR1Lg8sJGKXY79JARdIssFWK2F6e1j+RyuJP66w4CUmpaXjENicmA3nNpUXA8lcTdDjAndtP+oNdni3T/qQqA==", + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.10.10", + "chromium-bidi": "9.1.0", + "cosmiconfig": "^9.0.0", + "devtools-protocol": "0.0.1508733", + "puppeteer-core": "24.23.0", + "typed-query-selector": "^2.12.0" + }, + "bin": { + "puppeteer": "lib/cjs/puppeteer/node/cli.js" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/puppeteer-core": { + "version": "24.23.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.23.0.tgz", + "integrity": "sha512-yl25C59gb14sOdIiSnJ08XiPP+O2RjuyZmEG+RjYmCXO7au0jcLf7fRiyii96dXGUBW7Zwei/mVKfxMx/POeFw==", + "license": "Apache-2.0", + "dependencies": { + "@puppeteer/browsers": "2.10.10", + "chromium-bidi": "9.1.0", + "debug": "^4.4.3", + "devtools-protocol": "0.0.1508733", + "typed-query-selector": "^2.12.0", + "webdriver-bidi-protocol": "0.3.6", + "ws": "^8.18.3" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/qs": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "license": "BSD-3-Clause", + "dependencies": { + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", + "dev": true, + "license": "MIT" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/run-async": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", + "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "license": "MIT", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serialize-error/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serve-static": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", + "license": "MIT", + "dependencies": { + "encodeurl": "~2.0.0", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "license": "ISC" + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "license": "MIT" + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "license": "MIT", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks": { + "version": "2.8.7", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", + "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", + "license": "MIT", + "dependencies": { + "ip-address": "^10.0.1", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks-proxy-agent": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", + "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "^4.3.4", + "socks": "^2.8.3" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/steamworks.js": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/steamworks.js/-/steamworks.js-0.4.0.tgz", + "integrity": "sha512-O5TTRs7ucCRql4IA/kYUIQYeghTsXqf3rAm81sC22RDId264LQYqQjuaMEUSqL60I5LdULiGu0W2/A+ZDcKBKA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/streamx": { + "version": "2.23.0", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", + "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", + "license": "MIT", + "dependencies": { + "events-universal": "^1.0.0", + "fast-fifo": "^1.3.2", + "text-decoder": "^1.1.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/tar-fs": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", + "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^4.0.1", + "bare-path": "^3.0.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "license": "MIT", + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/text-decoder": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", + "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", + "license": "Apache-2.0", + "dependencies": { + "b4a": "^1.6.4" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "license": "MIT", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "license": "MIT", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-query-selector": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", + "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", + "license": "MIT" + }, + "node_modules/typescript": { + "version": "5.8.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", + "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", + "devOptional": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "7.8.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", + "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", + "license": "MIT" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "license": "MIT", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/webdriver-bidi-protocol": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.6.tgz", + "integrity": "sha512-mlGndEOA9yK9YAbvtxaPTqdi/kaCWYYfwrZvGzcmkr/3lWM+tQj53BxtpVd6qbC6+E5OnHXgCcAhre6AkXzxjA==", + "license": "Apache-2.0" + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/ws": { + "version": "8.18.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yazl": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/yazl/-/yazl-3.3.1.tgz", + "integrity": "sha512-BbETDVWG+VcMUle37k5Fqp//7SDOK2/1+T7X8TD96M3D9G8jK5VLUdQVdVjGi8im7FGkazX7kk5hkU8X4L5Bng==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "^1.0.0" + } + }, + "node_modules/yazl/node_modules/buffer-crc32": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", + "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zip-lib": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/zip-lib/-/zip-lib-1.1.2.tgz", + "integrity": "sha512-PdPYnjxRcbQ7UAhj6Cu8rggpHXFU/6Slhoy2vuA5E/52+i6aSr+9rWup6ll/Mr0mAxV9/YkRni9xGzVc/qh4rA==", + "license": "MIT", + "dependencies": { + "yauzl": "^3.2.0", + "yazl": "^3.3.1" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/zip-lib/node_modules/yauzl": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz", + "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", + "license": "MIT", + "dependencies": { + "buffer-crc32": "~0.2.3", + "pend": "~1.2.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/zod": { + "version": "3.25.76", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", + "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + } +} diff --git a/src/instance.js b/src/instance.js index c2cc338..10c6faa 100644 --- a/src/instance.js +++ b/src/instance.js @@ -31,15 +31,16 @@ class WebSocketClient { * @returns {Promise} A promise that resolves with the WebSocket instance when connected. */ async connect() { - const httpUrl = this.url.replace('ws://', 'http://'); - const errorMessage = 'Server not reachable. Make sure to export or preview with Pipelab.' + const httpUrl = this.url.replace("ws://", "http://"); + const errorMessage = + "Server not reachable. Make sure to export or preview with Pipelab."; try { const response = await fetch(httpUrl); if (!response.ok) { throw new Error(`${errorMessage}, status: ${response.status}`); } } catch (error) { - console.error('error', error) + console.error("error", error); throw new Error(errorMessage); } @@ -52,13 +53,16 @@ class WebSocketClient { if (this.socket) { return resolve(this.socket); } - return reject(new Error('WebSocket is undefined')); + return reject(new Error("WebSocket is undefined")); }; this.socket.onmessage = (event) => { const parsedData = JSON.parse(event.data); // Assuming the server sends a 'correlationId' with every message - if (parsedData.correlationId && this.responseResolvers.has(parsedData.correlationId)) { + if ( + parsedData.correlationId && + this.responseResolvers.has(parsedData.correlationId) + ) { const resolver = this.responseResolvers.get(parsedData.correlationId); resolver?.(parsedData); this.responseResolvers.delete(parsedData.correlationId); @@ -66,7 +70,7 @@ class WebSocketClient { // Propagate the message to listeners this.#propagateMessage(parsedData); } else { - console.error('unhandled message', parsedData); + console.error("unhandled message", parsedData); } // Handle other incoming messages if needed }; @@ -77,7 +81,7 @@ class WebSocketClient { }; this.socket.onerror = (error) => { - console.error('WebSocket error:', error); + console.error("WebSocket error:", error); return reject(error); }; }); @@ -89,15 +93,19 @@ class WebSocketClient { async reconnect() { if (this.reconnectAttempts < this.maxReconnectAttempts) { this.reconnectAttempts++; - console.warn(`Attempting to reconnect (${this.reconnectAttempts}/${this.maxReconnectAttempts})...`); + console.warn( + `Attempting to reconnect (${this.reconnectAttempts}/${this.maxReconnectAttempts})...` + ); try { - await new Promise(resolve => setTimeout(resolve, this.reconnectInterval)); + await new Promise((resolve) => + setTimeout(resolve, this.reconnectInterval) + ); await this.connect(); } catch (error) { - console.error('Reconnection attempt failed:', error); + console.error("Reconnection attempt failed:", error); } } else { - console.warn('Max reconnect attempts reached. Giving up.'); + console.warn("Max reconnect attempts reached. Giving up."); } } @@ -113,7 +121,7 @@ class WebSocketClient { console.warn("Cannot send message. WebSocket is undefined."); } } else { - console.warn('Cannot send message. WebSocket is not connected.'); + console.warn("Cannot send message. WebSocket is not connected."); } } @@ -126,7 +134,7 @@ class WebSocketClient { /** @type {(message: T) => Promise>} */ async sendAndWaitForResponse(message) { if (!this.isConnected || !this.socket) { - throw new Error('WebSocket is not connected.'); + throw new Error("WebSocket is not connected."); } const correlationId = this.#generateCorrelationId(); message.correlationId = correlationId; @@ -136,9 +144,9 @@ class WebSocketClient { this.socket.send(JSON.stringify(message)); const result = await responsePromise; if (result.body.error) { - throw new Error(result.body.error) + throw new Error(result.body.error); } else { - return result + return result; } } @@ -160,21 +168,21 @@ class WebSocketClient { } /** - * Propagates a message to registered listeners. - * @param {{ url: any; }} message - The message to propagate. - */ + * Propagates a message to registered listeners. + * @param {{ url: any; }} message - The message to propagate. + */ #propagateMessage(message) { const listeners = this.listeners.get(message.url); if (listeners) { - listeners.forEach(listener => listener(message)); + listeners.forEach((listener) => listener(message)); } } /** - * Registers a listener for a specific event. - * @param {string} event - The event to listen for. - * @param {Function} listener - The listener function. - */ + * Registers a listener for a specific event. + * @param {string} event - The event to listen for. + * @param {Function} listener - The listener function. + */ on(event, listener) { if (!this.listeners.has(event)) { this.listeners.set(event, []); @@ -183,53 +191,72 @@ class WebSocketClient { } /** - * Unregisters a listener for a specific event. - * @param {string} event - The event to stop listening for. - * @param {Function} listener - The listener function to remove. - */ + * Unregisters a listener for a specific event. + * @param {string} event - The event to stop listening for. + * @param {Function} listener - The listener function to remove. + */ off(event, listener) { const listeners = this.listeners.get(event); if (listeners) { - this.listeners.set(event, listeners.filter(l => l !== listener)); + this.listeners.set( + event, + listeners.filter((l) => l !== listener) + ); } } } -const fullscreenC3StateToPipelabState = (/** @type {import("./sdk.js").IsFullScreenState} */ state) => { +const fullscreenC3StateToPipelabState = ( + /** @type {import("./sdk.js").IsFullScreenState} */ state +) => { switch (state) { case 0: - return 'normal'; + return "normal"; case 1: - return 'fullscreen'; + return "fullscreen"; default: - return 'normal'; + return "normal"; } }; -const fullscreenPipelabStateToC3State = (/** @type {import('@pipelab/core').FullscreenStates} */ state) => { +const fullscreenPipelabStateToC3State = ( + /** @type {import('@pipelab/core').FullscreenStates} */ state +) => { switch (state) { - case 'normal': + case "normal": return 0; - case 'fullscreen': + case "fullscreen": return 1; default: return 0; } -} +}; const defaultSteamId = { accountId: -1, - steamId32: '', - steamId64: '', -} + steamId32: "", + steamId64: "", +}; -let DOM_COMPONENT_ID = '' +// Simple path utility for POSIX-style path operations +const posixPath = { + dirname: (path) => { + const lastSlash = path.lastIndexOf("/"); + return lastSlash === -1 ? "." : path.substring(0, lastSlash); + }, + join: (dirname, filename) => { + return dirname.endsWith("/") + ? dirname + filename + : dirname + "/" + filename; + }, +}; + +let DOM_COMPONENT_ID = ""; //<-- DOM_COMPONENT_ID --> -let config = {} +let config = {}; //<-- CONFIG --> - /** * @typedef {string | undefined} Tag */ @@ -238,7 +265,7 @@ let config = {} function getInstanceJs(parentClass, addonTriggers, C3) { // @ts-ignore return class Pipelab extends parentClass { - _additionalLoadPromises = [] + _additionalLoadPromises = []; /** @type {SDK.IObjectInstance | undefined} */ _inst; @@ -247,73 +274,73 @@ function getInstanceJs(parentClass, addonTriggers, C3) { WebSocketClient; /** @type {string} */ - _userFolder = ''; + _userFolder = ""; /** @type {string} */ - _homeFolder = ''; + _homeFolder = ""; /** @type {string} */ - _appDataFolder = ''; + _appDataFolder = ""; /** @type {string} */ - _userDataFolder = ''; + _userDataFolder = ""; /** @type {string} */ - _localAppDataFolder = ''; + _localAppDataFolder = ""; /** @type {string} */ - _localUserDataFolder = ''; + _localUserDataFolder = ""; /** @type {string} */ - _sessionDataFolder = ''; + _sessionDataFolder = ""; /** @type {string} */ - _tempFolder = ''; + _tempFolder = ""; /** @type {string} */ - _exeFolder = ''; + _exeFolder = ""; /** @type {string} */ - _moduleFolder = ''; + _moduleFolder = ""; /** @type {string} */ - _desktopFolder = ''; + _desktopFolder = ""; /** @type {string} */ - _documentsFolder = ''; + _documentsFolder = ""; /** @type {string} */ - _downloadsFolder = ''; + _downloadsFolder = ""; /** @type {string} */ - _musicFolder = ''; + _musicFolder = ""; /** @type {string} */ - _picturesFolder = ''; + _picturesFolder = ""; /** @type {string} */ - _videosFolder = ''; + _videosFolder = ""; /** @type {string} */ - _recentFolder = ''; + _recentFolder = ""; /** @type {string} */ - _logsFolder = ''; + _logsFolder = ""; /** @type {string} */ - _crashDumpsFolder = ''; + _crashDumpsFolder = ""; /** @type {string} */ - _appFolder = ''; + _appFolder = ""; /** @type {string} */ - _projectFilesFolder = ''; + _projectFilesFolder = ""; /** @type {string} - The current tag of the trigger. Can be used for any trigger */ - _currentTag = ''; + _currentTag = ""; /** @type {import('@pipelab/core').MessageEngine['output']['body']['engine']} */ - _engine = 'electron'; + _engine = "electron"; /** @type {boolean} */ _isInitialized = false; @@ -328,7 +355,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { _windowWidth = -1; /** @type {string} */ - _windowTitle = ''; + _windowTitle = ""; /** @type {number} */ _windowX = -1; @@ -340,25 +367,38 @@ function getInstanceJs(parentClass, addonTriggers, C3) { _fullscreenState = 0; /** @type {{accountId: number, steamId32: string, steamId64: string}} */ - _steam_SteamId = defaultSteamId + _steam_SteamId = defaultSteamId; /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'localplayer', 'getName'>} */ - _steam_Name = "" + _steam_Name = ""; /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'localplayer', 'getLevel'>} */ - _steam_Level = -1 + _steam_Level = -1; /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'localplayer', 'getIpCountry'>} */ - _steam_IpCountry = '' + _steam_IpCountry = ""; /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'utils', 'isSteamRunningOnSteamDeck'>} */ - _steam_IsRunningOnSteamDeck = false + _steam_IsRunningOnSteamDeck = false; /** @type {string} */ - _platform = '' + _platform = ""; /** @type {string} */ - _arch = '' + _arch = ""; + + /** @type {number} */ + _steam_AppId = -1; /** @type {string} */ - _ListFilesErrorValue = '' + _ListFilesErrorValue = ""; /** @type {import("@pipelab/core").FileFolder[]} */ - _ListFilesResultValue = [] + _ListFilesResultValue = []; + + /** @type {string} */ + _ActivateToWebPageErrorValue = ""; + /** @type {boolean} */ + _ActivateToWebPageResultValue = false; + + /** @type {string} */ + _ActivateToStoreErrorValue = ""; + /** @type {boolean} */ + _ActivateToStoreResultValue = false; /** * Description @@ -366,19 +406,18 @@ function getInstanceJs(parentClass, addonTriggers, C3) { * @param {any} _properties */ constructor(inst, _properties) { - - let dummyInst = undefined - if (sdk === 'v1') { - dummyInst = inst + let dummyInst = undefined; + if (sdk === "v1") { + dummyInst = inst; } else { dummyInst = { - domComponentId: DOM_COMPONENT_ID - } + domComponentId: DOM_COMPONENT_ID, + }; } super(dummyInst); let properties; - if (sdk == 'v1') { + if (sdk == "v1") { properties = _properties; } else { properties = this._getInitProperties(); @@ -388,7 +427,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // Initialization logic if needed } - if (sdk === 'v1') { + if (sdk === "v1") { /** @type {import("./sdk.js").StaticMethodsParentClass['_triggerAsync']} */ // @ts-expect-error TriggerAsync is only available in v1 this._triggerAsync = this.TriggerAsync; @@ -400,48 +439,47 @@ function getInstanceJs(parentClass, addonTriggers, C3) { } if (sdk === "v1") { - this.c3runtime = this._runtime + this.c3runtime = this._runtime; } else { - this.c3runtime = this.runtime + this.c3runtime = this.runtime; } if (sdk === "v1") { - this.addLoadPromise = this.c3runtime.AddLoadPromise + this.addLoadPromise = this.c3runtime.AddLoadPromise; } else { - this.addLoadPromise = this.c3runtime.sdk.addLoadPromise + this.addLoadPromise = this.c3runtime.sdk.addLoadPromise; } if (sdk === "v1") { - this.postToDOMAsync = this.PostToDOMAsync + this.postToDOMAsync = this.PostToDOMAsync; } else { - this.postToDOMAsync = this._postToDOMAsync + this.postToDOMAsync = this._postToDOMAsync; } if (sdk === "v1") { - this.postToDOM = this.PostToDOM + this.postToDOM = this.PostToDOM; } else { - this.postToDOM = this._postToDOM + this.postToDOM = this._postToDOM; } if (sdk === "v1") { - this.addDOMMessageHandler = this.AddDOMMessageHandler + this.addDOMMessageHandler = this.AddDOMMessageHandler; } else { - this.addDOMMessageHandler = this._addDOMMessageHandler + this.addDOMMessageHandler = this._addDOMMessageHandler; } this?.addLoadPromise?.( - this.postToDOMAsync("get-fullscreen-state") - .then( + this.postToDOMAsync("get-fullscreen-state").then( /** @type {import("./sdk.js").PostFullscreenState} */ - data => - { - this._fullscreenState = data.state - }) + (data) => { + this._fullscreenState = data.state; + } + ) ); - this.addDOMMessageHandler('fullscreen-state-changed', (data) => { - this._fullscreenState = data.state - }) + this.addDOMMessageHandler("fullscreen-state-changed", (data) => { + this._fullscreenState = data.state; + }); } async unsupportedEngine() { @@ -449,7 +487,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { - unsupported engine - server not reachable - plugin not initialized -`) +`); } /** @@ -460,13 +498,13 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // fns[0] = with tag // fns[1] = without tag if (tag) { - this._currentTag = tag - this._trigger(fns[0]) - this._trigger(fns[1]) + this._currentTag = tag; + this._trigger(fns[0]); + this._trigger(fns[1]); // reset tag - this._currentTag = "" + this._currentTag = ""; } else { - await this._triggerAsync(fns[1]) + await this._triggerAsync(fns[1]); } } @@ -483,7 +521,9 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // @ts-expect-error return (/** @type {Parameters} */ ...args) => { if (!this._isInitialized && !isInitialize) { - console.warn("Plugin has no been initialized. Please use the according action at the start of layout") + console.warn( + "Plugin has no been initialized. Please use the according action at the start of layout" + ); } // is initialized @@ -505,7 +545,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { ? fallback.call(this, ...args) : callback.call(this, ...args); } - } + }; } /** @@ -518,2443 +558,3227 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // @ts-expect-error return (/** @type {Parameters} */ ...args) => { return callback.call(this, ...args); - } + }; } // Acts - _InitializeBase = this.wrap(super._Initialize, async (/** @type {Tag} */ tag) => { - console.info('Pipelab v' + config.version) - console.info('SDK ' + sdk) - try { - // Initialize the WebSocket connection - if (!this.ws) { - this.ws = new WebSocketClient('ws://localhost:31753', { - maxReconnectAttempts: 3, - reconnectInterval: 5000 + _InitializeBase = this.wrap( + super._Initialize, + async (/** @type {Tag} */ tag) => { + console.info("Pipelab v" + config.version); + console.info("SDK " + sdk); + try { + // Initialize the WebSocket connection + if (!this.ws) { + this.ws = new WebSocketClient("ws://localhost:31753", { + maxReconnectAttempts: 3, + reconnectInterval: 5000, + }); + } + + // expose websocket instance + globalThis.pipelab = { + ws: this.ws, + }; + + // Fullscreen + // Handle through runtime + this.ws.on( + "/window/fullscreen-state", + async ( + /** @type {import('@pipelab/core').MakeInputOutput} */ data + ) => { + this._fullscreenState = fullscreenPipelabStateToC3State( + data.body.state + ); + } + ); + + await this.ws.connect(); + + /** @type {[import("@pipelab/core").Paths, string][]} */ + const paths = [ + // app.getPath(name) + ["home", "_homeFolder"], + ["appData", "_appDataFolder"], + ["userData", "_userDataFolder"], + ["localAppData", "_localAppDataFolder"], + ["localUserData", "_localUserDataFolder"], + ["sessionData", "_sessionDataFolder"], + ["temp", "_tempFolder"], + ["exe", "_exeFolder"], + ["module", "_moduleFolder"], + ["desktop", "_desktopFolder"], + ["documents", "_documentsFolder"], + ["downloads", "_downloadsFolder"], + ["music", "_musicFolder"], + ["pictures", "_picturesFolder"], + ["videos", "_videosFolder"], + ["recent", "_recentFolder"], + ["logs", "_logsFolder"], + ["crashDumps", "_crashDumpsFolder"], + // app.getAppPath + ["app", "_appFolder"], + ["project", "_projectFilesFolder"], + ]; + + /** @type {(() => (Promise))[]} */ + const promises = []; + + for (const name of paths) { + promises.push(async () => { + // ----------------------------------------------------------------------- + // Fetch user folder + /** @type {import('@pipelab/core').MakeInputOutput} */ + const orderPath = { + url: "/paths", + body: { + name: name[0], + }, + }; + + const pathFolder = await this.ws?.sendAndWaitForResponse( + orderPath + ); + if (pathFolder) { + // @ts-expect-error + this[name[1]] = pathFolder.body.data; + } + }); + } + + // TODO: BigInt support + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "localplayer", + method: "getSteamId", + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_SteamId = response?.body.data ?? defaultSteamId; }); - } - // expose websocket instance - globalThis.pipelab = { - ws: this.ws - } + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + + const order = { + url: "/steam/raw", + body: { + namespace: "localplayer", + method: "getName", + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_Name = response?.body.data ?? ""; + }); - // Fullscreen - // Handle through runtime - this.ws.on('/window/fullscreen-state', async (/** @type {import('@pipelab/core').MakeInputOutput} */ data) => { - this._fullscreenState = fullscreenPipelabStateToC3State(data.body.state) - }) - - await this.ws.connect(); - - /** @type {[import("@pipelab/core").Paths, string][]} */ - const paths = [ - // app.getPath(name) - ['home', '_homeFolder'], - ['appData', '_appDataFolder'], - ['userData', '_userDataFolder'], - ['localAppData', '_localAppDataFolder'], - ['localUserData', '_localUserDataFolder'], - ['sessionData', '_sessionDataFolder'], - ['temp', '_tempFolder'], - ['exe', '_exeFolder'], - ['module', '_moduleFolder'], - ['desktop', '_desktopFolder'], - ['documents', '_documentsFolder'], - ['downloads', '_downloadsFolder'], - ['music', '_musicFolder'], - ['pictures', '_picturesFolder'], - ['videos', '_videosFolder'], - ['recent', '_recentFolder'], - ['logs', '_logsFolder'], - ['crashDumps', '_crashDumpsFolder'], - // app.getAppPath - ['app', '_appFolder'], - ['project', '_projectFilesFolder'], - ] - - /** @type {(() => (Promise))[]} */ - const promises = [] - - for (const name of paths) { promises.push(async () => { - // ----------------------------------------------------------------------- - // Fetch user folder - /** @type {import('@pipelab/core').MakeInputOutput} */ - const orderPath = { - url: '/paths', + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + + const order = { + url: "/steam/raw", body: { - name: name[0] - } - } + namespace: "localplayer", + method: "getLevel", + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_Level = response?.body.data ?? -1; + }); - const pathFolder = await this.ws?.sendAndWaitForResponse(orderPath) - if (pathFolder) { - // @ts-expect-error - this[name[1]] = pathFolder.body.data - } - }) - } + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "localplayer", + method: "getIpCountry", + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_IpCountry = response?.body.data ?? ""; + }); - // TODO: BigInt support - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/raw', - body: { - namespace: 'localplayer', - method: 'getSteamId', - args: [], - }, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_SteamId = response?.body.data ?? defaultSteamId - }) + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "utils", + method: "isSteamRunningOnSteamDeck", + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_IsRunningOnSteamDeck = response?.body.data ?? false; + }); - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/infos", + body: {}, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._platform = response?.body.platform ?? ""; + this._arch = response?.body.arch ?? ""; + }); - const order = { - url: '/steam/raw', - body: { - namespace: 'localplayer', - method: 'getName', - args: [], - }, + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "utils", + method: "getAppId", + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_AppId = response?.body.data ?? -1; + }); + + const results = await Promise.allSettled(promises.map((x) => x())); + + // ----------------------------------------------------------------------- + // Fetch engine + + /** @type {import('@pipelab/core').MakeInputOutput} */ + const orderEngine = { + url: "/engine", }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_Name = response?.body.data ?? ''; - }) - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + /** + * @type {(import('@pipelab/core').MakeInputOutput) | undefined} + */ + // @ts-expect-error + const engineResponse = await this.ws.sendAndWaitForResponse( + orderEngine + ); + if (engineResponse) { + this._engine = engineResponse.body.engine; + } + + this._isInitialized = true; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnInitializeSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyInitializeSuccess, + ]); + } catch (e) { + console.error(e); + this._isInitialized = false; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnInitializeError, + C3.Plugins.pipelabv2.Cnds.OnAnyInitializeError, + ]); + } + }, + this.unsupportedEngine, + true, + true + ); + _Initialize = this._InitializeBase; + _InitializeSync = this._InitializeBase; + + _WriteTextFileBase = this.wrap( + super._WriteTextFile, + async ( + /** @type {string} */ path, + /** @type {string} */ contents, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: '/steam/raw', + url: "/fs/file/write", body: { - namespace: 'localplayer', - method: 'getLevel', - args: [], + path, + contents: contents, + encoding: "utf8", }, }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_Level = response?.body.data ?? -1; - }) - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const response = await this.ws?.sendAndWaitForResponse(order); + this._WriteTextFileResultValue = true; + this._WriteTextFileErrorValue = ""; + await this.trigger("tag", [ + C3.Plugins.pipelabv2.Cnds.OnWriteTextFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._WriteTextFileErrorValue = e.message; + this._WriteTextFileResultValue = false; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnWriteTextFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _WriteTextFile = this._WriteTextFileBase; + _WriteTextFileSync = this._WriteTextFileBase; + _WriteText = this._WriteTextFileBase; + _WriteTextSync = this._WriteTextFileBase; + + _ReadTextFileBase = this.wrap( + super._ReadTextFile, + async (/** @type {string} */ path, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: '/steam/raw', + url: "/fs/file/read", body: { - namespace: 'localplayer', - method: 'getIpCountry', - args: [], + path, + encoding: "utf8", }, }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_IpCountry = response?.body.data ?? ''; - }) - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + + this._ReadTextFileResultValue = answer?.body.content; + this._ReadTextFileErrorValue = ""; + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnReadTextFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ReadTextFileErrorValue = e.message; + this._ReadTextFileResultValue = false; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnReadTextFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _ReadTextFile = this._ReadTextFileBase; + _ReadTextFileSync = this._ReadTextFileBase; + + _CheckIfPathExistBase = this.wrap( + super._CheckIfPathExist, + async (/** @type {string} */ path, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: '/steam/raw', + url: "/fs/exist", body: { - namespace: 'utils', - method: 'isSteamRunningOnSteamDeck', - args: [], + path, }, }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_IsRunningOnSteamDeck = response?.body.data ?? false; - }) - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/infos', - body: {}, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._platform = response?.body.platform ?? ""; - this._arch = response?.body.arch ?? ""; - }) + const answer = await this.ws?.sendAndWaitForResponse(order); - const results = await Promise.allSettled(promises.map(x => x())) + if (answer?.body.success === false) { + throw new Error("Failed"); + } - // ----------------------------------------------------------------------- - // Fetch engine + this._CheckIfPathExistResultValue = answer?.body.success ?? false; + this._CheckIfPathExistErrorValue = ""; - /** @type {import('@pipelab/core').MakeInputOutput} */ - const orderEngine = { - url: '/engine', - } + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._CheckIfPathExistErrorValue = e.message; + this._CheckIfPathExistResultValue = false; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistError, + C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _CheckIfPathExist = this._CheckIfPathExistBase; + _CheckIfPathExistSync = this._CheckIfPathExistBase; + + _MaximizeBase = this.wrap( + super._Maximize, + async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/maximize", + }; - /** - * @type {(import('@pipelab/core').MakeInputOutput) | undefined} - */ - // @ts-expect-error - const engineResponse = await this.ws.sendAndWaitForResponse(orderEngine) - if (engineResponse) { - this._engine = engineResponse.body.engine - } + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _Maximize = this._MaximizeBase; + _MaximizeSync = this._MaximizeBase; + + _MinimizeBase = this.wrap( + super._Minimize, + async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/minimize", + }; - this._isInitialized = true - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnInitializeSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyInitializeSuccess - ]) - } catch (e) { - console.error(e) - this._isInitialized = false - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnInitializeError, - C3.Plugins.pipelabv2.Cnds.OnAnyInitializeError - ]) - } - - }, this.unsupportedEngine, true, true) - _Initialize = this._InitializeBase - _InitializeSync = this._InitializeBase - - _WriteTextFileBase = this.wrap(super._WriteTextFile, async ( - /** @type {string} */ path, - /** @type {string} */ contents, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _Minimize = this._MinimizeBase; + _MinimizeSync = this._MinimizeBase; + + _RestoreBase = this.wrap( + super._Restore, + async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: '/fs/file/write', - body: { - path, - contents: contents, - encoding: "utf8" - } - } + url: "/window/restore", + }; - const response = await this.ws?.sendAndWaitForResponse(order) - this._WriteTextFileResultValue = true - this._WriteTextFileErrorValue = '' - await this.trigger("tag", [ - C3.Plugins.pipelabv2.Cnds.OnWriteTextFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._WriteTextFileErrorValue = e.message - this._WriteTextFileResultValue = false - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnWriteTextFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _WriteTextFile = this._WriteTextFileBase - _WriteTextFileSync = this._WriteTextFileBase - _WriteText = this._WriteTextFileBase - _WriteTextSync = this._WriteTextFileBase - - _ReadTextFileBase = this.wrap(super._ReadTextFile, async ( - /** @type {string} */ path, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _Restore = this._RestoreBase; + _RestoreSync = this._RestoreBase; + + _RequestAttentionBase = this.wrap( + super._RequestAttention, + async (/** @type {number} */ mode) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: '/fs/file/read', - body: { - path, - encoding: "utf8" - } - } + url: "/window/request-attention", + }; - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } + await this.ws?.sendAndWaitForResponse(order); - this._ReadTextFileResultValue = answer?.body.content - this._ReadTextFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadTextFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ReadTextFileErrorValue = e.message - this._ReadTextFileResultValue = false - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadTextFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _ReadTextFile = this._ReadTextFileBase - _ReadTextFileSync = this._ReadTextFileBase + // TODO: support stop + }, + this.unsupportedEngine + ); + _RequestAttention = this._RequestAttentionBase; + _RequestAttentionSync = this._RequestAttentionBase; - _CheckIfPathExistBase = this.wrap(super._CheckIfPathExist, async ( - /** @type {string} */ path, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ + _SetAlwaysOnTopBase = this.wrap( + super._SetAlwaysOnTop, + async (/** @type {number} */ mode) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: '/fs/exist', + url: "/window/set-always-on-top", body: { - path, - } - } - - const answer = await this.ws?.sendAndWaitForResponse(order) - - if (answer?.body.success === false) { - throw new Error('Failed') - } + value: mode === 1 ? true : false, + }, + }; - this._CheckIfPathExistResultValue = answer?.body.success ?? false - this._CheckIfPathExistErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._CheckIfPathExistErrorValue = e.message - this._CheckIfPathExistResultValue = false - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistError, - C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _CheckIfPathExist = this._CheckIfPathExistBase - _CheckIfPathExistSync = this._CheckIfPathExistBase + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetAlwaysOnTop = this._SetAlwaysOnTopBase; + _SetAlwaysOnTopSync = this._SetAlwaysOnTopBase; + + _SetHeightBase = this.wrap( + super._SetHeight, + async (/** @type {number} */ height) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-height", + body: { + value: height, + }, + }; - _MaximizeBase = this.wrap(super._Maximize, async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/maximize', - } + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetHeight = this._SetHeightBase; + _SetHeightSync = this._SetHeightBase; + + _SetMaximumSizeBase = this.wrap( + super._SetMaximumSize, + async (/** @type {number} */ width, /** @type {number} */ height) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-maximum-size", + body: { + height, + width, + }, + }; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _Maximize = this._MaximizeBase - _MaximizeSync = this._MaximizeBase + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetMaximumSize = this._SetMaximumSizeBase; + _SetMaximumSizeSync = this._SetMaximumSizeBase; + + _SetMinimumSizeBase = this.wrap( + super._SetMinimumSize, + async (/** @type {number} */ width, /** @type {number} */ height) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-minimum-size", + body: { + height, + width, + }, + }; - _MinimizeBase = this.wrap(super._Minimize, async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/minimize', - } + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetMinimumSize = this._SetMinimumSizeBase; + _SetMinimumSizeSync = this._SetMinimumSizeBase; + + _SetResizableBase = this.wrap( + super._SetResizable, + async (/** @type {number} */ resizable) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-resizable", + body: { + value: resizable === 1 ? true : false, + }, + }; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _Minimize = this._MinimizeBase - _MinimizeSync = this._MinimizeBase + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetResizable = this._SetResizableBase; + _SetResizableSync = this._SetResizableBase; + + _SetTitleBase = this.wrap( + super._SetTitle, + async (/** @type {string} */ title) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-title", + body: { + value: title, + }, + }; - _RestoreBase = this.wrap(super._Restore, async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/restore', - } + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetTitle = this._SetTitleBase; + _SetTitleSync = this._SetTitleBase; + + _SetWidthBase = this.wrap( + super._SetWidth, + async (/** @type {number} */ width) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-width", + body: { + value: width, + }, + }; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _Restore = this._RestoreBase - _RestoreSync = this._RestoreBase + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetWidth = this._SetWidthBase; + _SetWidthSync = this._SetWidthBase; + + _SetXBase = this.wrap( + super._SetX, + async (/** @type {number} */ x) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-x", + body: { + value: x, + }, + }; - _RequestAttentionBase = this.wrap(super._RequestAttention, async (/** @type {number} */ mode) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/request-attention', - } + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetX = this._SetXBase; + _SetXSync = this._SetXBase; + + _SetYBase = this.wrap( + super._SetY, + async (/** @type {number} */ y) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-y", + body: { + value: y, + }, + }; - await this.ws?.sendAndWaitForResponse(order) + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _SetY = this._SetYBase; + _SetYSync = this._SetYBase; + + _ShowDevToolsBase = this.wrap( + super._ShowDevTools, + async (/** @type {number} */ toggle) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/show-dev-tools", + body: { + value: toggle === 1 ? true : false, + }, + }; - // TODO: support stop - }, this.unsupportedEngine) - _RequestAttention = this._RequestAttentionBase - _RequestAttentionSync = this._RequestAttentionBase + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _ShowDevTools = this._ShowDevToolsBase; + _ShowDevToolsSync = this._ShowDevToolsBase; + + _SetFullscreenBase = this.wrap( + super._SetFullscreen, + async (/** @type {number} */ toggle) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/set-fullscreen", + body: { + value: toggle === 0 ? "normal" : "fullscreen", + }, + }; - _SetAlwaysOnTopBase = this.wrap(super._SetAlwaysOnTop, async (/** @type {number} */ mode) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-always-on-top', - body: { - value: mode === 1 ? true : false + await this.ws?.sendAndWaitForResponse(order); + }, + (toggle) => { + // Use DOM handler for fullscreen operations + if (this.c3runtime.platformInfo.exportType === "preview") { + /** @type {import('./sdk.js').PostFullscreenState} */ + const state = { + state: toggle === 0 ? 0 : 1, + }; + this.postToDOM("set-fullscreen", state); } } + ); + _SetFullscreen = this._SetFullscreenBase; + _SetFullscreenSync = this._SetFullscreenBase; + + _UnmaximizeBase = this.wrap( + super._Unmaximize, + async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/window/unmaximize", + }; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetAlwaysOnTop = this._SetAlwaysOnTopBase - _SetAlwaysOnTopSync = this._SetAlwaysOnTopBase + await this.ws?.sendAndWaitForResponse(order); + }, + this.unsupportedEngine + ); + _Unmaximize = this._UnmaximizeBase; + _UnmaximizeSync = this._UnmaximizeBase; + + _ShowFolderDialogBase = this.wrap( + super._ShowFolderDialog, + async (/** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/dialog/folder", + }; - _SetHeightBase = this.wrap(super._SetHeight, async (/** @type {number} */ height) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-height', - body: { - value: height - } - } + /** @type {import('@pipelab/core').MakeInputOutput | undefined} */ + // @ts-expect-error + const answer = await this.ws?.sendAndWaitForResponse(order); - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetHeight = this._SetHeightBase - _SetHeightSync = this._SetHeightBase + if (answer?.body.success === false) { + throw new Error("Failed"); + } - _SetMaximumSizeBase = this.wrap(super._SetMaximumSize, async (/** @type {number} */ width, /** @type {number} */ height) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-maximum-size', - body: { - height, - width, - } - } + this._ShowFolderDialogResultValue = answer?.body.paths[0]; + this._ShowFolderDialogErrorValue = ""; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetMaximumSize = this._SetMaximumSizeBase - _SetMaximumSizeSync = this._SetMaximumSizeBase + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ShowFolderDialogErrorValue = e.message; + this._ShowFolderDialogResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogError, + C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _ShowFolderDialog = this._ShowFolderDialogBase; + _ShowFolderDialogSync = this._ShowFolderDialogBase; + + _ShowOpenDialogBase = this.wrap( + super._ShowOpenDialog, + async (/** @type {string} */ accept, /** @type {Tag} */ tag) => { + try { + /** + * @type {import('@pipelab/core').FileFilter[]} + */ + const filters = accept + .split(",") + .map((filter) => { + const [name, extensions] = filter.split("|"); + if (name && extensions) { + /** @type {import("electron").FileFilter} */ + const result = { + name, + extensions: extensions.split(";"), + }; + return result; + } + }) + .filter((x) => !!x); - _SetMinimumSizeBase = this.wrap(super._SetMinimumSize, async (/** @type {number} */ width, /** @type {number} */ height) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-minimum-size', - body: { - height, - width, - } - } + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/dialog/open", + body: { + filters, + }, + }; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetMinimumSize = this._SetMinimumSizeBase - _SetMinimumSizeSync = this._SetMinimumSizeBase + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._ShowOpenDialogResultValue = answer?.body.paths[0]; + this._ShowOpenDialogErrorValue = ""; - _SetResizableBase = this.wrap(super._SetResizable, async (/** @type {number} */ resizable) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-resizable', - body: { - value: resizable === 1 ? true : false - } - } + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ShowOpenDialogErrorValue = e.message; + this._ShowOpenDialogResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogError, + C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _ShowOpenDialog = this._ShowOpenDialogBase; + _ShowOpenDialogSync = this._ShowOpenDialogBase; + + _ShowSaveDialogBase = this.wrap( + super._ShowSaveDialog, + async (/** @type {string} */ accept, /** @type {Tag} */ tag) => { + try { + /** + * @type {import('@pipelab/core').FileFilter[]} + */ + const filters = accept + .split(",") + .map((filter) => { + const [name, extensions] = filter.split("|"); + if (name && extensions) { + /** @type {import("electron").FileFilter} */ + const result = { + name, + extensions: extensions.split(";"), + }; + return result; + } + }) + .filter((x) => !!x); - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetResizable = this._SetResizableBase - _SetResizableSync = this._SetResizableBase + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/dialog/save", + body: { + filters, + }, + }; - _SetTitleBase = this.wrap(super._SetTitle, async (/** @type {string} */ title) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-title', - body: { - value: title - } - } + const answer = await this.ws?.sendAndWaitForResponse(order); - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetTitle = this._SetTitleBase - _SetTitleSync = this._SetTitleBase + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._ShowSaveDialogResultValue = answer?.body.path; + this._ShowSaveDialogErrorValue = ""; - _SetWidthBase = this.wrap(super._SetWidth, async (/** @type {number} */ width) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-width', - body: { - value: width - } - } + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ShowSaveDialogErrorValue = e.message; + this._ShowSaveDialogResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogError, + C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _ShowSaveDialog = this._ShowSaveDialogBase; + _ShowSaveDialogSync = this._ShowSaveDialogBase; + + _AppendFileBase = this.wrap( + super._AppendFile, + async ( + /** @type {string} */ path, + /** @type {string} */ contents, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/file/write", + body: { + path, + contents, + encoding: "utf-8", + flag: "a", // Append + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._AppendFileResultValue = answer?.body.success; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetWidth = this._SetWidthBase - _SetWidthSync = this._SetWidthBase + this._AppendFileErrorValue = ""; - _SetXBase = this.wrap(super._SetX, async (/** @type {number} */ x) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-x', - body: { - value: x - } - } + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnAppendFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._AppendFileErrorValue = e.message; + this._AppendFileResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnAppendFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _AppendFile = this._AppendFileBase; + _AppendFileSync = this._AppendFileBase; + + _CopyFileBase = this.wrap( + super._CopyFile, + async ( + /** @type {string} */ source, + /** @type {string} */ destination, + /** @type {boolean} */ overwrite, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/copy", + body: { + source, + destination, + overwrite, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._CopyFileResultValue = answer?.body.success; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetX = this._SetXBase - _SetXSync = this._SetXBase + this._CopyFileErrorValue = ""; - _SetYBase = this.wrap(super._SetY, async (/** @type {number} */ y) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-y', - body: { - value: y - } - } + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCopyFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._CopyFileErrorValue = e.message; + this._CopyFileResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCopyFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _CopyFile = this._CopyFileBase; + _CopyFileSync = this._CopyFileBase; + + _CreateFolderBase = this.wrap( + super._CreateFolder, + async (/** @type {string} */ path, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/folder/create", + body: { + path, + }, + }; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _SetY = this._SetYBase - _SetYSync = this._SetYBase + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._CreateFolderResultValue = answer?.body.success; + this._CreateFolderErrorValue = ""; - _ShowDevToolsBase = this.wrap(super._ShowDevTools, async (/** @type {number} */ toggle) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/show-dev-tools', - body: { - value: toggle === 1 ? true : false - } - } + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCreateFolderSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._CreateFolderErrorValue = e.message; + this._CreateFolderResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCreateFolderError, + C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _CreateFolder = this._CreateFolderBase; + _CreateFolderSync = this._CreateFolderBase; + + _DeleteFileBase = this.wrap( + super._DeleteFile, + async ( + /** @type {string} */ path, + /** @type {boolean} */ recursive, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/delete", + body: { + path, + recursive, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._DeleteFileResultValue = answer?.body.success; + this._DeleteFileErrorValue = ""; - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _ShowDevTools = this._ShowDevToolsBase - _ShowDevToolsSync = this._ShowDevToolsBase + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnDeleteFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._DeleteFileErrorValue = e.message; + this._DeleteFileResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnDeleteFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _DeleteFile = this._DeleteFileBase; + _DeleteFileSync = this._DeleteFileBase; + + _ListFilesBase = this.wrap( + super._ListFiles, + async ( + /** @type {string} */ path, + /** @type {boolean} */ recursive, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/list", + body: { + path, + recursive, + }, + }; + const files = await this.ws?.sendAndWaitForResponse(order); - _SetFullscreenBase = this.wrap(super._SetFullscreen, async (/** @type {number} */ toggle) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/set-fullscreen', - body: { - value: toggle === 0 ? 'normal' : 'fullscreen' - } - } - - await this.ws?.sendAndWaitForResponse(order) - }, (toggle) => { - // Use DOM handler for fullscreen operations - if (this.c3runtime.platformInfo.exportType === 'preview') { - /** @type {import('./sdk.js').PostFullscreenState} */ - const state = { - state: toggle === 0 ? 0 : 1 - } - this.postToDOM('set-fullscreen', state) - } - }) - _SetFullscreen = this._SetFullscreenBase - _SetFullscreenSync = this._SetFullscreenBase - - _UnmaximizeBase = this.wrap(super._Unmaximize, async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/window/unmaximize', - } - - await this.ws?.sendAndWaitForResponse(order) - }, this.unsupportedEngine) - _Unmaximize = this._UnmaximizeBase - _UnmaximizeSync = this._UnmaximizeBase - - _ShowFolderDialogBase = this.wrap(super._ShowFolderDialog, async ( - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/dialog/folder', - } - - /** @type {import('@pipelab/core').MakeInputOutput | undefined} */ - // @ts-expect-error - const answer = await this.ws?.sendAndWaitForResponse(order) - - if (answer?.body.success === false) { - throw new Error('Failed') - } - - this._ShowFolderDialogResultValue = answer?.body.paths[0] - this._ShowFolderDialogErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ShowFolderDialogErrorValue = e.message - this._ShowFolderDialogResultValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogError, - C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _ShowFolderDialog = this._ShowFolderDialogBase - _ShowFolderDialogSync = this._ShowFolderDialogBase - - _ShowOpenDialogBase = this.wrap(super._ShowOpenDialog, async ( - /** @type {string} */ accept, - /** @type {Tag} */ tag, - ) => { - try { - /** - * @type {import('@pipelab/core').FileFilter[]} - */ - const filters = accept.split(',') - .map(filter => { - const [name, extensions] = filter.split('|') - if (name && extensions) { - /** @type {import("electron").FileFilter} */ - const result = { - name, - extensions: extensions.split(';') - } - return result - } - }) - .filter(x => !!x) - - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/dialog/open', - body: { - filters + if (files?.body.success === false) { + throw new Error("Failed"); } - } - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._ShowOpenDialogResultValue = answer?.body.paths[0] - this._ShowOpenDialogErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ShowOpenDialogErrorValue = e.message - this._ShowOpenDialogResultValue = '' + this._ListFilesResultValue = files?.body.list ?? []; + this._ListFilesErrorValue = ""; await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogError, - C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _ShowOpenDialog = this._ShowOpenDialogBase - _ShowOpenDialogSync = this._ShowOpenDialogBase - - _ShowSaveDialogBase = this.wrap(super._ShowSaveDialog, async ( - /** @type {string} */ accept, - /** @type {Tag} */ tag, - ) => { - try { - /** - * @type {import('@pipelab/core').FileFilter[]} - */ - const filters = accept.split(',') - .map(filter => { - const [name, extensions] = filter.split('|') - if (name && extensions) { - /** @type {import("electron").FileFilter} */ - const result = { - name, - extensions: extensions.split(';') - } - return result - } - }) - .filter(x => !!x) - - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/dialog/save', - body: { - filters + C3.Plugins.pipelabv2.Cnds.OnListFilesSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyListFilesSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ListFilesErrorValue = e.message; + this._ListFilesResultValue = []; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnListFilesError, + C3.Plugins.pipelabv2.Cnds.OnAnyListFilesError, + ]); } - } - - const answer = await this.ws?.sendAndWaitForResponse(order) - - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._ShowSaveDialogResultValue = answer?.body.path - this._ShowSaveDialogErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ShowSaveDialogErrorValue = e.message - this._ShowSaveDialogResultValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogError, - C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _ShowSaveDialog = this._ShowSaveDialogBase - _ShowSaveDialogSync = this._ShowSaveDialogBase - - _AppendFileBase = this.wrap(super._AppendFile, async ( - /** @type {string} */ path, - /** @type {string} */ contents, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/file/write', - body: { - path, - contents, - encoding: 'utf-8', - flag: 'a' // Append + console.error(e); + } + }, + this.unsupportedEngine + ); + _ListFiles = this._ListFilesBase; + _ListFilesSync = this._ListFilesBase; + + _MoveFileBase = this.wrap( + super._MoveFile, + async ( + /** @type {string} */ source, + /** @type {string} */ destination, + /** @type {boolean} */ overwrite, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/move", + body: { + source, + destination, + overwrite, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); } - } - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._AppendFileResultValue = answer?.body.success - - this._AppendFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnAppendFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._AppendFileErrorValue = e.message - this._AppendFileResultValue = '' + this._MoveFileResultValue = answer?.body.success; + this._MoveFileErrorValue = ""; + await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnAppendFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _AppendFile = this._AppendFileBase - _AppendFileSync = this._AppendFileBase - - _CopyFileBase = this.wrap(super._CopyFile, async ( - /** @type {string} */ source, - /** @type {string} */ destination, - /** @type {boolean} */ overwrite, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/copy', - body: { - source, - destination, - overwrite + C3.Plugins.pipelabv2.Cnds.OnMoveFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._MoveFileErrorValue = e.message; + this._MoveFileResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnMoveFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileError, + ]); } - } - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._CopyFileResultValue = answer?.body.success - - this._CopyFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCopyFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._CopyFileErrorValue = e.message - this._CopyFileResultValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCopyFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _CopyFile = this._CopyFileBase - _CopyFileSync = this._CopyFileBase + console.error(e); + } + }, + this.unsupportedEngine + ); + _MoveFile = this._MoveFileBase; + _MoveFileSync = this._MoveFileBase; + + _OpenBrowserBase = this.wrap( + super._OpenBrowser, + async () => { + throw new Error('"_OpenBrowser" Not implemented'); + }, + this.unsupportedEngine + ); + _OpenBrowser = this._OpenBrowserBase; + _OpenBrowserSync = this._OpenBrowserBase; + + _ReadBinaryFileBase = this.wrap( + super._ReadBinaryFile, + async ( + /** @type {string} */ path, + /** @type {IObjectClass} */ destination, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/file/read/binary", + body: { + path, + }, + }; - _CreateFolderBase = this.wrap(super._CreateFolder, async ( - /** @type {string} */ path, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/folder/create', - body: { - path - } - } + const answer = await this.ws?.sendAndWaitForResponse(order); - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._CreateFolderResultValue = answer?.body.success - this._CreateFolderErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCreateFolderSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._CreateFolderErrorValue = e.message - this._CreateFolderResultValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCreateFolderError, - C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _CreateFolder = this._CreateFolderBase - _CreateFolderSync = this._CreateFolderBase + const sdkInst = this.__GetBinaryDataSdkInstance(destination); - _DeleteFileBase = this.wrap(super._DeleteFile, async ( - /** @type {string} */ path, - /** @type {boolean} */ recursive, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/delete', - body: { - path, - recursive + if (!sdkInst) { + throw new Error("SDK instance not found"); } - } - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._DeleteFileResultValue = answer?.body.success - this._DeleteFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDeleteFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._DeleteFileErrorValue = e.message - this._DeleteFileResultValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDeleteFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _DeleteFile = this._DeleteFileBase - _DeleteFileSync = this._DeleteFileBase + const newBuffer = new Uint8Array(answer?.body.content ?? []); + sdkInst.setArrayBufferCopy(newBuffer.buffer); - _ListFilesBase = this.wrap(super._ListFiles, async ( - /** @type {string} */ path, - /** @type {boolean} */ recursive, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/list', - body: { - path, - recursive, + if (answer?.body.success === false) { + throw new Error("Failed"); } - } - const files = await this.ws?.sendAndWaitForResponse(order) + this._ReadBinaryFileResultValue = answer?.body.success; - if (files?.body.success === false) { - throw new Error('Failed') - } + this._ReadBinaryFileErrorValue = ""; - this._ListFilesResultValue = files?.body.list ?? [] - this._ListFilesErrorValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnListFilesSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyListFilesSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ListFilesErrorValue = e.message - this._ListFilesResultValue = [] await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnListFilesError, - C3.Plugins.pipelabv2.Cnds.OnAnyListFilesError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _ListFiles = this._ListFilesBase - _ListFilesSync = this._ListFilesBase - - _MoveFileBase = this.wrap(super._MoveFile, async ( - /** @type {string} */ source, - /** @type {string} */ destination, - /** @type {boolean} */ overwrite, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/move', - body: { - source, - destination, - overwrite + C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ReadBinaryFileErrorValue = e.message; + this._ReadBinaryFileResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileError, + ]); } - } - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._MoveFileResultValue = answer?.body.success - this._MoveFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnMoveFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._MoveFileErrorValue = e.message - this._MoveFileResultValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnMoveFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _MoveFile = this._MoveFileBase - _MoveFileSync = this._MoveFileBase - - _OpenBrowserBase = this.wrap(super._OpenBrowser, async () => { - throw new Error('"_OpenBrowser" Not implemented') - }, this.unsupportedEngine) - _OpenBrowser = this._OpenBrowserBase - _OpenBrowserSync = this._OpenBrowserBase - - _ReadBinaryFileBase = this.wrap(super._ReadBinaryFile, async ( - /** @type {string} */ path, - /** @type {IObjectClass} */ destination, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/file/read/binary', - body: { - path, + console.error(e); + } + }, + this.unsupportedEngine + ); + _ReadBinaryFile = this._ReadBinaryFileBase; + _ReadBinaryFileSync = this._ReadBinaryFileBase; + + _RenameFileBase = this.wrap( + super._RenameFile, + async ( + /** @type {string} */ source, + /** @type {string} */ newFileName, + /** @type {boolean} */ overwrite, + /** @type {Tag} */ tag + ) => { + try { + const directory = posixPath.dirname(source); + const newPath = posixPath.join(directory, newFileName); + + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/move", + body: { + source, + destination: newPath, + overwrite, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); } - } + this._RenameFileResultValue = answer?.body.success; - const answer = await this.ws?.sendAndWaitForResponse(order) + this._RenameFileErrorValue = ""; - const sdkInst = this.__GetBinaryDataSdkInstance(destination); - - if (!sdkInst) { - throw new Error("SDK instance not found") - } - const newBuffer = new Uint8Array(answer?.body.content ?? []) - sdkInst.setArrayBufferCopy(newBuffer.buffer); - - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._ReadBinaryFileResultValue = answer?.body.success - - this._ReadBinaryFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ReadBinaryFileErrorValue = e.message - this._ReadBinaryFileResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileError, - ]) - } - console.error(e) - } - - }, this.unsupportedEngine) - _ReadBinaryFile = this._ReadBinaryFileBase - _ReadBinaryFileSync = this._ReadBinaryFileBase - - _RenameFileBase = this.wrap(super._RenameFile, async ( - /** @type {string} */ source, - /** @type {string} */ newFileName, - /** @type {boolean} */ overwrite, - /** @type {Tag} */ tag - ) => { - try { - const directory = posixPath.dirname(source); - const newPath = posixPath.join(directory, newFileName); - - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/move', - body: { - source, - destination: newPath, - overwrite, + C3.Plugins.pipelabv2.Cnds.OnRenameFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._RenameFileErrorValue = e.message; + this._RenameFileResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnRenameFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileError, + ]); } - } - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._RenameFileResultValue = answer?.body.success - - this._RenameFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRenameFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._RenameFileErrorValue = e.message - this._RenameFileResultValue = '' - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRenameFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _RenameFile = this._RenameFileBase - _RenameFileSync = this._RenameFileBase + console.error(e); + } + }, + this.unsupportedEngine + ); + _RenameFile = this._RenameFileBase; + _RenameFileSync = this._RenameFileBase; + + _RunFileBase = this.wrap( + super._RunFile, + async (/** @type {string} */ command, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/run", + body: { + command, + args: [], + }, + }; - _RunFileBase = this.wrap(super._RunFile, async ( - /** @type {string} */ command, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/run', - body: { - command, - args: [], + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); } - } + this._RunFileResultValue = answer?.body.success; + + this._RunFileErrorValue = ""; - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._RunFileResultValue = answer?.body.success - - this._RunFileErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRunFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyRunFileSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._RunFileErrorValue = e.message - this._RunFileResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRunFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyRunFileError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _RunFile = this._RunFileBase - _RunFileSync = this._RunFileBase + C3.Plugins.pipelabv2.Cnds.OnRunFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyRunFileSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._RunFileErrorValue = e.message; + this._RunFileResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnRunFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyRunFileError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _RunFile = this._RunFileBase; + _RunFileSync = this._RunFileBase; + + _ShellOpenBase = this.wrap( + super._ShellOpen, + async (/** @type {string} */ path, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/open", + body: { + path, + }, + }; - _ShellOpenBase = this.wrap(super._ShellOpen, async ( - /** @type {string} */ path, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/open', - body: { - path, + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); } - } + this._ShellOpenResultValue = answer?.body.success; + + this._ShellOpenErrorValue = ""; - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._ShellOpenResultValue = answer?.body.success - - this._ShellOpenErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShellOpenSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ShellOpenErrorValue = e.message - this._ShellOpenResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShellOpenError, - C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _ShellOpen = this._ShellOpenBase - _ShellOpenSync = this._ShellOpenBase + C3.Plugins.pipelabv2.Cnds.OnShellOpenSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ShellOpenErrorValue = e.message; + this._ShellOpenResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShellOpenError, + C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _ShellOpen = this._ShellOpenBase; + _ShellOpenSync = this._ShellOpenBase; + + _ExplorerOpenBase = this.wrap( + super._ExplorerOpen, + async (/** @type {string} */ path, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/show-in-explorer", + body: { + path, + }, + }; - _ExplorerOpenBase = this.wrap(super._ExplorerOpen, async ( - /** @type {string} */ path, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/show-in-explorer', - body: { - path, + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); } - } + this._ExplorerOpenResultValue = answer?.body.success; + + this._ExplorerOpenErrorValue = ""; - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._ExplorerOpenResultValue = answer?.body.success - - this._ExplorerOpenErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnExplorerOpenSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ExplorerOpenErrorValue = e.message - this._ExplorerOpenResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnExplorerOpenError, - C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenError, - ]) + C3.Plugins.pipelabv2.Cnds.OnExplorerOpenSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ExplorerOpenErrorValue = e.message; + this._ExplorerOpenResultValue = ""; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnExplorerOpenError, + C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenError, + ]); + } + console.error(e); } - console.error(e) - } - }, this.unsupportedEngine) - _ExplorerOpen = this._ExplorerOpenBase - _ExplorerOpenSync = this._ExplorerOpenBase + }, + this.unsupportedEngine + ); + _ExplorerOpen = this._ExplorerOpenBase; + _ExplorerOpenSync = this._ExplorerOpenBase; /** * @param {IObjectClass} objectClass * @return {IBinaryDataInstance | null} objectClass */ __GetBinaryDataSdkInstance(objectClass) { - if (!objectClass) - return null; + if (!objectClass) return null; // @ts-expect-error const target = objectClass.getFirstPickedInstance(this._inst); - if (!target) - return null; + if (!target) return null; // return target.GetSdkInstance() // @ts-expect-error - return target + return target; } - _WriteBinaryFileBase = this.wrap(super._WriteBinaryFile, async (/** @type {string} */ path, /** @type {string} */ source) => { - throw new Error('not supported') - - // const sdkInst = this.__GetBinaryDataSdkInstance(source); - - // if (!sdkInst) { - // throw new Error("SDK instance not found") - // } - - // const buffer = sdkInst.getArrayBufferReadOnly(); - - // /** @type {import('@pipelab/core').MakeInputOutput} */ - // const order = { - // url: '/fs/file/write', - // body: { - // path, - // contents: buffer, - // encoding: undefined - // } - // } - - // const answer = await this.ws?.sendAndWaitForResponse(order) - // if (!answer || answer.body.success === false) { - // this._currentTag = tag; - // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnAnyBinaryFileRead) - // this._currentTag = tag; - // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnBinaryFileRead) - // this._currentTag = '' - // } - }, this.unsupportedEngine) - _WriteBinaryFile = this._WriteBinaryFileBase - _WriteBinaryFileSync = this._WriteBinaryFileBase - - _FetchFileSizeBase = this.wrap(super._FetchFileSize, async ( - /** @type {string} */ path, - /** @type {Tag} */ tag, - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/fs/file/size', - body: { - path + _WriteBinaryFileBase = this.wrap( + super._WriteBinaryFile, + async (/** @type {string} */ path, /** @type {string} */ source) => { + throw new Error("not supported"); + + // const sdkInst = this.__GetBinaryDataSdkInstance(source); + + // if (!sdkInst) { + // throw new Error("SDK instance not found") + // } + + // const buffer = sdkInst.getArrayBufferReadOnly(); + + // /** @type {import('@pipelab/core').MakeInputOutput} */ + // const order = { + // url: '/fs/file/write', + // body: { + // path, + // contents: buffer, + // encoding: undefined + // } + // } + + // const answer = await this.ws?.sendAndWaitForResponse(order) + // if (!answer || answer.body.success === false) { + // this._currentTag = tag; + // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnAnyBinaryFileRead) + // this._currentTag = tag; + // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnBinaryFileRead) + // this._currentTag = '' + // } + }, + this.unsupportedEngine + ); + _WriteBinaryFile = this._WriteBinaryFileBase; + _WriteBinaryFileSync = this._WriteBinaryFileBase; + + _FetchFileSizeBase = this.wrap( + super._FetchFileSize, + async (/** @type {string} */ path, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/fs/file/size", + body: { + path, + }, + }; + + /** + * @type {import('@pipelab/core').MakeInputOutput} + */ + // @ts-expect-error + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); } - } + this._FetchFileSizeResultValue = answer.body.size ?? -1; + + this._FetchFileSizeErrorValue = ""; - /** - * @type {import('@pipelab/core').MakeInputOutput} - */ - // @ts-expect-error - const answer = await this.ws?.sendAndWaitForResponse(order) - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._FetchFileSizeResultValue = answer.body.size ?? -1 - - this._FetchFileSizeErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._FetchFileSizeErrorValue = e.message - this._FetchFileSizeResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeError, - C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeError, - ]) + C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._FetchFileSizeErrorValue = e.message; + this._FetchFileSizeResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeError, + C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeError, + ]); + } + console.error(e); } - console.error(e) } - }) - _FetchFileSize = this._FetchFileSizeBase - _FetchFileSizeSync = this._FetchFileSizeBase + ); + _FetchFileSize = this._FetchFileSizeBase; + _FetchFileSizeSync = this._FetchFileSizeBase; + + _ActivateAchievementBase = this.wrap( + super._ActivateAchievement, + async (/** @type {string} */ achievement, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "achievement", + method: "activate", + args: [achievement], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._ActivateAchievementResultValue = answer?.body.success; + this._ActivateAchievementErrorValue = ""; - _ActivateAchievementBase = this.wrap(super._ActivateAchievement, async ( - /** @type {string} */ achievement, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/raw', - body: { - namespace: 'achievement', - method: 'activate', - args: [achievement], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._ActivateAchievementResultValue = answer?.body.success - this._ActivateAchievementErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateAchievementSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementSuccess - ]) - } catch (e) { - if (e instanceof Error) { - this._ActivateAchievementErrorValue = e.message - this._ActivateAchievementResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateAchievementError, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementError - ]) + C3.Plugins.pipelabv2.Cnds.OnActivateAchievementSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ActivateAchievementErrorValue = e.message; + this._ActivateAchievementResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnActivateAchievementError, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementError, + ]); + } } - } - }, this.unsupportedEngine) - _ActivateAchievement = this._ActivateAchievementBase - _ActivateAchievementSync = this._ActivateAchievementBase + }, + this.unsupportedEngine + ); + _ActivateAchievement = this._ActivateAchievementBase; + _ActivateAchievementSync = this._ActivateAchievementBase; + + _ClearAchievementBase = this.wrap( + super._ClearAchievement, + async (/** @type {string} */ achievement, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "achievement", + method: "clear", + args: [achievement], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._ClearAchievementResultValue = answer?.body.success; + this._ClearAchievementErrorValue = ""; - _ClearAchievementBase = this.wrap(super._ClearAchievement, async ( - /** @type {string} */ achievement, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/raw', - body: { - namespace: 'achievement', - method: 'clear', - args: [achievement], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._ClearAchievementResultValue = answer?.body.success - this._ClearAchievementErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnClearAchievementSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementSuccess, - ]) - } catch (e) { - if (e instanceof Error) { - this._ClearAchievementErrorValue = e.message - this._ClearAchievementResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnClearAchievementError, - C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementError, - ]) - } - console.error(e) - } - }, this.unsupportedEngine) - _ClearAchievement = this._ClearAchievementBase - _ClearAchievementSync = this._ClearAchievementBase + C3.Plugins.pipelabv2.Cnds.OnClearAchievementSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ClearAchievementErrorValue = e.message; + this._ClearAchievementResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnClearAchievementError, + C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementError, + ]); + } + console.error(e); + } + }, + this.unsupportedEngine + ); + _ClearAchievement = this._ClearAchievementBase; + _ClearAchievementSync = this._ClearAchievementBase; + + _CheckAchievementActivationStateBase = this.wrap( + super._CheckAchievementActivationState, + async (/** @type {string} */ achievement, /** @type {Tag} */ tag) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "achievement", + method: "isActivated", + args: [achievement], + }, + }; - _CheckAchievementActivationStateBase = this.wrap(super._CheckAchievementActivationState, async ( - /** @type {string} */ achievement, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/raw', - body: { - namespace: 'achievement', - method: 'isActivated', - args: [achievement], - }, - }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._CheckAchievementActivationStateResultValue = answer?.body.data; + this._CheckAchievementActivationStateErrorValue = ""; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._CheckAchievementActivationStateResultValue = answer?.body.data - this._CheckAchievementActivationStateErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyCheckAchievementActivationStateSuccess - ]) - } catch (e) { - if (e instanceof Error) { - this._CheckAchievementActivationErrorValue = e.message - this._CheckAchievementActivationResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateError, - C3.Plugins.pipelabv2.Cnds.OnAnyCheckAchievementActivationStateError - ]) + C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateSuccess, + C3.Plugins.pipelabv2.Cnds + .OnAnyCheckAchievementActivationStateSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._CheckAchievementActivationErrorValue = e.message; + this._CheckAchievementActivationResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateError, + C3.Plugins.pipelabv2.Cnds + .OnAnyCheckAchievementActivationStateError, + ]); + } } - } - }, () => false) - _CheckAchievementActivationState = this._CheckAchievementActivationStateBase - _CheckAchievementActivationStateSync = this._CheckAchievementActivationStateBase + }, + () => false + ); + _CheckAchievementActivationState = + this._CheckAchievementActivationStateBase; + _CheckAchievementActivationStateSync = + this._CheckAchievementActivationStateBase; + + _LeaderboardUploadScoreBase = this.wrap( + super._LeaderboardUploadScore, + async ( + /** @type {string} */ name, + /** @type {number} */ score, + /** @type {string} */ type, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/leaderboard/upload-score", + body: { + name, + score, + type, + metadata: [], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._LeaderboardUploadScoreResultValue = answer?.body.success; + this._LeaderboardUploadScoreErrorValue = ""; - _LeaderboardUploadScoreBase = this.wrap(super._LeaderboardUploadScore, async ( - /** @type {string} */ name, - /** @type {number} */ score, - /** @type {string} */ type, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/leaderboard/upload-score', - body: { - name, - score, - type, - metadata: [], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._LeaderboardUploadScoreResultValue = answer?.body.success - this._LeaderboardUploadScoreErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreSuccess - ]) - } catch (e) { - if (e instanceof Error) { - this._LeaderboardUploadScoreErrorValue = e.message - this._LeaderboardUploadScoreResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreError, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreError - ]) + C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._LeaderboardUploadScoreErrorValue = e.message; + this._LeaderboardUploadScoreResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreError, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreError, + ]); + } } - } - }, this.unsupportedEngine) - _LeaderboardUploadScore = this._LeaderboardUploadScoreBase - _LeaderboardUploadScoreSync = this._LeaderboardUploadScoreBase - - _LeaderboardUploadScoreWithMetadataBase = this.wrap(super._LeaderboardUploadScoreWithMetadata, async ( - /** @type {string} */ name, - /** @type {number} */ score, - /** @type {IObjectType} */ metadata, - /** @type {string} */ type, - /** @type {Tag} */ tag - ) => { - const target = metadata.getFirstPickedInstance(); - let result = [] - if (target) { - if (target.height === 1) { - const { width } = target; - for (let i = 0; i < width; i++) { - const value = target.getAt(i) - - result.push(typeof value === 'string' ? parseInt(value, 10) : value) + }, + this.unsupportedEngine + ); + _LeaderboardUploadScore = this._LeaderboardUploadScoreBase; + _LeaderboardUploadScoreSync = this._LeaderboardUploadScoreBase; + + _LeaderboardUploadScoreWithMetadataBase = this.wrap( + super._LeaderboardUploadScoreWithMetadata, + async ( + /** @type {string} */ name, + /** @type {number} */ score, + /** @type {IObjectType} */ metadata, + /** @type {string} */ type, + /** @type {Tag} */ tag + ) => { + const target = metadata.getFirstPickedInstance(); + let result = []; + if (target) { + if (target.height === 1) { + const { width } = target; + for (let i = 0; i < width; i++) { + const value = target.getAt(i); + + result.push( + typeof value === "string" ? parseInt(value, 10) : value + ); + } + } else { + console.warn( + "Array must be a 1 dimentional array. Skipping metadata" + ); } - } else { - console.warn("Array must be a 1 dimentional array. Skipping metadata") } - } - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/leaderboard/upload-score', - body: { - name, - score, - type, - metadata: result, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') - } - this._LeaderboardUploadScoreWithMetadataResultValue = answer?.body.success - this._LeaderboardUploadScoreWithMetadataErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreWithMetadataSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreWithMetadataSuccess - ]) - } catch (e) { - if (e instanceof Error) { - this._LeaderboardUploadScoreWithMetadataErrorValue = e.message - this._LeaderboardUploadScoreWithMetadataResultValue = -1 + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/leaderboard/upload-score", + body: { + name, + score, + type, + metadata: result, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._LeaderboardUploadScoreWithMetadataResultValue = + answer?.body.success; + this._LeaderboardUploadScoreWithMetadataErrorValue = ""; + await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreWithMetadataError, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreWithMetadataError - ]) + C3.Plugins.pipelabv2.Cnds + .OnLeaderboardUploadScoreWithMetadataSuccess, + C3.Plugins.pipelabv2.Cnds + .OnAnyLeaderboardUploadScoreWithMetadataSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._LeaderboardUploadScoreWithMetadataErrorValue = e.message; + this._LeaderboardUploadScoreWithMetadataResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds + .OnLeaderboardUploadScoreWithMetadataError, + C3.Plugins.pipelabv2.Cnds + .OnAnyLeaderboardUploadScoreWithMetadataError, + ]); + } } - } - }, this.unsupportedEngine) - _LeaderboardUploadScoreWithMetadata = this._LeaderboardUploadScoreWithMetadataBase - _LeaderboardUploadScoreWithMetadataSync = this._LeaderboardUploadScoreWithMetadataBase + }, + this.unsupportedEngine + ); + _LeaderboardUploadScoreWithMetadata = + this._LeaderboardUploadScoreWithMetadataBase; + _LeaderboardUploadScoreWithMetadataSync = + this._LeaderboardUploadScoreWithMetadataBase; + + _LeaderboardDownloadScoreBase = this.wrap( + super._LeaderboardDownloadScore, + async ( + /** @type {string} */ leaderboard, + /** @type {number} */ downloadType, + /** @type {number} */ start, + /** @type {number} */ end, + /** @type {IObjectType} */ jsonObject, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/leaderboard/download-score", + body: { + name: leaderboard, + type: downloadType, + start, + end, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._LeaderboardDownloadScoreResultValue = answer?.body.success; + this._LeaderboardDownloadScoreErrorValue = ""; - _LeaderboardDownloadScoreBase = this.wrap(super._LeaderboardDownloadScore, async ( - /** @type {string} */ leaderboard, - /** @type {number} */ downloadType, - /** @type {number} */ start, - /** @type {number} */ end, - /** @type {IObjectType} */ jsonObject, - /** @type {Tag} */ tag - ) => { + const jsonInstance = jsonObject.getFirstInstance(); + jsonInstance?.setJsonDataCopy(answer?.body.data); - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/leaderboard/download-score', - body: { - name: leaderboard, - type: downloadType, - start, - end, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._LeaderboardDownloadScoreErrorValue = e.message; + this._LeaderboardDownloadScoreResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreError, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreError, + ]); + } } - this._LeaderboardDownloadScoreResultValue = answer?.body.success - this._LeaderboardDownloadScoreErrorValue = '' - - const jsonInstance = jsonObject.getFirstInstance() - jsonInstance?.setJsonDataCopy(answer?.body.data) - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreSuccess - ]) - } catch (e) { - if (e instanceof Error) { - this._LeaderboardDownloadScoreErrorValue = e.message - this._LeaderboardDownloadScoreResultValue = -1 + }, + this.unsupportedEngine + ); + _LeaderboardDownloadScore = this._LeaderboardDownloadScoreBase; + _LeaderboardDownloadScoreSync = this._LeaderboardDownloadScoreBase; + + _SetRichPresenceBase = this.wrap( + super._SetRichPresence, + async ( + /** @type {string} */ key, + /** @type {string} */ value, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "localplayer", + method: "setRichPresence", + args: [key, value], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._SetRichPresenceResultValue = answer?.body.data; + this._SetRichPresenceErrorValue = ""; + await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreError, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreError - ]) + C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._SetRichPresenceErrorValue = e.message; + this._SetRichPresenceResultValue = -1; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceError, + C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceError, + ]); + } } - } - }, this.unsupportedEngine) - _LeaderboardDownloadScore = this._LeaderboardDownloadScoreBase - _LeaderboardDownloadScoreSync = this._LeaderboardDownloadScoreBase + }, + this.unsupportedEngine + ); + _SetRichPresence = this._SetRichPresenceBase; + _SetRichPresenceSync = this._SetRichPresenceBase; + + _DiscordSetActivityBase = this.wrap( + super._SetRichPresence, + async ( + /** @type {string} */ details, + /** @type {string} */ state, + /** @type {string} */ startTimestamp, + /** @type {string} */ largeImageKey, + /** @type {string} */ largeImageText, + /** @type {string} */ smallImageKey, + /** @type {string} */ smallImageText, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: "/discord/set-activity", + body: { + details, + state, + startTimestamp, + largeImageKey, + largeImageText, + smallImageKey, + smallImageText, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._DiscordSetActivityResultValue = answer?.body.success; + this._DiscordSetActivityErrorValue = ""; - _SetRichPresenceBase = this.wrap(super._SetRichPresence, async ( - /** @type {string} */ key, - /** @type {string} */ value, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: '/steam/raw', - body: { - namespace: 'localplayer', - method: 'setRichPresence', - args: [key, value], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivitySuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivitySuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._DiscordSetActivityErrorValue = e.message; + this._DiscordSetActivityResultValue = false; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivityError, + C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivityError, + ]); + } } - this._SetRichPresenceResultValue = answer?.body.data - this._SetRichPresenceErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceSuccess - ]) - } catch (e) { - if (e instanceof Error) { - this._SetRichPresenceErrorValue = e.message - this._SetRichPresenceResultValue = -1 + }, + this.unsupportedEngine + ); + _DiscordSetActivitySync = this._DiscordSetActivityBase; + _DiscordSetActivity = this._DiscordSetActivityBase; + + _ActivateToWebPageBase = this.wrap( + super._ActivateToWebPage, + async ( + /** @type {string} */ url, + /** @type {number} */ mode, + /** @type {Tag} */ tag + ) => { + try { + // Map Construct3 combo values to Steam constants + // 0 = "default", 1 = "modal" + const steamMode = mode === 1 ? 1 : 0; // k_EActivateGameOverlayToWebPageMode_Modal : k_EActivateGameOverlayToWebPageMode_Default + + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "overlay", + method: "activateToWebPage", + args: [url, steamMode], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._ActivateToWebPageResultValue = answer?.body.success; + this._ActivateToWebPageErrorValue = ""; + await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceError, - C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceError - ]) - } - } - }, this.unsupportedEngine) - _SetRichPresence = this._SetRichPresenceBase - _SetRichPresenceSync = this._SetRichPresenceBase - - _DiscordSetActivityBase = this.wrap(super._SetRichPresence, async ( - /** @type {string} */ details, - /** @type {string} */ state, - /** @type {string} */ startTimestamp, - /** @type {string} */ largeImageKey, - /** @type {string} */ largeImageText, - /** @type {string} */ smallImageKey, - /** @type {string} */ smallImageText, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: '/discord/set-activity', - body: { - details, - state, - startTimestamp, - largeImageKey, - largeImageText, - smallImageKey, - smallImageText, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error('Failed') + C3.Plugins.pipelabv2.Cnds.OnActivateToWebPageSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToWebPageSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ActivateToWebPageErrorValue = e.message; + this._ActivateToWebPageResultValue = false; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnActivateToWebPageError, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToWebPageError, + ]); + } } - this._DiscordSetActivityResultValue = answer?.body.success - this._DiscordSetActivityErrorValue = '' - - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivitySuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivitySuccess - ]) - } catch (e) { - if (e instanceof Error) { - this._DiscordSetActivityErrorValue = e.message - this._DiscordSetActivityResultValue = false + }, + this.unsupportedEngine + ); + _ActivateToWebPage = this._ActivateToWebPageBase; + _ActivateToWebPageSync = this._ActivateToWebPageBase; + + _ActivateToStoreBase = this.wrap( + super._ActivateToStore, + async ( + /** @type {number} */ appId, + /** @type {number} */ flag, + /** @type {Tag} */ tag + ) => { + try { + // Map Construct3 combo values to Steam constants + // 0 = "none", 1 = "addToCartAndShow" + const steamFlag = flag === 1 ? 2 : 0; // k_EOverlayToStoreFlag_AddToCartAndShow : k_EOverlayToStoreFlag_None + + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: "/steam/raw", + body: { + namespace: "overlay", + method: "activateToStore", + args: [appId, steamFlag], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error("Failed"); + } + this._ActivateToStoreResultValue = answer?.body.success; + this._ActivateToStoreErrorValue = ""; + await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivityError, - C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivityError - ]) + C3.Plugins.pipelabv2.Cnds.OnActivateToStoreSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToStoreSuccess, + ]); + } catch (e) { + if (e instanceof Error) { + this._ActivateToStoreErrorValue = e.message; + this._ActivateToStoreResultValue = false; + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnActivateToStoreError, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToStoreError, + ]); + } } - } - }, this.unsupportedEngine) - _DiscordSetActivitySync = this._DiscordSetActivityBase - _DiscordSetActivity = this._DiscordSetActivityBase + }, + this.unsupportedEngine + ); + _ActivateToStore = this._ActivateToStoreBase; + _ActivateToStoreSync = this._ActivateToStoreBase; // #region Cnds - _OnInitializeSuccess = this.wrap(super._OnInitializeSuccess, (/** @type {Tag} */ tag) => { - return this._currentTag === tag; - }) + _OnInitializeSuccess = this.wrap( + super._OnInitializeSuccess, + (/** @type {Tag} */ tag) => { + return this._currentTag === tag; + } + ); _OnAnyInitializeSuccess = this.wrap(super._OnAnyInitializeSuccess, () => { - return true - }) - _OnInitializeError = this.wrap(super._OnInitializeError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnInitializeError = this.wrap( + super._OnInitializeError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyInitializeError = this.wrap(super._OnAnyInitializeError, () => { - return true - }) - _OnAppendFileSuccess = this.wrap(super._OnAppendFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnAppendFileSuccess = this.wrap( + super._OnAppendFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyAppendFileSuccess = this.wrap(super._OnAnyAppendFileSuccess, () => { - return true - }) - _OnAppendFileError = this.wrap(super._OnAppendFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnAppendFileError = this.wrap( + super._OnAppendFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyAppendFileError = this.wrap(super._OnAnyAppendFileError, () => { - return true - }) - _OnCopyFileSuccess = this.wrap(super._OnCopyFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnCopyFileSuccess = this.wrap( + super._OnCopyFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyCopyFileSuccess = this.wrap(super._OnAnyCopyFileSuccess, () => { - return true - }) - _OnCopyFileError = this.wrap(super._OnCopyFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnCopyFileError = this.wrap( + super._OnCopyFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyCopyFileError = this.wrap(super._OnAnyCopyFileError, () => { - return true - }) - _OnFetchFileSizeSuccess = this.wrap(super._OnFetchFileSizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyFetchFileSizeSuccess = this.wrap(super._OnAnyFetchFileSizeSuccess, () => { - return true - }) - _OnFetchFileSizeError = this.wrap(super._OnFetchFileSizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnFetchFileSizeSuccess = this.wrap( + super._OnFetchFileSizeSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyFetchFileSizeSuccess = this.wrap( + super._OnAnyFetchFileSizeSuccess, + () => { + return true; + } + ); + _OnFetchFileSizeError = this.wrap( + super._OnFetchFileSizeError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyFetchFileSizeError = this.wrap(super._OnAnyFetchFileSizeError, () => { - return true - }) - _OnCreateFolderSuccess = this.wrap(super._OnCreateFolderSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyCreateFolderSuccess = this.wrap(super._OnAnyCreateFolderSuccess, () => { - return true - }) - _OnCreateFolderError = this.wrap(super._OnCreateFolderError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnCreateFolderSuccess = this.wrap( + super._OnCreateFolderSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyCreateFolderSuccess = this.wrap( + super._OnAnyCreateFolderSuccess, + () => { + return true; + } + ); + _OnCreateFolderError = this.wrap( + super._OnCreateFolderError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyCreateFolderError = this.wrap(super._OnAnyCreateFolderError, () => { - return true - }) - _OnDeleteFileSuccess = this.wrap(super._OnDeleteFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnDeleteFileSuccess = this.wrap( + super._OnDeleteFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyDeleteFileSuccess = this.wrap(super._OnAnyDeleteFileSuccess, () => { - return true - }) - _OnDeleteFileError = this.wrap(super._OnDeleteFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnDeleteFileError = this.wrap( + super._OnDeleteFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyDeleteFileError = this.wrap(super._OnAnyDeleteFileError, () => { - return true - }) - _OnListFilesSuccess = this.wrap(super._OnListFilesSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnListFilesSuccess = this.wrap( + super._OnListFilesSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyListFilesSuccess = this.wrap(super._OnAnyListFilesSuccess, () => { - return true - }) - _OnListFilesError = this.wrap(super._OnListFilesError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnListFilesError = this.wrap( + super._OnListFilesError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyListFilesError = this.wrap(super._OnAnyListFilesError, () => { - return true - }) - _OnMoveFileSuccess = this.wrap(super._OnMoveFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnMoveFileSuccess = this.wrap( + super._OnMoveFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyMoveFileSuccess = this.wrap(super._OnAnyMoveFileSuccess, () => { - return true - }) - _OnMoveFileError = this.wrap(super._OnMoveFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnMoveFileError = this.wrap( + super._OnMoveFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyMoveFileError = this.wrap(super._OnAnyMoveFileError, () => { - return true - }) - _OnOpenBrowserSuccess = this.wrap(super._OnOpenBrowserSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnOpenBrowserSuccess = this.wrap( + super._OnOpenBrowserSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyOpenBrowserSuccess = this.wrap(super._OnAnyOpenBrowserSuccess, () => { - return true - }) - _OnOpenBrowserError = this.wrap(super._OnOpenBrowserError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnOpenBrowserError = this.wrap( + super._OnOpenBrowserError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyOpenBrowserError = this.wrap(super._OnAnyOpenBrowserError, () => { - return true - }) - _OnReadBinaryFileSuccess = this.wrap(super._OnReadBinaryFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyReadBinaryFileSuccess = this.wrap(super._OnAnyReadBinaryFileSuccess, () => { - return true - }) - _OnReadBinaryFileError = this.wrap(super._OnReadBinaryFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyReadBinaryFileError = this.wrap(super._OnAnyReadBinaryFileError, () => { - return true - }) - _OnRenameFileSuccess = this.wrap(super._OnRenameFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnReadBinaryFileSuccess = this.wrap( + super._OnReadBinaryFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyReadBinaryFileSuccess = this.wrap( + super._OnAnyReadBinaryFileSuccess, + () => { + return true; + } + ); + _OnReadBinaryFileError = this.wrap( + super._OnReadBinaryFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyReadBinaryFileError = this.wrap( + super._OnAnyReadBinaryFileError, + () => { + return true; + } + ); + _OnRenameFileSuccess = this.wrap( + super._OnRenameFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyRenameFileSuccess = this.wrap(super._OnAnyRenameFileSuccess, () => { - return true - }) - _OnRenameFileError = this.wrap(super._OnRenameFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnRenameFileError = this.wrap( + super._OnRenameFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyRenameFileError = this.wrap(super._OnAnyRenameFileError, () => { - return true - }) - _OnRunFileSuccess = this.wrap(super._OnRunFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnRunFileSuccess = this.wrap( + super._OnRunFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyRunFileSuccess = this.wrap(super._OnAnyRunFileSuccess, () => { - return true - }) - _OnRunFileError = this.wrap(super._OnRunFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnRunFileError = this.wrap( + super._OnRunFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyRunFileError = this.wrap(super._OnAnyRunFileError, () => { - return true - }) - _OnShellOpenSuccess = this.wrap(super._OnShellOpenSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnShellOpenSuccess = this.wrap( + super._OnShellOpenSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyShellOpenSuccess = this.wrap(super._OnAnyShellOpenSuccess, () => { - return true - }) - _OnShellOpenError = this.wrap(super._OnShellOpenError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnShellOpenError = this.wrap( + super._OnShellOpenError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyShellOpenError = this.wrap(super._OnAnyShellOpenError, () => { - return true - }) - _OnExplorerOpenSuccess = this.wrap(super._OnExplorerOpenSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyExplorerOpenSuccess = this.wrap(super._OnAnyExplorerOpenSuccess, () => { - return true - }) - _OnExplorerOpenError = this.wrap(super._OnExplorerOpenError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnExplorerOpenSuccess = this.wrap( + super._OnExplorerOpenSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyExplorerOpenSuccess = this.wrap( + super._OnAnyExplorerOpenSuccess, + () => { + return true; + } + ); + _OnExplorerOpenError = this.wrap( + super._OnExplorerOpenError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyExplorerOpenError = this.wrap(super._OnAnyExplorerOpenError, () => { - return true - }) - _OnWriteBinaryFileSuccess = this.wrap(super._OnWriteBinaryFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyWriteBinaryFileSuccess = this.wrap(super._OnAnyWriteBinaryFileSuccess, () => { - return true - }) - _OnWriteBinaryFileError = this.wrap(super._OnWriteBinaryFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyWriteBinaryFileError = this.wrap(super._OnAnyWriteBinaryFileError, () => { - return true - }) - _OnWriteTextFileSuccess = this.wrap(super._OnWriteTextFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyWriteTextFileSuccess = this.wrap(super._OnAnyWriteTextFileSuccess, () => { - return true - }) - _OnWriteTextFileError = this.wrap(super._OnWriteTextFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnWriteBinaryFileSuccess = this.wrap( + super._OnWriteBinaryFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyWriteBinaryFileSuccess = this.wrap( + super._OnAnyWriteBinaryFileSuccess, + () => { + return true; + } + ); + _OnWriteBinaryFileError = this.wrap( + super._OnWriteBinaryFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyWriteBinaryFileError = this.wrap( + super._OnAnyWriteBinaryFileError, + () => { + return true; + } + ); + _OnWriteTextFileSuccess = this.wrap( + super._OnWriteTextFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyWriteTextFileSuccess = this.wrap( + super._OnAnyWriteTextFileSuccess, + () => { + return true; + } + ); + _OnWriteTextFileError = this.wrap( + super._OnWriteTextFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyWriteTextFileError = this.wrap(super._OnAnyWriteTextFileError, () => { - return true - }) - _OnWriteTextSuccess = this.wrap(super._OnWriteTextSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnWriteTextSuccess = this.wrap( + super._OnWriteTextSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyWriteTextSuccess = this.wrap(super._OnAnyWriteTextSuccess, () => { - return true - }) - _OnWriteTextError = this.wrap(super._OnWriteTextError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnWriteTextError = this.wrap( + super._OnWriteTextError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyWriteTextError = this.wrap(super._OnAnyWriteTextError, () => { - return true - }) - _OnReadTextFileSuccess = this.wrap(super._OnReadTextFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyReadTextFileSuccess = this.wrap(super._OnAnyReadTextFileSuccess, () => { - return true - }) - _OnReadTextFileError = this.wrap(super._OnReadTextFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnReadTextFileSuccess = this.wrap( + super._OnReadTextFileSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyReadTextFileSuccess = this.wrap( + super._OnAnyReadTextFileSuccess, + () => { + return true; + } + ); + _OnReadTextFileError = this.wrap( + super._OnReadTextFileError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyReadTextFileError = this.wrap(super._OnAnyReadTextFileError, () => { - return true - }) - _OnCheckIfPathExistSuccess = this.wrap(super._OnCheckIfPathExistSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyCheckIfPathExistSuccess = this.wrap(super._OnAnyCheckIfPathExistSuccess, () => { - return true - }) - _OnCheckIfPathExistError = this.wrap(super._OnCheckIfPathExistError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyCheckIfPathExistError = this.wrap(super._OnAnyCheckIfPathExistError, () => { - return true - }) - _OnShowFolderDialogSuccess = this.wrap(super._OnShowFolderDialogSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyShowFolderDialogSuccess = this.wrap(super._OnAnyShowFolderDialogSuccess, () => { - return true - }) - _OnShowFolderDialogError = this.wrap(super._OnShowFolderDialogError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyShowFolderDialogError = this.wrap(super._OnAnyShowFolderDialogError, () => { - return true - }) - _OnShowOpenDialogSuccess = this.wrap(super._OnShowOpenDialogSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyShowOpenDialogSuccess = this.wrap(super._OnAnyShowOpenDialogSuccess, () => { - return true - }) - _OnShowOpenDialogError = this.wrap(super._OnShowOpenDialogError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyShowOpenDialogError = this.wrap(super._OnAnyShowOpenDialogError, () => { - return true - }) - _OnShowSaveDialogSuccess = this.wrap(super._OnShowSaveDialogSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyShowSaveDialogSuccess = this.wrap(super._OnAnyShowSaveDialogSuccess, () => { - return true - }) - _OnShowSaveDialogError = this.wrap(super._OnShowSaveDialogError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyShowSaveDialogError = this.wrap(super._OnAnyShowSaveDialogError, () => { - return true - }) - _OnMaximizeSuccess = this.wrap(super._OnMaximizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnCheckIfPathExistSuccess = this.wrap( + super._OnCheckIfPathExistSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyCheckIfPathExistSuccess = this.wrap( + super._OnAnyCheckIfPathExistSuccess, + () => { + return true; + } + ); + _OnCheckIfPathExistError = this.wrap( + super._OnCheckIfPathExistError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyCheckIfPathExistError = this.wrap( + super._OnAnyCheckIfPathExistError, + () => { + return true; + } + ); + _OnShowFolderDialogSuccess = this.wrap( + super._OnShowFolderDialogSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyShowFolderDialogSuccess = this.wrap( + super._OnAnyShowFolderDialogSuccess, + () => { + return true; + } + ); + _OnShowFolderDialogError = this.wrap( + super._OnShowFolderDialogError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyShowFolderDialogError = this.wrap( + super._OnAnyShowFolderDialogError, + () => { + return true; + } + ); + _OnShowOpenDialogSuccess = this.wrap( + super._OnShowOpenDialogSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyShowOpenDialogSuccess = this.wrap( + super._OnAnyShowOpenDialogSuccess, + () => { + return true; + } + ); + _OnShowOpenDialogError = this.wrap( + super._OnShowOpenDialogError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyShowOpenDialogError = this.wrap( + super._OnAnyShowOpenDialogError, + () => { + return true; + } + ); + _OnShowSaveDialogSuccess = this.wrap( + super._OnShowSaveDialogSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyShowSaveDialogSuccess = this.wrap( + super._OnAnyShowSaveDialogSuccess, + () => { + return true; + } + ); + _OnShowSaveDialogError = this.wrap( + super._OnShowSaveDialogError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyShowSaveDialogError = this.wrap( + super._OnAnyShowSaveDialogError, + () => { + return true; + } + ); + _OnMaximizeSuccess = this.wrap( + super._OnMaximizeSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyMaximizeSuccess = this.wrap(super._OnAnyMaximizeSuccess, () => { - return true - }) - _OnMaximizeError = this.wrap(super._OnMaximizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnMaximizeError = this.wrap( + super._OnMaximizeError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyMaximizeError = this.wrap(super._OnAnyMaximizeError, () => { - return true - }) - _OnMinimizeSuccess = this.wrap(super._OnMinimizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnMinimizeSuccess = this.wrap( + super._OnMinimizeSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyMinimizeSuccess = this.wrap(super._OnAnyMinimizeSuccess, () => { - return true - }) - _OnMinimizeError = this.wrap(super._OnMinimizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnMinimizeError = this.wrap( + super._OnMinimizeError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyMinimizeError = this.wrap(super._OnAnyMinimizeError, () => { - return true - }) - _OnRestoreSuccess = this.wrap(super._OnRestoreSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnRestoreSuccess = this.wrap( + super._OnRestoreSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyRestoreSuccess = this.wrap(super._OnAnyRestoreSuccess, () => { - return true - }) - _OnRestoreError = this.wrap(super._OnRestoreError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnRestoreError = this.wrap( + super._OnRestoreError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyRestoreError = this.wrap(super._OnAnyRestoreError, () => { - return true - }) - _OnRequestAttentionSuccess = this.wrap(super._OnRequestAttentionSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyRequestAttentionSuccess = this.wrap(super._OnAnyRequestAttentionSuccess, () => { - return true - }) - _OnRequestAttentionError = this.wrap(super._OnRequestAttentionError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyRequestAttentionError = this.wrap(super._OnAnyRequestAttentionError, () => { - return true - }) - _OnSetAlwaysOnTopSuccess = this.wrap(super._OnSetAlwaysOnTopSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetAlwaysOnTopSuccess = this.wrap(super._OnAnySetAlwaysOnTopSuccess, () => { - return true - }) - _OnSetAlwaysOnTopError = this.wrap(super._OnSetAlwaysOnTopError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetAlwaysOnTopError = this.wrap(super._OnAnySetAlwaysOnTopError, () => { - return true - }) - _OnSetHeightSuccess = this.wrap(super._OnSetHeightSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnRequestAttentionSuccess = this.wrap( + super._OnRequestAttentionSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyRequestAttentionSuccess = this.wrap( + super._OnAnyRequestAttentionSuccess, + () => { + return true; + } + ); + _OnRequestAttentionError = this.wrap( + super._OnRequestAttentionError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyRequestAttentionError = this.wrap( + super._OnAnyRequestAttentionError, + () => { + return true; + } + ); + _OnSetAlwaysOnTopSuccess = this.wrap( + super._OnSetAlwaysOnTopSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetAlwaysOnTopSuccess = this.wrap( + super._OnAnySetAlwaysOnTopSuccess, + () => { + return true; + } + ); + _OnSetAlwaysOnTopError = this.wrap( + super._OnSetAlwaysOnTopError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetAlwaysOnTopError = this.wrap( + super._OnAnySetAlwaysOnTopError, + () => { + return true; + } + ); + _OnSetHeightSuccess = this.wrap( + super._OnSetHeightSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetHeightSuccess = this.wrap(super._OnAnySetHeightSuccess, () => { - return true - }) - _OnSetHeightError = this.wrap(super._OnSetHeightError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetHeightError = this.wrap( + super._OnSetHeightError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetHeightError = this.wrap(super._OnAnySetHeightError, () => { - return true - }) - _OnSetMaximumSizeSuccess = this.wrap(super._OnSetMaximumSizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetMaximumSizeSuccess = this.wrap(super._OnAnySetMaximumSizeSuccess, () => { - return true - }) - _OnSetMaximumSizeError = this.wrap(super._OnSetMaximumSizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetMaximumSizeError = this.wrap(super._OnAnySetMaximumSizeError, () => { - return true - }) - _OnSetMinimumSizeSuccess = this.wrap(super._OnSetMinimumSizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetMinimumSizeSuccess = this.wrap(super._OnAnySetMinimumSizeSuccess, () => { - return true - }) - _OnSetMinimumSizeError = this.wrap(super._OnSetMinimumSizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetMinimumSizeError = this.wrap(super._OnAnySetMinimumSizeError, () => { - return true - }) - _OnSetResizableSuccess = this.wrap(super._OnSetResizableSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetResizableSuccess = this.wrap(super._OnAnySetResizableSuccess, () => { - return true - }) - _OnSetResizableError = this.wrap(super._OnSetResizableError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetMaximumSizeSuccess = this.wrap( + super._OnSetMaximumSizeSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetMaximumSizeSuccess = this.wrap( + super._OnAnySetMaximumSizeSuccess, + () => { + return true; + } + ); + _OnSetMaximumSizeError = this.wrap( + super._OnSetMaximumSizeError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetMaximumSizeError = this.wrap( + super._OnAnySetMaximumSizeError, + () => { + return true; + } + ); + _OnSetMinimumSizeSuccess = this.wrap( + super._OnSetMinimumSizeSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetMinimumSizeSuccess = this.wrap( + super._OnAnySetMinimumSizeSuccess, + () => { + return true; + } + ); + _OnSetMinimumSizeError = this.wrap( + super._OnSetMinimumSizeError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetMinimumSizeError = this.wrap( + super._OnAnySetMinimumSizeError, + () => { + return true; + } + ); + _OnSetResizableSuccess = this.wrap( + super._OnSetResizableSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetResizableSuccess = this.wrap( + super._OnAnySetResizableSuccess, + () => { + return true; + } + ); + _OnSetResizableError = this.wrap( + super._OnSetResizableError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetResizableError = this.wrap(super._OnAnySetResizableError, () => { - return true - }) - _OnSetTitleSuccess = this.wrap(super._OnSetTitleSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetTitleSuccess = this.wrap( + super._OnSetTitleSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetTitleSuccess = this.wrap(super._OnAnySetTitleSuccess, () => { - return true - }) - _OnSetTitleError = this.wrap(super._OnSetTitleError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetTitleError = this.wrap( + super._OnSetTitleError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetTitleError = this.wrap(super._OnAnySetTitleError, () => { - return true - }) - _OnSetWidthSuccess = this.wrap(super._OnSetWidthSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetWidthSuccess = this.wrap( + super._OnSetWidthSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetWidthSuccess = this.wrap(super._OnAnySetWidthSuccess, () => { - return true - }) - _OnSetWidthError = this.wrap(super._OnSetWidthError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetWidthError = this.wrap( + super._OnSetWidthError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetWidthError = this.wrap(super._OnAnySetWidthError, () => { - return true - }) - _OnSetXSuccess = this.wrap(super._OnSetXSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetXSuccess = this.wrap( + super._OnSetXSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetXSuccess = this.wrap(super._OnAnySetXSuccess, () => { - return true - }) - _OnSetXError = this.wrap(super._OnSetXError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetXError = this.wrap( + super._OnSetXError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetXError = this.wrap(super._OnAnySetXError, () => { - return true - }) - _OnSetYSuccess = this.wrap(super._OnSetYSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetYSuccess = this.wrap( + super._OnSetYSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetYSuccess = this.wrap(super._OnAnySetYSuccess, () => { - return true - }) - _OnSetYError = this.wrap(super._OnSetYError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetYError = this.wrap( + super._OnSetYError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetYError = this.wrap(super._OnAnySetYError, () => { - return true - }) - _OnShowDevToolsSuccess = this.wrap(super._OnShowDevToolsSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyShowDevToolsSuccess = this.wrap(super._OnAnyShowDevToolsSuccess, () => { - return true - }) - _OnShowDevToolsError = this.wrap(super._OnShowDevToolsError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnShowDevToolsSuccess = this.wrap( + super._OnShowDevToolsSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyShowDevToolsSuccess = this.wrap( + super._OnAnyShowDevToolsSuccess, + () => { + return true; + } + ); + _OnShowDevToolsError = this.wrap( + super._OnShowDevToolsError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyShowDevToolsError = this.wrap(super._OnAnyShowDevToolsError, () => { - return true - }) - _OnUnmaximizeSuccess = this.wrap(super._OnUnmaximizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnUnmaximizeSuccess = this.wrap( + super._OnUnmaximizeSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyUnmaximizeSuccess = this.wrap(super._OnAnyUnmaximizeSuccess, () => { - return true - }) - _OnUnmaximizeError = this.wrap(super._OnUnmaximizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnUnmaximizeError = this.wrap( + super._OnUnmaximizeError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnyUnmaximizeError = this.wrap(super._OnAnyUnmaximizeError, () => { - return true - }) - _OnSetFullscreenSuccess = this.wrap(super._OnSetFullscreenSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetFullscreenSuccess = this.wrap(super._OnAnySetFullscreenSuccess, () => { - return true - }) - _OnSetFullscreenError = this.wrap(super._OnSetFullscreenError, (/** @type {Tag} */ tag) => this._currentTag === tag) + return true; + }); + _OnSetFullscreenSuccess = this.wrap( + super._OnSetFullscreenSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetFullscreenSuccess = this.wrap( + super._OnAnySetFullscreenSuccess, + () => { + return true; + } + ); + _OnSetFullscreenError = this.wrap( + super._OnSetFullscreenError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); _OnAnySetFullscreenError = this.wrap(super._OnAnySetFullscreenError, () => { - return true - }) - - _OnActivateAchievementSuccess = this.wrap(super._OnActivateAchievementSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyActivateAchievementSuccess = this.wrap(super._OnAnyActivateAchievementSuccess, () => true) - _OnActivateAchievementError = this.wrap(super._OnActivateAchievementError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyActivateAchievementError = this.wrap(super._OnAnyActivateAchievementError, () => true) - - _OnLeaderboardUploadScoreSuccess = this.wrap(super._OnLeaderboardUploadScoreSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyLeaderboardUploadScoreSuccess = this.wrap(super._OnAnyLeaderboardUploadScoreSuccess, () => true) - _OnLeaderboardUploadScoreError = this.wrap(super._OnLeaderboardUploadScoreError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyLeaderboardUploadScoreError = this.wrap(super._OnAnyLeaderboardUploadScoreError, () => true) - - _OnLeaderboardDownloadScoreSuccess = this.wrap(super._OnLeaderboardDownloadScoreSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyLeaderboardDownloadScoreSuccess = this.wrap(super._OnAnyLeaderboardDownloadScoreSuccess, () => true) - _OnLeaderboardDownloadScoreError = this.wrap(super._OnLeaderboardDownloadScoreError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyLeaderboardDownloadScoreError = this.wrap(super._OnAnyLeaderboardDownloadScoreError, () => true) - - _OnLeaderboardUploadScoreWithMetadataSuccess = this.wrap(super._OnLeaderboardUploadScoreWithMetadataSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyLeaderboardUploadScoreWithMetadataSuccess = this.wrap(super._OnAnyLeaderboardUploadScoreWithMetadataSuccess, () => true) - _OnLeaderboardUploadScoreWithMetadataError = this.wrap(super._OnLeaderboardUploadScoreWithMetadataError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyLeaderboardUploadScoreWithMetadataError = this.wrap(super._OnAnyLeaderboardUploadScoreWithMetadataError, () => true) - - - _OnClearAchievementSuccess = this.wrap(super._OnClearAchievementSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyClearAchievementSuccess = this.wrap(super._OnAnyClearAchievementSuccess, () => { - return true - }) - _OnClearAchievementError = this.wrap(super._OnClearAchievementError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyClearAchievementError = this.wrap(super._OnAnyClearAchievementError, () => { - return true - }) - _OnCheckAchievementActivationStateSuccess = this.wrap(super._OnCheckAchievementActivationStateSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyCheckAchievementActivationStateSuccess = this.wrap(super._OnAnyCheckAchievementActivationStateSuccess, () => { - return true - }) - _OnCheckAchievementActivationStateError = this.wrap(super._OnCheckAchievementActivationStateError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyCheckAchievementActivationStateError = this.wrap(super._OnAnyCheckAchievementActivationStateError, () => { - return true - }) - - _OnSetRichPresenceSuccess = this.wrap(super._OnSetRichPresenceSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetRichPresenceSuccess = this.wrap(super._OnAnySetRichPresenceSuccess, () => { - return true - }) - _OnSetRichPresenceError = this.wrap(super._OnSetRichPresenceError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnySetRichPresenceError = this.wrap(super._OnAnySetRichPresenceError, () => { - return true - }) - - _OnDiscordSetActivitySuccess = this.wrap(super._OnDiscordSetActivitySuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyDiscordSetActivitySuccess = this.wrap(super._OnAnyDiscordSetActivitySuccess, () => { - return true - }) - _OnDiscordSetActivityError = this.wrap(super._OnDiscordSetActivityError, (/** @type {Tag} */ tag) => this._currentTag === tag) - _OnAnyDiscordSetActivityError = this.wrap(super._OnAnyDiscordSetActivityError, () => { - return true - }) - - _IsFullScreen = this.wrap(super._IsFullScreen, (state) => { - return this._fullscreenState === state - }, () => false) - - _LastCheckedPathExists = this.wrap(super._LastCheckedPathExists, (state) => { - return this._CheckIfPathExistErrorValue === '' - }, () => false) + return true; + }); + + _OnActivateAchievementSuccess = this.wrap( + super._OnActivateAchievementSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyActivateAchievementSuccess = this.wrap( + super._OnAnyActivateAchievementSuccess, + () => true + ); + _OnActivateAchievementError = this.wrap( + super._OnActivateAchievementError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyActivateAchievementError = this.wrap( + super._OnAnyActivateAchievementError, + () => true + ); + + _OnLeaderboardUploadScoreSuccess = this.wrap( + super._OnLeaderboardUploadScoreSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyLeaderboardUploadScoreSuccess = this.wrap( + super._OnAnyLeaderboardUploadScoreSuccess, + () => true + ); + _OnLeaderboardUploadScoreError = this.wrap( + super._OnLeaderboardUploadScoreError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyLeaderboardUploadScoreError = this.wrap( + super._OnAnyLeaderboardUploadScoreError, + () => true + ); + + _OnLeaderboardDownloadScoreSuccess = this.wrap( + super._OnLeaderboardDownloadScoreSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyLeaderboardDownloadScoreSuccess = this.wrap( + super._OnAnyLeaderboardDownloadScoreSuccess, + () => true + ); + _OnLeaderboardDownloadScoreError = this.wrap( + super._OnLeaderboardDownloadScoreError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyLeaderboardDownloadScoreError = this.wrap( + super._OnAnyLeaderboardDownloadScoreError, + () => true + ); + + _OnLeaderboardUploadScoreWithMetadataSuccess = this.wrap( + super._OnLeaderboardUploadScoreWithMetadataSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyLeaderboardUploadScoreWithMetadataSuccess = this.wrap( + super._OnAnyLeaderboardUploadScoreWithMetadataSuccess, + () => true + ); + _OnLeaderboardUploadScoreWithMetadataError = this.wrap( + super._OnLeaderboardUploadScoreWithMetadataError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyLeaderboardUploadScoreWithMetadataError = this.wrap( + super._OnAnyLeaderboardUploadScoreWithMetadataError, + () => true + ); + + _OnClearAchievementSuccess = this.wrap( + super._OnClearAchievementSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyClearAchievementSuccess = this.wrap( + super._OnAnyClearAchievementSuccess, + () => { + return true; + } + ); + _OnClearAchievementError = this.wrap( + super._OnClearAchievementError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyClearAchievementError = this.wrap( + super._OnAnyClearAchievementError, + () => { + return true; + } + ); + _OnCheckAchievementActivationStateSuccess = this.wrap( + super._OnCheckAchievementActivationStateSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyCheckAchievementActivationStateSuccess = this.wrap( + super._OnAnyCheckAchievementActivationStateSuccess, + () => { + return true; + } + ); + _OnCheckAchievementActivationStateError = this.wrap( + super._OnCheckAchievementActivationStateError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyCheckAchievementActivationStateError = this.wrap( + super._OnAnyCheckAchievementActivationStateError, + () => { + return true; + } + ); + + _OnSetRichPresenceSuccess = this.wrap( + super._OnSetRichPresenceSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetRichPresenceSuccess = this.wrap( + super._OnAnySetRichPresenceSuccess, + () => { + return true; + } + ); + _OnSetRichPresenceError = this.wrap( + super._OnSetRichPresenceError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnySetRichPresenceError = this.wrap( + super._OnAnySetRichPresenceError, + () => { + return true; + } + ); + + _OnDiscordSetActivitySuccess = this.wrap( + super._OnDiscordSetActivitySuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyDiscordSetActivitySuccess = this.wrap( + super._OnAnyDiscordSetActivitySuccess, + () => { + return true; + } + ); + _OnDiscordSetActivityError = this.wrap( + super._OnDiscordSetActivityError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyDiscordSetActivityError = this.wrap( + super._OnAnyDiscordSetActivityError, + () => { + return true; + } + ); + + _OnActivateToWebPageSuccess = this.wrap( + super._OnActivateToWebPageSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyActivateToWebPageSuccess = this.wrap( + super._OnAnyActivateToWebPageSuccess, + () => true + ); + _OnActivateToWebPageError = this.wrap( + super._OnActivateToWebPageError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyActivateToWebPageError = this.wrap( + super._OnAnyActivateToWebPageError, + () => true + ); + + _OnActivateToStoreSuccess = this.wrap( + super._OnActivateToStoreSuccess, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyActivateToStoreSuccess = this.wrap( + super._OnAnyActivateToStoreSuccess, + () => true + ); + _OnActivateToStoreError = this.wrap( + super._OnActivateToStoreError, + (/** @type {Tag} */ tag) => this._currentTag === tag + ); + _OnAnyActivateToStoreError = this.wrap( + super._OnAnyActivateToStoreError, + () => true + ); + + _IsFullScreen = this.wrap( + super._IsFullScreen, + (state) => { + return this._fullscreenState === state; + }, + () => false + ); + + _LastCheckedPathExists = this.wrap( + super._LastCheckedPathExists, + (state) => { + return this._CheckIfPathExistErrorValue === ""; + }, + () => false + ); // #endregion // #region Exps _UserFolder = this.exprs(super._UserFolder, () => { - return this._userFolder ?? '' - }) + return this._userFolder ?? ""; + }); _HomeFolder = this.exprs(super._HomeFolder, () => { - return this._homeFolder ?? '' - }) + return this._homeFolder ?? ""; + }); _AppDataFolder = this.exprs(super._AppDataFolder, () => { - return this._appDataFolder ?? '' - }) + return this._appDataFolder ?? ""; + }); _UserDataFolder = this.exprs(super._UserDataFolder, () => { - return this._userDataFolder ?? '' - }) + return this._userDataFolder ?? ""; + }); _LocalAppDataFolder = this.exprs(super._LocalAppDataFolder, () => { - return this._localAppDataFolder ?? '' - }) + return this._localAppDataFolder ?? ""; + }); _LocalUserDataFolder = this.exprs(super._LocalUserDataFolder, () => { - return this._localUserDataFolder ?? '' - }) + return this._localUserDataFolder ?? ""; + }); _SessionDataFolder = this.exprs(super._SessionDataFolder, () => { - return this._sessionDataFolder ?? '' - }) + return this._sessionDataFolder ?? ""; + }); _TempFolder = this.exprs(super._TempFolder, () => { - return this._tempFolder ?? '' - }) + return this._tempFolder ?? ""; + }); _ExeFolder = this.exprs(super._ExeFolder, () => { - return this._exeFolder ?? '' - }) + return this._exeFolder ?? ""; + }); _ModuleFolder = this.exprs(super._ModuleFolder, () => { - return this._moduleFolder ?? '' - }) + return this._moduleFolder ?? ""; + }); _DesktopFolder = this.exprs(super._DesktopFolder, () => { - return this._desktopFolder ?? '' - }) + return this._desktopFolder ?? ""; + }); _DocumentsFolder = this.exprs(super._DocumentsFolder, () => { - return this._documentsFolder ?? '' - }) + return this._documentsFolder ?? ""; + }); _DownloadsFolder = this.exprs(super._DownloadsFolder, () => { - return this._downloadsFolder ?? '' - }) + return this._downloadsFolder ?? ""; + }); _MusicFolder = this.exprs(super._MusicFolder, () => { - return this._musicFolder ?? '' - }) + return this._musicFolder ?? ""; + }); _PicturesFolder = this.exprs(super._PicturesFolder, () => { - return this._picturesFolder ?? '' - }) + return this._picturesFolder ?? ""; + }); _VideosFolder = this.exprs(super._VideosFolder, () => { - return this._videosFolder ?? '' - }) + return this._videosFolder ?? ""; + }); _RecentFolder = this.exprs(super._RecentFolder, () => { - return this._recentFolder ?? '' - }) + return this._recentFolder ?? ""; + }); _LogsFolder = this.exprs(super._LogsFolder, () => { - return this._logsFolder ?? '' - }) + return this._logsFolder ?? ""; + }); _CrashDumpsFolder = this.exprs(super._CrashDumpsFolder, () => { - return this._crashDumpsFolder ?? '' - }) + return this._crashDumpsFolder ?? ""; + }); _AppFolder = this.exprs(super._AppFolder, () => { - return this._appFolder ?? '' - }) + return this._appFolder ?? ""; + }); _AppFolderURL = this.exprs(super._AppFolderURL, () => { - return 'deprecrated' - }) + return "deprecrated"; + }); _ArgumentAt = this.exprs(super._ArgumentAt, () => { - console.error('"_ArgumentAt" Not implemented') - return '' - }) + console.error('"_ArgumentAt" Not implemented'); + return ""; + }); _ArgumentCount = this.exprs(super._ArgumentCount, () => { - console.error('"_ArgumentCount" Not implemented') - return -1 - }) + console.error('"_ArgumentCount" Not implemented'); + return -1; + }); _DroppedFile = this.exprs(super._DroppedFile, () => { - console.error('"_DroppedFile" Not implemented') - return '' - }) + console.error('"_DroppedFile" Not implemented'); + return ""; + }); _ListAt = this.exprs(super._ListAt, (index) => { - return this._ListFilesResultValue[index]?.path ?? '' - }) + return this._ListFilesResultValue[index]?.path ?? ""; + }); _ListCount = this.exprs(super._ListCount, () => { - return this._ListFilesResultValue.length - }) + return this._ListFilesResultValue.length; + }); _ProjectFilesFolder = this.exprs(super._ProjectFilesFolder, () => { - return this._projectFilesFolder ?? '' - }) + return this._projectFilesFolder ?? ""; + }); _ProjectFilesFolderURL = this.exprs(super._ProjectFilesFolderURL, () => { - return this._projectFilesFolder ?? '' - }) + return this._projectFilesFolder ?? ""; + }); _ReadFile = this.exprs(super._ReadFile, () => { - return this._ReadTextFileResultValue ?? '' - }) + return this._ReadTextFileResultValue ?? ""; + }); _WindowHeight = this.exprs(super._WindowHeight, () => { - return this._windowHeight - }) + return this._windowHeight; + }); _WindowWidth = this.exprs(super._WindowWidth, () => { - return this._windowWidth - }) + return this._windowWidth; + }); _WindowTitle = this.exprs(super._WindowTitle, () => { - return this._windowTitle - }) + return this._windowTitle; + }); _WindowX = this.exprs(super._WindowX, () => { - return this._windowX - }) + return this._windowX; + }); _WindowY = this.exprs(super._WindowY, () => { - return this._windowY - }) + return this._windowY; + }); _IsEngine = this.exprs(super._IsEngine, (engine) => { - if (engine === 0 && this._engine === 'electron') return true - if (engine === 1 && this._engine === 'tauri') return true - return false - }) + if (engine === 0 && this._engine === "electron") return true; + if (engine === 1 && this._engine === "tauri") return true; + return false; + }); _LastPathExists = this.exprs(super._LastPathExists, () => { - return this._lastPathExists - }) + return this._lastPathExists; + }); _FullscreenState = () => { - return this._fullscreenState - } + return this._fullscreenState; + }; _CurrentPlatform = this.exprs(super._CurrentPlatform, () => { - return this._platform - }) + return this._platform; + }); _CurrentArchitecture = this.exprs(super._CurrentArchitecture, () => { - return this._arch - }) + return this._arch; + }); _SteamAccountId = this.exprs(super._SteamAccountId, () => { - return this._steam_SteamId.accountId - }) + return this._steam_SteamId.accountId; + }); _SteamId32 = this.exprs(super._SteamId32, () => { - return this._steam_SteamId.steamId32 - }) + return this._steam_SteamId.steamId32; + }); _SteamId64 = this.exprs(super._SteamId64, () => { - return this._steam_SteamId.steamId64 - }) + return this._steam_SteamId.steamId64; + }); _SteamUsername = this.exprs(super._SteamUsername, () => { - return this._steam_Name - }) + return this._steam_Name; + }); _SteamLevel = this.exprs(super._SteamLevel, () => { - return this._steam_Level - }) + return this._steam_Level; + }); _SteamIpCountry = this.exprs(super._SteamIpCountry, () => { - return this._steam_IpCountry - }) - _SteamIsRunningOnSteamDeck = this.exprs(super._SteamIsRunningOnSteamDeck, () => { - return this._steam_IsRunningOnSteamDeck ? 1 : 0 - }) + return this._steam_IpCountry; + }); + _SteamIsRunningOnSteamDeck = this.exprs( + super._SteamIsRunningOnSteamDeck, + () => { + return this._steam_IsRunningOnSteamDeck ? 1 : 0; + } + ); + _SteamAppId = this.exprs(super._SteamAppId, () => { + return this._steam_AppId; + }); _InitializeError = this.exprs(super._InitializeError, () => { - return this._InitializeErrorValue - }) + return this._InitializeErrorValue; + }); _InitializeResult = this.exprs(super._InitializeResult, () => { - return this._InitializeResultValue - }) + return this._InitializeResultValue; + }); _AppendFileError = this.exprs(super._AppendFileError, () => { - return this._AppendFileErrorValue - }) + return this._AppendFileErrorValue; + }); _AppendFileResult = this.exprs(super._AppendFileResult, () => { - return this._AppendFileResultValue - }) + return this._AppendFileResultValue; + }); _CopyFileError = this.exprs(super._CopyFileError, () => { - return this._CopyFileErrorValue - }) + return this._CopyFileErrorValue; + }); _CopyFileResult = this.exprs(super._CopyFileResult, () => { - return this._CopyFileResultValue - }) + return this._CopyFileResultValue; + }); _FetchFileSizeError = this.exprs(super._FetchFileSizeError, () => { - return this._FetchFileSizeErrorValue - }) + return this._FetchFileSizeErrorValue; + }); _FetchFileSizeResult = this.exprs(super._FetchFileSizeResult, () => { - return this._FetchFileSizeResultValue - }) + return this._FetchFileSizeResultValue; + }); _CreateFolderError = this.exprs(super._CreateFolderError, () => { - return this._CreateFolderErrorValue - }) + return this._CreateFolderErrorValue; + }); _CreateFolderResult = this.exprs(super._CreateFolderResult, () => { - return this._CreateFolderResultValue - }) + return this._CreateFolderResultValue; + }); _DeleteFileError = this.exprs(super._DeleteFileError, () => { - return this._DeleteFileErrorValue - }) + return this._DeleteFileErrorValue; + }); _DeleteFileResult = this.exprs(super._DeleteFileResult, () => { - return this._DeleteFileResultValue - }) + return this._DeleteFileResultValue; + }); _ListFilesError = this.exprs(super._ListFilesError, () => { - return this._ListFilesErrorValue - }) + return this._ListFilesErrorValue; + }); _ListFilesResult = this.exprs(super._ListFilesResult, () => { - return this._ListFilesResultValue - }) + return this._ListFilesResultValue; + }); _MoveFileError = this.exprs(super._MoveFileError, () => { - return this._MoveFileErrorValue - }) + return this._MoveFileErrorValue; + }); _MoveFileResult = this.exprs(super._MoveFileResult, () => { - return this._MoveFileResultValue - }) + return this._MoveFileResultValue; + }); _OpenBrowserError = this.exprs(super._OpenBrowserError, () => { - return this._OpenBrowserErrorValue - }) + return this._OpenBrowserErrorValue; + }); _OpenBrowserResult = this.exprs(super._OpenBrowserResult, () => { - return this._OpenBrowserResultValue - }) + return this._OpenBrowserResultValue; + }); _ReadBinaryFileError = this.exprs(super._ReadBinaryFileError, () => { - return this._ReadBinaryFileErrorValue - }) + return this._ReadBinaryFileErrorValue; + }); _ReadBinaryFileResult = this.exprs(super._ReadBinaryFileResult, () => { - return this._ReadBinaryFileResultValue - }) + return this._ReadBinaryFileResultValue; + }); _RenameFileError = this.exprs(super._RenameFileError, () => { - return this._RenameFileErrorValue - }) + return this._RenameFileErrorValue; + }); _RenameFileResult = this.exprs(super._RenameFileResult, () => { - return this._RenameFileResultValue - }) + return this._RenameFileResultValue; + }); _RunFileError = this.exprs(super._RunFileError, () => { - return this._RunFileErrorValue - }) + return this._RunFileErrorValue; + }); _RunFileResult = this.exprs(super._RunFileResult, () => { - return this._RunFileResultValue - }) + return this._RunFileResultValue; + }); _ShellOpenError = this.exprs(super._ShellOpenError, () => { - return this._ShellOpenErrorValue - }) + return this._ShellOpenErrorValue; + }); _ShellOpenResult = this.exprs(super._ShellOpenResult, () => { - return this._ShellOpenResultValue - }) + return this._ShellOpenResultValue; + }); _ExplorerOpenError = this.exprs(super._ExplorerOpenError, () => { - return this._ExplorerOpenErrorValue - }) + return this._ExplorerOpenErrorValue; + }); _ExplorerOpenResult = this.exprs(super._ExplorerOpenResult, () => { - return this._ExplorerOpenResultValue - }) + return this._ExplorerOpenResultValue; + }); _WriteBinaryFileError = this.exprs(super._WriteBinaryFileError, () => { - return this._WriteBinaryFileErrorValue - }) + return this._WriteBinaryFileErrorValue; + }); _WriteBinaryFileResult = this.exprs(super._WriteBinaryFileResult, () => { - return this._WriteBinaryFileResultValue - }) + return this._WriteBinaryFileResultValue; + }); _WriteTextFileError = this.exprs(super._WriteTextFileError, () => { - return this._WriteTextFileErrorValue - }) + return this._WriteTextFileErrorValue; + }); _WriteTextFileResult = this.exprs(super._WriteTextFileResult, () => { - return this._WriteTextFileResultValue - }) + return this._WriteTextFileResultValue; + }); _WriteTextError = this.exprs(super._WriteTextError, () => { - return this._WriteTextErrorValue - }) + return this._WriteTextErrorValue; + }); _WriteTextResult = this.exprs(super._WriteTextResult, () => { - return this._WriteTextResultValue - }) + return this._WriteTextResultValue; + }); _ReadTextFileError = this.exprs(super._ReadTextFileError, () => { - return this._ReadTextFileErrorValue - }) + return this._ReadTextFileErrorValue; + }); _ReadTextFileResult = this.exprs(super._ReadTextFileResult, () => { - return this._ReadTextFileResultValue - }) + return this._ReadTextFileResultValue; + }); _CheckIfPathExistError = this.exprs(super._CheckIfPathExistError, () => { - return this._CheckIfPathExistErrorValue - }) + return this._CheckIfPathExistErrorValue; + }); _CheckIfPathExistResult = this.exprs(super._CheckIfPathExistResult, () => { - return this._CheckIfPathExistResultValue - }) + return this._CheckIfPathExistResultValue; + }); _ShowFolderDialogError = this.exprs(super._ShowFolderDialogError, () => { - return this._ShowFolderDialogErrorValue - }) + return this._ShowFolderDialogErrorValue; + }); _ShowFolderDialogResult = this.exprs(super._ShowFolderDialogResult, () => { - return this._ShowFolderDialogResultValue - }) + return this._ShowFolderDialogResultValue; + }); _ShowOpenDialogError = this.exprs(super._ShowOpenDialogError, () => { - return this._ShowOpenDialogErrorValue - }) + return this._ShowOpenDialogErrorValue; + }); _ShowOpenDialogResult = this.exprs(super._ShowOpenDialogResult, () => { - return this._ShowOpenDialogResultValue - }) + return this._ShowOpenDialogResultValue; + }); _ShowSaveDialogError = this.exprs(super._ShowSaveDialogError, () => { - return this._ShowSaveDialogErrorValue - }) + return this._ShowSaveDialogErrorValue; + }); _ShowSaveDialogResult = this.exprs(super._ShowSaveDialogResult, () => { - return this._ShowSaveDialogResultValue - }) + return this._ShowSaveDialogResultValue; + }); _MaximizeError = this.exprs(super._MaximizeError, () => { - return this._MaximizeErrorValue - }) + return this._MaximizeErrorValue; + }); _MaximizeResult = this.exprs(super._MaximizeResult, () => { - return this._MaximizeResultValue - }) + return this._MaximizeResultValue; + }); _MinimizeError = this.exprs(super._MinimizeError, () => { - return this._MinimizeErrorValue - }) + return this._MinimizeErrorValue; + }); _MinimizeResult = this.exprs(super._MinimizeResult, () => { - return this._MinimizeResultValue - }) + return this._MinimizeResultValue; + }); _RestoreError = this.exprs(super._RestoreError, () => { - return this._RestoreErrorValue - }) + return this._RestoreErrorValue; + }); _RestoreResult = this.exprs(super._RestoreResult, () => { - return this._RestoreResultValue - }) + return this._RestoreResultValue; + }); _RequestAttentionError = this.exprs(super._RequestAttentionError, () => { - return this._RequestAttentionErrorValue - }) + return this._RequestAttentionErrorValue; + }); _RequestAttentionResult = this.exprs(super._RequestAttentionResult, () => { - return this._RequestAttentionResultValue - }) + return this._RequestAttentionResultValue; + }); _SetAlwaysOnTopError = this.exprs(super._SetAlwaysOnTopError, () => { - return this._SetAlwaysOnTopErrorValue - }) + return this._SetAlwaysOnTopErrorValue; + }); _SetAlwaysOnTopResult = this.exprs(super._SetAlwaysOnTopResult, () => { - return this._SetAlwaysOnTopResultValue - }) + return this._SetAlwaysOnTopResultValue; + }); _SetHeightError = this.exprs(super._SetHeightError, () => { - return this._SetHeightErrorValue - }) + return this._SetHeightErrorValue; + }); _SetHeightResult = this.exprs(super._SetHeightResult, () => { - return this._SetHeightResultValue - }) + return this._SetHeightResultValue; + }); _SetMaximumSizeError = this.exprs(super._SetMaximumSizeError, () => { - return this._SetMaximumSizeErrorValue - }) + return this._SetMaximumSizeErrorValue; + }); _SetMaximumSizeResult = this.exprs(super._SetMaximumSizeResult, () => { - return this._SetMaximumSizeResultValue - }) + return this._SetMaximumSizeResultValue; + }); _SetMinimumSizeError = this.exprs(super._SetMinimumSizeError, () => { - return this._SetMinimumSizeErrorValue - }) + return this._SetMinimumSizeErrorValue; + }); _SetMinimumSizeResult = this.exprs(super._SetMinimumSizeResult, () => { - return this._SetMinimumSizeResultValue - }) + return this._SetMinimumSizeResultValue; + }); _SetResizableError = this.exprs(super._SetResizableError, () => { - return this._SetResizableErrorValue - }) + return this._SetResizableErrorValue; + }); _SetResizableResult = this.exprs(super._SetResizableResult, () => { - return this._SetResizableResultValue - }) + return this._SetResizableResultValue; + }); _SetTitleError = this.exprs(super._SetTitleError, () => { - return this._SetTitleErrorValue - }) + return this._SetTitleErrorValue; + }); _SetTitleResult = this.exprs(super._SetTitleResult, () => { - return this._SetTitleResultValue - }) + return this._SetTitleResultValue; + }); _SetWidthError = this.exprs(super._SetWidthError, () => { - return this._SetWidthErrorValue - }) + return this._SetWidthErrorValue; + }); _SetWidthResult = this.exprs(super._SetWidthResult, () => { - return this._SetWidthResultValue - }) + return this._SetWidthResultValue; + }); _SetXError = this.exprs(super._SetXError, () => { - return this._SetXErrorValue - }) + return this._SetXErrorValue; + }); _SetXResult = this.exprs(super._SetXResult, () => { - return this._SetXResultValue - }) + return this._SetXResultValue; + }); _SetYError = this.exprs(super._SetYError, () => { - return this._SetYErrorValue - }) + return this._SetYErrorValue; + }); _SetYResult = this.exprs(super._SetYResult, () => { - return this._SetYResultValue - }) + return this._SetYResultValue; + }); _ShowDevToolsError = this.exprs(super._ShowDevToolsError, () => { - return this._ShowDevToolsErrorValue - }) + return this._ShowDevToolsErrorValue; + }); _ShowDevToolsResult = this.exprs(super._ShowDevToolsResult, () => { - return this._ShowDevToolsResultValue - }) + return this._ShowDevToolsResultValue; + }); _UnmaximizeError = this.exprs(super._UnmaximizeError, () => { - return this._UnmaximizeErrorValue - }) + return this._UnmaximizeErrorValue; + }); _UnmaximizeResult = this.exprs(super._UnmaximizeResult, () => { - return this._UnmaximizeResultValue - }) + return this._UnmaximizeResultValue; + }); _SetFullscreenError = this.exprs(super._SetFullscreenError, () => { - return this._SetFullscreenErrorValue - }) + return this._SetFullscreenErrorValue; + }); _SetFullscreenResult = this.exprs(super._SetFullscreenResult, () => { - return this._SetFullscreenResultValue - }) - _ActivateAchievementError = this.exprs(super._ActivateAchievementError, () => { - return this._ActivateAchievementErrorValue - }) - _ActivateAchievementResult = this.exprs(super._ActivateAchievementResult, () => { - return this._ActivateAchievementResultValue - }) + return this._SetFullscreenResultValue; + }); + _ActivateAchievementError = this.exprs( + super._ActivateAchievementError, + () => { + return this._ActivateAchievementErrorValue; + } + ); + _ActivateAchievementResult = this.exprs( + super._ActivateAchievementResult, + () => { + return this._ActivateAchievementResultValue; + } + ); _ClearAchievementError = this.exprs(super._ClearAchievementError, () => { - return this._ClearAchievementErrorValue - }) + return this._ClearAchievementErrorValue; + }); _ClearAchievementResult = this.exprs(super._ClearAchievementResult, () => { - return this._ClearAchievementResultValue - }) - _CheckAchievementActivationStateError = this.exprs(super._CheckAchievementActivationStateError, () => { - return this._CheckAchievementActivationStateErrorValue - }) - _CheckAchievementActivationStateResult = this.exprs(super._CheckAchievementActivationStateResult, () => { - return this._CheckAchievementActivationStateResultValue - }) + return this._ClearAchievementResultValue; + }); + _CheckAchievementActivationStateError = this.exprs( + super._CheckAchievementActivationStateError, + () => { + return this._CheckAchievementActivationStateErrorValue; + } + ); + _CheckAchievementActivationStateResult = this.exprs( + super._CheckAchievementActivationStateResult, + () => { + return this._CheckAchievementActivationStateResultValue; + } + ); _SetRichPresenceError = this.exprs(super._SetRichPresenceError, () => { - return this._SetRichPresenceErrorValue - }) + return this._SetRichPresenceErrorValue; + }); _SetRichPresenceResult = this.exprs(super._SetRichPresenceResult, () => { - return this._SetRichPresenceResultValue - }) - - _LeaderboardUploadScoreError = this.exprs(super._LeaderboardUploadScoreError, () => { - return this._LeaderboardUploadScoreErrorValue - }) - _LeaderboardUploadScoreResult = this.exprs(super._LeaderboardUploadScoreResult, () => { - return this._LeaderboardUploadScoreResultValue - }) - - _LeaderboardUploadScoreWithMetadataError = this.exprs(super._LeaderboardUploadScoreWithMetadataError, () => { - return this._LeaderboardUploadScoreWithMetadataErrorValue - }) - _LeaderboardUploadScoreWithMetadataResult = this.exprs(super._LeaderboardUploadScoreWithMetadataResult, () => { - return this._LeaderboardUploadScoreWithMetadataResultValue - }) - - _LeaderboardDownloadScoreError = this.exprs(super._LeaderboardDownloadScoreError, () => { - return this._LeaderboardDownloadScoreErrorValue - }) - _LeaderboardDownloadScoreResult = this.exprs(super._LeaderboardDownloadScoreResult, () => { - return this._LeaderboardDownloadScoreResultValue - }) - - _DiscordSetActivityError = this.exprs(super._DiscordSetActivityError, () => { - return this._DiscordSetActivityErrorValue - }) - _DiscordSetActivityResult = this.exprs(super._DiscordSetActivityResult, () => { - return this._DiscordSetActivityResultValue - }) + return this._SetRichPresenceResultValue; + }); + + _LeaderboardUploadScoreError = this.exprs( + super._LeaderboardUploadScoreError, + () => { + return this._LeaderboardUploadScoreErrorValue; + } + ); + _LeaderboardUploadScoreResult = this.exprs( + super._LeaderboardUploadScoreResult, + () => { + return this._LeaderboardUploadScoreResultValue; + } + ); + + _LeaderboardUploadScoreWithMetadataError = this.exprs( + super._LeaderboardUploadScoreWithMetadataError, + () => { + return this._LeaderboardUploadScoreWithMetadataErrorValue; + } + ); + _LeaderboardUploadScoreWithMetadataResult = this.exprs( + super._LeaderboardUploadScoreWithMetadataResult, + () => { + return this._LeaderboardUploadScoreWithMetadataResultValue; + } + ); + + _LeaderboardDownloadScoreError = this.exprs( + super._LeaderboardDownloadScoreError, + () => { + return this._LeaderboardDownloadScoreErrorValue; + } + ); + _LeaderboardDownloadScoreResult = this.exprs( + super._LeaderboardDownloadScoreResult, + () => { + return this._LeaderboardDownloadScoreResultValue; + } + ); + + _DiscordSetActivityError = this.exprs( + super._DiscordSetActivityError, + () => { + return this._DiscordSetActivityErrorValue; + } + ); + _DiscordSetActivityResult = this.exprs( + super._DiscordSetActivityResult, + () => { + return this._DiscordSetActivityResultValue; + } + ); + + _ActivateToWebPageError = this.exprs(super._ActivateToWebPageError, () => { + return this._ActivateToWebPageErrorValue; + }); + _ActivateToWebPageResult = this.exprs( + super._ActivateToWebPageResult, + () => { + return this._ActivateToWebPageResultValue; + } + ); + + _ActivateToStoreError = this.exprs(super._ActivateToStoreError, () => { + return this._ActivateToStoreErrorValue; + }); + _ActivateToStoreResult = this.exprs(super._ActivateToStoreResult, () => { + return this._ActivateToStoreResultValue; + }); // @@ -2971,7 +3795,5 @@ function getInstanceJs(parentClass, addonTriggers, C3) { } /* REMOVE START */ -export { - getInstanceJs -} -/* REMOVE END */ \ No newline at end of file +export { getInstanceJs }; +/* REMOVE END */ diff --git a/src/pluginConfig.js b/src/pluginConfig.js index 8ba75e8..ab591e7 100644 --- a/src/pluginConfig.js +++ b/src/pluginConfig.js @@ -1149,6 +1149,62 @@ const DiscordSetActivity = ACEGenerator("DiscordSetActivity", /** @type {const} description: "Set the discord activity (aka Rich presence).", })) +const ActivateToWebPage = ACEGenerator("ActivateToWebPage", /** @type {const} */ ({ + category: "steam", + highlight: false, + deprecated: false, + params: [ + { + id: 'url', + desc: "The webpage to open. A fully qualified address with the protocol is required (e.g. 'http://www.steampowered.com')", + name: "URL", + type: 'string', + initialValue: "\"\"", + }, + { + id: 'mode', + desc: "Mode for the web page.", + name: "Mode", + type: 'combo', + items: [ + { "default": "Default" }, + { "modal": "Modal" }, + ] + } + ], + listName: "Activate Steam overlay to web page", + displayText: "Activate Steam overlay to web page [b]{0}[/b] (mode: {1})", + description: "Activates Steam Overlay web browser directly to the specified URL", +})) + +const ActivateToStore = ACEGenerator("ActivateToStore", /** @type {const} */ ({ + category: "steam", + highlight: false, + deprecated: false, + params: [ + { + id: 'appId', + desc: "The app ID to show the store page of", + name: "App ID", + type: 'number', + initialValue: "0", + }, + { + id: 'flag', + desc: "Flags to modify the behavior when the page opens", + name: "Flag", + type: 'combo', + items: [ + { "none": "None" }, + { "addToCartAndShow": "Add to cart and show" }, + ] + } + ], + listName: "Activate Steam overlay to store", + displayText: "Activate Steam overlay to store for app [b]{0}[/b] (flag: {1})", + description: "Activates the Steam Overlay to the Steam store page for the provided app", +})) + /** * @satisfies {import('./sdk.js').Config} */ @@ -1329,6 +1385,8 @@ const Config = /** @type {const} */({ ...LeaderboardUploadScore.actions, ...LeaderboardUploadScoreWithMetadata.actions, ...LeaderboardDownloadScore.actions, + ...ActivateToWebPage.actions, + ...ActivateToStore.actions, }, Cnds: { ...Initialize.conditions, @@ -1377,6 +1435,8 @@ const Config = /** @type {const} */({ ...LeaderboardUploadScore.conditions, ...LeaderboardUploadScoreWithMetadata.conditions, ...LeaderboardDownloadScore.conditions, + ...ActivateToWebPage.conditions, + ...ActivateToStore.conditions, IsEngine: { category: "general", forward: "_IsEngine", @@ -1483,6 +1543,8 @@ const Config = /** @type {const} */({ ...LeaderboardUploadScore.expressions, ...LeaderboardUploadScoreWithMetadata.expressions, ...LeaderboardDownloadScore.expressions, + ...ActivateToWebPage.expressions, + ...ActivateToStore.expressions, // command line ArgumentAt: { @@ -1881,6 +1943,14 @@ const Config = /** @type {const} */({ returnType: 'number', description: "Return true if the app is running on a Steam Deck.", }, + SteamAppId: { + category: "steam", + forward: "_SteamAppId", + highlight: false, + deprecated: false, + returnType: 'number', + description: "Get the currently used Steam App ID.", + }, }, }); From 638024997bda7c9f1924deb14103aecf8552153e Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Thu, 9 Oct 2025 14:42:14 +0200 Subject: [PATCH 2/9] 2.3.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 38ee4bb..f702876 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "name": "@pipelab/construct-plugin", "description": "Pipelab construct plugin", - "version": "2.3.0", + "version": "2.3.1", "packageManager": "pnpm@9.10.0", "type": "module", "scripts": { From 2128316c4779a8c919c3fd403919d91c4a746dbf Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Thu, 9 Oct 2025 14:42:17 +0200 Subject: [PATCH 3/9] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e45825e..bf8d8a8 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A plugin that integrate with Pipelab
Author: Armaldio
Website: https://github.com/CynToolkit/construct-plugin
Addon Url: https://github.com/CynToolkit/construct-plugin
-Download Latest Version : [Version: 2.3.0](https://github.com/CynToolkit/construct-plugin/releases/latest)
+Download Latest Version : [Version: 2.3.1](https://github.com/CynToolkit/construct-plugin/releases/latest)
Made using [c3ide2-framework](https://github.com/ConstructFund/c3ide2-framework)
## Table of Contents From 6eafaa8aec0257950d4453f1389a5b7e66135b53 Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Thu, 9 Oct 2025 14:49:35 +0200 Subject: [PATCH 4/9] Version bump to 2.4.0 - Added Steam overlay actions and AppID expression --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f702876..54ca1db 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "name": "@pipelab/construct-plugin", "description": "Pipelab construct plugin", - "version": "2.3.1", + "version": "2.4.0", "packageManager": "pnpm@9.10.0", "type": "module", "scripts": { From 8c4da60b18c4f12621dd4629fbfa90a9be55a674 Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Thu, 9 Oct 2025 20:17:21 +0200 Subject: [PATCH 5/9] readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bf8d8a8..f0296bd 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A plugin that integrate with Pipelab
Author: Armaldio
Website: https://github.com/CynToolkit/construct-plugin
Addon Url: https://github.com/CynToolkit/construct-plugin
-Download Latest Version : [Version: 2.3.1](https://github.com/CynToolkit/construct-plugin/releases/latest)
+Download Latest Version : [Version: 2.4.0](https://github.com/CynToolkit/construct-plugin/releases/latest)
Made using [c3ide2-framework](https://github.com/ConstructFund/c3ide2-framework)
## Table of Contents From f626eac38f02ab6d543902bbf0a28094e9563eaf Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Fri, 10 Oct 2025 15:20:41 +0200 Subject: [PATCH 6/9] reverted auto formatting --- src/instance.js | 5313 +++++++++++++++++++++-------------------------- 1 file changed, 2322 insertions(+), 2991 deletions(-) diff --git a/src/instance.js b/src/instance.js index 10c6faa..c695f87 100644 --- a/src/instance.js +++ b/src/instance.js @@ -31,16 +31,15 @@ class WebSocketClient { * @returns {Promise} A promise that resolves with the WebSocket instance when connected. */ async connect() { - const httpUrl = this.url.replace("ws://", "http://"); - const errorMessage = - "Server not reachable. Make sure to export or preview with Pipelab."; + const httpUrl = this.url.replace('ws://', 'http://'); + const errorMessage = 'Server not reachable. Make sure to export or preview with Pipelab.' try { const response = await fetch(httpUrl); if (!response.ok) { throw new Error(`${errorMessage}, status: ${response.status}`); } } catch (error) { - console.error("error", error); + console.error('error', error) throw new Error(errorMessage); } @@ -53,16 +52,13 @@ class WebSocketClient { if (this.socket) { return resolve(this.socket); } - return reject(new Error("WebSocket is undefined")); + return reject(new Error('WebSocket is undefined')); }; this.socket.onmessage = (event) => { const parsedData = JSON.parse(event.data); // Assuming the server sends a 'correlationId' with every message - if ( - parsedData.correlationId && - this.responseResolvers.has(parsedData.correlationId) - ) { + if (parsedData.correlationId && this.responseResolvers.has(parsedData.correlationId)) { const resolver = this.responseResolvers.get(parsedData.correlationId); resolver?.(parsedData); this.responseResolvers.delete(parsedData.correlationId); @@ -70,7 +66,7 @@ class WebSocketClient { // Propagate the message to listeners this.#propagateMessage(parsedData); } else { - console.error("unhandled message", parsedData); + console.error('unhandled message', parsedData); } // Handle other incoming messages if needed }; @@ -81,7 +77,7 @@ class WebSocketClient { }; this.socket.onerror = (error) => { - console.error("WebSocket error:", error); + console.error('WebSocket error:', error); return reject(error); }; }); @@ -93,19 +89,15 @@ class WebSocketClient { async reconnect() { if (this.reconnectAttempts < this.maxReconnectAttempts) { this.reconnectAttempts++; - console.warn( - `Attempting to reconnect (${this.reconnectAttempts}/${this.maxReconnectAttempts})...` - ); + console.warn(`Attempting to reconnect (${this.reconnectAttempts}/${this.maxReconnectAttempts})...`); try { - await new Promise((resolve) => - setTimeout(resolve, this.reconnectInterval) - ); + await new Promise(resolve => setTimeout(resolve, this.reconnectInterval)); await this.connect(); } catch (error) { - console.error("Reconnection attempt failed:", error); + console.error('Reconnection attempt failed:', error); } } else { - console.warn("Max reconnect attempts reached. Giving up."); + console.warn('Max reconnect attempts reached. Giving up.'); } } @@ -121,7 +113,7 @@ class WebSocketClient { console.warn("Cannot send message. WebSocket is undefined."); } } else { - console.warn("Cannot send message. WebSocket is not connected."); + console.warn('Cannot send message. WebSocket is not connected.'); } } @@ -134,7 +126,7 @@ class WebSocketClient { /** @type {(message: T) => Promise>} */ async sendAndWaitForResponse(message) { if (!this.isConnected || !this.socket) { - throw new Error("WebSocket is not connected."); + throw new Error('WebSocket is not connected.'); } const correlationId = this.#generateCorrelationId(); message.correlationId = correlationId; @@ -144,9 +136,9 @@ class WebSocketClient { this.socket.send(JSON.stringify(message)); const result = await responsePromise; if (result.body.error) { - throw new Error(result.body.error); + throw new Error(result.body.error) } else { - return result; + return result } } @@ -168,21 +160,21 @@ class WebSocketClient { } /** - * Propagates a message to registered listeners. - * @param {{ url: any; }} message - The message to propagate. - */ + * Propagates a message to registered listeners. + * @param {{ url: any; }} message - The message to propagate. + */ #propagateMessage(message) { const listeners = this.listeners.get(message.url); if (listeners) { - listeners.forEach((listener) => listener(message)); + listeners.forEach(listener => listener(message)); } } /** - * Registers a listener for a specific event. - * @param {string} event - The event to listen for. - * @param {Function} listener - The listener function. - */ + * Registers a listener for a specific event. + * @param {string} event - The event to listen for. + * @param {Function} listener - The listener function. + */ on(event, listener) { if (!this.listeners.has(event)) { this.listeners.set(event, []); @@ -191,72 +183,64 @@ class WebSocketClient { } /** - * Unregisters a listener for a specific event. - * @param {string} event - The event to stop listening for. - * @param {Function} listener - The listener function to remove. - */ + * Unregisters a listener for a specific event. + * @param {string} event - The event to stop listening for. + * @param {Function} listener - The listener function to remove. + */ off(event, listener) { const listeners = this.listeners.get(event); if (listeners) { - this.listeners.set( - event, - listeners.filter((l) => l !== listener) - ); + this.listeners.set(event, listeners.filter(l => l !== listener)); } } } -const fullscreenC3StateToPipelabState = ( - /** @type {import("./sdk.js").IsFullScreenState} */ state -) => { +const fullscreenC3StateToPipelabState = (/** @type {import("./sdk.js").IsFullScreenState} */ state) => { switch (state) { case 0: - return "normal"; + return 'normal'; case 1: - return "fullscreen"; + return 'fullscreen'; default: - return "normal"; + return 'normal'; } }; -const fullscreenPipelabStateToC3State = ( - /** @type {import('@pipelab/core').FullscreenStates} */ state -) => { +const fullscreenPipelabStateToC3State = (/** @type {import('@pipelab/core').FullscreenStates} */ state) => { switch (state) { - case "normal": + case 'normal': return 0; - case "fullscreen": + case 'fullscreen': return 1; default: return 0; } -}; +} const defaultSteamId = { accountId: -1, - steamId32: "", - steamId64: "", -}; + steamId32: '', + steamId64: '', +} // Simple path utility for POSIX-style path operations const posixPath = { dirname: (path) => { - const lastSlash = path.lastIndexOf("/"); - return lastSlash === -1 ? "." : path.substring(0, lastSlash); + const lastSlash = path.lastIndexOf('/'); + return lastSlash === -1 ? '.' : path.substring(0, lastSlash); }, join: (dirname, filename) => { - return dirname.endsWith("/") - ? dirname + filename - : dirname + "/" + filename; - }, + return dirname.endsWith('/') ? dirname + filename : dirname + '/' + filename; + } }; -let DOM_COMPONENT_ID = ""; +let DOM_COMPONENT_ID = '' //<-- DOM_COMPONENT_ID --> -let config = {}; +let config = {} //<-- CONFIG --> + /** * @typedef {string | undefined} Tag */ @@ -265,7 +249,7 @@ let config = {}; function getInstanceJs(parentClass, addonTriggers, C3) { // @ts-ignore return class Pipelab extends parentClass { - _additionalLoadPromises = []; + _additionalLoadPromises = [] /** @type {SDK.IObjectInstance | undefined} */ _inst; @@ -274,73 +258,73 @@ function getInstanceJs(parentClass, addonTriggers, C3) { WebSocketClient; /** @type {string} */ - _userFolder = ""; + _userFolder = ''; /** @type {string} */ - _homeFolder = ""; + _homeFolder = ''; /** @type {string} */ - _appDataFolder = ""; + _appDataFolder = ''; /** @type {string} */ - _userDataFolder = ""; + _userDataFolder = ''; /** @type {string} */ - _localAppDataFolder = ""; + _localAppDataFolder = ''; /** @type {string} */ - _localUserDataFolder = ""; + _localUserDataFolder = ''; /** @type {string} */ - _sessionDataFolder = ""; + _sessionDataFolder = ''; /** @type {string} */ - _tempFolder = ""; + _tempFolder = ''; /** @type {string} */ - _exeFolder = ""; + _exeFolder = ''; /** @type {string} */ - _moduleFolder = ""; + _moduleFolder = ''; /** @type {string} */ - _desktopFolder = ""; + _desktopFolder = ''; /** @type {string} */ - _documentsFolder = ""; + _documentsFolder = ''; /** @type {string} */ - _downloadsFolder = ""; + _downloadsFolder = ''; /** @type {string} */ - _musicFolder = ""; + _musicFolder = ''; /** @type {string} */ - _picturesFolder = ""; + _picturesFolder = ''; /** @type {string} */ - _videosFolder = ""; + _videosFolder = ''; /** @type {string} */ - _recentFolder = ""; + _recentFolder = ''; /** @type {string} */ - _logsFolder = ""; + _logsFolder = ''; /** @type {string} */ - _crashDumpsFolder = ""; + _crashDumpsFolder = ''; /** @type {string} */ - _appFolder = ""; + _appFolder = ''; /** @type {string} */ - _projectFilesFolder = ""; + _projectFilesFolder = ''; /** @type {string} - The current tag of the trigger. Can be used for any trigger */ - _currentTag = ""; + _currentTag = ''; /** @type {import('@pipelab/core').MessageEngine['output']['body']['engine']} */ - _engine = "electron"; + _engine = 'electron'; /** @type {boolean} */ _isInitialized = false; @@ -355,7 +339,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { _windowWidth = -1; /** @type {string} */ - _windowTitle = ""; + _windowTitle = ''; /** @type {number} */ _windowX = -1; @@ -367,38 +351,38 @@ function getInstanceJs(parentClass, addonTriggers, C3) { _fullscreenState = 0; /** @type {{accountId: number, steamId32: string, steamId64: string}} */ - _steam_SteamId = defaultSteamId; + _steam_SteamId = defaultSteamId /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'localplayer', 'getName'>} */ - _steam_Name = ""; + _steam_Name = "" /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'localplayer', 'getLevel'>} */ - _steam_Level = -1; + _steam_Level = -1 /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'localplayer', 'getIpCountry'>} */ - _steam_IpCountry = ""; + _steam_IpCountry = '' /** @type {import('@pipelab/core').NamespacedFunctionReturnType<'utils', 'isSteamRunningOnSteamDeck'>} */ - _steam_IsRunningOnSteamDeck = false; + _steam_IsRunningOnSteamDeck = false /** @type {string} */ - _platform = ""; + _platform = '' /** @type {string} */ - _arch = ""; + _arch = '' /** @type {number} */ - _steam_AppId = -1; + _steam_AppId = -1 /** @type {string} */ - _ListFilesErrorValue = ""; + _ListFilesErrorValue = '' /** @type {import("@pipelab/core").FileFolder[]} */ - _ListFilesResultValue = []; + _ListFilesResultValue = [] /** @type {string} */ - _ActivateToWebPageErrorValue = ""; + _ActivateToWebPageErrorValue = '' /** @type {boolean} */ - _ActivateToWebPageResultValue = false; + _ActivateToWebPageResultValue = false /** @type {string} */ - _ActivateToStoreErrorValue = ""; + _ActivateToStoreErrorValue = '' /** @type {boolean} */ - _ActivateToStoreResultValue = false; + _ActivateToStoreResultValue = false /** * Description @@ -406,18 +390,19 @@ function getInstanceJs(parentClass, addonTriggers, C3) { * @param {any} _properties */ constructor(inst, _properties) { - let dummyInst = undefined; - if (sdk === "v1") { - dummyInst = inst; + + let dummyInst = undefined + if (sdk === 'v1') { + dummyInst = inst } else { dummyInst = { - domComponentId: DOM_COMPONENT_ID, - }; + domComponentId: DOM_COMPONENT_ID + } } super(dummyInst); let properties; - if (sdk == "v1") { + if (sdk == 'v1') { properties = _properties; } else { properties = this._getInitProperties(); @@ -427,7 +412,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // Initialization logic if needed } - if (sdk === "v1") { + if (sdk === 'v1') { /** @type {import("./sdk.js").StaticMethodsParentClass['_triggerAsync']} */ // @ts-expect-error TriggerAsync is only available in v1 this._triggerAsync = this.TriggerAsync; @@ -439,47 +424,48 @@ function getInstanceJs(parentClass, addonTriggers, C3) { } if (sdk === "v1") { - this.c3runtime = this._runtime; + this.c3runtime = this._runtime } else { - this.c3runtime = this.runtime; + this.c3runtime = this.runtime } if (sdk === "v1") { - this.addLoadPromise = this.c3runtime.AddLoadPromise; + this.addLoadPromise = this.c3runtime.AddLoadPromise } else { - this.addLoadPromise = this.c3runtime.sdk.addLoadPromise; + this.addLoadPromise = this.c3runtime.sdk.addLoadPromise } if (sdk === "v1") { - this.postToDOMAsync = this.PostToDOMAsync; + this.postToDOMAsync = this.PostToDOMAsync } else { - this.postToDOMAsync = this._postToDOMAsync; + this.postToDOMAsync = this._postToDOMAsync } if (sdk === "v1") { - this.postToDOM = this.PostToDOM; + this.postToDOM = this.PostToDOM } else { - this.postToDOM = this._postToDOM; + this.postToDOM = this._postToDOM } if (sdk === "v1") { - this.addDOMMessageHandler = this.AddDOMMessageHandler; + this.addDOMMessageHandler = this.AddDOMMessageHandler } else { - this.addDOMMessageHandler = this._addDOMMessageHandler; + this.addDOMMessageHandler = this._addDOMMessageHandler } this?.addLoadPromise?.( - this.postToDOMAsync("get-fullscreen-state").then( + this.postToDOMAsync("get-fullscreen-state") + .then( /** @type {import("./sdk.js").PostFullscreenState} */ - (data) => { - this._fullscreenState = data.state; - } - ) + data => + { + this._fullscreenState = data.state + }) ); - this.addDOMMessageHandler("fullscreen-state-changed", (data) => { - this._fullscreenState = data.state; - }); + this.addDOMMessageHandler('fullscreen-state-changed', (data) => { + this._fullscreenState = data.state + }) } async unsupportedEngine() { @@ -487,7 +473,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { - unsupported engine - server not reachable - plugin not initialized -`); +`) } /** @@ -498,13 +484,13 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // fns[0] = with tag // fns[1] = without tag if (tag) { - this._currentTag = tag; - this._trigger(fns[0]); - this._trigger(fns[1]); + this._currentTag = tag + this._trigger(fns[0]) + this._trigger(fns[1]) // reset tag - this._currentTag = ""; + this._currentTag = "" } else { - await this._triggerAsync(fns[1]); + await this._triggerAsync(fns[1]) } } @@ -521,9 +507,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // @ts-expect-error return (/** @type {Parameters} */ ...args) => { if (!this._isInitialized && !isInitialize) { - console.warn( - "Plugin has no been initialized. Please use the according action at the start of layout" - ); + console.warn("Plugin has no been initialized. Please use the according action at the start of layout") } // is initialized @@ -545,7 +529,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { ? fallback.call(this, ...args) : callback.call(this, ...args); } - }; + } } /** @@ -558,3227 +542,2572 @@ function getInstanceJs(parentClass, addonTriggers, C3) { // @ts-expect-error return (/** @type {Parameters} */ ...args) => { return callback.call(this, ...args); - }; + } } // Acts - _InitializeBase = this.wrap( - super._Initialize, - async (/** @type {Tag} */ tag) => { - console.info("Pipelab v" + config.version); - console.info("SDK " + sdk); - try { - // Initialize the WebSocket connection - if (!this.ws) { - this.ws = new WebSocketClient("ws://localhost:31753", { - maxReconnectAttempts: 3, - reconnectInterval: 5000, - }); - } - - // expose websocket instance - globalThis.pipelab = { - ws: this.ws, - }; - - // Fullscreen - // Handle through runtime - this.ws.on( - "/window/fullscreen-state", - async ( - /** @type {import('@pipelab/core').MakeInputOutput} */ data - ) => { - this._fullscreenState = fullscreenPipelabStateToC3State( - data.body.state - ); - } - ); - - await this.ws.connect(); - - /** @type {[import("@pipelab/core").Paths, string][]} */ - const paths = [ - // app.getPath(name) - ["home", "_homeFolder"], - ["appData", "_appDataFolder"], - ["userData", "_userDataFolder"], - ["localAppData", "_localAppDataFolder"], - ["localUserData", "_localUserDataFolder"], - ["sessionData", "_sessionDataFolder"], - ["temp", "_tempFolder"], - ["exe", "_exeFolder"], - ["module", "_moduleFolder"], - ["desktop", "_desktopFolder"], - ["documents", "_documentsFolder"], - ["downloads", "_downloadsFolder"], - ["music", "_musicFolder"], - ["pictures", "_picturesFolder"], - ["videos", "_videosFolder"], - ["recent", "_recentFolder"], - ["logs", "_logsFolder"], - ["crashDumps", "_crashDumpsFolder"], - // app.getAppPath - ["app", "_appFolder"], - ["project", "_projectFilesFolder"], - ]; - - /** @type {(() => (Promise))[]} */ - const promises = []; - - for (const name of paths) { - promises.push(async () => { - // ----------------------------------------------------------------------- - // Fetch user folder - /** @type {import('@pipelab/core').MakeInputOutput} */ - const orderPath = { - url: "/paths", - body: { - name: name[0], - }, - }; - - const pathFolder = await this.ws?.sendAndWaitForResponse( - orderPath - ); - if (pathFolder) { - // @ts-expect-error - this[name[1]] = pathFolder.body.data; - } - }); - } - - // TODO: BigInt support - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "localplayer", - method: "getSteamId", - args: [], - }, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_SteamId = response?.body.data ?? defaultSteamId; - }); - - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - - const order = { - url: "/steam/raw", - body: { - namespace: "localplayer", - method: "getName", - args: [], - }, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_Name = response?.body.data ?? ""; - }); - - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - - const order = { - url: "/steam/raw", - body: { - namespace: "localplayer", - method: "getLevel", - args: [], - }, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_Level = response?.body.data ?? -1; + _InitializeBase = this.wrap(super._Initialize, async (/** @type {Tag} */ tag) => { + console.info('Pipelab v' + config.version) + console.info('SDK ' + sdk) + try { + // Initialize the WebSocket connection + if (!this.ws) { + this.ws = new WebSocketClient('ws://localhost:31753', { + maxReconnectAttempts: 3, + reconnectInterval: 5000 }); + } - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "localplayer", - method: "getIpCountry", - args: [], - }, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_IpCountry = response?.body.data ?? ""; - }); + // expose websocket instance + globalThis.pipelab = { + ws: this.ws + } + // Fullscreen + // Handle through runtime + this.ws.on('/window/fullscreen-state', async (/** @type {import('@pipelab/core').MakeInputOutput} */ data) => { + this._fullscreenState = fullscreenPipelabStateToC3State(data.body.state) + }) + + await this.ws.connect(); + + /** @type {[import("@pipelab/core").Paths, string][]} */ + const paths = [ + // app.getPath(name) + ['home', '_homeFolder'], + ['appData', '_appDataFolder'], + ['userData', '_userDataFolder'], + ['localAppData', '_localAppDataFolder'], + ['localUserData', '_localUserDataFolder'], + ['sessionData', '_sessionDataFolder'], + ['temp', '_tempFolder'], + ['exe', '_exeFolder'], + ['module', '_moduleFolder'], + ['desktop', '_desktopFolder'], + ['documents', '_documentsFolder'], + ['downloads', '_downloadsFolder'], + ['music', '_musicFolder'], + ['pictures', '_picturesFolder'], + ['videos', '_videosFolder'], + ['recent', '_recentFolder'], + ['logs', '_logsFolder'], + ['crashDumps', '_crashDumpsFolder'], + // app.getAppPath + ['app', '_appFolder'], + ['project', '_projectFilesFolder'], + ] + + /** @type {(() => (Promise))[]} */ + const promises = [] + + for (const name of paths) { promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", + // ----------------------------------------------------------------------- + // Fetch user folder + /** @type {import('@pipelab/core').MakeInputOutput} */ + const orderPath = { + url: '/paths', body: { - namespace: "utils", - method: "isSteamRunningOnSteamDeck", - args: [], - }, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_IsRunningOnSteamDeck = response?.body.data ?? false; - }); - - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/infos", - body: {}, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._platform = response?.body.platform ?? ""; - this._arch = response?.body.arch ?? ""; - }); + name: name[0] + } + } - promises.push(async () => { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "utils", - method: "getAppId", - args: [], - }, - }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._steam_AppId = response?.body.data ?? -1; - }); + const pathFolder = await this.ws?.sendAndWaitForResponse(orderPath) + if (pathFolder) { + // @ts-expect-error + this[name[1]] = pathFolder.body.data + } + }) + } - const results = await Promise.allSettled(promises.map((x) => x())); + // TODO: BigInt support + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'localplayer', + method: 'getSteamId', + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_SteamId = response?.body.data ?? defaultSteamId + }) - // ----------------------------------------------------------------------- - // Fetch engine + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - /** @type {import('@pipelab/core').MakeInputOutput} */ - const orderEngine = { - url: "/engine", + const order = { + url: '/steam/raw', + body: { + namespace: 'localplayer', + method: 'getName', + args: [], + }, }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_Name = response?.body.data ?? ''; + }) - /** - * @type {(import('@pipelab/core').MakeInputOutput) | undefined} - */ - // @ts-expect-error - const engineResponse = await this.ws.sendAndWaitForResponse( - orderEngine - ); - if (engineResponse) { - this._engine = engineResponse.body.engine; - } - - this._isInitialized = true; + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnInitializeSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyInitializeSuccess, - ]); - } catch (e) { - console.error(e); - this._isInitialized = false; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnInitializeError, - C3.Plugins.pipelabv2.Cnds.OnAnyInitializeError, - ]); - } - }, - this.unsupportedEngine, - true, - true - ); - _Initialize = this._InitializeBase; - _InitializeSync = this._InitializeBase; - - _WriteTextFileBase = this.wrap( - super._WriteTextFile, - async ( - /** @type {string} */ path, - /** @type {string} */ contents, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: "/fs/file/write", + url: '/steam/raw', body: { - path, - contents: contents, - encoding: "utf8", + namespace: 'localplayer', + method: 'getLevel', + args: [], }, }; - const response = await this.ws?.sendAndWaitForResponse(order); - this._WriteTextFileResultValue = true; - this._WriteTextFileErrorValue = ""; - await this.trigger("tag", [ - C3.Plugins.pipelabv2.Cnds.OnWriteTextFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._WriteTextFileErrorValue = e.message; - this._WriteTextFileResultValue = false; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnWriteTextFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _WriteTextFile = this._WriteTextFileBase; - _WriteTextFileSync = this._WriteTextFileBase; - _WriteText = this._WriteTextFileBase; - _WriteTextSync = this._WriteTextFileBase; - - _ReadTextFileBase = this.wrap( - super._ReadTextFile, - async (/** @type {string} */ path, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ + this._steam_Level = response?.body.data ?? -1; + }) + + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ const order = { - url: "/fs/file/read", + url: '/steam/raw', body: { - path, - encoding: "utf8", + namespace: 'localplayer', + method: 'getIpCountry', + args: [], }, }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_IpCountry = response?.body.data ?? ''; + }) - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'utils', + method: 'isSteamRunningOnSteamDeck', + args: [], + }, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_IsRunningOnSteamDeck = response?.body.data ?? false; + }) - this._ReadTextFileResultValue = answer?.body.content; - this._ReadTextFileErrorValue = ""; + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/infos', + body: {}, + }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._platform = response?.body.platform ?? ""; + this._arch = response?.body.arch ?? ""; + }) - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadTextFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ReadTextFileErrorValue = e.message; - this._ReadTextFileResultValue = false; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadTextFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ReadTextFile = this._ReadTextFileBase; - _ReadTextFileSync = this._ReadTextFileBase; - - _CheckIfPathExistBase = this.wrap( - super._CheckIfPathExist, - async (/** @type {string} */ path, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ + promises.push(async () => { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ const order = { - url: "/fs/exist", + url: '/steam/raw', body: { - path, + namespace: 'utils', + method: 'getAppId', + args: [], }, }; + const response = await this.ws?.sendAndWaitForResponse(order); + this._steam_AppId = response?.body.data ?? -1; + }) - const answer = await this.ws?.sendAndWaitForResponse(order); - - if (answer?.body.success === false) { - throw new Error("Failed"); - } + const results = await Promise.allSettled(promises.map(x => x())) - this._CheckIfPathExistResultValue = answer?.body.success ?? false; - this._CheckIfPathExistErrorValue = ""; + // ----------------------------------------------------------------------- + // Fetch engine - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._CheckIfPathExistErrorValue = e.message; - this._CheckIfPathExistResultValue = false; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistError, - C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _CheckIfPathExist = this._CheckIfPathExistBase; - _CheckIfPathExistSync = this._CheckIfPathExistBase; - - _MaximizeBase = this.wrap( - super._Maximize, - async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/maximize", - }; + /** @type {import('@pipelab/core').MakeInputOutput} */ + const orderEngine = { + url: '/engine', + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _Maximize = this._MaximizeBase; - _MaximizeSync = this._MaximizeBase; - - _MinimizeBase = this.wrap( - super._Minimize, - async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/minimize", - }; + /** + * @type {(import('@pipelab/core').MakeInputOutput) | undefined} + */ + // @ts-expect-error + const engineResponse = await this.ws.sendAndWaitForResponse(orderEngine) + if (engineResponse) { + this._engine = engineResponse.body.engine + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _Minimize = this._MinimizeBase; - _MinimizeSync = this._MinimizeBase; - - _RestoreBase = this.wrap( - super._Restore, - async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ + this._isInitialized = true + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnInitializeSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyInitializeSuccess + ]) + } catch (e) { + console.error(e) + this._isInitialized = false + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnInitializeError, + C3.Plugins.pipelabv2.Cnds.OnAnyInitializeError + ]) + } + + }, this.unsupportedEngine, true, true) + _Initialize = this._InitializeBase + _InitializeSync = this._InitializeBase + + _WriteTextFileBase = this.wrap(super._WriteTextFile, async ( + /** @type {string} */ path, + /** @type {string} */ contents, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: "/window/restore", - }; + url: '/fs/file/write', + body: { + path, + contents: contents, + encoding: "utf8" + } + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _Restore = this._RestoreBase; - _RestoreSync = this._RestoreBase; - - _RequestAttentionBase = this.wrap( - super._RequestAttention, - async (/** @type {number} */ mode) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ + const response = await this.ws?.sendAndWaitForResponse(order) + this._WriteTextFileResultValue = true + this._WriteTextFileErrorValue = '' + await this.trigger("tag", [ + C3.Plugins.pipelabv2.Cnds.OnWriteTextFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._WriteTextFileErrorValue = e.message + this._WriteTextFileResultValue = false + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnWriteTextFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyWriteTextFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _WriteTextFile = this._WriteTextFileBase + _WriteTextFileSync = this._WriteTextFileBase + _WriteText = this._WriteTextFileBase + _WriteTextSync = this._WriteTextFileBase + + _ReadTextFileBase = this.wrap(super._ReadTextFile, async ( + /** @type {string} */ path, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: "/window/request-attention", - }; + url: '/fs/file/read', + body: { + path, + encoding: "utf8" + } + } - await this.ws?.sendAndWaitForResponse(order); + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } - // TODO: support stop - }, - this.unsupportedEngine - ); - _RequestAttention = this._RequestAttentionBase; - _RequestAttentionSync = this._RequestAttentionBase; + this._ReadTextFileResultValue = answer?.body.content + this._ReadTextFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnReadTextFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ReadTextFileErrorValue = e.message + this._ReadTextFileResultValue = false + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnReadTextFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyReadTextFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ReadTextFile = this._ReadTextFileBase + _ReadTextFileSync = this._ReadTextFileBase - _SetAlwaysOnTopBase = this.wrap( - super._SetAlwaysOnTop, - async (/** @type {number} */ mode) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ + _CheckIfPathExistBase = this.wrap(super._CheckIfPathExist, async ( + /** @type {string} */ path, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ const order = { - url: "/window/set-always-on-top", + url: '/fs/exist', body: { - value: mode === 1 ? true : false, - }, - }; + path, + } + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetAlwaysOnTop = this._SetAlwaysOnTopBase; - _SetAlwaysOnTopSync = this._SetAlwaysOnTopBase; - - _SetHeightBase = this.wrap( - super._SetHeight, - async (/** @type {number} */ height) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-height", - body: { - value: height, - }, - }; + const answer = await this.ws?.sendAndWaitForResponse(order) - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetHeight = this._SetHeightBase; - _SetHeightSync = this._SetHeightBase; - - _SetMaximumSizeBase = this.wrap( - super._SetMaximumSize, - async (/** @type {number} */ width, /** @type {number} */ height) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-maximum-size", - body: { - height, - width, - }, - }; + if (answer?.body.success === false) { + throw new Error('Failed') + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetMaximumSize = this._SetMaximumSizeBase; - _SetMaximumSizeSync = this._SetMaximumSizeBase; - - _SetMinimumSizeBase = this.wrap( - super._SetMinimumSize, - async (/** @type {number} */ width, /** @type {number} */ height) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-minimum-size", - body: { - height, - width, - }, - }; + this._CheckIfPathExistResultValue = answer?.body.success ?? false + this._CheckIfPathExistErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._CheckIfPathExistErrorValue = e.message + this._CheckIfPathExistResultValue = false + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCheckIfPathExistError, + C3.Plugins.pipelabv2.Cnds.OnAnyCheckIfPathExistError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _CheckIfPathExist = this._CheckIfPathExistBase + _CheckIfPathExistSync = this._CheckIfPathExistBase - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetMinimumSize = this._SetMinimumSizeBase; - _SetMinimumSizeSync = this._SetMinimumSizeBase; - - _SetResizableBase = this.wrap( - super._SetResizable, - async (/** @type {number} */ resizable) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-resizable", - body: { - value: resizable === 1 ? true : false, - }, - }; + _MaximizeBase = this.wrap(super._Maximize, async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/maximize', + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetResizable = this._SetResizableBase; - _SetResizableSync = this._SetResizableBase; - - _SetTitleBase = this.wrap( - super._SetTitle, - async (/** @type {string} */ title) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-title", - body: { - value: title, - }, - }; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _Maximize = this._MaximizeBase + _MaximizeSync = this._MaximizeBase - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetTitle = this._SetTitleBase; - _SetTitleSync = this._SetTitleBase; - - _SetWidthBase = this.wrap( - super._SetWidth, - async (/** @type {number} */ width) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-width", - body: { - value: width, - }, - }; + _MinimizeBase = this.wrap(super._Minimize, async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/minimize', + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetWidth = this._SetWidthBase; - _SetWidthSync = this._SetWidthBase; - - _SetXBase = this.wrap( - super._SetX, - async (/** @type {number} */ x) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-x", - body: { - value: x, - }, - }; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _Minimize = this._MinimizeBase + _MinimizeSync = this._MinimizeBase - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetX = this._SetXBase; - _SetXSync = this._SetXBase; - - _SetYBase = this.wrap( - super._SetY, - async (/** @type {number} */ y) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-y", - body: { - value: y, - }, - }; + _RestoreBase = this.wrap(super._Restore, async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/restore', + } - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _SetY = this._SetYBase; - _SetYSync = this._SetYBase; - - _ShowDevToolsBase = this.wrap( - super._ShowDevTools, - async (/** @type {number} */ toggle) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/show-dev-tools", - body: { - value: toggle === 1 ? true : false, - }, - }; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _Restore = this._RestoreBase + _RestoreSync = this._RestoreBase - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _ShowDevTools = this._ShowDevToolsBase; - _ShowDevToolsSync = this._ShowDevToolsBase; - - _SetFullscreenBase = this.wrap( - super._SetFullscreen, - async (/** @type {number} */ toggle) => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/set-fullscreen", - body: { - value: toggle === 0 ? "normal" : "fullscreen", - }, - }; + _RequestAttentionBase = this.wrap(super._RequestAttention, async (/** @type {number} */ mode) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/request-attention', + } - await this.ws?.sendAndWaitForResponse(order); - }, - (toggle) => { - // Use DOM handler for fullscreen operations - if (this.c3runtime.platformInfo.exportType === "preview") { - /** @type {import('./sdk.js').PostFullscreenState} */ - const state = { - state: toggle === 0 ? 0 : 1, - }; - this.postToDOM("set-fullscreen", state); + await this.ws?.sendAndWaitForResponse(order) + + // TODO: support stop + }, this.unsupportedEngine) + _RequestAttention = this._RequestAttentionBase + _RequestAttentionSync = this._RequestAttentionBase + + _SetAlwaysOnTopBase = this.wrap(super._SetAlwaysOnTop, async (/** @type {number} */ mode) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-always-on-top', + body: { + value: mode === 1 ? true : false } } - ); - _SetFullscreen = this._SetFullscreenBase; - _SetFullscreenSync = this._SetFullscreenBase; - - _UnmaximizeBase = this.wrap( - super._Unmaximize, - async () => { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/window/unmaximize", - }; - await this.ws?.sendAndWaitForResponse(order); - }, - this.unsupportedEngine - ); - _Unmaximize = this._UnmaximizeBase; - _UnmaximizeSync = this._UnmaximizeBase; - - _ShowFolderDialogBase = this.wrap( - super._ShowFolderDialog, - async (/** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/dialog/folder", - }; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetAlwaysOnTop = this._SetAlwaysOnTopBase + _SetAlwaysOnTopSync = this._SetAlwaysOnTopBase - /** @type {import('@pipelab/core').MakeInputOutput | undefined} */ - // @ts-expect-error - const answer = await this.ws?.sendAndWaitForResponse(order); + _SetHeightBase = this.wrap(super._SetHeight, async (/** @type {number} */ height) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-height', + body: { + value: height + } + } - if (answer?.body.success === false) { - throw new Error("Failed"); - } + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetHeight = this._SetHeightBase + _SetHeightSync = this._SetHeightBase - this._ShowFolderDialogResultValue = answer?.body.paths[0]; - this._ShowFolderDialogErrorValue = ""; + _SetMaximumSizeBase = this.wrap(super._SetMaximumSize, async (/** @type {number} */ width, /** @type {number} */ height) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-maximum-size', + body: { + height, + width, + } + } - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ShowFolderDialogErrorValue = e.message; - this._ShowFolderDialogResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogError, - C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ShowFolderDialog = this._ShowFolderDialogBase; - _ShowFolderDialogSync = this._ShowFolderDialogBase; - - _ShowOpenDialogBase = this.wrap( - super._ShowOpenDialog, - async (/** @type {string} */ accept, /** @type {Tag} */ tag) => { - try { - /** - * @type {import('@pipelab/core').FileFilter[]} - */ - const filters = accept - .split(",") - .map((filter) => { - const [name, extensions] = filter.split("|"); - if (name && extensions) { - /** @type {import("electron").FileFilter} */ - const result = { - name, - extensions: extensions.split(";"), - }; - return result; - } - }) - .filter((x) => !!x); + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetMaximumSize = this._SetMaximumSizeBase + _SetMaximumSizeSync = this._SetMaximumSizeBase - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/dialog/open", - body: { - filters, - }, - }; + _SetMinimumSizeBase = this.wrap(super._SetMinimumSize, async (/** @type {number} */ width, /** @type {number} */ height) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-minimum-size', + body: { + height, + width, + } + } - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._ShowOpenDialogResultValue = answer?.body.paths[0]; - this._ShowOpenDialogErrorValue = ""; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetMinimumSize = this._SetMinimumSizeBase + _SetMinimumSizeSync = this._SetMinimumSizeBase - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ShowOpenDialogErrorValue = e.message; - this._ShowOpenDialogResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogError, - C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ShowOpenDialog = this._ShowOpenDialogBase; - _ShowOpenDialogSync = this._ShowOpenDialogBase; - - _ShowSaveDialogBase = this.wrap( - super._ShowSaveDialog, - async (/** @type {string} */ accept, /** @type {Tag} */ tag) => { - try { - /** - * @type {import('@pipelab/core').FileFilter[]} - */ - const filters = accept - .split(",") - .map((filter) => { - const [name, extensions] = filter.split("|"); - if (name && extensions) { - /** @type {import("electron").FileFilter} */ - const result = { - name, - extensions: extensions.split(";"), - }; - return result; - } - }) - .filter((x) => !!x); + _SetResizableBase = this.wrap(super._SetResizable, async (/** @type {number} */ resizable) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-resizable', + body: { + value: resizable === 1 ? true : false + } + } - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/dialog/save", - body: { - filters, - }, - }; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetResizable = this._SetResizableBase + _SetResizableSync = this._SetResizableBase - const answer = await this.ws?.sendAndWaitForResponse(order); + _SetTitleBase = this.wrap(super._SetTitle, async (/** @type {string} */ title) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-title', + body: { + value: title + } + } - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._ShowSaveDialogResultValue = answer?.body.path; - this._ShowSaveDialogErrorValue = ""; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetTitle = this._SetTitleBase + _SetTitleSync = this._SetTitleBase - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ShowSaveDialogErrorValue = e.message; - this._ShowSaveDialogResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogError, - C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ShowSaveDialog = this._ShowSaveDialogBase; - _ShowSaveDialogSync = this._ShowSaveDialogBase; - - _AppendFileBase = this.wrap( - super._AppendFile, - async ( - /** @type {string} */ path, - /** @type {string} */ contents, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/file/write", - body: { - path, - contents, - encoding: "utf-8", - flag: "a", // Append - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._AppendFileResultValue = answer?.body.success; + _SetWidthBase = this.wrap(super._SetWidth, async (/** @type {number} */ width) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-width', + body: { + value: width + } + } - this._AppendFileErrorValue = ""; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetWidth = this._SetWidthBase + _SetWidthSync = this._SetWidthBase - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnAppendFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._AppendFileErrorValue = e.message; - this._AppendFileResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnAppendFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _AppendFile = this._AppendFileBase; - _AppendFileSync = this._AppendFileBase; - - _CopyFileBase = this.wrap( - super._CopyFile, - async ( - /** @type {string} */ source, - /** @type {string} */ destination, - /** @type {boolean} */ overwrite, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/copy", - body: { - source, - destination, - overwrite, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._CopyFileResultValue = answer?.body.success; + _SetXBase = this.wrap(super._SetX, async (/** @type {number} */ x) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-x', + body: { + value: x + } + } - this._CopyFileErrorValue = ""; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetX = this._SetXBase + _SetXSync = this._SetXBase - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCopyFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._CopyFileErrorValue = e.message; - this._CopyFileResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCopyFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _CopyFile = this._CopyFileBase; - _CopyFileSync = this._CopyFileBase; - - _CreateFolderBase = this.wrap( - super._CreateFolder, - async (/** @type {string} */ path, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/folder/create", - body: { - path, - }, - }; + _SetYBase = this.wrap(super._SetY, async (/** @type {number} */ y) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-y', + body: { + value: y + } + } - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._CreateFolderResultValue = answer?.body.success; - this._CreateFolderErrorValue = ""; + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _SetY = this._SetYBase + _SetYSync = this._SetYBase - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCreateFolderSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._CreateFolderErrorValue = e.message; - this._CreateFolderResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCreateFolderError, - C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _CreateFolder = this._CreateFolderBase; - _CreateFolderSync = this._CreateFolderBase; - - _DeleteFileBase = this.wrap( - super._DeleteFile, - async ( - /** @type {string} */ path, - /** @type {boolean} */ recursive, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/delete", - body: { - path, - recursive, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._DeleteFileResultValue = answer?.body.success; - this._DeleteFileErrorValue = ""; + _ShowDevToolsBase = this.wrap(super._ShowDevTools, async (/** @type {number} */ toggle) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/show-dev-tools', + body: { + value: toggle === 1 ? true : false + } + } - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDeleteFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._DeleteFileErrorValue = e.message; - this._DeleteFileResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDeleteFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _DeleteFile = this._DeleteFileBase; - _DeleteFileSync = this._DeleteFileBase; - - _ListFilesBase = this.wrap( - super._ListFiles, - async ( - /** @type {string} */ path, - /** @type {boolean} */ recursive, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/list", - body: { - path, - recursive, - }, - }; - const files = await this.ws?.sendAndWaitForResponse(order); + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _ShowDevTools = this._ShowDevToolsBase + _ShowDevToolsSync = this._ShowDevToolsBase - if (files?.body.success === false) { - throw new Error("Failed"); - } + _SetFullscreenBase = this.wrap(super._SetFullscreen, async (/** @type {number} */ toggle) => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/set-fullscreen', + body: { + value: toggle === 0 ? 'normal' : 'fullscreen' + } + } - this._ListFilesResultValue = files?.body.list ?? []; - this._ListFilesErrorValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnListFilesSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyListFilesSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ListFilesErrorValue = e.message; - this._ListFilesResultValue = []; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnListFilesError, - C3.Plugins.pipelabv2.Cnds.OnAnyListFilesError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ListFiles = this._ListFilesBase; - _ListFilesSync = this._ListFilesBase; - - _MoveFileBase = this.wrap( - super._MoveFile, - async ( - /** @type {string} */ source, - /** @type {string} */ destination, - /** @type {boolean} */ overwrite, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/move", - body: { - source, - destination, - overwrite, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._MoveFileResultValue = answer?.body.success; - this._MoveFileErrorValue = ""; + await this.ws?.sendAndWaitForResponse(order) + }, (toggle) => { + // Use DOM handler for fullscreen operations + if (this.c3runtime.platformInfo.exportType === 'preview') { + /** @type {import('./sdk.js').PostFullscreenState} */ + const state = { + state: toggle === 0 ? 0 : 1 + } + this.postToDOM('set-fullscreen', state) + } + }) + _SetFullscreen = this._SetFullscreenBase + _SetFullscreenSync = this._SetFullscreenBase - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnMoveFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._MoveFileErrorValue = e.message; - this._MoveFileResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnMoveFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _MoveFile = this._MoveFileBase; - _MoveFileSync = this._MoveFileBase; - - _OpenBrowserBase = this.wrap( - super._OpenBrowser, - async () => { - throw new Error('"_OpenBrowser" Not implemented'); - }, - this.unsupportedEngine - ); - _OpenBrowser = this._OpenBrowserBase; - _OpenBrowserSync = this._OpenBrowserBase; - - _ReadBinaryFileBase = this.wrap( - super._ReadBinaryFile, - async ( - /** @type {string} */ path, - /** @type {IObjectClass} */ destination, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/file/read/binary", - body: { - path, - }, - }; + _UnmaximizeBase = this.wrap(super._Unmaximize, async () => { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/window/unmaximize', + } + + await this.ws?.sendAndWaitForResponse(order) + }, this.unsupportedEngine) + _Unmaximize = this._UnmaximizeBase + _UnmaximizeSync = this._UnmaximizeBase + + _ShowFolderDialogBase = this.wrap(super._ShowFolderDialog, async ( + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/dialog/folder', + } - const answer = await this.ws?.sendAndWaitForResponse(order); + /** @type {import('@pipelab/core').MakeInputOutput | undefined} */ + // @ts-expect-error + const answer = await this.ws?.sendAndWaitForResponse(order) - const sdkInst = this.__GetBinaryDataSdkInstance(destination); + if (answer?.body.success === false) { + throw new Error('Failed') + } + + this._ShowFolderDialogResultValue = answer?.body.paths[0] + this._ShowFolderDialogErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ShowFolderDialogErrorValue = e.message + this._ShowFolderDialogResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowFolderDialogError, + C3.Plugins.pipelabv2.Cnds.OnAnyShowFolderDialogError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ShowFolderDialog = this._ShowFolderDialogBase + _ShowFolderDialogSync = this._ShowFolderDialogBase + + _ShowOpenDialogBase = this.wrap(super._ShowOpenDialog, async ( + /** @type {string} */ accept, + /** @type {Tag} */ tag, + ) => { + try { + /** + * @type {import('@pipelab/core').FileFilter[]} + */ + const filters = accept.split(',') + .map(filter => { + const [name, extensions] = filter.split('|') + if (name && extensions) { + /** @type {import("electron").FileFilter} */ + const result = { + name, + extensions: extensions.split(';') + } + return result + } + }) + .filter(x => !!x) - if (!sdkInst) { - throw new Error("SDK instance not found"); + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/dialog/open', + body: { + filters } - const newBuffer = new Uint8Array(answer?.body.content ?? []); - sdkInst.setArrayBufferCopy(newBuffer.buffer); + } + + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ShowOpenDialogResultValue = answer?.body.paths[0] + this._ShowOpenDialogErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ShowOpenDialogErrorValue = e.message + this._ShowOpenDialogResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowOpenDialogError, + C3.Plugins.pipelabv2.Cnds.OnAnyShowOpenDialogError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ShowOpenDialog = this._ShowOpenDialogBase + _ShowOpenDialogSync = this._ShowOpenDialogBase + + _ShowSaveDialogBase = this.wrap(super._ShowSaveDialog, async ( + /** @type {string} */ accept, + /** @type {Tag} */ tag, + ) => { + try { + /** + * @type {import('@pipelab/core').FileFilter[]} + */ + const filters = accept.split(',') + .map(filter => { + const [name, extensions] = filter.split('|') + if (name && extensions) { + /** @type {import("electron").FileFilter} */ + const result = { + name, + extensions: extensions.split(';') + } + return result + } + }) + .filter(x => !!x) - if (answer?.body.success === false) { - throw new Error("Failed"); + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/dialog/save', + body: { + filters } - this._ReadBinaryFileResultValue = answer?.body.success; + } - this._ReadBinaryFileErrorValue = ""; + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ShowSaveDialogResultValue = answer?.body.path + this._ShowSaveDialogErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ShowSaveDialogErrorValue = e.message + this._ShowSaveDialogResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ReadBinaryFileErrorValue = e.message; - this._ReadBinaryFileResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileError, - ]); + C3.Plugins.pipelabv2.Cnds.OnShowSaveDialogError, + C3.Plugins.pipelabv2.Cnds.OnAnyShowSaveDialogError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ShowSaveDialog = this._ShowSaveDialogBase + _ShowSaveDialogSync = this._ShowSaveDialogBase + + _AppendFileBase = this.wrap(super._AppendFile, async ( + /** @type {string} */ path, + /** @type {string} */ contents, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/file/write', + body: { + path, + contents, + encoding: 'utf-8', + flag: 'a' // Append } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ReadBinaryFile = this._ReadBinaryFileBase; - _ReadBinaryFileSync = this._ReadBinaryFileBase; - - _RenameFileBase = this.wrap( - super._RenameFile, - async ( - /** @type {string} */ source, - /** @type {string} */ newFileName, - /** @type {boolean} */ overwrite, - /** @type {Tag} */ tag - ) => { - try { - const directory = posixPath.dirname(source); - const newPath = posixPath.join(directory, newFileName); - - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/move", - body: { - source, - destination: newPath, - overwrite, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); + } + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._AppendFileResultValue = answer?.body.success + + this._AppendFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnAppendFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._AppendFileErrorValue = e.message + this._AppendFileResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnAppendFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyAppendFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _AppendFile = this._AppendFileBase + _AppendFileSync = this._AppendFileBase + + _CopyFileBase = this.wrap(super._CopyFile, async ( + /** @type {string} */ source, + /** @type {string} */ destination, + /** @type {boolean} */ overwrite, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/copy', + body: { + source, + destination, + overwrite } - this._RenameFileResultValue = answer?.body.success; + } + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._CopyFileResultValue = answer?.body.success + + this._CopyFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCopyFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._CopyFileErrorValue = e.message + this._CopyFileResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCopyFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyCopyFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _CopyFile = this._CopyFileBase + _CopyFileSync = this._CopyFileBase - this._RenameFileErrorValue = ""; + _CreateFolderBase = this.wrap(super._CreateFolder, async ( + /** @type {string} */ path, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/folder/create', + body: { + path + } + } + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._CreateFolderResultValue = answer?.body.success + this._CreateFolderErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCreateFolderSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._CreateFolderErrorValue = e.message + this._CreateFolderResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRenameFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._RenameFileErrorValue = e.message; - this._RenameFileResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRenameFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileError, - ]); + C3.Plugins.pipelabv2.Cnds.OnCreateFolderError, + C3.Plugins.pipelabv2.Cnds.OnAnyCreateFolderError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _CreateFolder = this._CreateFolderBase + _CreateFolderSync = this._CreateFolderBase + + _DeleteFileBase = this.wrap(super._DeleteFile, async ( + /** @type {string} */ path, + /** @type {boolean} */ recursive, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/delete', + body: { + path, + recursive } - console.error(e); - } - }, - this.unsupportedEngine - ); - _RenameFile = this._RenameFileBase; - _RenameFileSync = this._RenameFileBase; - - _RunFileBase = this.wrap( - super._RunFile, - async (/** @type {string} */ command, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/run", - body: { - command, - args: [], - }, - }; + } + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._DeleteFileResultValue = answer?.body.success + this._DeleteFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnDeleteFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._DeleteFileErrorValue = e.message + this._DeleteFileResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnDeleteFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyDeleteFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _DeleteFile = this._DeleteFileBase + _DeleteFileSync = this._DeleteFileBase - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); + _ListFilesBase = this.wrap(super._ListFiles, async ( + /** @type {string} */ path, + /** @type {boolean} */ recursive, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/list', + body: { + path, + recursive, } - this._RunFileResultValue = answer?.body.success; + } + const files = await this.ws?.sendAndWaitForResponse(order) - this._RunFileErrorValue = ""; + if (files?.body.success === false) { + throw new Error('Failed') + } + this._ListFilesResultValue = files?.body.list ?? [] + this._ListFilesErrorValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnListFilesSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyListFilesSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ListFilesErrorValue = e.message + this._ListFilesResultValue = [] await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRunFileSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyRunFileSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._RunFileErrorValue = e.message; - this._RunFileResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnRunFileError, - C3.Plugins.pipelabv2.Cnds.OnAnyRunFileError, - ]); + C3.Plugins.pipelabv2.Cnds.OnListFilesError, + C3.Plugins.pipelabv2.Cnds.OnAnyListFilesError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ListFiles = this._ListFilesBase + _ListFilesSync = this._ListFilesBase + + _MoveFileBase = this.wrap(super._MoveFile, async ( + /** @type {string} */ source, + /** @type {string} */ destination, + /** @type {boolean} */ overwrite, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/move', + body: { + source, + destination, + overwrite } - console.error(e); - } - }, - this.unsupportedEngine - ); - _RunFile = this._RunFileBase; - _RunFileSync = this._RunFileBase; - - _ShellOpenBase = this.wrap( - super._ShellOpen, - async (/** @type {string} */ path, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/open", - body: { - path, - }, - }; - - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); + } + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._MoveFileResultValue = answer?.body.success + this._MoveFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnMoveFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._MoveFileErrorValue = e.message + this._MoveFileResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnMoveFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyMoveFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _MoveFile = this._MoveFileBase + _MoveFileSync = this._MoveFileBase + + _OpenBrowserBase = this.wrap(super._OpenBrowser, async () => { + throw new Error('"_OpenBrowser" Not implemented') + }, this.unsupportedEngine) + _OpenBrowser = this._OpenBrowserBase + _OpenBrowserSync = this._OpenBrowserBase + + _ReadBinaryFileBase = this.wrap(super._ReadBinaryFile, async ( + /** @type {string} */ path, + /** @type {IObjectClass} */ destination, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/file/read/binary', + body: { + path, } - this._ShellOpenResultValue = answer?.body.success; + } - this._ShellOpenErrorValue = ""; + const answer = await this.ws?.sendAndWaitForResponse(order) + const sdkInst = this.__GetBinaryDataSdkInstance(destination); + + if (!sdkInst) { + throw new Error("SDK instance not found") + } + const newBuffer = new Uint8Array(answer?.body.content ?? []) + sdkInst.setArrayBufferCopy(newBuffer.buffer); + + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ReadBinaryFileResultValue = answer?.body.success + + this._ReadBinaryFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ReadBinaryFileErrorValue = e.message + this._ReadBinaryFileResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShellOpenSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ShellOpenErrorValue = e.message; - this._ShellOpenResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnShellOpenError, - C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenError, - ]); + C3.Plugins.pipelabv2.Cnds.OnReadBinaryFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyReadBinaryFileError, + ]) + } + console.error(e) + } + + }, this.unsupportedEngine) + _ReadBinaryFile = this._ReadBinaryFileBase + _ReadBinaryFileSync = this._ReadBinaryFileBase + + _RenameFileBase = this.wrap(super._RenameFile, async ( + /** @type {string} */ source, + /** @type {string} */ newFileName, + /** @type {boolean} */ overwrite, + /** @type {Tag} */ tag + ) => { + try { + const directory = posixPath.dirname(source); + const newPath = posixPath.join(directory, newFileName); + + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/move', + body: { + source, + destination: newPath, + overwrite, } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ShellOpen = this._ShellOpenBase; - _ShellOpenSync = this._ShellOpenBase; - - _ExplorerOpenBase = this.wrap( - super._ExplorerOpen, - async (/** @type {string} */ path, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/show-in-explorer", - body: { - path, - }, - }; + } + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._RenameFileResultValue = answer?.body.success + + this._RenameFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnRenameFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._RenameFileErrorValue = e.message + this._RenameFileResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnRenameFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyRenameFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _RenameFile = this._RenameFileBase + _RenameFileSync = this._RenameFileBase - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); + _RunFileBase = this.wrap(super._RunFile, async ( + /** @type {string} */ command, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/run', + body: { + command, + args: [], } - this._ExplorerOpenResultValue = answer?.body.success; + } + + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._RunFileResultValue = answer?.body.success + + this._RunFileErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnRunFileSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyRunFileSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._RunFileErrorValue = e.message + this._RunFileResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnRunFileError, + C3.Plugins.pipelabv2.Cnds.OnAnyRunFileError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _RunFile = this._RunFileBase + _RunFileSync = this._RunFileBase - this._ExplorerOpenErrorValue = ""; + _ShellOpenBase = this.wrap(super._ShellOpen, async ( + /** @type {string} */ path, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/open', + body: { + path, + } + } + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ShellOpenResultValue = answer?.body.success + + this._ShellOpenErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnShellOpenSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ShellOpenErrorValue = e.message + this._ShellOpenResultValue = '' await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnExplorerOpenSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ExplorerOpenErrorValue = e.message; - this._ExplorerOpenResultValue = ""; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnExplorerOpenError, - C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenError, - ]); + C3.Plugins.pipelabv2.Cnds.OnShellOpenError, + C3.Plugins.pipelabv2.Cnds.OnAnyShellOpenError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ShellOpen = this._ShellOpenBase + _ShellOpenSync = this._ShellOpenBase + + _ExplorerOpenBase = this.wrap(super._ExplorerOpen, async ( + /** @type {string} */ path, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/show-in-explorer', + body: { + path, } - console.error(e); } - }, - this.unsupportedEngine - ); - _ExplorerOpen = this._ExplorerOpenBase; - _ExplorerOpenSync = this._ExplorerOpenBase; + + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ExplorerOpenResultValue = answer?.body.success + + this._ExplorerOpenErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnExplorerOpenSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ExplorerOpenErrorValue = e.message + this._ExplorerOpenResultValue = '' + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnExplorerOpenError, + C3.Plugins.pipelabv2.Cnds.OnAnyExplorerOpenError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ExplorerOpen = this._ExplorerOpenBase + _ExplorerOpenSync = this._ExplorerOpenBase /** * @param {IObjectClass} objectClass * @return {IBinaryDataInstance | null} objectClass */ __GetBinaryDataSdkInstance(objectClass) { - if (!objectClass) return null; + if (!objectClass) + return null; // @ts-expect-error const target = objectClass.getFirstPickedInstance(this._inst); - if (!target) return null; + if (!target) + return null; // return target.GetSdkInstance() // @ts-expect-error - return target; + return target } - _WriteBinaryFileBase = this.wrap( - super._WriteBinaryFile, - async (/** @type {string} */ path, /** @type {string} */ source) => { - throw new Error("not supported"); - - // const sdkInst = this.__GetBinaryDataSdkInstance(source); - - // if (!sdkInst) { - // throw new Error("SDK instance not found") - // } - - // const buffer = sdkInst.getArrayBufferReadOnly(); - - // /** @type {import('@pipelab/core').MakeInputOutput} */ - // const order = { - // url: '/fs/file/write', - // body: { - // path, - // contents: buffer, - // encoding: undefined - // } - // } - - // const answer = await this.ws?.sendAndWaitForResponse(order) - // if (!answer || answer.body.success === false) { - // this._currentTag = tag; - // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnAnyBinaryFileRead) - // this._currentTag = tag; - // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnBinaryFileRead) - // this._currentTag = '' - // } - }, - this.unsupportedEngine - ); - _WriteBinaryFile = this._WriteBinaryFileBase; - _WriteBinaryFileSync = this._WriteBinaryFileBase; - - _FetchFileSizeBase = this.wrap( - super._FetchFileSize, - async (/** @type {string} */ path, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/fs/file/size", - body: { - path, - }, - }; - - /** - * @type {import('@pipelab/core').MakeInputOutput} - */ - // @ts-expect-error - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); + _WriteBinaryFileBase = this.wrap(super._WriteBinaryFile, async (/** @type {string} */ path, /** @type {string} */ source) => { + throw new Error('not supported') + + // const sdkInst = this.__GetBinaryDataSdkInstance(source); + + // if (!sdkInst) { + // throw new Error("SDK instance not found") + // } + + // const buffer = sdkInst.getArrayBufferReadOnly(); + + // /** @type {import('@pipelab/core').MakeInputOutput} */ + // const order = { + // url: '/fs/file/write', + // body: { + // path, + // contents: buffer, + // encoding: undefined + // } + // } + + // const answer = await this.ws?.sendAndWaitForResponse(order) + // if (!answer || answer.body.success === false) { + // this._currentTag = tag; + // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnAnyBinaryFileRead) + // this._currentTag = tag; + // await this.TriggerAsync(C3.Plugins.pipelabv2.Cnds.OnBinaryFileRead) + // this._currentTag = '' + // } + }, this.unsupportedEngine) + _WriteBinaryFile = this._WriteBinaryFileBase + _WriteBinaryFileSync = this._WriteBinaryFileBase + + _FetchFileSizeBase = this.wrap(super._FetchFileSize, async ( + /** @type {string} */ path, + /** @type {Tag} */ tag, + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/fs/file/size', + body: { + path } - this._FetchFileSizeResultValue = answer.body.size ?? -1; - - this._FetchFileSizeErrorValue = ""; + } + /** + * @type {import('@pipelab/core').MakeInputOutput} + */ + // @ts-expect-error + const answer = await this.ws?.sendAndWaitForResponse(order) + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._FetchFileSizeResultValue = answer.body.size ?? -1 + + this._FetchFileSizeErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._FetchFileSizeErrorValue = e.message + this._FetchFileSizeResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._FetchFileSizeErrorValue = e.message; - this._FetchFileSizeResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeError, - C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeError, - ]); - } - console.error(e); + C3.Plugins.pipelabv2.Cnds.OnFetchFileSizeError, + C3.Plugins.pipelabv2.Cnds.OnAnyFetchFileSizeError, + ]) } + console.error(e) } - ); - _FetchFileSize = this._FetchFileSizeBase; - _FetchFileSizeSync = this._FetchFileSizeBase; - - _ActivateAchievementBase = this.wrap( - super._ActivateAchievement, - async (/** @type {string} */ achievement, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "achievement", - method: "activate", - args: [achievement], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._ActivateAchievementResultValue = answer?.body.success; - this._ActivateAchievementErrorValue = ""; + }) + _FetchFileSize = this._FetchFileSizeBase + _FetchFileSizeSync = this._FetchFileSizeBase + _ActivateAchievementBase = this.wrap(super._ActivateAchievement, async ( + /** @type {string} */ achievement, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'achievement', + method: 'activate', + args: [achievement], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ActivateAchievementResultValue = answer?.body.success + this._ActivateAchievementErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnActivateAchievementSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._ActivateAchievementErrorValue = e.message + this._ActivateAchievementResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateAchievementSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ActivateAchievementErrorValue = e.message; - this._ActivateAchievementResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateAchievementError, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnActivateAchievementError, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateAchievementError + ]) } - }, - this.unsupportedEngine - ); - _ActivateAchievement = this._ActivateAchievementBase; - _ActivateAchievementSync = this._ActivateAchievementBase; - - _ClearAchievementBase = this.wrap( - super._ClearAchievement, - async (/** @type {string} */ achievement, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "achievement", - method: "clear", - args: [achievement], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._ClearAchievementResultValue = answer?.body.success; - this._ClearAchievementErrorValue = ""; + } + }, this.unsupportedEngine) + _ActivateAchievement = this._ActivateAchievementBase + _ActivateAchievementSync = this._ActivateAchievementBase + _ClearAchievementBase = this.wrap(super._ClearAchievement, async ( + /** @type {string} */ achievement, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'achievement', + method: 'clear', + args: [achievement], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ClearAchievementResultValue = answer?.body.success + this._ClearAchievementErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnClearAchievementSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementSuccess, + ]) + } catch (e) { + if (e instanceof Error) { + this._ClearAchievementErrorValue = e.message + this._ClearAchievementResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnClearAchievementSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ClearAchievementErrorValue = e.message; - this._ClearAchievementResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnClearAchievementError, - C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementError, - ]); - } - console.error(e); - } - }, - this.unsupportedEngine - ); - _ClearAchievement = this._ClearAchievementBase; - _ClearAchievementSync = this._ClearAchievementBase; - - _CheckAchievementActivationStateBase = this.wrap( - super._CheckAchievementActivationState, - async (/** @type {string} */ achievement, /** @type {Tag} */ tag) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "achievement", - method: "isActivated", - args: [achievement], - }, - }; + C3.Plugins.pipelabv2.Cnds.OnClearAchievementError, + C3.Plugins.pipelabv2.Cnds.OnAnyClearAchievementError, + ]) + } + console.error(e) + } + }, this.unsupportedEngine) + _ClearAchievement = this._ClearAchievementBase + _ClearAchievementSync = this._ClearAchievementBase - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._CheckAchievementActivationStateResultValue = answer?.body.data; - this._CheckAchievementActivationStateErrorValue = ""; + _CheckAchievementActivationStateBase = this.wrap(super._CheckAchievementActivationState, async ( + /** @type {string} */ achievement, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'achievement', + method: 'isActivated', + args: [achievement], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._CheckAchievementActivationStateResultValue = answer?.body.data + this._CheckAchievementActivationStateErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyCheckAchievementActivationStateSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._CheckAchievementActivationErrorValue = e.message + this._CheckAchievementActivationResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateSuccess, - C3.Plugins.pipelabv2.Cnds - .OnAnyCheckAchievementActivationStateSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._CheckAchievementActivationErrorValue = e.message; - this._CheckAchievementActivationResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateError, - C3.Plugins.pipelabv2.Cnds - .OnAnyCheckAchievementActivationStateError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnCheckAchievementActivationStateError, + C3.Plugins.pipelabv2.Cnds.OnAnyCheckAchievementActivationStateError + ]) } - }, - () => false - ); - _CheckAchievementActivationState = - this._CheckAchievementActivationStateBase; - _CheckAchievementActivationStateSync = - this._CheckAchievementActivationStateBase; - - _LeaderboardUploadScoreBase = this.wrap( - super._LeaderboardUploadScore, - async ( - /** @type {string} */ name, - /** @type {number} */ score, - /** @type {string} */ type, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/leaderboard/upload-score", - body: { - name, - score, - type, - metadata: [], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._LeaderboardUploadScoreResultValue = answer?.body.success; - this._LeaderboardUploadScoreErrorValue = ""; + } + }, () => false) + _CheckAchievementActivationState = this._CheckAchievementActivationStateBase + _CheckAchievementActivationStateSync = this._CheckAchievementActivationStateBase + _LeaderboardUploadScoreBase = this.wrap(super._LeaderboardUploadScore, async ( + /** @type {string} */ name, + /** @type {number} */ score, + /** @type {string} */ type, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/leaderboard/upload-score', + body: { + name, + score, + type, + metadata: [], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._LeaderboardUploadScoreResultValue = answer?.body.success + this._LeaderboardUploadScoreErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._LeaderboardUploadScoreErrorValue = e.message + this._LeaderboardUploadScoreResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._LeaderboardUploadScoreErrorValue = e.message; - this._LeaderboardUploadScoreResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreError, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreError, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreError + ]) } - }, - this.unsupportedEngine - ); - _LeaderboardUploadScore = this._LeaderboardUploadScoreBase; - _LeaderboardUploadScoreSync = this._LeaderboardUploadScoreBase; - - _LeaderboardUploadScoreWithMetadataBase = this.wrap( - super._LeaderboardUploadScoreWithMetadata, - async ( - /** @type {string} */ name, - /** @type {number} */ score, - /** @type {IObjectType} */ metadata, - /** @type {string} */ type, - /** @type {Tag} */ tag - ) => { - const target = metadata.getFirstPickedInstance(); - let result = []; - if (target) { - if (target.height === 1) { - const { width } = target; - for (let i = 0; i < width; i++) { - const value = target.getAt(i); - - result.push( - typeof value === "string" ? parseInt(value, 10) : value - ); - } - } else { - console.warn( - "Array must be a 1 dimentional array. Skipping metadata" - ); + } + }, this.unsupportedEngine) + _LeaderboardUploadScore = this._LeaderboardUploadScoreBase + _LeaderboardUploadScoreSync = this._LeaderboardUploadScoreBase + + _LeaderboardUploadScoreWithMetadataBase = this.wrap(super._LeaderboardUploadScoreWithMetadata, async ( + /** @type {string} */ name, + /** @type {number} */ score, + /** @type {IObjectType} */ metadata, + /** @type {string} */ type, + /** @type {Tag} */ tag + ) => { + const target = metadata.getFirstPickedInstance(); + let result = [] + if (target) { + if (target.height === 1) { + const { width } = target; + for (let i = 0; i < width; i++) { + const value = target.getAt(i) + + result.push(typeof value === 'string' ? parseInt(value, 10) : value) } + } else { + console.warn("Array must be a 1 dimentional array. Skipping metadata") } + } - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/leaderboard/upload-score", - body: { - name, - score, - type, - metadata: result, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._LeaderboardUploadScoreWithMetadataResultValue = - answer?.body.success; - this._LeaderboardUploadScoreWithMetadataErrorValue = ""; - + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/leaderboard/upload-score', + body: { + name, + score, + type, + metadata: result, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._LeaderboardUploadScoreWithMetadataResultValue = answer?.body.success + this._LeaderboardUploadScoreWithMetadataErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreWithMetadataSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreWithMetadataSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._LeaderboardUploadScoreWithMetadataErrorValue = e.message + this._LeaderboardUploadScoreWithMetadataResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds - .OnLeaderboardUploadScoreWithMetadataSuccess, - C3.Plugins.pipelabv2.Cnds - .OnAnyLeaderboardUploadScoreWithMetadataSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._LeaderboardUploadScoreWithMetadataErrorValue = e.message; - this._LeaderboardUploadScoreWithMetadataResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds - .OnLeaderboardUploadScoreWithMetadataError, - C3.Plugins.pipelabv2.Cnds - .OnAnyLeaderboardUploadScoreWithMetadataError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnLeaderboardUploadScoreWithMetadataError, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardUploadScoreWithMetadataError + ]) } - }, - this.unsupportedEngine - ); - _LeaderboardUploadScoreWithMetadata = - this._LeaderboardUploadScoreWithMetadataBase; - _LeaderboardUploadScoreWithMetadataSync = - this._LeaderboardUploadScoreWithMetadataBase; - - _LeaderboardDownloadScoreBase = this.wrap( - super._LeaderboardDownloadScore, - async ( - /** @type {string} */ leaderboard, - /** @type {number} */ downloadType, - /** @type {number} */ start, - /** @type {number} */ end, - /** @type {IObjectType} */ jsonObject, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/leaderboard/download-score", - body: { - name: leaderboard, - type: downloadType, - start, - end, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._LeaderboardDownloadScoreResultValue = answer?.body.success; - this._LeaderboardDownloadScoreErrorValue = ""; + } + }, this.unsupportedEngine) + _LeaderboardUploadScoreWithMetadata = this._LeaderboardUploadScoreWithMetadataBase + _LeaderboardUploadScoreWithMetadataSync = this._LeaderboardUploadScoreWithMetadataBase - const jsonInstance = jsonObject.getFirstInstance(); - jsonInstance?.setJsonDataCopy(answer?.body.data); + _LeaderboardDownloadScoreBase = this.wrap(super._LeaderboardDownloadScore, async ( + /** @type {string} */ leaderboard, + /** @type {number} */ downloadType, + /** @type {number} */ start, + /** @type {number} */ end, + /** @type {IObjectType} */ jsonObject, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/leaderboard/download-score', + body: { + name: leaderboard, + type: downloadType, + start, + end, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._LeaderboardDownloadScoreResultValue = answer?.body.success + this._LeaderboardDownloadScoreErrorValue = '' + + const jsonInstance = jsonObject.getFirstInstance() + jsonInstance?.setJsonDataCopy(answer?.body.data) + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._LeaderboardDownloadScoreErrorValue = e.message + this._LeaderboardDownloadScoreResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._LeaderboardDownloadScoreErrorValue = e.message; - this._LeaderboardDownloadScoreResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreError, - C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnLeaderboardDownloadScoreError, + C3.Plugins.pipelabv2.Cnds.OnAnyLeaderboardDownloadScoreError + ]) } - }, - this.unsupportedEngine - ); - _LeaderboardDownloadScore = this._LeaderboardDownloadScoreBase; - _LeaderboardDownloadScoreSync = this._LeaderboardDownloadScoreBase; - - _SetRichPresenceBase = this.wrap( - super._SetRichPresence, - async ( - /** @type {string} */ key, - /** @type {string} */ value, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "localplayer", - method: "setRichPresence", - args: [key, value], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._SetRichPresenceResultValue = answer?.body.data; - this._SetRichPresenceErrorValue = ""; + } + }, this.unsupportedEngine) + _LeaderboardDownloadScore = this._LeaderboardDownloadScoreBase + _LeaderboardDownloadScoreSync = this._LeaderboardDownloadScoreBase + _SetRichPresenceBase = this.wrap(super._SetRichPresence, async ( + /** @type {string} */ key, + /** @type {string} */ value, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'localplayer', + method: 'setRichPresence', + args: [key, value], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._SetRichPresenceResultValue = answer?.body.data + this._SetRichPresenceErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._SetRichPresenceErrorValue = e.message + this._SetRichPresenceResultValue = -1 await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._SetRichPresenceErrorValue = e.message; - this._SetRichPresenceResultValue = -1; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceError, - C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnSetRichPresenceError, + C3.Plugins.pipelabv2.Cnds.OnAnySetRichPresenceError + ]) } - }, - this.unsupportedEngine - ); - _SetRichPresence = this._SetRichPresenceBase; - _SetRichPresenceSync = this._SetRichPresenceBase; - - _DiscordSetActivityBase = this.wrap( - super._SetRichPresence, - async ( - /** @type {string} */ details, - /** @type {string} */ state, - /** @type {string} */ startTimestamp, - /** @type {string} */ largeImageKey, - /** @type {string} */ largeImageText, - /** @type {string} */ smallImageKey, - /** @type {string} */ smallImageText, - /** @type {Tag} */ tag - ) => { - try { - /** @type {import('@pipelab/core').MakeInputOutput} */ - const order = { - url: "/discord/set-activity", - body: { - details, - state, - startTimestamp, - largeImageKey, - largeImageText, - smallImageKey, - smallImageText, - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._DiscordSetActivityResultValue = answer?.body.success; - this._DiscordSetActivityErrorValue = ""; - + } + }, this.unsupportedEngine) + _SetRichPresence = this._SetRichPresenceBase + _SetRichPresenceSync = this._SetRichPresenceBase + + _DiscordSetActivityBase = this.wrap(super._SetRichPresence, async ( + /** @type {string} */ details, + /** @type {string} */ state, + /** @type {string} */ startTimestamp, + /** @type {string} */ largeImageKey, + /** @type {string} */ largeImageText, + /** @type {string} */ smallImageKey, + /** @type {string} */ smallImageText, + /** @type {Tag} */ tag + ) => { + try { + /** @type {import('@pipelab/core').MakeInputOutput} */ + const order = { + url: '/discord/set-activity', + body: { + details, + state, + startTimestamp, + largeImageKey, + largeImageText, + smallImageKey, + smallImageText, + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._DiscordSetActivityResultValue = answer?.body.success + this._DiscordSetActivityErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivitySuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivitySuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._DiscordSetActivityErrorValue = e.message + this._DiscordSetActivityResultValue = false await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivitySuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivitySuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._DiscordSetActivityErrorValue = e.message; - this._DiscordSetActivityResultValue = false; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivityError, - C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivityError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnDiscordSetActivityError, + C3.Plugins.pipelabv2.Cnds.OnAnyDiscordSetActivityError + ]) } - }, - this.unsupportedEngine - ); - _DiscordSetActivitySync = this._DiscordSetActivityBase; - _DiscordSetActivity = this._DiscordSetActivityBase; - - _ActivateToWebPageBase = this.wrap( - super._ActivateToWebPage, - async ( - /** @type {string} */ url, - /** @type {number} */ mode, - /** @type {Tag} */ tag - ) => { - try { - // Map Construct3 combo values to Steam constants - // 0 = "default", 1 = "modal" - const steamMode = mode === 1 ? 1 : 0; // k_EActivateGameOverlayToWebPageMode_Modal : k_EActivateGameOverlayToWebPageMode_Default - - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "overlay", - method: "activateToWebPage", - args: [url, steamMode], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._ActivateToWebPageResultValue = answer?.body.success; - this._ActivateToWebPageErrorValue = ""; + } + }, this.unsupportedEngine) + _DiscordSetActivitySync = this._DiscordSetActivityBase + _DiscordSetActivity = this._DiscordSetActivityBase + _ActivateToWebPageBase = this.wrap(super._ActivateToWebPage, async ( + /** @type {string} */ url, + /** @type {number} */ mode, + /** @type {Tag} */ tag + ) => { + try { + // Map Construct3 combo values to Steam constants + // 0 = "default", 1 = "modal" + const steamMode = mode === 1 ? 1 : 0; // k_EActivateGameOverlayToWebPageMode_Modal : k_EActivateGameOverlayToWebPageMode_Default + + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'overlay', + method: 'activateToWebPage', + args: [url, steamMode], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ActivateToWebPageResultValue = answer?.body.success + this._ActivateToWebPageErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnActivateToWebPageSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToWebPageSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._ActivateToWebPageErrorValue = e.message + this._ActivateToWebPageResultValue = false await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateToWebPageSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateToWebPageSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ActivateToWebPageErrorValue = e.message; - this._ActivateToWebPageResultValue = false; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateToWebPageError, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateToWebPageError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnActivateToWebPageError, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToWebPageError + ]) } - }, - this.unsupportedEngine - ); - _ActivateToWebPage = this._ActivateToWebPageBase; - _ActivateToWebPageSync = this._ActivateToWebPageBase; - - _ActivateToStoreBase = this.wrap( - super._ActivateToStore, - async ( - /** @type {number} */ appId, - /** @type {number} */ flag, - /** @type {Tag} */ tag - ) => { - try { - // Map Construct3 combo values to Steam constants - // 0 = "none", 1 = "addToCartAndShow" - const steamFlag = flag === 1 ? 2 : 0; // k_EOverlayToStoreFlag_AddToCartAndShow : k_EOverlayToStoreFlag_None - - /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ - const order = { - url: "/steam/raw", - body: { - namespace: "overlay", - method: "activateToStore", - args: [appId, steamFlag], - }, - }; - const answer = await this.ws?.sendAndWaitForResponse(order); - if (answer?.body.success === false) { - throw new Error("Failed"); - } - this._ActivateToStoreResultValue = answer?.body.success; - this._ActivateToStoreErrorValue = ""; + } + }, this.unsupportedEngine) + _ActivateToWebPage = this._ActivateToWebPageBase + _ActivateToWebPageSync = this._ActivateToWebPageBase + _ActivateToStoreBase = this.wrap(super._ActivateToStore, async ( + /** @type {number} */ appId, + /** @type {number} */ flag, + /** @type {Tag} */ tag + ) => { + try { + // Map Construct3 combo values to Steam constants + // 0 = "none", 1 = "addToCartAndShow" + const steamFlag = flag === 1 ? 2 : 0; // k_EOverlayToStoreFlag_AddToCartAndShow : k_EOverlayToStoreFlag_None + + /** @type {import('@pipelab/core').MakeInputOutput, 'input'>} */ + const order = { + url: '/steam/raw', + body: { + namespace: 'overlay', + method: 'activateToStore', + args: [appId, steamFlag], + }, + }; + const answer = await this.ws?.sendAndWaitForResponse(order); + if (answer?.body.success === false) { + throw new Error('Failed') + } + this._ActivateToStoreResultValue = answer?.body.success + this._ActivateToStoreErrorValue = '' + + await this.trigger(tag, [ + C3.Plugins.pipelabv2.Cnds.OnActivateToStoreSuccess, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToStoreSuccess + ]) + } catch (e) { + if (e instanceof Error) { + this._ActivateToStoreErrorValue = e.message + this._ActivateToStoreResultValue = false await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateToStoreSuccess, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateToStoreSuccess, - ]); - } catch (e) { - if (e instanceof Error) { - this._ActivateToStoreErrorValue = e.message; - this._ActivateToStoreResultValue = false; - await this.trigger(tag, [ - C3.Plugins.pipelabv2.Cnds.OnActivateToStoreError, - C3.Plugins.pipelabv2.Cnds.OnAnyActivateToStoreError, - ]); - } + C3.Plugins.pipelabv2.Cnds.OnActivateToStoreError, + C3.Plugins.pipelabv2.Cnds.OnAnyActivateToStoreError + ]) } - }, - this.unsupportedEngine - ); - _ActivateToStore = this._ActivateToStoreBase; - _ActivateToStoreSync = this._ActivateToStoreBase; + } + }, this.unsupportedEngine) + _ActivateToStore = this._ActivateToStoreBase + _ActivateToStoreSync = this._ActivateToStoreBase // #region Cnds - _OnInitializeSuccess = this.wrap( - super._OnInitializeSuccess, - (/** @type {Tag} */ tag) => { - return this._currentTag === tag; - } - ); + _OnInitializeSuccess = this.wrap(super._OnInitializeSuccess, (/** @type {Tag} */ tag) => { + return this._currentTag === tag; + }) _OnAnyInitializeSuccess = this.wrap(super._OnAnyInitializeSuccess, () => { - return true; - }); - _OnInitializeError = this.wrap( - super._OnInitializeError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnInitializeError = this.wrap(super._OnInitializeError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyInitializeError = this.wrap(super._OnAnyInitializeError, () => { - return true; - }); - _OnAppendFileSuccess = this.wrap( - super._OnAppendFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnAppendFileSuccess = this.wrap(super._OnAppendFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyAppendFileSuccess = this.wrap(super._OnAnyAppendFileSuccess, () => { - return true; - }); - _OnAppendFileError = this.wrap( - super._OnAppendFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnAppendFileError = this.wrap(super._OnAppendFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyAppendFileError = this.wrap(super._OnAnyAppendFileError, () => { - return true; - }); - _OnCopyFileSuccess = this.wrap( - super._OnCopyFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnCopyFileSuccess = this.wrap(super._OnCopyFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyCopyFileSuccess = this.wrap(super._OnAnyCopyFileSuccess, () => { - return true; - }); - _OnCopyFileError = this.wrap( - super._OnCopyFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnCopyFileError = this.wrap(super._OnCopyFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyCopyFileError = this.wrap(super._OnAnyCopyFileError, () => { - return true; - }); - _OnFetchFileSizeSuccess = this.wrap( - super._OnFetchFileSizeSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyFetchFileSizeSuccess = this.wrap( - super._OnAnyFetchFileSizeSuccess, - () => { - return true; - } - ); - _OnFetchFileSizeError = this.wrap( - super._OnFetchFileSizeError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnFetchFileSizeSuccess = this.wrap(super._OnFetchFileSizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyFetchFileSizeSuccess = this.wrap(super._OnAnyFetchFileSizeSuccess, () => { + return true + }) + _OnFetchFileSizeError = this.wrap(super._OnFetchFileSizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyFetchFileSizeError = this.wrap(super._OnAnyFetchFileSizeError, () => { - return true; - }); - _OnCreateFolderSuccess = this.wrap( - super._OnCreateFolderSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyCreateFolderSuccess = this.wrap( - super._OnAnyCreateFolderSuccess, - () => { - return true; - } - ); - _OnCreateFolderError = this.wrap( - super._OnCreateFolderError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnCreateFolderSuccess = this.wrap(super._OnCreateFolderSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyCreateFolderSuccess = this.wrap(super._OnAnyCreateFolderSuccess, () => { + return true + }) + _OnCreateFolderError = this.wrap(super._OnCreateFolderError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyCreateFolderError = this.wrap(super._OnAnyCreateFolderError, () => { - return true; - }); - _OnDeleteFileSuccess = this.wrap( - super._OnDeleteFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnDeleteFileSuccess = this.wrap(super._OnDeleteFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyDeleteFileSuccess = this.wrap(super._OnAnyDeleteFileSuccess, () => { - return true; - }); - _OnDeleteFileError = this.wrap( - super._OnDeleteFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnDeleteFileError = this.wrap(super._OnDeleteFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyDeleteFileError = this.wrap(super._OnAnyDeleteFileError, () => { - return true; - }); - _OnListFilesSuccess = this.wrap( - super._OnListFilesSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnListFilesSuccess = this.wrap(super._OnListFilesSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyListFilesSuccess = this.wrap(super._OnAnyListFilesSuccess, () => { - return true; - }); - _OnListFilesError = this.wrap( - super._OnListFilesError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnListFilesError = this.wrap(super._OnListFilesError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyListFilesError = this.wrap(super._OnAnyListFilesError, () => { - return true; - }); - _OnMoveFileSuccess = this.wrap( - super._OnMoveFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnMoveFileSuccess = this.wrap(super._OnMoveFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyMoveFileSuccess = this.wrap(super._OnAnyMoveFileSuccess, () => { - return true; - }); - _OnMoveFileError = this.wrap( - super._OnMoveFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnMoveFileError = this.wrap(super._OnMoveFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyMoveFileError = this.wrap(super._OnAnyMoveFileError, () => { - return true; - }); - _OnOpenBrowserSuccess = this.wrap( - super._OnOpenBrowserSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnOpenBrowserSuccess = this.wrap(super._OnOpenBrowserSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyOpenBrowserSuccess = this.wrap(super._OnAnyOpenBrowserSuccess, () => { - return true; - }); - _OnOpenBrowserError = this.wrap( - super._OnOpenBrowserError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnOpenBrowserError = this.wrap(super._OnOpenBrowserError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyOpenBrowserError = this.wrap(super._OnAnyOpenBrowserError, () => { - return true; - }); - _OnReadBinaryFileSuccess = this.wrap( - super._OnReadBinaryFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyReadBinaryFileSuccess = this.wrap( - super._OnAnyReadBinaryFileSuccess, - () => { - return true; - } - ); - _OnReadBinaryFileError = this.wrap( - super._OnReadBinaryFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyReadBinaryFileError = this.wrap( - super._OnAnyReadBinaryFileError, - () => { - return true; - } - ); - _OnRenameFileSuccess = this.wrap( - super._OnRenameFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnReadBinaryFileSuccess = this.wrap(super._OnReadBinaryFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyReadBinaryFileSuccess = this.wrap(super._OnAnyReadBinaryFileSuccess, () => { + return true + }) + _OnReadBinaryFileError = this.wrap(super._OnReadBinaryFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyReadBinaryFileError = this.wrap(super._OnAnyReadBinaryFileError, () => { + return true + }) + _OnRenameFileSuccess = this.wrap(super._OnRenameFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyRenameFileSuccess = this.wrap(super._OnAnyRenameFileSuccess, () => { - return true; - }); - _OnRenameFileError = this.wrap( - super._OnRenameFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnRenameFileError = this.wrap(super._OnRenameFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyRenameFileError = this.wrap(super._OnAnyRenameFileError, () => { - return true; - }); - _OnRunFileSuccess = this.wrap( - super._OnRunFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnRunFileSuccess = this.wrap(super._OnRunFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyRunFileSuccess = this.wrap(super._OnAnyRunFileSuccess, () => { - return true; - }); - _OnRunFileError = this.wrap( - super._OnRunFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnRunFileError = this.wrap(super._OnRunFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyRunFileError = this.wrap(super._OnAnyRunFileError, () => { - return true; - }); - _OnShellOpenSuccess = this.wrap( - super._OnShellOpenSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnShellOpenSuccess = this.wrap(super._OnShellOpenSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyShellOpenSuccess = this.wrap(super._OnAnyShellOpenSuccess, () => { - return true; - }); - _OnShellOpenError = this.wrap( - super._OnShellOpenError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnShellOpenError = this.wrap(super._OnShellOpenError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyShellOpenError = this.wrap(super._OnAnyShellOpenError, () => { - return true; - }); - _OnExplorerOpenSuccess = this.wrap( - super._OnExplorerOpenSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyExplorerOpenSuccess = this.wrap( - super._OnAnyExplorerOpenSuccess, - () => { - return true; - } - ); - _OnExplorerOpenError = this.wrap( - super._OnExplorerOpenError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnExplorerOpenSuccess = this.wrap(super._OnExplorerOpenSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyExplorerOpenSuccess = this.wrap(super._OnAnyExplorerOpenSuccess, () => { + return true + }) + _OnExplorerOpenError = this.wrap(super._OnExplorerOpenError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyExplorerOpenError = this.wrap(super._OnAnyExplorerOpenError, () => { - return true; - }); - _OnWriteBinaryFileSuccess = this.wrap( - super._OnWriteBinaryFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyWriteBinaryFileSuccess = this.wrap( - super._OnAnyWriteBinaryFileSuccess, - () => { - return true; - } - ); - _OnWriteBinaryFileError = this.wrap( - super._OnWriteBinaryFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyWriteBinaryFileError = this.wrap( - super._OnAnyWriteBinaryFileError, - () => { - return true; - } - ); - _OnWriteTextFileSuccess = this.wrap( - super._OnWriteTextFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyWriteTextFileSuccess = this.wrap( - super._OnAnyWriteTextFileSuccess, - () => { - return true; - } - ); - _OnWriteTextFileError = this.wrap( - super._OnWriteTextFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnWriteBinaryFileSuccess = this.wrap(super._OnWriteBinaryFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyWriteBinaryFileSuccess = this.wrap(super._OnAnyWriteBinaryFileSuccess, () => { + return true + }) + _OnWriteBinaryFileError = this.wrap(super._OnWriteBinaryFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyWriteBinaryFileError = this.wrap(super._OnAnyWriteBinaryFileError, () => { + return true + }) + _OnWriteTextFileSuccess = this.wrap(super._OnWriteTextFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyWriteTextFileSuccess = this.wrap(super._OnAnyWriteTextFileSuccess, () => { + return true + }) + _OnWriteTextFileError = this.wrap(super._OnWriteTextFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyWriteTextFileError = this.wrap(super._OnAnyWriteTextFileError, () => { - return true; - }); - _OnWriteTextSuccess = this.wrap( - super._OnWriteTextSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnWriteTextSuccess = this.wrap(super._OnWriteTextSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyWriteTextSuccess = this.wrap(super._OnAnyWriteTextSuccess, () => { - return true; - }); - _OnWriteTextError = this.wrap( - super._OnWriteTextError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnWriteTextError = this.wrap(super._OnWriteTextError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyWriteTextError = this.wrap(super._OnAnyWriteTextError, () => { - return true; - }); - _OnReadTextFileSuccess = this.wrap( - super._OnReadTextFileSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyReadTextFileSuccess = this.wrap( - super._OnAnyReadTextFileSuccess, - () => { - return true; - } - ); - _OnReadTextFileError = this.wrap( - super._OnReadTextFileError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnReadTextFileSuccess = this.wrap(super._OnReadTextFileSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyReadTextFileSuccess = this.wrap(super._OnAnyReadTextFileSuccess, () => { + return true + }) + _OnReadTextFileError = this.wrap(super._OnReadTextFileError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyReadTextFileError = this.wrap(super._OnAnyReadTextFileError, () => { - return true; - }); - _OnCheckIfPathExistSuccess = this.wrap( - super._OnCheckIfPathExistSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyCheckIfPathExistSuccess = this.wrap( - super._OnAnyCheckIfPathExistSuccess, - () => { - return true; - } - ); - _OnCheckIfPathExistError = this.wrap( - super._OnCheckIfPathExistError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyCheckIfPathExistError = this.wrap( - super._OnAnyCheckIfPathExistError, - () => { - return true; - } - ); - _OnShowFolderDialogSuccess = this.wrap( - super._OnShowFolderDialogSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyShowFolderDialogSuccess = this.wrap( - super._OnAnyShowFolderDialogSuccess, - () => { - return true; - } - ); - _OnShowFolderDialogError = this.wrap( - super._OnShowFolderDialogError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyShowFolderDialogError = this.wrap( - super._OnAnyShowFolderDialogError, - () => { - return true; - } - ); - _OnShowOpenDialogSuccess = this.wrap( - super._OnShowOpenDialogSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyShowOpenDialogSuccess = this.wrap( - super._OnAnyShowOpenDialogSuccess, - () => { - return true; - } - ); - _OnShowOpenDialogError = this.wrap( - super._OnShowOpenDialogError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyShowOpenDialogError = this.wrap( - super._OnAnyShowOpenDialogError, - () => { - return true; - } - ); - _OnShowSaveDialogSuccess = this.wrap( - super._OnShowSaveDialogSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyShowSaveDialogSuccess = this.wrap( - super._OnAnyShowSaveDialogSuccess, - () => { - return true; - } - ); - _OnShowSaveDialogError = this.wrap( - super._OnShowSaveDialogError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyShowSaveDialogError = this.wrap( - super._OnAnyShowSaveDialogError, - () => { - return true; - } - ); - _OnMaximizeSuccess = this.wrap( - super._OnMaximizeSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnCheckIfPathExistSuccess = this.wrap(super._OnCheckIfPathExistSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyCheckIfPathExistSuccess = this.wrap(super._OnAnyCheckIfPathExistSuccess, () => { + return true + }) + _OnCheckIfPathExistError = this.wrap(super._OnCheckIfPathExistError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyCheckIfPathExistError = this.wrap(super._OnAnyCheckIfPathExistError, () => { + return true + }) + _OnShowFolderDialogSuccess = this.wrap(super._OnShowFolderDialogSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyShowFolderDialogSuccess = this.wrap(super._OnAnyShowFolderDialogSuccess, () => { + return true + }) + _OnShowFolderDialogError = this.wrap(super._OnShowFolderDialogError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyShowFolderDialogError = this.wrap(super._OnAnyShowFolderDialogError, () => { + return true + }) + _OnShowOpenDialogSuccess = this.wrap(super._OnShowOpenDialogSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyShowOpenDialogSuccess = this.wrap(super._OnAnyShowOpenDialogSuccess, () => { + return true + }) + _OnShowOpenDialogError = this.wrap(super._OnShowOpenDialogError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyShowOpenDialogError = this.wrap(super._OnAnyShowOpenDialogError, () => { + return true + }) + _OnShowSaveDialogSuccess = this.wrap(super._OnShowSaveDialogSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyShowSaveDialogSuccess = this.wrap(super._OnAnyShowSaveDialogSuccess, () => { + return true + }) + _OnShowSaveDialogError = this.wrap(super._OnShowSaveDialogError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyShowSaveDialogError = this.wrap(super._OnAnyShowSaveDialogError, () => { + return true + }) + _OnMaximizeSuccess = this.wrap(super._OnMaximizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyMaximizeSuccess = this.wrap(super._OnAnyMaximizeSuccess, () => { - return true; - }); - _OnMaximizeError = this.wrap( - super._OnMaximizeError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnMaximizeError = this.wrap(super._OnMaximizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyMaximizeError = this.wrap(super._OnAnyMaximizeError, () => { - return true; - }); - _OnMinimizeSuccess = this.wrap( - super._OnMinimizeSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnMinimizeSuccess = this.wrap(super._OnMinimizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyMinimizeSuccess = this.wrap(super._OnAnyMinimizeSuccess, () => { - return true; - }); - _OnMinimizeError = this.wrap( - super._OnMinimizeError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnMinimizeError = this.wrap(super._OnMinimizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyMinimizeError = this.wrap(super._OnAnyMinimizeError, () => { - return true; - }); - _OnRestoreSuccess = this.wrap( - super._OnRestoreSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnRestoreSuccess = this.wrap(super._OnRestoreSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyRestoreSuccess = this.wrap(super._OnAnyRestoreSuccess, () => { - return true; - }); - _OnRestoreError = this.wrap( - super._OnRestoreError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnRestoreError = this.wrap(super._OnRestoreError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyRestoreError = this.wrap(super._OnAnyRestoreError, () => { - return true; - }); - _OnRequestAttentionSuccess = this.wrap( - super._OnRequestAttentionSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyRequestAttentionSuccess = this.wrap( - super._OnAnyRequestAttentionSuccess, - () => { - return true; - } - ); - _OnRequestAttentionError = this.wrap( - super._OnRequestAttentionError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyRequestAttentionError = this.wrap( - super._OnAnyRequestAttentionError, - () => { - return true; - } - ); - _OnSetAlwaysOnTopSuccess = this.wrap( - super._OnSetAlwaysOnTopSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetAlwaysOnTopSuccess = this.wrap( - super._OnAnySetAlwaysOnTopSuccess, - () => { - return true; - } - ); - _OnSetAlwaysOnTopError = this.wrap( - super._OnSetAlwaysOnTopError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetAlwaysOnTopError = this.wrap( - super._OnAnySetAlwaysOnTopError, - () => { - return true; - } - ); - _OnSetHeightSuccess = this.wrap( - super._OnSetHeightSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnRequestAttentionSuccess = this.wrap(super._OnRequestAttentionSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyRequestAttentionSuccess = this.wrap(super._OnAnyRequestAttentionSuccess, () => { + return true + }) + _OnRequestAttentionError = this.wrap(super._OnRequestAttentionError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyRequestAttentionError = this.wrap(super._OnAnyRequestAttentionError, () => { + return true + }) + _OnSetAlwaysOnTopSuccess = this.wrap(super._OnSetAlwaysOnTopSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetAlwaysOnTopSuccess = this.wrap(super._OnAnySetAlwaysOnTopSuccess, () => { + return true + }) + _OnSetAlwaysOnTopError = this.wrap(super._OnSetAlwaysOnTopError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetAlwaysOnTopError = this.wrap(super._OnAnySetAlwaysOnTopError, () => { + return true + }) + _OnSetHeightSuccess = this.wrap(super._OnSetHeightSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetHeightSuccess = this.wrap(super._OnAnySetHeightSuccess, () => { - return true; - }); - _OnSetHeightError = this.wrap( - super._OnSetHeightError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetHeightError = this.wrap(super._OnSetHeightError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetHeightError = this.wrap(super._OnAnySetHeightError, () => { - return true; - }); - _OnSetMaximumSizeSuccess = this.wrap( - super._OnSetMaximumSizeSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetMaximumSizeSuccess = this.wrap( - super._OnAnySetMaximumSizeSuccess, - () => { - return true; - } - ); - _OnSetMaximumSizeError = this.wrap( - super._OnSetMaximumSizeError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetMaximumSizeError = this.wrap( - super._OnAnySetMaximumSizeError, - () => { - return true; - } - ); - _OnSetMinimumSizeSuccess = this.wrap( - super._OnSetMinimumSizeSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetMinimumSizeSuccess = this.wrap( - super._OnAnySetMinimumSizeSuccess, - () => { - return true; - } - ); - _OnSetMinimumSizeError = this.wrap( - super._OnSetMinimumSizeError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetMinimumSizeError = this.wrap( - super._OnAnySetMinimumSizeError, - () => { - return true; - } - ); - _OnSetResizableSuccess = this.wrap( - super._OnSetResizableSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetResizableSuccess = this.wrap( - super._OnAnySetResizableSuccess, - () => { - return true; - } - ); - _OnSetResizableError = this.wrap( - super._OnSetResizableError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetMaximumSizeSuccess = this.wrap(super._OnSetMaximumSizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetMaximumSizeSuccess = this.wrap(super._OnAnySetMaximumSizeSuccess, () => { + return true + }) + _OnSetMaximumSizeError = this.wrap(super._OnSetMaximumSizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetMaximumSizeError = this.wrap(super._OnAnySetMaximumSizeError, () => { + return true + }) + _OnSetMinimumSizeSuccess = this.wrap(super._OnSetMinimumSizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetMinimumSizeSuccess = this.wrap(super._OnAnySetMinimumSizeSuccess, () => { + return true + }) + _OnSetMinimumSizeError = this.wrap(super._OnSetMinimumSizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetMinimumSizeError = this.wrap(super._OnAnySetMinimumSizeError, () => { + return true + }) + _OnSetResizableSuccess = this.wrap(super._OnSetResizableSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetResizableSuccess = this.wrap(super._OnAnySetResizableSuccess, () => { + return true + }) + _OnSetResizableError = this.wrap(super._OnSetResizableError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetResizableError = this.wrap(super._OnAnySetResizableError, () => { - return true; - }); - _OnSetTitleSuccess = this.wrap( - super._OnSetTitleSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetTitleSuccess = this.wrap(super._OnSetTitleSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetTitleSuccess = this.wrap(super._OnAnySetTitleSuccess, () => { - return true; - }); - _OnSetTitleError = this.wrap( - super._OnSetTitleError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetTitleError = this.wrap(super._OnSetTitleError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetTitleError = this.wrap(super._OnAnySetTitleError, () => { - return true; - }); - _OnSetWidthSuccess = this.wrap( - super._OnSetWidthSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetWidthSuccess = this.wrap(super._OnSetWidthSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetWidthSuccess = this.wrap(super._OnAnySetWidthSuccess, () => { - return true; - }); - _OnSetWidthError = this.wrap( - super._OnSetWidthError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetWidthError = this.wrap(super._OnSetWidthError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetWidthError = this.wrap(super._OnAnySetWidthError, () => { - return true; - }); - _OnSetXSuccess = this.wrap( - super._OnSetXSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetXSuccess = this.wrap(super._OnSetXSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetXSuccess = this.wrap(super._OnAnySetXSuccess, () => { - return true; - }); - _OnSetXError = this.wrap( - super._OnSetXError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetXError = this.wrap(super._OnSetXError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetXError = this.wrap(super._OnAnySetXError, () => { - return true; - }); - _OnSetYSuccess = this.wrap( - super._OnSetYSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetYSuccess = this.wrap(super._OnSetYSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetYSuccess = this.wrap(super._OnAnySetYSuccess, () => { - return true; - }); - _OnSetYError = this.wrap( - super._OnSetYError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetYError = this.wrap(super._OnSetYError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetYError = this.wrap(super._OnAnySetYError, () => { - return true; - }); - _OnShowDevToolsSuccess = this.wrap( - super._OnShowDevToolsSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyShowDevToolsSuccess = this.wrap( - super._OnAnyShowDevToolsSuccess, - () => { - return true; - } - ); - _OnShowDevToolsError = this.wrap( - super._OnShowDevToolsError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnShowDevToolsSuccess = this.wrap(super._OnShowDevToolsSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyShowDevToolsSuccess = this.wrap(super._OnAnyShowDevToolsSuccess, () => { + return true + }) + _OnShowDevToolsError = this.wrap(super._OnShowDevToolsError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyShowDevToolsError = this.wrap(super._OnAnyShowDevToolsError, () => { - return true; - }); - _OnUnmaximizeSuccess = this.wrap( - super._OnUnmaximizeSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnUnmaximizeSuccess = this.wrap(super._OnUnmaximizeSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyUnmaximizeSuccess = this.wrap(super._OnAnyUnmaximizeSuccess, () => { - return true; - }); - _OnUnmaximizeError = this.wrap( - super._OnUnmaximizeError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnUnmaximizeError = this.wrap(super._OnUnmaximizeError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnyUnmaximizeError = this.wrap(super._OnAnyUnmaximizeError, () => { - return true; - }); - _OnSetFullscreenSuccess = this.wrap( - super._OnSetFullscreenSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetFullscreenSuccess = this.wrap( - super._OnAnySetFullscreenSuccess, - () => { - return true; - } - ); - _OnSetFullscreenError = this.wrap( - super._OnSetFullscreenError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); + return true + }) + _OnSetFullscreenSuccess = this.wrap(super._OnSetFullscreenSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetFullscreenSuccess = this.wrap(super._OnAnySetFullscreenSuccess, () => { + return true + }) + _OnSetFullscreenError = this.wrap(super._OnSetFullscreenError, (/** @type {Tag} */ tag) => this._currentTag === tag) _OnAnySetFullscreenError = this.wrap(super._OnAnySetFullscreenError, () => { - return true; - }); - - _OnActivateAchievementSuccess = this.wrap( - super._OnActivateAchievementSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyActivateAchievementSuccess = this.wrap( - super._OnAnyActivateAchievementSuccess, - () => true - ); - _OnActivateAchievementError = this.wrap( - super._OnActivateAchievementError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyActivateAchievementError = this.wrap( - super._OnAnyActivateAchievementError, - () => true - ); - - _OnLeaderboardUploadScoreSuccess = this.wrap( - super._OnLeaderboardUploadScoreSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyLeaderboardUploadScoreSuccess = this.wrap( - super._OnAnyLeaderboardUploadScoreSuccess, - () => true - ); - _OnLeaderboardUploadScoreError = this.wrap( - super._OnLeaderboardUploadScoreError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyLeaderboardUploadScoreError = this.wrap( - super._OnAnyLeaderboardUploadScoreError, - () => true - ); - - _OnLeaderboardDownloadScoreSuccess = this.wrap( - super._OnLeaderboardDownloadScoreSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyLeaderboardDownloadScoreSuccess = this.wrap( - super._OnAnyLeaderboardDownloadScoreSuccess, - () => true - ); - _OnLeaderboardDownloadScoreError = this.wrap( - super._OnLeaderboardDownloadScoreError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyLeaderboardDownloadScoreError = this.wrap( - super._OnAnyLeaderboardDownloadScoreError, - () => true - ); - - _OnLeaderboardUploadScoreWithMetadataSuccess = this.wrap( - super._OnLeaderboardUploadScoreWithMetadataSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyLeaderboardUploadScoreWithMetadataSuccess = this.wrap( - super._OnAnyLeaderboardUploadScoreWithMetadataSuccess, - () => true - ); - _OnLeaderboardUploadScoreWithMetadataError = this.wrap( - super._OnLeaderboardUploadScoreWithMetadataError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyLeaderboardUploadScoreWithMetadataError = this.wrap( - super._OnAnyLeaderboardUploadScoreWithMetadataError, - () => true - ); - - _OnClearAchievementSuccess = this.wrap( - super._OnClearAchievementSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyClearAchievementSuccess = this.wrap( - super._OnAnyClearAchievementSuccess, - () => { - return true; - } - ); - _OnClearAchievementError = this.wrap( - super._OnClearAchievementError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyClearAchievementError = this.wrap( - super._OnAnyClearAchievementError, - () => { - return true; - } - ); - _OnCheckAchievementActivationStateSuccess = this.wrap( - super._OnCheckAchievementActivationStateSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyCheckAchievementActivationStateSuccess = this.wrap( - super._OnAnyCheckAchievementActivationStateSuccess, - () => { - return true; - } - ); - _OnCheckAchievementActivationStateError = this.wrap( - super._OnCheckAchievementActivationStateError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyCheckAchievementActivationStateError = this.wrap( - super._OnAnyCheckAchievementActivationStateError, - () => { - return true; - } - ); - - _OnSetRichPresenceSuccess = this.wrap( - super._OnSetRichPresenceSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetRichPresenceSuccess = this.wrap( - super._OnAnySetRichPresenceSuccess, - () => { - return true; - } - ); - _OnSetRichPresenceError = this.wrap( - super._OnSetRichPresenceError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnySetRichPresenceError = this.wrap( - super._OnAnySetRichPresenceError, - () => { - return true; - } - ); - - _OnDiscordSetActivitySuccess = this.wrap( - super._OnDiscordSetActivitySuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyDiscordSetActivitySuccess = this.wrap( - super._OnAnyDiscordSetActivitySuccess, - () => { - return true; - } - ); - _OnDiscordSetActivityError = this.wrap( - super._OnDiscordSetActivityError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyDiscordSetActivityError = this.wrap( - super._OnAnyDiscordSetActivityError, - () => { - return true; - } - ); - - _OnActivateToWebPageSuccess = this.wrap( - super._OnActivateToWebPageSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyActivateToWebPageSuccess = this.wrap( - super._OnAnyActivateToWebPageSuccess, - () => true - ); - _OnActivateToWebPageError = this.wrap( - super._OnActivateToWebPageError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyActivateToWebPageError = this.wrap( - super._OnAnyActivateToWebPageError, - () => true - ); - - _OnActivateToStoreSuccess = this.wrap( - super._OnActivateToStoreSuccess, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyActivateToStoreSuccess = this.wrap( - super._OnAnyActivateToStoreSuccess, - () => true - ); - _OnActivateToStoreError = this.wrap( - super._OnActivateToStoreError, - (/** @type {Tag} */ tag) => this._currentTag === tag - ); - _OnAnyActivateToStoreError = this.wrap( - super._OnAnyActivateToStoreError, - () => true - ); - - _IsFullScreen = this.wrap( - super._IsFullScreen, - (state) => { - return this._fullscreenState === state; - }, - () => false - ); - - _LastCheckedPathExists = this.wrap( - super._LastCheckedPathExists, - (state) => { - return this._CheckIfPathExistErrorValue === ""; - }, - () => false - ); + return true + }) + + _OnActivateAchievementSuccess = this.wrap(super._OnActivateAchievementSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyActivateAchievementSuccess = this.wrap(super._OnAnyActivateAchievementSuccess, () => true) + _OnActivateAchievementError = this.wrap(super._OnActivateAchievementError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyActivateAchievementError = this.wrap(super._OnAnyActivateAchievementError, () => true) + + _OnLeaderboardUploadScoreSuccess = this.wrap(super._OnLeaderboardUploadScoreSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyLeaderboardUploadScoreSuccess = this.wrap(super._OnAnyLeaderboardUploadScoreSuccess, () => true) + _OnLeaderboardUploadScoreError = this.wrap(super._OnLeaderboardUploadScoreError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyLeaderboardUploadScoreError = this.wrap(super._OnAnyLeaderboardUploadScoreError, () => true) + + _OnLeaderboardDownloadScoreSuccess = this.wrap(super._OnLeaderboardDownloadScoreSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyLeaderboardDownloadScoreSuccess = this.wrap(super._OnAnyLeaderboardDownloadScoreSuccess, () => true) + _OnLeaderboardDownloadScoreError = this.wrap(super._OnLeaderboardDownloadScoreError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyLeaderboardDownloadScoreError = this.wrap(super._OnAnyLeaderboardDownloadScoreError, () => true) + + _OnLeaderboardUploadScoreWithMetadataSuccess = this.wrap(super._OnLeaderboardUploadScoreWithMetadataSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyLeaderboardUploadScoreWithMetadataSuccess = this.wrap(super._OnAnyLeaderboardUploadScoreWithMetadataSuccess, () => true) + _OnLeaderboardUploadScoreWithMetadataError = this.wrap(super._OnLeaderboardUploadScoreWithMetadataError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyLeaderboardUploadScoreWithMetadataError = this.wrap(super._OnAnyLeaderboardUploadScoreWithMetadataError, () => true) + + + _OnClearAchievementSuccess = this.wrap(super._OnClearAchievementSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyClearAchievementSuccess = this.wrap(super._OnAnyClearAchievementSuccess, () => { + return true + }) + _OnClearAchievementError = this.wrap(super._OnClearAchievementError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyClearAchievementError = this.wrap(super._OnAnyClearAchievementError, () => { + return true + }) + _OnCheckAchievementActivationStateSuccess = this.wrap(super._OnCheckAchievementActivationStateSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyCheckAchievementActivationStateSuccess = this.wrap(super._OnAnyCheckAchievementActivationStateSuccess, () => { + return true + }) + _OnCheckAchievementActivationStateError = this.wrap(super._OnCheckAchievementActivationStateError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyCheckAchievementActivationStateError = this.wrap(super._OnAnyCheckAchievementActivationStateError, () => { + return true + }) + + _OnSetRichPresenceSuccess = this.wrap(super._OnSetRichPresenceSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetRichPresenceSuccess = this.wrap(super._OnAnySetRichPresenceSuccess, () => { + return true + }) + _OnSetRichPresenceError = this.wrap(super._OnSetRichPresenceError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnySetRichPresenceError = this.wrap(super._OnAnySetRichPresenceError, () => { + return true + }) + + _OnDiscordSetActivitySuccess = this.wrap(super._OnDiscordSetActivitySuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyDiscordSetActivitySuccess = this.wrap(super._OnAnyDiscordSetActivitySuccess, () => { + return true + }) + _OnDiscordSetActivityError = this.wrap(super._OnDiscordSetActivityError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyDiscordSetActivityError = this.wrap(super._OnAnyDiscordSetActivityError, () => { + return true + }) + + _OnActivateToWebPageSuccess = this.wrap(super._OnActivateToWebPageSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyActivateToWebPageSuccess = this.wrap(super._OnAnyActivateToWebPageSuccess, () => true) + _OnActivateToWebPageError = this.wrap(super._OnActivateToWebPageError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyActivateToWebPageError = this.wrap(super._OnAnyActivateToWebPageError, () => true) + + _OnActivateToStoreSuccess = this.wrap(super._OnActivateToStoreSuccess, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyActivateToStoreSuccess = this.wrap(super._OnAnyActivateToStoreSuccess, () => true) + _OnActivateToStoreError = this.wrap(super._OnActivateToStoreError, (/** @type {Tag} */ tag) => this._currentTag === tag) + _OnAnyActivateToStoreError = this.wrap(super._OnAnyActivateToStoreError, () => true) + + _IsFullScreen = this.wrap(super._IsFullScreen, (state) => { + return this._fullscreenState === state + }, () => false) + + _LastCheckedPathExists = this.wrap(super._LastCheckedPathExists, (state) => { + return this._CheckIfPathExistErrorValue === '' + }, () => false) // #endregion // #region Exps _UserFolder = this.exprs(super._UserFolder, () => { - return this._userFolder ?? ""; - }); + return this._userFolder ?? '' + }) _HomeFolder = this.exprs(super._HomeFolder, () => { - return this._homeFolder ?? ""; - }); + return this._homeFolder ?? '' + }) _AppDataFolder = this.exprs(super._AppDataFolder, () => { - return this._appDataFolder ?? ""; - }); + return this._appDataFolder ?? '' + }) _UserDataFolder = this.exprs(super._UserDataFolder, () => { - return this._userDataFolder ?? ""; - }); + return this._userDataFolder ?? '' + }) _LocalAppDataFolder = this.exprs(super._LocalAppDataFolder, () => { - return this._localAppDataFolder ?? ""; - }); + return this._localAppDataFolder ?? '' + }) _LocalUserDataFolder = this.exprs(super._LocalUserDataFolder, () => { - return this._localUserDataFolder ?? ""; - }); + return this._localUserDataFolder ?? '' + }) _SessionDataFolder = this.exprs(super._SessionDataFolder, () => { - return this._sessionDataFolder ?? ""; - }); + return this._sessionDataFolder ?? '' + }) _TempFolder = this.exprs(super._TempFolder, () => { - return this._tempFolder ?? ""; - }); + return this._tempFolder ?? '' + }) _ExeFolder = this.exprs(super._ExeFolder, () => { - return this._exeFolder ?? ""; - }); + return this._exeFolder ?? '' + }) _ModuleFolder = this.exprs(super._ModuleFolder, () => { - return this._moduleFolder ?? ""; - }); + return this._moduleFolder ?? '' + }) _DesktopFolder = this.exprs(super._DesktopFolder, () => { - return this._desktopFolder ?? ""; - }); + return this._desktopFolder ?? '' + }) _DocumentsFolder = this.exprs(super._DocumentsFolder, () => { - return this._documentsFolder ?? ""; - }); + return this._documentsFolder ?? '' + }) _DownloadsFolder = this.exprs(super._DownloadsFolder, () => { - return this._downloadsFolder ?? ""; - }); + return this._downloadsFolder ?? '' + }) _MusicFolder = this.exprs(super._MusicFolder, () => { - return this._musicFolder ?? ""; - }); + return this._musicFolder ?? '' + }) _PicturesFolder = this.exprs(super._PicturesFolder, () => { - return this._picturesFolder ?? ""; - }); + return this._picturesFolder ?? '' + }) _VideosFolder = this.exprs(super._VideosFolder, () => { - return this._videosFolder ?? ""; - }); + return this._videosFolder ?? '' + }) _RecentFolder = this.exprs(super._RecentFolder, () => { - return this._recentFolder ?? ""; - }); + return this._recentFolder ?? '' + }) _LogsFolder = this.exprs(super._LogsFolder, () => { - return this._logsFolder ?? ""; - }); + return this._logsFolder ?? '' + }) _CrashDumpsFolder = this.exprs(super._CrashDumpsFolder, () => { - return this._crashDumpsFolder ?? ""; - }); + return this._crashDumpsFolder ?? '' + }) _AppFolder = this.exprs(super._AppFolder, () => { - return this._appFolder ?? ""; - }); + return this._appFolder ?? '' + }) _AppFolderURL = this.exprs(super._AppFolderURL, () => { - return "deprecrated"; - }); + return 'deprecrated' + }) _ArgumentAt = this.exprs(super._ArgumentAt, () => { - console.error('"_ArgumentAt" Not implemented'); - return ""; - }); + console.error('"_ArgumentAt" Not implemented') + return '' + }) _ArgumentCount = this.exprs(super._ArgumentCount, () => { - console.error('"_ArgumentCount" Not implemented'); - return -1; - }); + console.error('"_ArgumentCount" Not implemented') + return -1 + }) _DroppedFile = this.exprs(super._DroppedFile, () => { - console.error('"_DroppedFile" Not implemented'); - return ""; - }); + console.error('"_DroppedFile" Not implemented') + return '' + }) _ListAt = this.exprs(super._ListAt, (index) => { - return this._ListFilesResultValue[index]?.path ?? ""; - }); + return this._ListFilesResultValue[index]?.path ?? '' + }) _ListCount = this.exprs(super._ListCount, () => { - return this._ListFilesResultValue.length; - }); + return this._ListFilesResultValue.length + }) _ProjectFilesFolder = this.exprs(super._ProjectFilesFolder, () => { - return this._projectFilesFolder ?? ""; - }); + return this._projectFilesFolder ?? '' + }) _ProjectFilesFolderURL = this.exprs(super._ProjectFilesFolderURL, () => { - return this._projectFilesFolder ?? ""; - }); + return this._projectFilesFolder ?? '' + }) _ReadFile = this.exprs(super._ReadFile, () => { - return this._ReadTextFileResultValue ?? ""; - }); + return this._ReadTextFileResultValue ?? '' + }) _WindowHeight = this.exprs(super._WindowHeight, () => { - return this._windowHeight; - }); + return this._windowHeight + }) _WindowWidth = this.exprs(super._WindowWidth, () => { - return this._windowWidth; - }); + return this._windowWidth + }) _WindowTitle = this.exprs(super._WindowTitle, () => { - return this._windowTitle; - }); + return this._windowTitle + }) _WindowX = this.exprs(super._WindowX, () => { - return this._windowX; - }); + return this._windowX + }) _WindowY = this.exprs(super._WindowY, () => { - return this._windowY; - }); + return this._windowY + }) _IsEngine = this.exprs(super._IsEngine, (engine) => { - if (engine === 0 && this._engine === "electron") return true; - if (engine === 1 && this._engine === "tauri") return true; - return false; - }); + if (engine === 0 && this._engine === 'electron') return true + if (engine === 1 && this._engine === 'tauri') return true + return false + }) _LastPathExists = this.exprs(super._LastPathExists, () => { - return this._lastPathExists; - }); + return this._lastPathExists + }) _FullscreenState = () => { - return this._fullscreenState; - }; + return this._fullscreenState + } _CurrentPlatform = this.exprs(super._CurrentPlatform, () => { - return this._platform; - }); + return this._platform + }) _CurrentArchitecture = this.exprs(super._CurrentArchitecture, () => { - return this._arch; - }); + return this._arch + }) _SteamAccountId = this.exprs(super._SteamAccountId, () => { - return this._steam_SteamId.accountId; - }); + return this._steam_SteamId.accountId + }) _SteamId32 = this.exprs(super._SteamId32, () => { - return this._steam_SteamId.steamId32; - }); + return this._steam_SteamId.steamId32 + }) _SteamId64 = this.exprs(super._SteamId64, () => { - return this._steam_SteamId.steamId64; - }); + return this._steam_SteamId.steamId64 + }) _SteamUsername = this.exprs(super._SteamUsername, () => { - return this._steam_Name; - }); + return this._steam_Name + }) _SteamLevel = this.exprs(super._SteamLevel, () => { - return this._steam_Level; - }); + return this._steam_Level + }) _SteamIpCountry = this.exprs(super._SteamIpCountry, () => { - return this._steam_IpCountry; - }); - _SteamIsRunningOnSteamDeck = this.exprs( - super._SteamIsRunningOnSteamDeck, - () => { - return this._steam_IsRunningOnSteamDeck ? 1 : 0; - } - ); + return this._steam_IpCountry + }) + _SteamIsRunningOnSteamDeck = this.exprs(super._SteamIsRunningOnSteamDeck, () => { + return this._steam_IsRunningOnSteamDeck ? 1 : 0 + }) _SteamAppId = this.exprs(super._SteamAppId, () => { - return this._steam_AppId; - }); + return this._steam_AppId + }) _InitializeError = this.exprs(super._InitializeError, () => { - return this._InitializeErrorValue; - }); + return this._InitializeErrorValue + }) _InitializeResult = this.exprs(super._InitializeResult, () => { - return this._InitializeResultValue; - }); + return this._InitializeResultValue + }) _AppendFileError = this.exprs(super._AppendFileError, () => { - return this._AppendFileErrorValue; - }); + return this._AppendFileErrorValue + }) _AppendFileResult = this.exprs(super._AppendFileResult, () => { - return this._AppendFileResultValue; - }); + return this._AppendFileResultValue + }) _CopyFileError = this.exprs(super._CopyFileError, () => { - return this._CopyFileErrorValue; - }); + return this._CopyFileErrorValue + }) _CopyFileResult = this.exprs(super._CopyFileResult, () => { - return this._CopyFileResultValue; - }); + return this._CopyFileResultValue + }) _FetchFileSizeError = this.exprs(super._FetchFileSizeError, () => { - return this._FetchFileSizeErrorValue; - }); + return this._FetchFileSizeErrorValue + }) _FetchFileSizeResult = this.exprs(super._FetchFileSizeResult, () => { - return this._FetchFileSizeResultValue; - }); + return this._FetchFileSizeResultValue + }) _CreateFolderError = this.exprs(super._CreateFolderError, () => { - return this._CreateFolderErrorValue; - }); + return this._CreateFolderErrorValue + }) _CreateFolderResult = this.exprs(super._CreateFolderResult, () => { - return this._CreateFolderResultValue; - }); + return this._CreateFolderResultValue + }) _DeleteFileError = this.exprs(super._DeleteFileError, () => { - return this._DeleteFileErrorValue; - }); + return this._DeleteFileErrorValue + }) _DeleteFileResult = this.exprs(super._DeleteFileResult, () => { - return this._DeleteFileResultValue; - }); + return this._DeleteFileResultValue + }) _ListFilesError = this.exprs(super._ListFilesError, () => { - return this._ListFilesErrorValue; - }); + return this._ListFilesErrorValue + }) _ListFilesResult = this.exprs(super._ListFilesResult, () => { - return this._ListFilesResultValue; - }); + return this._ListFilesResultValue + }) _MoveFileError = this.exprs(super._MoveFileError, () => { - return this._MoveFileErrorValue; - }); + return this._MoveFileErrorValue + }) _MoveFileResult = this.exprs(super._MoveFileResult, () => { - return this._MoveFileResultValue; - }); + return this._MoveFileResultValue + }) _OpenBrowserError = this.exprs(super._OpenBrowserError, () => { - return this._OpenBrowserErrorValue; - }); + return this._OpenBrowserErrorValue + }) _OpenBrowserResult = this.exprs(super._OpenBrowserResult, () => { - return this._OpenBrowserResultValue; - }); + return this._OpenBrowserResultValue + }) _ReadBinaryFileError = this.exprs(super._ReadBinaryFileError, () => { - return this._ReadBinaryFileErrorValue; - }); + return this._ReadBinaryFileErrorValue + }) _ReadBinaryFileResult = this.exprs(super._ReadBinaryFileResult, () => { - return this._ReadBinaryFileResultValue; - }); + return this._ReadBinaryFileResultValue + }) _RenameFileError = this.exprs(super._RenameFileError, () => { - return this._RenameFileErrorValue; - }); + return this._RenameFileErrorValue + }) _RenameFileResult = this.exprs(super._RenameFileResult, () => { - return this._RenameFileResultValue; - }); + return this._RenameFileResultValue + }) _RunFileError = this.exprs(super._RunFileError, () => { - return this._RunFileErrorValue; - }); + return this._RunFileErrorValue + }) _RunFileResult = this.exprs(super._RunFileResult, () => { - return this._RunFileResultValue; - }); + return this._RunFileResultValue + }) _ShellOpenError = this.exprs(super._ShellOpenError, () => { - return this._ShellOpenErrorValue; - }); + return this._ShellOpenErrorValue + }) _ShellOpenResult = this.exprs(super._ShellOpenResult, () => { - return this._ShellOpenResultValue; - }); + return this._ShellOpenResultValue + }) _ExplorerOpenError = this.exprs(super._ExplorerOpenError, () => { - return this._ExplorerOpenErrorValue; - }); + return this._ExplorerOpenErrorValue + }) _ExplorerOpenResult = this.exprs(super._ExplorerOpenResult, () => { - return this._ExplorerOpenResultValue; - }); + return this._ExplorerOpenResultValue + }) _WriteBinaryFileError = this.exprs(super._WriteBinaryFileError, () => { - return this._WriteBinaryFileErrorValue; - }); + return this._WriteBinaryFileErrorValue + }) _WriteBinaryFileResult = this.exprs(super._WriteBinaryFileResult, () => { - return this._WriteBinaryFileResultValue; - }); + return this._WriteBinaryFileResultValue + }) _WriteTextFileError = this.exprs(super._WriteTextFileError, () => { - return this._WriteTextFileErrorValue; - }); + return this._WriteTextFileErrorValue + }) _WriteTextFileResult = this.exprs(super._WriteTextFileResult, () => { - return this._WriteTextFileResultValue; - }); + return this._WriteTextFileResultValue + }) _WriteTextError = this.exprs(super._WriteTextError, () => { - return this._WriteTextErrorValue; - }); + return this._WriteTextErrorValue + }) _WriteTextResult = this.exprs(super._WriteTextResult, () => { - return this._WriteTextResultValue; - }); + return this._WriteTextResultValue + }) _ReadTextFileError = this.exprs(super._ReadTextFileError, () => { - return this._ReadTextFileErrorValue; - }); + return this._ReadTextFileErrorValue + }) _ReadTextFileResult = this.exprs(super._ReadTextFileResult, () => { - return this._ReadTextFileResultValue; - }); + return this._ReadTextFileResultValue + }) _CheckIfPathExistError = this.exprs(super._CheckIfPathExistError, () => { - return this._CheckIfPathExistErrorValue; - }); + return this._CheckIfPathExistErrorValue + }) _CheckIfPathExistResult = this.exprs(super._CheckIfPathExistResult, () => { - return this._CheckIfPathExistResultValue; - }); + return this._CheckIfPathExistResultValue + }) _ShowFolderDialogError = this.exprs(super._ShowFolderDialogError, () => { - return this._ShowFolderDialogErrorValue; - }); + return this._ShowFolderDialogErrorValue + }) _ShowFolderDialogResult = this.exprs(super._ShowFolderDialogResult, () => { - return this._ShowFolderDialogResultValue; - }); + return this._ShowFolderDialogResultValue + }) _ShowOpenDialogError = this.exprs(super._ShowOpenDialogError, () => { - return this._ShowOpenDialogErrorValue; - }); + return this._ShowOpenDialogErrorValue + }) _ShowOpenDialogResult = this.exprs(super._ShowOpenDialogResult, () => { - return this._ShowOpenDialogResultValue; - }); + return this._ShowOpenDialogResultValue + }) _ShowSaveDialogError = this.exprs(super._ShowSaveDialogError, () => { - return this._ShowSaveDialogErrorValue; - }); + return this._ShowSaveDialogErrorValue + }) _ShowSaveDialogResult = this.exprs(super._ShowSaveDialogResult, () => { - return this._ShowSaveDialogResultValue; - }); + return this._ShowSaveDialogResultValue + }) _MaximizeError = this.exprs(super._MaximizeError, () => { - return this._MaximizeErrorValue; - }); + return this._MaximizeErrorValue + }) _MaximizeResult = this.exprs(super._MaximizeResult, () => { - return this._MaximizeResultValue; - }); + return this._MaximizeResultValue + }) _MinimizeError = this.exprs(super._MinimizeError, () => { - return this._MinimizeErrorValue; - }); + return this._MinimizeErrorValue + }) _MinimizeResult = this.exprs(super._MinimizeResult, () => { - return this._MinimizeResultValue; - }); + return this._MinimizeResultValue + }) _RestoreError = this.exprs(super._RestoreError, () => { - return this._RestoreErrorValue; - }); + return this._RestoreErrorValue + }) _RestoreResult = this.exprs(super._RestoreResult, () => { - return this._RestoreResultValue; - }); + return this._RestoreResultValue + }) _RequestAttentionError = this.exprs(super._RequestAttentionError, () => { - return this._RequestAttentionErrorValue; - }); + return this._RequestAttentionErrorValue + }) _RequestAttentionResult = this.exprs(super._RequestAttentionResult, () => { - return this._RequestAttentionResultValue; - }); + return this._RequestAttentionResultValue + }) _SetAlwaysOnTopError = this.exprs(super._SetAlwaysOnTopError, () => { - return this._SetAlwaysOnTopErrorValue; - }); + return this._SetAlwaysOnTopErrorValue + }) _SetAlwaysOnTopResult = this.exprs(super._SetAlwaysOnTopResult, () => { - return this._SetAlwaysOnTopResultValue; - }); + return this._SetAlwaysOnTopResultValue + }) _SetHeightError = this.exprs(super._SetHeightError, () => { - return this._SetHeightErrorValue; - }); + return this._SetHeightErrorValue + }) _SetHeightResult = this.exprs(super._SetHeightResult, () => { - return this._SetHeightResultValue; - }); + return this._SetHeightResultValue + }) _SetMaximumSizeError = this.exprs(super._SetMaximumSizeError, () => { - return this._SetMaximumSizeErrorValue; - }); + return this._SetMaximumSizeErrorValue + }) _SetMaximumSizeResult = this.exprs(super._SetMaximumSizeResult, () => { - return this._SetMaximumSizeResultValue; - }); + return this._SetMaximumSizeResultValue + }) _SetMinimumSizeError = this.exprs(super._SetMinimumSizeError, () => { - return this._SetMinimumSizeErrorValue; - }); + return this._SetMinimumSizeErrorValue + }) _SetMinimumSizeResult = this.exprs(super._SetMinimumSizeResult, () => { - return this._SetMinimumSizeResultValue; - }); + return this._SetMinimumSizeResultValue + }) _SetResizableError = this.exprs(super._SetResizableError, () => { - return this._SetResizableErrorValue; - }); + return this._SetResizableErrorValue + }) _SetResizableResult = this.exprs(super._SetResizableResult, () => { - return this._SetResizableResultValue; - }); + return this._SetResizableResultValue + }) _SetTitleError = this.exprs(super._SetTitleError, () => { - return this._SetTitleErrorValue; - }); + return this._SetTitleErrorValue + }) _SetTitleResult = this.exprs(super._SetTitleResult, () => { - return this._SetTitleResultValue; - }); + return this._SetTitleResultValue + }) _SetWidthError = this.exprs(super._SetWidthError, () => { - return this._SetWidthErrorValue; - }); + return this._SetWidthErrorValue + }) _SetWidthResult = this.exprs(super._SetWidthResult, () => { - return this._SetWidthResultValue; - }); + return this._SetWidthResultValue + }) _SetXError = this.exprs(super._SetXError, () => { - return this._SetXErrorValue; - }); + return this._SetXErrorValue + }) _SetXResult = this.exprs(super._SetXResult, () => { - return this._SetXResultValue; - }); + return this._SetXResultValue + }) _SetYError = this.exprs(super._SetYError, () => { - return this._SetYErrorValue; - }); + return this._SetYErrorValue + }) _SetYResult = this.exprs(super._SetYResult, () => { - return this._SetYResultValue; - }); + return this._SetYResultValue + }) _ShowDevToolsError = this.exprs(super._ShowDevToolsError, () => { - return this._ShowDevToolsErrorValue; - }); + return this._ShowDevToolsErrorValue + }) _ShowDevToolsResult = this.exprs(super._ShowDevToolsResult, () => { - return this._ShowDevToolsResultValue; - }); + return this._ShowDevToolsResultValue + }) _UnmaximizeError = this.exprs(super._UnmaximizeError, () => { - return this._UnmaximizeErrorValue; - }); + return this._UnmaximizeErrorValue + }) _UnmaximizeResult = this.exprs(super._UnmaximizeResult, () => { - return this._UnmaximizeResultValue; - }); + return this._UnmaximizeResultValue + }) _SetFullscreenError = this.exprs(super._SetFullscreenError, () => { - return this._SetFullscreenErrorValue; - }); + return this._SetFullscreenErrorValue + }) _SetFullscreenResult = this.exprs(super._SetFullscreenResult, () => { - return this._SetFullscreenResultValue; - }); - _ActivateAchievementError = this.exprs( - super._ActivateAchievementError, - () => { - return this._ActivateAchievementErrorValue; - } - ); - _ActivateAchievementResult = this.exprs( - super._ActivateAchievementResult, - () => { - return this._ActivateAchievementResultValue; - } - ); + return this._SetFullscreenResultValue + }) + _ActivateAchievementError = this.exprs(super._ActivateAchievementError, () => { + return this._ActivateAchievementErrorValue + }) + _ActivateAchievementResult = this.exprs(super._ActivateAchievementResult, () => { + return this._ActivateAchievementResultValue + }) _ClearAchievementError = this.exprs(super._ClearAchievementError, () => { - return this._ClearAchievementErrorValue; - }); + return this._ClearAchievementErrorValue + }) _ClearAchievementResult = this.exprs(super._ClearAchievementResult, () => { - return this._ClearAchievementResultValue; - }); - _CheckAchievementActivationStateError = this.exprs( - super._CheckAchievementActivationStateError, - () => { - return this._CheckAchievementActivationStateErrorValue; - } - ); - _CheckAchievementActivationStateResult = this.exprs( - super._CheckAchievementActivationStateResult, - () => { - return this._CheckAchievementActivationStateResultValue; - } - ); + return this._ClearAchievementResultValue + }) + _CheckAchievementActivationStateError = this.exprs(super._CheckAchievementActivationStateError, () => { + return this._CheckAchievementActivationStateErrorValue + }) + _CheckAchievementActivationStateResult = this.exprs(super._CheckAchievementActivationStateResult, () => { + return this._CheckAchievementActivationStateResultValue + }) _SetRichPresenceError = this.exprs(super._SetRichPresenceError, () => { - return this._SetRichPresenceErrorValue; - }); + return this._SetRichPresenceErrorValue + }) _SetRichPresenceResult = this.exprs(super._SetRichPresenceResult, () => { - return this._SetRichPresenceResultValue; - }); - - _LeaderboardUploadScoreError = this.exprs( - super._LeaderboardUploadScoreError, - () => { - return this._LeaderboardUploadScoreErrorValue; - } - ); - _LeaderboardUploadScoreResult = this.exprs( - super._LeaderboardUploadScoreResult, - () => { - return this._LeaderboardUploadScoreResultValue; - } - ); - - _LeaderboardUploadScoreWithMetadataError = this.exprs( - super._LeaderboardUploadScoreWithMetadataError, - () => { - return this._LeaderboardUploadScoreWithMetadataErrorValue; - } - ); - _LeaderboardUploadScoreWithMetadataResult = this.exprs( - super._LeaderboardUploadScoreWithMetadataResult, - () => { - return this._LeaderboardUploadScoreWithMetadataResultValue; - } - ); - - _LeaderboardDownloadScoreError = this.exprs( - super._LeaderboardDownloadScoreError, - () => { - return this._LeaderboardDownloadScoreErrorValue; - } - ); - _LeaderboardDownloadScoreResult = this.exprs( - super._LeaderboardDownloadScoreResult, - () => { - return this._LeaderboardDownloadScoreResultValue; - } - ); - - _DiscordSetActivityError = this.exprs( - super._DiscordSetActivityError, - () => { - return this._DiscordSetActivityErrorValue; - } - ); - _DiscordSetActivityResult = this.exprs( - super._DiscordSetActivityResult, - () => { - return this._DiscordSetActivityResultValue; - } - ); + return this._SetRichPresenceResultValue + }) + + _LeaderboardUploadScoreError = this.exprs(super._LeaderboardUploadScoreError, () => { + return this._LeaderboardUploadScoreErrorValue + }) + _LeaderboardUploadScoreResult = this.exprs(super._LeaderboardUploadScoreResult, () => { + return this._LeaderboardUploadScoreResultValue + }) + + _LeaderboardUploadScoreWithMetadataError = this.exprs(super._LeaderboardUploadScoreWithMetadataError, () => { + return this._LeaderboardUploadScoreWithMetadataErrorValue + }) + _LeaderboardUploadScoreWithMetadataResult = this.exprs(super._LeaderboardUploadScoreWithMetadataResult, () => { + return this._LeaderboardUploadScoreWithMetadataResultValue + }) + + _LeaderboardDownloadScoreError = this.exprs(super._LeaderboardDownloadScoreError, () => { + return this._LeaderboardDownloadScoreErrorValue + }) + _LeaderboardDownloadScoreResult = this.exprs(super._LeaderboardDownloadScoreResult, () => { + return this._LeaderboardDownloadScoreResultValue + }) + + _DiscordSetActivityError = this.exprs(super._DiscordSetActivityError, () => { + return this._DiscordSetActivityErrorValue + }) + _DiscordSetActivityResult = this.exprs(super._DiscordSetActivityResult, () => { + return this._DiscordSetActivityResultValue + }) _ActivateToWebPageError = this.exprs(super._ActivateToWebPageError, () => { - return this._ActivateToWebPageErrorValue; - }); - _ActivateToWebPageResult = this.exprs( - super._ActivateToWebPageResult, - () => { - return this._ActivateToWebPageResultValue; - } - ); + return this._ActivateToWebPageErrorValue + }) + _ActivateToWebPageResult = this.exprs(super._ActivateToWebPageResult, () => { + return this._ActivateToWebPageResultValue + }) _ActivateToStoreError = this.exprs(super._ActivateToStoreError, () => { - return this._ActivateToStoreErrorValue; - }); + return this._ActivateToStoreErrorValue + }) _ActivateToStoreResult = this.exprs(super._ActivateToStoreResult, () => { - return this._ActivateToStoreResultValue; - }); + return this._ActivateToStoreResultValue + }) // @@ -3795,5 +3124,7 @@ function getInstanceJs(parentClass, addonTriggers, C3) { } /* REMOVE START */ -export { getInstanceJs }; -/* REMOVE END */ +export { + getInstanceJs +} +/* REMOVE END */ \ No newline at end of file From 097f1ee09fb4d9833c0841f822f463f5e4c9b24e Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Fri, 10 Oct 2025 16:23:32 +0200 Subject: [PATCH 7/9] Add IsInitialized condition to expose _isInitialized boolean state --- src/instance.js | 4 ++++ src/pluginConfig.js | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/instance.js b/src/instance.js index c695f87..8733f42 100644 --- a/src/instance.js +++ b/src/instance.js @@ -2643,6 +2643,10 @@ function getInstanceJs(parentClass, addonTriggers, C3) { _LastCheckedPathExists = this.wrap(super._LastCheckedPathExists, (state) => { return this._CheckIfPathExistErrorValue === '' }, () => false) + + _IsInitialized = this.wrap(super._IsInitialized, () => { + return this._isInitialized + }, () => false) // #endregion // #region Exps diff --git a/src/pluginConfig.js b/src/pluginConfig.js index ab591e7..1c9f770 100644 --- a/src/pluginConfig.js +++ b/src/pluginConfig.js @@ -1459,6 +1459,19 @@ const Config = /** @type {const} */({ listName: "Is engine", }, + IsInitialized: { + category: "general", + forward: "_IsInitialized", + highlight: false, + deprecated: false, + description: "Returns true if the Pipelab integration has been initialized", + displayText: "Is initialized", + listName: "Is initialized", + isInvertible: true, + isTrigger: false, + params: [] + }, + IsFullScreen: { category: "window", forward: "_IsFullScreen", From 5d9f7bbc5c0a9090618df34df484648202641579 Mon Sep 17 00:00:00 2001 From: Ossama Jouini Date: Fri, 10 Oct 2025 16:24:04 +0200 Subject: [PATCH 8/9] readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f0296bd..9bad8db 100644 --- a/README.md +++ b/README.md @@ -348,6 +348,7 @@ When Download type is Around the user, the offsets are the amount of entries aro | On "ActivateToStore" error | Trigger when the "ActivateToStore" failed to execute. | Tag *(string)*
| | On any "ActivateToStore" error | Trigger when any of the "ActivateToStore" failed to execute. | | | Is engine | Return true if the engine running the app is the one selected | Engine *(combo)*
| +| Is initialized | Returns true if the Pipelab integration has been initialized | | | Is full screen | Returns true if the window is in full screen mode. | State *(combo)*
| | Last checked path exists | Returns true if the last checked path exists. | | From cef33a613cbd5d4931d87e1b3f45613d2fcde1cf Mon Sep 17 00:00:00 2001 From: Quentin Goinaud Date: Tue, 14 Oct 2025 12:17:10 +0200 Subject: [PATCH 9/9] revert unwanted changes --- README.md | 2 +- package-lock.json | 3975 --------------------------------------------- package.json | 2 +- 3 files changed, 2 insertions(+), 3977 deletions(-) delete mode 100644 package-lock.json diff --git a/README.md b/README.md index 9bad8db..2e8e7dc 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ A plugin that integrate with Pipelab
Author: Armaldio
Website: https://github.com/CynToolkit/construct-plugin
Addon Url: https://github.com/CynToolkit/construct-plugin
-Download Latest Version : [Version: 2.4.0](https://github.com/CynToolkit/construct-plugin/releases/latest)
+Download Latest Version : [Version: 2.3.0](https://github.com/CynToolkit/construct-plugin/releases/latest)
Made using [c3ide2-framework](https://github.com/ConstructFund/c3ide2-framework)
## Table of Contents diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 234f9a7..0000000 --- a/package-lock.json +++ /dev/null @@ -1,3975 +0,0 @@ -{ - "name": "@pipelab/construct-plugin", - "version": "2.3.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "@pipelab/construct-plugin", - "version": "2.3.0", - "license": "LICENSE.md", - "dependencies": { - "@pipelab/core": "1.4.9", - "adm-zip": "0.5.16", - "c3addon": "1.0.9", - "chokidar": "4.0.3", - "cors": "2.8.5", - "express": "4.21.2", - "inquirer": "12.4.2" - }, - "devDependencies": { - "@types/node": "24.1.0", - "c3ide2-types": "1.0.1", - "electron": "35.0.3", - "esbuild": "0.25.10", - "lefthook": "1.11.3", - "steamworks.js": "0.4.0", - "typescript": "5.8.2" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", - "license": "MIT", - "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz", - "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", - "license": "MIT", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@electron/get": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", - "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "got": "^11.8.5", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "global-agent": "^3.0.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", - "integrity": "sha512-0NFWnA+7l41irNuaSVlLfgNT12caWJVLzp5eAVhZ0z1qpxbockccEt3s+149rE64VUI3Ml2zt8Nv5JVc4QXTsw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.10.tgz", - "integrity": "sha512-dQAxF1dW1C3zpeCDc5KqIYuZ1tgAdRXNoZP7vkBIRtKZPYe2xVr/d3SkirklCHudW1B45tGiUlz2pUWDfbDD4w==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.10.tgz", - "integrity": "sha512-LSQa7eDahypv/VO6WKohZGPSJDq5OVOo3UoFR1E4t4Gj1W7zEQMUhI+lo81H+DtB+kP+tDgBp+M4oNCwp6kffg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.10.tgz", - "integrity": "sha512-MiC9CWdPrfhibcXwr39p9ha1x0lZJ9KaVfvzA0Wxwz9ETX4v5CHfF09bx935nHlhi+MxhA63dKRRQLiVgSUtEg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.10.tgz", - "integrity": "sha512-JC74bdXcQEpW9KkV326WpZZjLguSZ3DfS8wrrvPMHgQOIEIG/sPXEN/V8IssoJhbefLRcRqw6RQH2NnpdprtMA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.10.tgz", - "integrity": "sha512-tguWg1olF6DGqzws97pKZ8G2L7Ig1vjDmGTwcTuYHbuU6TTjJe5FXbgs5C1BBzHbJ2bo1m3WkQDbWO2PvamRcg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.10.tgz", - "integrity": "sha512-3ZioSQSg1HT2N05YxeJWYR+Libe3bREVSdWhEEgExWaDtyFbbXWb49QgPvFH8u03vUPX10JhJPcz7s9t9+boWg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.10.tgz", - "integrity": "sha512-LLgJfHJk014Aa4anGDbh8bmI5Lk+QidDmGzuC2D+vP7mv/GeSN+H39zOf7pN5N8p059FcOfs2bVlrRr4SK9WxA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.10.tgz", - "integrity": "sha512-oR31GtBTFYCqEBALI9r6WxoU/ZofZl962pouZRTEYECvNF/dtXKku8YXcJkhgK/beU+zedXfIzHijSRapJY3vg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.10.tgz", - "integrity": "sha512-5luJWN6YKBsawd5f9i4+c+geYiVEw20FVW5x0v1kEMWNq8UctFjDiMATBxLvmmHA4bf7F6hTRaJgtghFr9iziQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.10.tgz", - "integrity": "sha512-NrSCx2Kim3EnnWgS4Txn0QGt0Xipoumb6z6sUtl5bOEZIVKhzfyp/Lyw4C1DIYvzeW/5mWYPBFJU3a/8Yr75DQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.10.tgz", - "integrity": "sha512-xoSphrd4AZda8+rUDDfD9J6FUMjrkTz8itpTITM4/xgerAZZcFW7Dv+sun7333IfKxGG8gAq+3NbfEMJfiY+Eg==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.10.tgz", - "integrity": "sha512-ab6eiuCwoMmYDyTnyptoKkVS3k8fy/1Uvq7Dj5czXI6DF2GqD2ToInBI0SHOp5/X1BdZ26RKc5+qjQNGRBelRA==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.10.tgz", - "integrity": "sha512-NLinzzOgZQsGpsTkEbdJTCanwA5/wozN9dSgEl12haXJBzMTpssebuXR42bthOF3z7zXFWH1AmvWunUCkBE4EA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.10.tgz", - "integrity": "sha512-FE557XdZDrtX8NMIeA8LBJX3dC2M8VGXwfrQWU7LB5SLOajfJIxmSdyL/gU1m64Zs9CBKvm4UAuBp5aJ8OgnrA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.10.tgz", - "integrity": "sha512-3BBSbgzuB9ajLoVZk0mGu+EHlBwkusRmeNYdqmznmMc9zGASFjSsxgkNsqmXugpPk00gJ0JNKh/97nxmjctdew==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.10.tgz", - "integrity": "sha512-QSX81KhFoZGwenVyPoberggdW1nrQZSvfVDAIUXr3WqLRZGZqWk/P4T8p2SP+de2Sr5HPcvjhcJzEiulKgnxtA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.10.tgz", - "integrity": "sha512-AKQM3gfYfSW8XRk8DdMCzaLUFB15dTrZfnX8WXQoOUpUBQ+NaAFCP1kPS/ykbbGYz7rxn0WS48/81l9hFl3u4A==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.10.tgz", - "integrity": "sha512-7RTytDPGU6fek/hWuN9qQpeGPBZFfB4zZgcz2VK2Z5VpdUxEI8JKYsg3JfO0n/Z1E/6l05n0unDCNc4HnhQGig==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.10.tgz", - "integrity": "sha512-5Se0VM9Wtq797YFn+dLimf2Zx6McttsH2olUBsDml+lm0GOCRVebRWUvDtkY4BWYv/3NgzS8b/UM3jQNh5hYyw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.10.tgz", - "integrity": "sha512-XkA4frq1TLj4bEMB+2HnI0+4RnjbuGZfet2gs/LNs5Hc7D89ZQBHQ0gL2ND6Lzu1+QVkjp3x1gIcPKzRNP8bXw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.10.tgz", - "integrity": "sha512-AVTSBhTX8Y/Fz6OmIVBip9tJzZEUcY8WLh7I59+upa5/GPhh2/aM6bvOMQySspnCCHvFi79kMtdJS1w0DXAeag==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.10.tgz", - "integrity": "sha512-fswk3XT0Uf2pGJmOpDB7yknqhVkJQkAQOcW/ccVOtfx05LkbWOaRAtn5SaqXypeKQra1QaEa841PgrSL9ubSPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.10.tgz", - "integrity": "sha512-ah+9b59KDTSfpaCg6VdJoOQvKjI33nTaQr4UluQwW7aEwZQsbMCfTmfEO4VyewOxx4RaDT/xCy9ra2GPWmO7Kw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.10.tgz", - "integrity": "sha512-QHPDbKkrGO8/cz9LKVnJU22HOi4pxZnZhhA2HYHez5Pz4JeffhDjf85E57Oyco163GnzNCVkZK0b/n4Y0UHcSw==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.10.tgz", - "integrity": "sha512-9KpxSVFCu0iK1owoez6aC/s/EdUQLDN3adTxGCqxMVhrPDj6bt5dbrHDXUuq+Bs2vATFBBrQS5vdQ/Ed2P+nbw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/ansi": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.0.tgz", - "integrity": "sha512-JWaTfCxI1eTmJ1BIv86vUfjVatOdxwD0DAVKYevY8SazeUUZtW+tNbsdejVO1GYE0GXJW1N1ahmiC3TFd+7wZA==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/checkbox": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.2.4.tgz", - "integrity": "sha512-2n9Vgf4HSciFq8ttKXk+qy+GsyTXPV1An6QAwe/8bkbbqvG4VW1I/ZY1pNu2rf+h9bdzMLPbRSfcNxkHBy/Ydw==", - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^1.0.0", - "@inquirer/core": "^10.2.2", - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/confirm": { - "version": "5.1.18", - "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.18.tgz", - "integrity": "sha512-MilmWOzHa3Ks11tzvuAmFoAd/wRuaP3SwlT1IZhyMke31FKLxPiuDWcGXhU+PKveNOpAc4axzAgrgxuIJJRmLw==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.2", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/core": { - "version": "10.2.2", - "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.2.2.tgz", - "integrity": "sha512-yXq/4QUnk4sHMtmbd7irwiepjB8jXU0kkFRL4nr/aDBA2mDz13cMakEWdDwX3eSCTkk03kwcndD1zfRAIlELxA==", - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^1.0.0", - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "cli-width": "^4.1.0", - "mute-stream": "^2.0.0", - "signal-exit": "^4.1.0", - "wrap-ansi": "^6.2.0", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/editor": { - "version": "4.2.20", - "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.20.tgz", - "integrity": "sha512-7omh5y5bK672Q+Brk4HBbnHNowOZwrb/78IFXdrEB9PfdxL3GudQyDk8O9vQ188wj3xrEebS2M9n18BjJoI83g==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.2", - "@inquirer/external-editor": "^1.0.2", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/expand": { - "version": "4.0.20", - "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.20.tgz", - "integrity": "sha512-Dt9S+6qUg94fEvgn54F2Syf0Z3U8xmnBI9ATq2f5h9xt09fs2IJXSCIXyyVHwvggKWFXEY/7jATRo2K6Dkn6Ow==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.2", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/external-editor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz", - "integrity": "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==", - "license": "MIT", - "dependencies": { - "chardet": "^2.1.0", - "iconv-lite": "^0.7.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/@inquirer/figures": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.13.tgz", - "integrity": "sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/@inquirer/input": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.2.4.tgz", - "integrity": "sha512-cwSGpLBMwpwcZZsc6s1gThm0J+it/KIJ+1qFL2euLmSKUMGumJ5TcbMgxEjMjNHRGadouIYbiIgruKoDZk7klw==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.2", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/number": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.20.tgz", - "integrity": "sha512-bbooay64VD1Z6uMfNehED2A2YOPHSJnQLs9/4WNiV/EK+vXczf/R988itL2XLDGTgmhMF2KkiWZo+iEZmc4jqg==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.2", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/password": { - "version": "4.0.20", - "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.20.tgz", - "integrity": "sha512-nxSaPV2cPvvoOmRygQR+h0B+Av73B01cqYLcr7NXcGXhbmsYfUb8fDdw2Us1bI2YsX+VvY7I7upgFYsyf8+Nug==", - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^1.0.0", - "@inquirer/core": "^10.2.2", - "@inquirer/type": "^3.0.8" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/prompts": { - "version": "7.8.6", - "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.8.6.tgz", - "integrity": "sha512-68JhkiojicX9SBUD8FE/pSKbOKtwoyaVj1kwqLfvjlVXZvOy3iaSWX4dCLsZyYx/5Ur07Fq+yuDNOen+5ce6ig==", - "license": "MIT", - "dependencies": { - "@inquirer/checkbox": "^4.2.4", - "@inquirer/confirm": "^5.1.18", - "@inquirer/editor": "^4.2.20", - "@inquirer/expand": "^4.0.20", - "@inquirer/input": "^4.2.4", - "@inquirer/number": "^3.0.20", - "@inquirer/password": "^4.0.20", - "@inquirer/rawlist": "^4.1.8", - "@inquirer/search": "^3.1.3", - "@inquirer/select": "^4.3.4" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/rawlist": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.8.tgz", - "integrity": "sha512-CQ2VkIASbgI2PxdzlkeeieLRmniaUU1Aoi5ggEdm6BIyqopE9GuDXdDOj9XiwOqK5qm72oI2i6J+Gnjaa26ejg==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.2", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/search": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.1.3.tgz", - "integrity": "sha512-D5T6ioybJJH0IiSUK/JXcoRrrm8sXwzrVMjibuPs+AgxmogKslaafy1oxFiorNI4s3ElSkeQZbhYQgLqiL8h6Q==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.2.2", - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/select": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.3.4.tgz", - "integrity": "sha512-Qp20nySRmfbuJBBsgPU7E/cL62Hf250vMZRzYDcBHty2zdD1kKCnoDFWRr0WO2ZzaXp3R7a4esaVGJUx0E6zvA==", - "license": "MIT", - "dependencies": { - "@inquirer/ansi": "^1.0.0", - "@inquirer/core": "^10.2.2", - "@inquirer/figures": "^1.0.13", - "@inquirer/type": "^3.0.8", - "yoctocolors-cjs": "^2.1.2" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@inquirer/type": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.8.tgz", - "integrity": "sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/@pipelab/core": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/@pipelab/core/-/core-1.4.9.tgz", - "integrity": "sha512-eHz2UNZrDeaTUHS5BL4Mc6c2yBWt7N7xQ2hT0gu2UnAHsWO2QL/j2SVyyaYwGY9m6Ht6jXPXBwD0cngVWVy5vQ==", - "license": "LICENSE.md" - }, - "node_modules/@puppeteer/browsers": { - "version": "2.10.10", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.10.tgz", - "integrity": "sha512-3ZG500+ZeLql8rE0hjfhkycJjDj0pI/btEh3L9IkWUYcOrgP0xCNRq3HbtbqOPbvDhFaAWD88pDFtlLv8ns8gA==", - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.2", - "tar-fs": "^3.1.0", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@puppeteer/browsers/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@sindresorhus/is": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", - "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", - "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", - "dev": true, - "license": "MIT", - "dependencies": { - "defer-to-connect": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@tootallnate/quickjs-emscripten": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz", - "integrity": "sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==", - "license": "MIT" - }, - "node_modules/@types/cacheable-request": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", - "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/http-cache-semantics": "*", - "@types/keyv": "^3.1.4", - "@types/node": "*", - "@types/responselike": "^1.0.0" - } - }, - "node_modules/@types/http-cache-semantics": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", - "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/keyv": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", - "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "24.1.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-24.1.0.tgz", - "integrity": "sha512-ut5FthK5moxFKH2T1CUOC6ctR67rQRvvHdFLCD2Ql6KXmMuCrjsSsRI9UsLCm9M18BMwClv4pn327UvB7eeO1w==", - "license": "MIT", - "dependencies": { - "undici-types": "~7.8.0" - } - }, - "node_modules/@types/prompts": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/@types/prompts/-/prompts-2.4.9.tgz", - "integrity": "sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==", - "license": "MIT", - "dependencies": { - "@types/node": "*", - "kleur": "^3.0.3" - } - }, - "node_modules/@types/responselike": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", - "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/yauzl": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", - "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "license": "MIT", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/adm-zip": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.16.tgz", - "integrity": "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ==", - "license": "MIT", - "engines": { - "node": ">=12.0" - } - }, - "node_modules/agent-base": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", - "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.21.3" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "license": "Python-2.0" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "license": "MIT" - }, - "node_modules/ast-types": { - "version": "0.13.4", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz", - "integrity": "sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==", - "license": "MIT", - "dependencies": { - "tslib": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/b4a": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.3.tgz", - "integrity": "sha512-5Q2mfq2WfGuFp3uS//0s6baOJLMoVduPYVeNmDYxu5OUA1/cBfvr2RIS7vi62LdNj/urk1hfmj867I3qt6uZ7Q==", - "license": "Apache-2.0", - "peerDependencies": { - "react-native-b4a": "*" - }, - "peerDependenciesMeta": { - "react-native-b4a": { - "optional": true - } - } - }, - "node_modules/bare-events": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.7.0.tgz", - "integrity": "sha512-b3N5eTW1g7vXkw+0CXh/HazGTcO5KYuu/RCNaJbDMPI6LHDi+7qe8EmxKUVe1sUbY2KZOVZFyj62x0OEz9qyAA==", - "license": "Apache-2.0" - }, - "node_modules/bare-fs": { - "version": "4.4.7", - "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.4.7.tgz", - "integrity": "sha512-huJQxUWc2d1T+6dxnC/FoYpBgEHzJp33mYZqFtQqTTPPyP9xPvmjC16VpR4wTte4ZKd5VxkFAcfDYi51iwWMcg==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-events": "^2.5.4", - "bare-path": "^3.0.0", - "bare-stream": "^2.6.4", - "bare-url": "^2.2.2", - "fast-fifo": "^1.3.2" - }, - "engines": { - "bare": ">=1.16.0" - }, - "peerDependencies": { - "bare-buffer": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - } - } - }, - "node_modules/bare-os": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.2.tgz", - "integrity": "sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==", - "license": "Apache-2.0", - "optional": true, - "engines": { - "bare": ">=1.14.0" - } - }, - "node_modules/bare-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz", - "integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-os": "^3.0.1" - } - }, - "node_modules/bare-stream": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.7.0.tgz", - "integrity": "sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "streamx": "^2.21.0" - }, - "peerDependencies": { - "bare-buffer": "*", - "bare-events": "*" - }, - "peerDependenciesMeta": { - "bare-buffer": { - "optional": true - }, - "bare-events": { - "optional": true - } - } - }, - "node_modules/bare-url": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/bare-url/-/bare-url-2.2.2.tgz", - "integrity": "sha512-g+ueNGKkrjMazDG3elZO1pNs3HY5+mMmOet1jtKyhOaCnkLzitxf26z7hoAEkDNgdNmnc1KIlt/dw6Po6xZMpA==", - "license": "Apache-2.0", - "optional": true, - "dependencies": { - "bare-path": "^3.0.0" - } - }, - "node_modules/basic-ftp": { - "version": "5.0.5", - "resolved": "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.0.5.tgz", - "integrity": "sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/c3addon": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/c3addon/-/c3addon-1.0.9.tgz", - "integrity": "sha512-XX002G0LJ/LeH7F7z8vNLZDzQT3XUgQEjo0rxuVjkCSMWUbPdhH5fsKdswb0flTFM69Ki48gnkoVqiu7XA0Hcg==", - "license": "MIT", - "dependencies": { - "@types/prompts": "^2.4.9", - "commander": "^13.1.0", - "prompts": "^2.4.2", - "puppeteer": "^24.1.1", - "zip-lib": "^1.0.5" - }, - "bin": { - "c3addon": "dist/cli.cjs" - } - }, - "node_modules/c3ide2-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/c3ide2-types/-/c3ide2-types-1.0.1.tgz", - "integrity": "sha512-YfFo9yIauDGJwVCw4OeD3z/M8dauc9F/elmh0MMw1q5/la74sgt8PhAITJVN8joee39Xm3MPq+IfXwoRi1Ld2A==", - "dev": true, - "license": "ISC" - }, - "node_modules/cacheable-lookup": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", - "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.6.0" - } - }, - "node_modules/cacheable-request": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", - "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", - "dev": true, - "license": "MIT", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^4.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^6.0.1", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind-apply-helpers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/call-bound": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "get-intrinsic": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chardet": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", - "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", - "license": "MIT" - }, - "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", - "license": "MIT", - "dependencies": { - "readdirp": "^4.0.1" - }, - "engines": { - "node": ">= 14.16.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/chromium-bidi": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-9.1.0.tgz", - "integrity": "sha512-rlUzQ4WzIAWdIbY/viPShhZU2n21CxDUgazXVbw4Hu1MwaeUSEksSeM6DqPgpRjCLXRk702AVRxJxoOz0dw4OA==", - "license": "Apache-2.0", - "dependencies": { - "mitt": "^3.0.1", - "zod": "^3.24.1" - }, - "peerDependencies": { - "devtools-protocol": "*" - } - }, - "node_modules/cli-width": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", - "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", - "license": "ISC", - "engines": { - "node": ">= 12" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "license": "MIT" - }, - "node_modules/commander": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-13.1.0.tgz", - "integrity": "sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==", - "license": "MIT", - "engines": { - "node": ">=18" - } - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "license": "MIT", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "license": "MIT" - }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "license": "MIT", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/cosmiconfig": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", - "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", - "license": "MIT", - "dependencies": { - "env-paths": "^2.2.1", - "import-fresh": "^3.3.0", - "js-yaml": "^4.1.0", - "parse-json": "^5.2.0" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/d-fischer" - }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/data-uri-to-buffer": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz", - "integrity": "sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==", - "license": "MIT", - "engines": { - "node": ">= 14" - } - }, - "node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", - "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "mimic-response": "^3.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decompress-response/node_modules/mimic-response": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", - "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/defer-to-connect": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", - "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/degenerator": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz", - "integrity": "sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==", - "license": "MIT", - "dependencies": { - "ast-types": "^0.13.4", - "escodegen": "^2.1.0", - "esprima": "^4.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "license": "MIT", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/devtools-protocol": { - "version": "0.0.1508733", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1508733.tgz", - "integrity": "sha512-QJ1R5gtck6nDcdM+nlsaJXcelPEI7ZxSMw1ujHpO1c4+9l+Nue5qlebi9xO1Z2MGr92bFOQTW7/rrheh5hHxDg==", - "license": "BSD-3-Clause" - }, - "node_modules/dunder-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.1", - "es-errors": "^1.3.0", - "gopd": "^1.2.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "license": "MIT" - }, - "node_modules/electron": { - "version": "35.0.3", - "resolved": "https://registry.npmjs.org/electron/-/electron-35.0.3.tgz", - "integrity": "sha512-kjQAYEWXSr2TyK19IZoF85dzFIBaYuX7Yp/C+34b5Y/jmI2z270CGie+RjmEGMMitsy0G8YJKftukhYMuWlK6g==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "@electron/get": "^2.0.0", - "@types/node": "^22.7.7", - "extract-zip": "^2.0.1" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 12.20.55" - } - }, - "node_modules/electron/node_modules/@types/node": { - "version": "22.18.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.8.tgz", - "integrity": "sha512-pAZSHMiagDR7cARo/cch1f3rXy0AEXwsVsVH09FcyeJVAzCnGgmYis7P3JidtTUjyadhTeSo8TgRPswstghDaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "undici-types": "~6.21.0" - } - }, - "node_modules/electron/node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "license": "MIT" - }, - "node_modules/encodeurl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", - "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", - "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", - "license": "MIT", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/error-ex": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", - "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", - "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-define-property": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/esbuild": { - "version": "0.25.10", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.10.tgz", - "integrity": "sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.10", - "@esbuild/android-arm": "0.25.10", - "@esbuild/android-arm64": "0.25.10", - "@esbuild/android-x64": "0.25.10", - "@esbuild/darwin-arm64": "0.25.10", - "@esbuild/darwin-x64": "0.25.10", - "@esbuild/freebsd-arm64": "0.25.10", - "@esbuild/freebsd-x64": "0.25.10", - "@esbuild/linux-arm": "0.25.10", - "@esbuild/linux-arm64": "0.25.10", - "@esbuild/linux-ia32": "0.25.10", - "@esbuild/linux-loong64": "0.25.10", - "@esbuild/linux-mips64el": "0.25.10", - "@esbuild/linux-ppc64": "0.25.10", - "@esbuild/linux-riscv64": "0.25.10", - "@esbuild/linux-s390x": "0.25.10", - "@esbuild/linux-x64": "0.25.10", - "@esbuild/netbsd-arm64": "0.25.10", - "@esbuild/netbsd-x64": "0.25.10", - "@esbuild/openbsd-arm64": "0.25.10", - "@esbuild/openbsd-x64": "0.25.10", - "@esbuild/openharmony-arm64": "0.25.10", - "@esbuild/sunos-x64": "0.25.10", - "@esbuild/win32-arm64": "0.25.10", - "@esbuild/win32-ia32": "0.25.10", - "@esbuild/win32-x64": "0.25.10" - } - }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "license": "MIT" - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/escodegen": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", - "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "license": "BSD-2-Clause", - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" - }, - "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "license": "BSD-2-Clause", - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/events-universal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz", - "integrity": "sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw==", - "license": "Apache-2.0", - "dependencies": { - "bare-events": "^2.7.0" - } - }, - "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", - "license": "MIT", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.3", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", - "proxy-addr": "~2.0.7", - "qs": "6.13.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "license": "BSD-2-Clause", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fast-fifo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", - "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", - "license": "MIT" - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "license": "MIT", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "license": "ISC", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.2", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.1.1", - "function-bind": "^1.1.2", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "math-intrinsics": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-uri": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz", - "integrity": "sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==", - "license": "MIT", - "dependencies": { - "basic-ftp": "^5.0.2", - "data-uri-to-buffer": "^6.0.2", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/global-agent/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "optional": true, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/gopd": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "11.8.6", - "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", - "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sindresorhus/is": "^4.0.0", - "@szmarczak/http-timer": "^4.0.5", - "@types/cacheable-request": "^6.0.1", - "@types/responselike": "^1.0.0", - "cacheable-lookup": "^5.0.3", - "cacheable-request": "^7.0.2", - "decompress-response": "^6.0.0", - "http2-wrapper": "^1.0.0-beta.5.2", - "lowercase-keys": "^2.0.0", - "p-cancelable": "^2.0.0", - "responselike": "^2.0.0" - }, - "engines": { - "node": ">=10.19.0" - }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "license": "MIT", - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz", - "integrity": "sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==", - "dev": true, - "license": "BSD-2-Clause" - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "license": "MIT", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/http2-wrapper": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", - "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "quick-lru": "^5.1.1", - "resolve-alpn": "^1.0.0" - }, - "engines": { - "node": ">=10.19.0" - } - }, - "node_modules/https-proxy-agent": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", - "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "license": "ISC" - }, - "node_modules/inquirer": { - "version": "12.4.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-12.4.2.tgz", - "integrity": "sha512-reyjHcwyK2LObXgTJH4T1Dpfhwu88LNPTZmg/KenmTsy3T8lN/kZT8Oo7UwwkB9q8+ss2qjjN7GV8oFAfyz9Xg==", - "license": "MIT", - "dependencies": { - "@inquirer/core": "^10.1.7", - "@inquirer/prompts": "^7.3.2", - "@inquirer/type": "^3.0.4", - "ansi-escapes": "^4.3.2", - "mute-stream": "^2.0.0", - "run-async": "^3.0.0", - "rxjs": "^7.8.1" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "@types/node": ">=18" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - } - } - }, - "node_modules/ip-address": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.0.1.tgz", - "integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==", - "license": "MIT", - "engines": { - "node": ">= 12" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "license": "MIT", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "license": "MIT" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "license": "MIT" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "license": "MIT" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "dev": true, - "license": "ISC", - "optional": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "license": "MIT", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/lefthook": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook/-/lefthook-1.11.3.tgz", - "integrity": "sha512-HJp37y62j3j8qzAOODWuUJl4ysLwsDvCTBV6odr3jIRHR/a5e+tI14VQGIBcpK9ysqC3pGWyW5Rp9Jv1YDubyw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "lefthook": "bin/index.js" - }, - "optionalDependencies": { - "lefthook-darwin-arm64": "1.11.3", - "lefthook-darwin-x64": "1.11.3", - "lefthook-freebsd-arm64": "1.11.3", - "lefthook-freebsd-x64": "1.11.3", - "lefthook-linux-arm64": "1.11.3", - "lefthook-linux-x64": "1.11.3", - "lefthook-openbsd-arm64": "1.11.3", - "lefthook-openbsd-x64": "1.11.3", - "lefthook-windows-arm64": "1.11.3", - "lefthook-windows-x64": "1.11.3" - } - }, - "node_modules/lefthook-darwin-arm64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-darwin-arm64/-/lefthook-darwin-arm64-1.11.3.tgz", - "integrity": "sha512-IYzAOf8Qwqk7q+LoRyy7kSk9vzpUZ5wb/vLzEAH/F86Vay9AUaWe1f2pzeLwFg18qEc1QNklT69h9p/uLQMojA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/lefthook-darwin-x64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-darwin-x64/-/lefthook-darwin-x64-1.11.3.tgz", - "integrity": "sha512-z/Wp7UMjE1Vyl+x9sjN3NvN6qKdwgHl+cDf98MKKDg/WyPE5XnzqLm9rLLJgImjyClfH7ptTfZxEyhTG3M3XvQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/lefthook-freebsd-arm64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-arm64/-/lefthook-freebsd-arm64-1.11.3.tgz", - "integrity": "sha512-QevwQ7lrv5wBCkk7LLTzT5KR3Bk/5nttSxT1UH2o0EsgirS/c2K5xSgQmV6m3CiZYuCe2Pja4BSIwN3zt17SMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/lefthook-freebsd-x64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-freebsd-x64/-/lefthook-freebsd-x64-1.11.3.tgz", - "integrity": "sha512-PYbcyNgdJJ4J2pEO9Ss4oYo5yq4vmQGTKm3RTYbRx4viSWR65hvKCP0C4LnIqspMvmR05SJi2bqe7UBP2t60EA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/lefthook-linux-arm64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-linux-arm64/-/lefthook-linux-arm64-1.11.3.tgz", - "integrity": "sha512-0pBMBAoafOAEg345eOPozsmRjWR0zCr6k+m5ZxwRBZbZx1bQFDqBakQ3TpFCphhcykmgFyaa1KeZJZUOrEsezA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/lefthook-linux-x64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-linux-x64/-/lefthook-linux-x64-1.11.3.tgz", - "integrity": "sha512-eiezheZ/bisBCMB2Ur0mctug/RDFyu39B5wzoE8y4z0W1yw6jHGrWMJ4Y8+5qKZ7fmdZg+7YPuMHZ2eFxOnhQA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/lefthook-openbsd-arm64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-arm64/-/lefthook-openbsd-arm64-1.11.3.tgz", - "integrity": "sha512-DRLTzXdtCj/TizpLcGSqXcnrqvgxeXgn/6nqzclIGqNdKCsNXDzpI0D3sP13Vwwmyoqv2etoTak2IHqZiXZDqg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/lefthook-openbsd-x64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-openbsd-x64/-/lefthook-openbsd-x64-1.11.3.tgz", - "integrity": "sha512-l7om+ZjWpYrVZyDuElwnucZhEqa7YfwlRaKBenkBxEh2zMje8O6Zodeuma1KmyDbSFvnvEjARo/Ejiot4gLXEw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ] - }, - "node_modules/lefthook-windows-arm64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-windows-arm64/-/lefthook-windows-arm64-1.11.3.tgz", - "integrity": "sha512-X0iTrql2gfPAkU2dzRwuHWgW5RcqCPbzJtKQ41X6Y/F7iQacRknmuYUGyC81funSvzGAsvlusMVLUvaFjIKnbA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/lefthook-windows-x64": { - "version": "1.11.3", - "resolved": "https://registry.npmjs.org/lefthook-windows-x64/-/lefthook-windows-x64-1.11.3.tgz", - "integrity": "sha512-F+ORMn6YJXoS0EXU5LtN1FgV4QX9rC9LucZEkRmK6sKmS7hcb9IHpyb7siRGytArYzJvXVjPbxPBNSBdN4egZQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "license": "MIT" - }, - "node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/math-intrinsics": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", - "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "license": "MIT", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", - "license": "MIT" - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "license": "MIT" - }, - "node_modules/mute-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", - "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", - "license": "ISC", - "engines": { - "node": "^18.17.0 || >=20.5.0" - } - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/netmask": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", - "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "license": "MIT", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "license": "ISC", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", - "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/pac-proxy-agent": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz", - "integrity": "sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==", - "license": "MIT", - "dependencies": { - "@tootallnate/quickjs-emscripten": "^0.23.0", - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "get-uri": "^6.0.1", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.6", - "pac-resolver": "^7.0.1", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/pac-resolver": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz", - "integrity": "sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==", - "license": "MIT", - "dependencies": { - "degenerator": "^5.0.0", - "netmask": "^2.0.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", - "license": "MIT" - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "license": "ISC" - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "license": "MIT", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "license": "MIT", - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "license": "MIT", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/proxy-agent": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz", - "integrity": "sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.1", - "https-proxy-agent": "^7.0.6", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.1.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.5" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, - "node_modules/pump": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", - "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/puppeteer": { - "version": "24.23.0", - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.23.0.tgz", - "integrity": "sha512-BVR1Lg8sJGKXY79JARdIssFWK2F6e1j+RyuJP66w4CUmpaXjENicmA3nNpUXA8lcTdDjAndtP+oNdni3T/qQqA==", - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.10.10", - "chromium-bidi": "9.1.0", - "cosmiconfig": "^9.0.0", - "devtools-protocol": "0.0.1508733", - "puppeteer-core": "24.23.0", - "typed-query-selector": "^2.12.0" - }, - "bin": { - "puppeteer": "lib/cjs/puppeteer/node/cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/puppeteer-core": { - "version": "24.23.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.23.0.tgz", - "integrity": "sha512-yl25C59gb14sOdIiSnJ08XiPP+O2RjuyZmEG+RjYmCXO7au0jcLf7fRiyii96dXGUBW7Zwei/mVKfxMx/POeFw==", - "license": "Apache-2.0", - "dependencies": { - "@puppeteer/browsers": "2.10.10", - "chromium-bidi": "9.1.0", - "debug": "^4.4.3", - "devtools-protocol": "0.0.1508733", - "typed-query-selector": "^2.12.0", - "webdriver-bidi-protocol": "0.3.6", - "ws": "^8.18.3" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "license": "BSD-3-Clause", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/quick-lru": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", - "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "license": "MIT", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", - "license": "MIT", - "engines": { - "node": ">= 14.18.0" - }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-alpn": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", - "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "dev": true, - "license": "MIT" - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/responselike": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", - "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "lowercase-keys": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/run-async": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-3.0.0.tgz", - "integrity": "sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==", - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/rxjs": { - "version": "7.8.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", - "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", - "license": "Apache-2.0", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true, - "license": "MIT", - "optional": true - }, - "node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", - "license": "MIT", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "license": "MIT", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "license": "MIT" - }, - "node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serialize-error/node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/serve-static": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", - "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", - "license": "MIT", - "dependencies": { - "encodeurl": "~2.0.0", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.19.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "license": "ISC" - }, - "node_modules/side-channel": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3", - "side-channel-list": "^1.0.0", - "side-channel-map": "^1.0.1", - "side-channel-weakmap": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/side-channel-weakmap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.5", - "object-inspect": "^1.13.3", - "side-channel-map": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "license": "MIT" - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "license": "MIT", - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.7", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz", - "integrity": "sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==", - "license": "MIT", - "dependencies": { - "ip-address": "^10.0.1", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "8.0.5", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz", - "integrity": "sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==", - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.2", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "license": "BSD-3-Clause", - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause", - "optional": true - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/steamworks.js": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/steamworks.js/-/steamworks.js-0.4.0.tgz", - "integrity": "sha512-O5TTRs7ucCRql4IA/kYUIQYeghTsXqf3rAm81sC22RDId264LQYqQjuaMEUSqL60I5LdULiGu0W2/A+ZDcKBKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/streamx": { - "version": "2.23.0", - "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz", - "integrity": "sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg==", - "license": "MIT", - "dependencies": { - "events-universal": "^1.0.0", - "fast-fifo": "^1.3.2", - "text-decoder": "^1.1.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.1.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/tar-fs": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz", - "integrity": "sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg==", - "license": "MIT", - "dependencies": { - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - }, - "optionalDependencies": { - "bare-fs": "^4.0.1", - "bare-path": "^3.0.0" - } - }, - "node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "license": "MIT", - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/text-decoder": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.3.tgz", - "integrity": "sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==", - "license": "Apache-2.0", - "dependencies": { - "b4a": "^1.6.4" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD" - }, - "node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "license": "MIT", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typed-query-selector": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.12.0.tgz", - "integrity": "sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==", - "license": "MIT" - }, - "node_modules/typescript": { - "version": "5.8.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.2.tgz", - "integrity": "sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==", - "devOptional": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "7.8.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz", - "integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==", - "license": "MIT" - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "license": "MIT", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "license": "MIT", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/webdriver-bidi-protocol": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/webdriver-bidi-protocol/-/webdriver-bidi-protocol-0.3.6.tgz", - "integrity": "sha512-mlGndEOA9yK9YAbvtxaPTqdi/kaCWYYfwrZvGzcmkr/3lWM+tQj53BxtpVd6qbC6+E5OnHXgCcAhre6AkXzxjA==", - "license": "Apache-2.0" - }, - "node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "license": "ISC" - }, - "node_modules/ws": { - "version": "8.18.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", - "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "license": "MIT", - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "license": "ISC", - "engines": { - "node": ">=12" - } - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - }, - "node_modules/yazl": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/yazl/-/yazl-3.3.1.tgz", - "integrity": "sha512-BbETDVWG+VcMUle37k5Fqp//7SDOK2/1+T7X8TD96M3D9G8jK5VLUdQVdVjGi8im7FGkazX7kk5hkU8X4L5Bng==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "^1.0.0" - } - }, - "node_modules/yazl/node_modules/buffer-crc32": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-1.0.0.tgz", - "integrity": "sha512-Db1SbgBS/fg/392AblrMJk97KggmvYhr4pB5ZIMTWtaivCPMWLkmb7m21cJvpvgK+J3nsU2CmmixNBZx4vFj/w==", - "license": "MIT", - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/yoctocolors-cjs": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", - "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zip-lib": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/zip-lib/-/zip-lib-1.1.2.tgz", - "integrity": "sha512-PdPYnjxRcbQ7UAhj6Cu8rggpHXFU/6Slhoy2vuA5E/52+i6aSr+9rWup6ll/Mr0mAxV9/YkRni9xGzVc/qh4rA==", - "license": "MIT", - "dependencies": { - "yauzl": "^3.2.0", - "yazl": "^3.3.1" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/zip-lib/node_modules/yauzl": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-3.2.0.tgz", - "integrity": "sha512-Ow9nuGZE+qp1u4JIPvg+uCiUr7xGQWdff7JQSk5VGYTAZMDe2q8lxJ10ygv10qmSj031Ty/6FNJpLO4o1Sgc+w==", - "license": "MIT", - "dependencies": { - "buffer-crc32": "~0.2.3", - "pend": "~1.2.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/zod": { - "version": "3.25.76", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz", - "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==", - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - } - } -} diff --git a/package.json b/package.json index 54ca1db..38ee4bb 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "name": "@pipelab/construct-plugin", "description": "Pipelab construct plugin", - "version": "2.4.0", + "version": "2.3.0", "packageManager": "pnpm@9.10.0", "type": "module", "scripts": {