mirror of
https://github.com/pyscript/pyscript.git
synced 2025-12-20 02:37:41 -05:00
Compare commits
4 Commits
danyeaw-ad
...
event-refi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00f6cfbd28 | ||
|
|
b911ea99fb | ||
|
|
46ca9154c4 | ||
|
|
afd7a8eb00 |
4
Makefile
4
Makefile
@@ -41,8 +41,8 @@ check-python:
|
|||||||
# Check the environment, install the dependencies.
|
# Check the environment, install the dependencies.
|
||||||
setup: check-node check-npm check-python
|
setup: check-node check-npm check-python
|
||||||
cd core && npm ci && cd ..
|
cd core && npm ci && cd ..
|
||||||
ifeq ($(VIRTUAL_ENV),)
|
ifeq (,$(VIRTUAL_ENV)$(CONDA_PREFIX))
|
||||||
echo "\n\n\033[0;31mCannot install Python dependencies. Your virtualenv is not activated.\033[0m"
|
echo "\n\n\033[0;31mCannot install Python dependencies. Your virtualenv or conda env is not activated.\033[0m"
|
||||||
false
|
false
|
||||||
else
|
else
|
||||||
python -m pip install -r requirements.txt
|
python -m pip install -r requirements.txt
|
||||||
|
|||||||
328
core/package-lock.json
generated
328
core/package-lock.json
generated
@@ -13,7 +13,7 @@
|
|||||||
"@webreflection/idb-map": "^0.3.2",
|
"@webreflection/idb-map": "^0.3.2",
|
||||||
"add-promise-listener": "^0.1.3",
|
"add-promise-listener": "^0.1.3",
|
||||||
"basic-devtools": "^0.1.6",
|
"basic-devtools": "^0.1.6",
|
||||||
"polyscript": "^0.16.21",
|
"polyscript": "^0.16.22",
|
||||||
"sabayon": "^0.6.6",
|
"sabayon": "^0.6.6",
|
||||||
"sticky-module": "^0.1.1",
|
"sticky-module": "^0.1.1",
|
||||||
"to-json-callback": "^0.1.1",
|
"to-json-callback": "^0.1.1",
|
||||||
@@ -22,24 +22,24 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@codemirror/commands": "^6.8.0",
|
"@codemirror/commands": "^6.8.0",
|
||||||
"@codemirror/lang-python": "^6.1.7",
|
"@codemirror/lang-python": "^6.1.7",
|
||||||
"@codemirror/language": "^6.10.8",
|
"@codemirror/language": "^6.11.0",
|
||||||
"@codemirror/state": "^6.5.2",
|
"@codemirror/state": "^6.5.2",
|
||||||
"@codemirror/view": "^6.36.4",
|
"@codemirror/view": "^6.36.4",
|
||||||
"@playwright/test": "^1.51.0",
|
"@playwright/test": "^1.51.1",
|
||||||
"@rollup/plugin-commonjs": "^28.0.3",
|
"@rollup/plugin-commonjs": "^28.0.3",
|
||||||
"@rollup/plugin-node-resolve": "^16.0.0",
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
||||||
"@rollup/plugin-terser": "^0.4.4",
|
"@rollup/plugin-terser": "^0.4.4",
|
||||||
"@webreflection/toml-j0.4": "^1.1.3",
|
"@webreflection/toml-j0.4": "^1.1.3",
|
||||||
"@xterm/addon-fit": "^0.10.0",
|
"@xterm/addon-fit": "^0.10.0",
|
||||||
"@xterm/addon-web-links": "^0.11.0",
|
"@xterm/addon-web-links": "^0.11.0",
|
||||||
"@xterm/xterm": "^5.5.0",
|
"@xterm/xterm": "^5.5.0",
|
||||||
"bun": "^1.2.4",
|
"bun": "^1.2.5",
|
||||||
"chokidar": "^4.0.3",
|
"chokidar": "^4.0.3",
|
||||||
"codedent": "^0.1.2",
|
"codedent": "^0.1.2",
|
||||||
"codemirror": "^6.0.1",
|
"codemirror": "^6.0.1",
|
||||||
"eslint": "^9.22.0",
|
"eslint": "^9.22.0",
|
||||||
"flatted": "^3.3.3",
|
"flatted": "^3.3.3",
|
||||||
"rollup": "^4.35.0",
|
"rollup": "^4.36.0",
|
||||||
"rollup-plugin-postcss": "^4.0.2",
|
"rollup-plugin-postcss": "^4.0.2",
|
||||||
"rollup-plugin-string": "^3.0.0",
|
"rollup-plugin-string": "^3.0.0",
|
||||||
"static-handler": "^0.5.3",
|
"static-handler": "^0.5.3",
|
||||||
@@ -92,9 +92,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@codemirror/language": {
|
"node_modules/@codemirror/language": {
|
||||||
"version": "6.10.8",
|
"version": "6.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.8.tgz",
|
"resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.11.0.tgz",
|
||||||
"integrity": "sha512-wcP8XPPhDH2vTqf181U8MbZnW+tDyPYy0UzVOa+oHORjyT+mhhom9vBd7dApJwoDz9Nb/a8kHjJIsuA/t8vNFw==",
|
"integrity": "sha512-A7+f++LodNNc1wGgoRDTt78cOwWm9KVezApgjOMp1W4hM0898nsqBXwF+sbePE7ZRcjN7Sa1Z5m2oN27XkmEjQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -153,9 +153,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@eslint-community/eslint-utils": {
|
"node_modules/@eslint-community/eslint-utils": {
|
||||||
"version": "4.4.1",
|
"version": "4.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz",
|
||||||
"integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
|
"integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -467,9 +467,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-darwin-aarch64": {
|
"node_modules/@oven/bun-darwin-aarch64": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-aarch64/-/bun-darwin-aarch64-1.2.5.tgz",
|
||||||
"integrity": "sha512-xBz/Q7X6AFwMg7MXtBemjjt5uB+tvEYBmi9Zbm1r8qnI2V8m/Smuhma0EARhiVfLuIAYj2EM5qjzxeAFV4TBJA==",
|
"integrity": "sha512-ggZfdpgUJ/OiWrfcfTgHeSTHcec5HAjkGrZHL9FJ/R60sydRKPYHgAgexdIoJAGfsCVAL+x7y8NSTRIAX8J4Ng==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -481,9 +481,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-darwin-x64": {
|
"node_modules/@oven/bun-darwin-x64": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64/-/bun-darwin-x64-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64/-/bun-darwin-x64-1.2.5.tgz",
|
||||||
"integrity": "sha512-ufyty+2754QCFDhq447H39JiqabMlFRItLn1YFp+2hdpKak7KCYLGOUuHnlr1pmImKJzDHURjnvTTq1QRlUWAA==",
|
"integrity": "sha512-4zqyQLJB33s99KcTxH6yQqH5EYBmF1qofQTtLsToIFbIZN1NqSp/aegYiGmxO5Kj/BuWsy8Wf8MS6vX2O0o2Lw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -495,9 +495,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-darwin-x64-baseline": {
|
"node_modules/@oven/bun-darwin-x64-baseline": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-darwin-x64-baseline/-/bun-darwin-x64-baseline-1.2.5.tgz",
|
||||||
"integrity": "sha512-stsq8vBiYgfGunBGlf2M7ST7Ymyw3WnwrxEeJ04vkKmMEEE2LpX8Rkol6UPRvZawab9s9/scFIRgFi6hu9H4SQ==",
|
"integrity": "sha512-3W1RO3/D6Z1S79J47F/DLzmK+dgkYq5hS1ShOCSBAYTTA2b1ZuymaN8avGzSb9ed5W0QfxtyeAksfEY2xUBOqA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -509,9 +509,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-linux-aarch64": {
|
"node_modules/@oven/bun-linux-aarch64": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64/-/bun-linux-aarch64-1.2.5.tgz",
|
||||||
"integrity": "sha512-OhVpzme2vvLA7w8GYeJg2SQ2h2CwJQN9oYDiGeoML4EwE+DEoYHdxgaBZsQySOwZtFIr8ufpc/8iD4hssJ50qg==",
|
"integrity": "sha512-NQFtAVyQyJhLYrhFVxKdh6cqrDNc60pBnBGLQSO8PU+oyFyiJ3e3gGXjLzMbxd6cJxNIK5FZ0JIq96WljKAhlg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -523,9 +523,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-linux-aarch64-musl": {
|
"node_modules/@oven/bun-linux-aarch64-musl": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64-musl/-/bun-linux-aarch64-musl-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-linux-aarch64-musl/-/bun-linux-aarch64-musl-1.2.5.tgz",
|
||||||
"integrity": "sha512-+lxWF7up9MuB1ZdGxXCH3AH3XmYtdBC6soQ38+yg3+y3iOPrAlSG+wytHEkypN/UU2mGvCuaEED3cMvejrGdDw==",
|
"integrity": "sha512-URlISBOE2HQi8qdru691OYywJRwChxMfXFbk26tCgdZ01LgGAKsIjAYylefuSsPuA697imDN3Pel3D7rveusmw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"aarch64"
|
"aarch64"
|
||||||
],
|
],
|
||||||
@@ -537,9 +537,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-linux-x64": {
|
"node_modules/@oven/bun-linux-x64": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64/-/bun-linux-x64-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64/-/bun-linux-x64-1.2.5.tgz",
|
||||||
"integrity": "sha512-oof3ii92Cz2yIOZRbVFHMHmffCutRPFITIdXLZ2/rkqVuKUe0ZdqWjHPhxJFm31AL9MlJ/dSqDbPb51SaLI7tw==",
|
"integrity": "sha512-pa3kQ4cXNV0jk5aM8+Hdmxr+b4QoPVgeAIA454SN5l3hMGfNsHjczKpsz0ksInZ8506iMMTCPEBXpyQJcSme+Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -551,9 +551,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-linux-x64-baseline": {
|
"node_modules/@oven/bun-linux-x64-baseline": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-baseline/-/bun-linux-x64-baseline-1.2.5.tgz",
|
||||||
"integrity": "sha512-3nmDDZJH73MzhBg2sRYioj4CE8wgaz0w24OieMqj4/c44BbNr3X5RewrldsMD2cU6DtVbi52FuD5WpTw3N8nmw==",
|
"integrity": "sha512-fCm/qp7e3VYlaoRs6NIEsKubPqyxjzLv8/qZkxeLLOlPd7CS8L26UY4KPOSjA+wrhPT+Nxsyvl/EEJq2R/iauA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -565,9 +565,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-linux-x64-musl": {
|
"node_modules/@oven/bun-linux-x64-musl": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl/-/bun-linux-x64-musl-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl/-/bun-linux-x64-musl-1.2.5.tgz",
|
||||||
"integrity": "sha512-cLdMbK7srNoUbYSG3Tp4GYdPAO0+5mgUhdbU053GZs0DLQmQ8h1JQhALp+ZjrUWstmQe7ddcNu7l7EAu6E76XA==",
|
"integrity": "sha512-DuU2kQnY48g9tNWjFrZqyG+U2emCBwlhOPxbuY/TMVVNSTMAcQbE/bb3s2pZdhZH5ssjc5SH/ZyWU1TePcYB2A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -579,9 +579,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-linux-x64-musl-baseline": {
|
"node_modules/@oven/bun-linux-x64-musl-baseline": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl-baseline/-/bun-linux-x64-musl-baseline-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-linux-x64-musl-baseline/-/bun-linux-x64-musl-baseline-1.2.5.tgz",
|
||||||
"integrity": "sha512-qDsUvKCW0WUlVOt6Yx5eEzxgCbvzuSJBsu0sXtr6uGt8TnMKghmliRO5FmiMLQ0k/PUDA8vPJCtuv5k14bDi6g==",
|
"integrity": "sha512-H7tuJz7mZvOTPo4yLbIXIxkiDGWSGd2DbwGl4zNol/FURqGsKQVqpomv86yl9KCXsUUOm5FX2i5Ed+ro8N//Cg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -593,9 +593,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-windows-x64": {
|
"node_modules/@oven/bun-windows-x64": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64/-/bun-windows-x64-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64/-/bun-windows-x64-1.2.5.tgz",
|
||||||
"integrity": "sha512-4YRJd4pdaTWEM+uawYmchOeNv874RGAFpIZQubWnN4SBf6HfcDm0OMMZcm0f0I70Wd5gbPg1+rvCRtDZWVmZog==",
|
"integrity": "sha512-oNDdPmzsCyvCATiYgkKWgxOeEx2F7m/i2MGUba+YJAeVXJsJg9iPJrLVBtETvKoSAgkXViwoUEw2U25jRYsp4g==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -607,9 +607,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@oven/bun-windows-x64-baseline": {
|
"node_modules/@oven/bun-windows-x64-baseline": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/@oven/bun-windows-x64-baseline/-/bun-windows-x64-baseline-1.2.5.tgz",
|
||||||
"integrity": "sha512-j/G4bnfsRAiCvpTADda40m29iSGvueIaF9Kc9hBu4jN8dTS9fEXdNNXuf8c30/z7/npxw2dhzsAn8jbc5QvD1A==",
|
"integrity": "sha512-j5FxI8FeKfWI6rEXA+1O3ASBMTp5CFcZ7MR+/aCpiBKrDse32wLaZMVGnvqQqs4y0YHUvR8b7eXHHTboezjL1w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -621,13 +621,13 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@playwright/test": {
|
"node_modules/@playwright/test": {
|
||||||
"version": "1.51.0",
|
"version": "1.51.1",
|
||||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.51.0.tgz",
|
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.51.1.tgz",
|
||||||
"integrity": "sha512-dJ0dMbZeHhI+wb77+ljx/FeC8VBP6j/rj9OAojO08JI80wTZy6vRk9KvHKiDCUh4iMpEiseMgqRBIeW+eKX6RA==",
|
"integrity": "sha512-nM+kEaTSAoVlXmMPH10017vn3FSiFqr/bh4fKg9vmAdMfd9SDqRZNvPSiAHADc/itWak+qPvMPZQOPwCBW7k7Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"playwright": "1.51.0"
|
"playwright": "1.51.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"playwright": "cli.js"
|
"playwright": "cli.js"
|
||||||
@@ -664,9 +664,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/plugin-node-resolve": {
|
"node_modules/@rollup/plugin-node-resolve": {
|
||||||
"version": "16.0.0",
|
"version": "16.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz",
|
||||||
"integrity": "sha512-0FPvAeVUT/zdWoO0jnb/V5BlBsUSNfkIOtFHzMO4H9MOklrmQFY6FduVHKucNb/aTFxvnGhj4MNj/T1oNdDfNg==",
|
"integrity": "sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -735,9 +735,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz",
|
||||||
"integrity": "sha512-uYQ2WfPaqz5QtVgMxfN6NpLD+no0MYHDBywl7itPYd3K5TjjSghNKmX8ic9S8NU8w81NVhJv/XojcHptRly7qQ==",
|
"integrity": "sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
@@ -749,9 +749,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-android-arm64": {
|
"node_modules/@rollup/rollup-android-arm64": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz",
|
||||||
"integrity": "sha512-FtKddj9XZudurLhdJnBl9fl6BwCJ3ky8riCXjEw3/UIbjmIY58ppWwPEvU3fNu+W7FUsAsB1CdH+7EQE6CXAPA==",
|
"integrity": "sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -763,9 +763,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz",
|
||||||
"integrity": "sha512-Uk+GjOJR6CY844/q6r5DR/6lkPFOw0hjfOIzVx22THJXMxktXG6CbejseJFznU8vHcEBLpiXKY3/6xc+cBm65Q==",
|
"integrity": "sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -777,9 +777,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-darwin-x64": {
|
"node_modules/@rollup/rollup-darwin-x64": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz",
|
||||||
"integrity": "sha512-3IrHjfAS6Vkp+5bISNQnPogRAW5GAV1n+bNCrDwXmfMHbPl5EhTmWtfmwlJxFRUCBZ+tZ/OxDyU08aF6NI/N5Q==",
|
"integrity": "sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -791,9 +791,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-freebsd-arm64": {
|
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz",
|
||||||
"integrity": "sha512-sxjoD/6F9cDLSELuLNnY0fOrM9WA0KrM0vWm57XhrIMf5FGiN8D0l7fn+bpUeBSU7dCgPV2oX4zHAsAXyHFGcQ==",
|
"integrity": "sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -805,9 +805,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-freebsd-x64": {
|
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz",
|
||||||
"integrity": "sha512-2mpHCeRuD1u/2kruUiHSsnjWtHjqVbzhBkNVQ1aVD63CcexKVcQGwJ2g5VphOd84GvxfSvnnlEyBtQCE5hxVVw==",
|
"integrity": "sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -819,9 +819,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz",
|
||||||
"integrity": "sha512-mrA0v3QMy6ZSvEuLs0dMxcO2LnaCONs1Z73GUDBHWbY8tFFocM6yl7YyMu7rz4zS81NDSqhrUuolyZXGi8TEqg==",
|
"integrity": "sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
@@ -833,9 +833,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz",
|
||||||
"integrity": "sha512-DnYhhzcvTAKNexIql8pFajr0PiDGrIsBYPRvCKlA5ixSS3uwo/CWNZxB09jhIapEIg945KOzcYEAGGSmTSpk7A==",
|
"integrity": "sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm"
|
"arm"
|
||||||
],
|
],
|
||||||
@@ -847,9 +847,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz",
|
||||||
"integrity": "sha512-uagpnH2M2g2b5iLsCTZ35CL1FgyuzzJQ8L9VtlJ+FckBXroTwNOaD0z0/UF+k5K3aNQjbm8LIVpxykUOQt1m/A==",
|
"integrity": "sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -861,9 +861,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz",
|
||||||
"integrity": "sha512-XQxVOCd6VJeHQA/7YcqyV0/88N6ysSVzRjJ9I9UA/xXpEsjvAgDTgH3wQYz5bmr7SPtVK2TsP2fQ2N9L4ukoUg==",
|
"integrity": "sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -875,9 +875,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
|
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz",
|
||||||
"integrity": "sha512-5pMT5PzfgwcXEwOaSrqVsz/LvjDZt+vQ8RT/70yhPU06PTuq8WaHhfT1LW+cdD7mW6i/J5/XIkX/1tCAkh1W6g==",
|
"integrity": "sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"loong64"
|
"loong64"
|
||||||
],
|
],
|
||||||
@@ -889,9 +889,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
|
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz",
|
||||||
"integrity": "sha512-c+zkcvbhbXF98f4CtEIP1EBA/lCic5xB0lToneZYvMeKu5Kamq3O8gqrxiYYLzlZH6E3Aq+TSW86E4ay8iD8EA==",
|
"integrity": "sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ppc64"
|
"ppc64"
|
||||||
],
|
],
|
||||||
@@ -903,9 +903,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz",
|
||||||
"integrity": "sha512-s91fuAHdOwH/Tad2tzTtPX7UZyytHIRR6V4+2IGlV0Cej5rkG0R61SX4l4y9sh0JBibMiploZx3oHKPnQBKe4g==",
|
"integrity": "sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"riscv64"
|
"riscv64"
|
||||||
],
|
],
|
||||||
@@ -917,9 +917,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz",
|
||||||
"integrity": "sha512-hQRkPQPLYJZYGP+Hj4fR9dDBMIM7zrzJDWFEMPdTnTy95Ljnv0/4w/ixFw3pTBMEuuEuoqtBINYND4M7ujcuQw==",
|
"integrity": "sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"s390x"
|
"s390x"
|
||||||
],
|
],
|
||||||
@@ -931,9 +931,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz",
|
||||||
"integrity": "sha512-Pim1T8rXOri+0HmV4CdKSGrqcBWX0d1HoPnQ0uw0bdp1aP5SdQVNBy8LjYncvnLgu3fnnCt17xjWGd4cqh8/hA==",
|
"integrity": "sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -945,9 +945,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz",
|
||||||
"integrity": "sha512-QysqXzYiDvQWfUiTm8XmJNO2zm9yC9P/2Gkrwg2dH9cxotQzunBHYr6jk4SujCTqnfGxduOmQcI7c2ryuW8XVg==",
|
"integrity": "sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -959,9 +959,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz",
|
||||||
"integrity": "sha512-OUOlGqPkVJCdJETKOCEf1mw848ZyJ5w50/rZ/3IBQVdLfR5jk/6Sr5m3iO2tdPgwo0x7VcncYuOvMhBWZq8ayg==",
|
"integrity": "sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64"
|
"arm64"
|
||||||
],
|
],
|
||||||
@@ -973,9 +973,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz",
|
||||||
"integrity": "sha512-2/lsgejMrtwQe44glq7AFFHLfJBPafpsTa6JvP2NGef/ifOa4KBoglVf7AKN7EV9o32evBPRqfg96fEHzWo5kw==",
|
"integrity": "sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"ia32"
|
"ia32"
|
||||||
],
|
],
|
||||||
@@ -987,9 +987,9 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz",
|
||||||
"integrity": "sha512-PIQeY5XDkrOysbQblSW7v3l1MDZzkTEzAfTPkj5VAu3FW8fS4ynyLg2sINp0fp3SjZ8xkRYpLqoKcYqAkhU1dw==",
|
"integrity": "sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"x64"
|
"x64"
|
||||||
],
|
],
|
||||||
@@ -1248,9 +1248,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/bun": {
|
"node_modules/bun": {
|
||||||
"version": "1.2.4",
|
"version": "1.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/bun/-/bun-1.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/bun/-/bun-1.2.5.tgz",
|
||||||
"integrity": "sha512-ZY0EZ/UKqheaLeAtMsfJA6jWoWvV9HAtfFaOJSmS3LrNpFKs1Sg5fZLSsczN1h3a+Dtheo4O3p3ZYWrf40kRGw==",
|
"integrity": "sha512-fbQLt+DPiGUrPKdmsHRRT7cQAlfjdxPVFvLZrsUPmKiTdv+pU50ypdx9yRJluknSbyaZchFVV7Lx2KXikXKX2Q==",
|
||||||
"cpu": [
|
"cpu": [
|
||||||
"arm64",
|
"arm64",
|
||||||
"x64",
|
"x64",
|
||||||
@@ -1269,17 +1269,17 @@
|
|||||||
"bunx": "bin/bun.exe"
|
"bunx": "bin/bun.exe"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@oven/bun-darwin-aarch64": "1.2.4",
|
"@oven/bun-darwin-aarch64": "1.2.5",
|
||||||
"@oven/bun-darwin-x64": "1.2.4",
|
"@oven/bun-darwin-x64": "1.2.5",
|
||||||
"@oven/bun-darwin-x64-baseline": "1.2.4",
|
"@oven/bun-darwin-x64-baseline": "1.2.5",
|
||||||
"@oven/bun-linux-aarch64": "1.2.4",
|
"@oven/bun-linux-aarch64": "1.2.5",
|
||||||
"@oven/bun-linux-aarch64-musl": "1.2.4",
|
"@oven/bun-linux-aarch64-musl": "1.2.5",
|
||||||
"@oven/bun-linux-x64": "1.2.4",
|
"@oven/bun-linux-x64": "1.2.5",
|
||||||
"@oven/bun-linux-x64-baseline": "1.2.4",
|
"@oven/bun-linux-x64-baseline": "1.2.5",
|
||||||
"@oven/bun-linux-x64-musl": "1.2.4",
|
"@oven/bun-linux-x64-musl": "1.2.5",
|
||||||
"@oven/bun-linux-x64-musl-baseline": "1.2.4",
|
"@oven/bun-linux-x64-musl-baseline": "1.2.5",
|
||||||
"@oven/bun-windows-x64": "1.2.4",
|
"@oven/bun-windows-x64": "1.2.5",
|
||||||
"@oven/bun-windows-x64-baseline": "1.2.4"
|
"@oven/bun-windows-x64-baseline": "1.2.5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/callsites": {
|
"node_modules/callsites": {
|
||||||
@@ -1306,9 +1306,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001703",
|
"version": "1.0.30001706",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz",
|
||||||
"integrity": "sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==",
|
"integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -1744,9 +1744,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.5.114",
|
"version": "1.5.120",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.114.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.120.tgz",
|
||||||
"integrity": "sha512-DFptFef3iktoKlFQK/afbo274/XNWD00Am0xa7M8FZUepHlHT8PEuiNBoRfFHbH1okqN58AlhbJ4QTkcnXorjA==",
|
"integrity": "sha512-oTUp3gfX1gZI+xfD2djr2rzQdHCwHzPQrrK0CD7WpTdF0nPdQ/INcRVjWgLdCT4a9W3jFObR9DAfsuyFQnI8CQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
@@ -2491,9 +2491,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/nanoid": {
|
"node_modules/nanoid": {
|
||||||
"version": "3.3.9",
|
"version": "3.3.11",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
|
||||||
"integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
|
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
@@ -2720,13 +2720,13 @@
|
|||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/playwright": {
|
"node_modules/playwright": {
|
||||||
"version": "1.51.0",
|
"version": "1.51.1",
|
||||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.0.tgz",
|
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.51.1.tgz",
|
||||||
"integrity": "sha512-442pTfGM0xxfCYxuBa/Pu6B2OqxqqaYq39JS8QDMGThUvIOCd6s0ANDog3uwA0cHavVlnTQzGCN7Id2YekDSXA==",
|
"integrity": "sha512-kkx+MB2KQRkyxjYPc3a0wLZZoDczmppyGJIvQ43l+aZihkaVvmu/21kiyaHeHjiFxjxNNFnUncKmcGIyOojsaw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"playwright-core": "1.51.0"
|
"playwright-core": "1.51.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"playwright": "cli.js"
|
"playwright": "cli.js"
|
||||||
@@ -2739,9 +2739,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/playwright-core": {
|
"node_modules/playwright-core": {
|
||||||
"version": "1.51.0",
|
"version": "1.51.1",
|
||||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.0.tgz",
|
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.51.1.tgz",
|
||||||
"integrity": "sha512-x47yPE3Zwhlil7wlNU/iktF7t2r/URR3VLbH6EknJd/04Qc/PSJ0EY3CMXipmglLG+zyRxW6HNo2EGbKLHPWMg==",
|
"integrity": "sha512-/crRMj8+j/Nq5s8QcvegseuyeZPxpQCZb6HNk3Sos3BlZyAknRjoyJPFWkpNn8v0+P3WiwqFF8P+zQo4eqiNuw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"bin": {
|
"bin": {
|
||||||
@@ -2752,9 +2752,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/polyscript": {
|
"node_modules/polyscript": {
|
||||||
"version": "0.16.21",
|
"version": "0.16.22",
|
||||||
"resolved": "https://registry.npmjs.org/polyscript/-/polyscript-0.16.21.tgz",
|
"resolved": "https://registry.npmjs.org/polyscript/-/polyscript-0.16.22.tgz",
|
||||||
"integrity": "sha512-qvl+yau60BdUKYFTEqwXYclQn4xIi4rM2De2YQnTEoTMlwVcZ0ncRGpnETIKnNiNBXL9aJ5xYhlpWACy5QAt/w==",
|
"integrity": "sha512-qMCi5ehkVwNc+Qq1kVcT413oLS7erh1nwjkTXCUigtFzS6w5kmqVOLj3UVPJBF39q8Xgu0HJStyl+37psBFwyg==",
|
||||||
"license": "APACHE-2.0",
|
"license": "APACHE-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ungap/structured-clone": "^1.3.0",
|
"@ungap/structured-clone": "^1.3.0",
|
||||||
@@ -3487,9 +3487,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
"version": "4.35.0",
|
"version": "4.36.0",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.35.0.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.36.0.tgz",
|
||||||
"integrity": "sha512-kg6oI4g+vc41vePJyO6dHt/yl0Rz3Thv0kJeVQ3D1kS3E5XSuKbPc29G4IpT/Kv1KQwgHVcN+HtyS+HYLNSvQg==",
|
"integrity": "sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -3503,25 +3503,25 @@
|
|||||||
"npm": ">=8.0.0"
|
"npm": ">=8.0.0"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@rollup/rollup-android-arm-eabi": "4.35.0",
|
"@rollup/rollup-android-arm-eabi": "4.36.0",
|
||||||
"@rollup/rollup-android-arm64": "4.35.0",
|
"@rollup/rollup-android-arm64": "4.36.0",
|
||||||
"@rollup/rollup-darwin-arm64": "4.35.0",
|
"@rollup/rollup-darwin-arm64": "4.36.0",
|
||||||
"@rollup/rollup-darwin-x64": "4.35.0",
|
"@rollup/rollup-darwin-x64": "4.36.0",
|
||||||
"@rollup/rollup-freebsd-arm64": "4.35.0",
|
"@rollup/rollup-freebsd-arm64": "4.36.0",
|
||||||
"@rollup/rollup-freebsd-x64": "4.35.0",
|
"@rollup/rollup-freebsd-x64": "4.36.0",
|
||||||
"@rollup/rollup-linux-arm-gnueabihf": "4.35.0",
|
"@rollup/rollup-linux-arm-gnueabihf": "4.36.0",
|
||||||
"@rollup/rollup-linux-arm-musleabihf": "4.35.0",
|
"@rollup/rollup-linux-arm-musleabihf": "4.36.0",
|
||||||
"@rollup/rollup-linux-arm64-gnu": "4.35.0",
|
"@rollup/rollup-linux-arm64-gnu": "4.36.0",
|
||||||
"@rollup/rollup-linux-arm64-musl": "4.35.0",
|
"@rollup/rollup-linux-arm64-musl": "4.36.0",
|
||||||
"@rollup/rollup-linux-loongarch64-gnu": "4.35.0",
|
"@rollup/rollup-linux-loongarch64-gnu": "4.36.0",
|
||||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.35.0",
|
"@rollup/rollup-linux-powerpc64le-gnu": "4.36.0",
|
||||||
"@rollup/rollup-linux-riscv64-gnu": "4.35.0",
|
"@rollup/rollup-linux-riscv64-gnu": "4.36.0",
|
||||||
"@rollup/rollup-linux-s390x-gnu": "4.35.0",
|
"@rollup/rollup-linux-s390x-gnu": "4.36.0",
|
||||||
"@rollup/rollup-linux-x64-gnu": "4.35.0",
|
"@rollup/rollup-linux-x64-gnu": "4.36.0",
|
||||||
"@rollup/rollup-linux-x64-musl": "4.35.0",
|
"@rollup/rollup-linux-x64-musl": "4.36.0",
|
||||||
"@rollup/rollup-win32-arm64-msvc": "4.35.0",
|
"@rollup/rollup-win32-arm64-msvc": "4.36.0",
|
||||||
"@rollup/rollup-win32-ia32-msvc": "4.35.0",
|
"@rollup/rollup-win32-ia32-msvc": "4.36.0",
|
||||||
"@rollup/rollup-win32-x64-msvc": "4.35.0",
|
"@rollup/rollup-win32-x64-msvc": "4.36.0",
|
||||||
"fsevents": "~2.3.2"
|
"fsevents": "~2.3.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
"@webreflection/idb-map": "^0.3.2",
|
"@webreflection/idb-map": "^0.3.2",
|
||||||
"add-promise-listener": "^0.1.3",
|
"add-promise-listener": "^0.1.3",
|
||||||
"basic-devtools": "^0.1.6",
|
"basic-devtools": "^0.1.6",
|
||||||
"polyscript": "^0.16.21",
|
"polyscript": "^0.16.22",
|
||||||
"sabayon": "^0.6.6",
|
"sabayon": "^0.6.6",
|
||||||
"sticky-module": "^0.1.1",
|
"sticky-module": "^0.1.1",
|
||||||
"to-json-callback": "^0.1.1",
|
"to-json-callback": "^0.1.1",
|
||||||
@@ -75,24 +75,24 @@
|
|||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@codemirror/commands": "^6.8.0",
|
"@codemirror/commands": "^6.8.0",
|
||||||
"@codemirror/lang-python": "^6.1.7",
|
"@codemirror/lang-python": "^6.1.7",
|
||||||
"@codemirror/language": "^6.10.8",
|
"@codemirror/language": "^6.11.0",
|
||||||
"@codemirror/state": "^6.5.2",
|
"@codemirror/state": "^6.5.2",
|
||||||
"@codemirror/view": "^6.36.4",
|
"@codemirror/view": "^6.36.4",
|
||||||
"@playwright/test": "^1.51.0",
|
"@playwright/test": "^1.51.1",
|
||||||
"@rollup/plugin-commonjs": "^28.0.3",
|
"@rollup/plugin-commonjs": "^28.0.3",
|
||||||
"@rollup/plugin-node-resolve": "^16.0.0",
|
"@rollup/plugin-node-resolve": "^16.0.1",
|
||||||
"@rollup/plugin-terser": "^0.4.4",
|
"@rollup/plugin-terser": "^0.4.4",
|
||||||
"@webreflection/toml-j0.4": "^1.1.3",
|
"@webreflection/toml-j0.4": "^1.1.3",
|
||||||
"@xterm/addon-fit": "^0.10.0",
|
"@xterm/addon-fit": "^0.10.0",
|
||||||
"@xterm/addon-web-links": "^0.11.0",
|
"@xterm/addon-web-links": "^0.11.0",
|
||||||
"@xterm/xterm": "^5.5.0",
|
"@xterm/xterm": "^5.5.0",
|
||||||
"bun": "^1.2.4",
|
"bun": "^1.2.5",
|
||||||
"chokidar": "^4.0.3",
|
"chokidar": "^4.0.3",
|
||||||
"codedent": "^0.1.2",
|
"codedent": "^0.1.2",
|
||||||
"codemirror": "^6.0.1",
|
"codemirror": "^6.0.1",
|
||||||
"eslint": "^9.22.0",
|
"eslint": "^9.22.0",
|
||||||
"flatted": "^3.3.3",
|
"flatted": "^3.3.3",
|
||||||
"rollup": "^4.35.0",
|
"rollup": "^4.36.0",
|
||||||
"rollup-plugin-postcss": "^4.0.2",
|
"rollup-plugin-postcss": "^4.0.2",
|
||||||
"rollup-plugin-string": "^3.0.0",
|
"rollup-plugin-string": "^3.0.0",
|
||||||
"static-handler": "^0.5.3",
|
"static-handler": "^0.5.3",
|
||||||
|
|||||||
2
core/src/3rd-party/xterm_addon-fit.js
vendored
2
core/src/3rd-party/xterm_addon-fit.js
vendored
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
* Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.
|
||||||
* Original file: /npm/@xterm/addon-fit@0.10.0/lib/addon-fit.js
|
* Original file: /npm/@xterm/addon-fit@0.10.0/lib/addon-fit.js
|
||||||
*
|
*
|
||||||
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||||
|
|||||||
2
core/src/3rd-party/xterm_addon-web-links.js
vendored
2
core/src/3rd-party/xterm_addon-web-links.js
vendored
@@ -1,5 +1,5 @@
|
|||||||
/**
|
/**
|
||||||
* Bundled by jsDelivr using Rollup v2.79.1 and Terser v5.19.2.
|
* Bundled by jsDelivr using Rollup v2.79.2 and Terser v5.37.0.
|
||||||
* Original file: /npm/@xterm/addon-web-links@0.11.0/lib/addon-web-links.js
|
* Original file: /npm/@xterm/addon-web-links@0.11.0/lib/addon-web-links.js
|
||||||
*
|
*
|
||||||
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
* Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,6 +1,5 @@
|
|||||||
import asyncio
|
import asyncio
|
||||||
import inspect
|
import inspect
|
||||||
import sys
|
|
||||||
|
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from pyscript.magic_js import document
|
from pyscript.magic_js import document
|
||||||
@@ -11,38 +10,87 @@ from pyscript import config
|
|||||||
|
|
||||||
class Event:
|
class Event:
|
||||||
"""
|
"""
|
||||||
Represents something that may happen at some point in the future.
|
Events represent something that may happen at some point in time (usually
|
||||||
|
the future). They're used to coordinate code when the timing of an event is
|
||||||
|
not known in advance (e.g. a button click or a network response).
|
||||||
|
|
||||||
|
An event is triggered with an arbitrary result. If no result is given, then
|
||||||
|
None is assumed as the result.
|
||||||
|
|
||||||
|
Add listener functions to the event, to be called with the result when the
|
||||||
|
event is triggered. The listener functions can be callable or awaitable. If
|
||||||
|
the listener is added several times, it will be called only once.
|
||||||
|
|
||||||
|
If the event was triggered before a listener is added, the listener will be
|
||||||
|
called as soon as it is added, with the result of the event.
|
||||||
|
|
||||||
|
If the event is never triggered, then its listeners will never be called.
|
||||||
|
It's also possible to remove listeners from the event.
|
||||||
|
|
||||||
|
If the result of the event is not available, a ValueError will be raised
|
||||||
|
when trying to access the result property. A RuntimeError will be raised if
|
||||||
|
the event is triggered more than once.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
# To contain the listeners to be called when the event is triggered.
|
||||||
self._listeners = []
|
self._listeners = []
|
||||||
|
# The result associated with the event.
|
||||||
|
self._result = None
|
||||||
|
# A flag to indicate if the event has been triggered.
|
||||||
|
self._triggered = False
|
||||||
|
|
||||||
def trigger(self, result):
|
@property
|
||||||
|
def triggered(self):
|
||||||
"""
|
"""
|
||||||
Trigger the event with a result to pass into the handlers.
|
A boolean flag to indicate if the event has been triggered.
|
||||||
"""
|
"""
|
||||||
|
return self._triggered
|
||||||
|
|
||||||
|
@property
|
||||||
|
def result(self):
|
||||||
|
"""
|
||||||
|
The result of the event.
|
||||||
|
"""
|
||||||
|
if self.triggered:
|
||||||
|
return self._result
|
||||||
|
msg = "Event has not been triggered yet. No result available."
|
||||||
|
raise ValueError(msg)
|
||||||
|
|
||||||
|
def trigger(self, result=None):
|
||||||
|
"""
|
||||||
|
Trigger the event with an arbitrary result to pass into the listeners.
|
||||||
|
An event may only be triggered once (otherwise a RuntimeError is
|
||||||
|
raised).
|
||||||
|
"""
|
||||||
|
if self.triggered:
|
||||||
|
msg = "Event has already been triggered."
|
||||||
|
raise RuntimeError(msg)
|
||||||
|
self._triggered = True
|
||||||
|
self._result = result
|
||||||
for listener in self._listeners:
|
for listener in self._listeners:
|
||||||
if is_awaitable(listener):
|
self._call_listener(listener)
|
||||||
# Use create task to avoid making this an async function.
|
|
||||||
asyncio.create_task(listener(result))
|
|
||||||
else:
|
|
||||||
listener(result)
|
|
||||||
|
|
||||||
def add_listener(self, listener):
|
def add_listener(self, listener):
|
||||||
"""
|
"""
|
||||||
Add a callable/awaitable to listen to when this event is triggered.
|
Add a callable/awaitable that listens for the result, when this event
|
||||||
|
is triggered.
|
||||||
"""
|
"""
|
||||||
if is_awaitable(listener) or callable(listener):
|
if is_awaitable(listener) or callable(listener):
|
||||||
if listener not in self._listeners:
|
if listener not in self._listeners:
|
||||||
self._listeners.append(listener)
|
self._listeners.append(listener)
|
||||||
|
if self.triggered:
|
||||||
|
# If the event was already triggered, call the listener
|
||||||
|
# immediately with the result.
|
||||||
|
self._call_listener(listener)
|
||||||
else:
|
else:
|
||||||
msg = "Listener must be callable or awaitable."
|
msg = "Listener must be callable or awaitable."
|
||||||
raise ValueError(msg)
|
raise ValueError(msg)
|
||||||
|
|
||||||
def remove_listener(self, *args):
|
def remove_listener(self, *args):
|
||||||
"""
|
"""
|
||||||
Clear the specified handler functions in *args. If no handlers
|
Clear the specified listener functions in *args. If no listeners are
|
||||||
provided, clear all handlers.
|
provided, clear all the listeners.
|
||||||
"""
|
"""
|
||||||
if args:
|
if args:
|
||||||
for listener in args:
|
for listener in args:
|
||||||
@@ -50,6 +98,15 @@ class Event:
|
|||||||
else:
|
else:
|
||||||
self._listeners = []
|
self._listeners = []
|
||||||
|
|
||||||
|
def _call_listener(self, listener):
|
||||||
|
"""
|
||||||
|
Call the referenced listener with the event's result.
|
||||||
|
"""
|
||||||
|
if is_awaitable(listener):
|
||||||
|
asyncio.create_task(listener(self._result))
|
||||||
|
else:
|
||||||
|
listener(self._result)
|
||||||
|
|
||||||
|
|
||||||
def when(target, *args, **kwargs):
|
def when(target, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -31,25 +31,22 @@ class Device:
|
|||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
async def load(cls, audio=False, video=True):
|
async def load(cls, audio=False, video=True):
|
||||||
"""Load the device stream."""
|
"""
|
||||||
options = window.Object.new()
|
Load the device stream.
|
||||||
options.audio = audio
|
"""
|
||||||
|
options = {}
|
||||||
|
options["audio"] = audio
|
||||||
if isinstance(video, bool):
|
if isinstance(video, bool):
|
||||||
options.video = video
|
options["video"] = video
|
||||||
else:
|
else:
|
||||||
# TODO: Think this can be simplified but need to check it on the pyodide side
|
options["video"] = {}
|
||||||
|
|
||||||
# TODO: this is pyodide specific. shouldn't be!
|
|
||||||
options.video = window.Object.new()
|
|
||||||
for k in video:
|
for k in video:
|
||||||
setattr(options.video, k, to_js(video[k]))
|
options["video"][k] = video[k]
|
||||||
|
return await window.navigator.mediaDevices.getUserMedia(to_js(options))
|
||||||
return await window.navigator.mediaDevices.getUserMedia(options)
|
|
||||||
|
|
||||||
async def get_stream(self):
|
async def get_stream(self):
|
||||||
key = self.kind.replace("input", "").replace("output", "")
|
key = self.kind.replace("input", "").replace("output", "")
|
||||||
options = {key: {"deviceId": {"exact": self.id}}}
|
options = {key: {"deviceId": {"exact": self.id}}}
|
||||||
|
|
||||||
return await self.load(**options)
|
return await self.load(**options)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
39
core/tests/javascript/media.html
Normal file
39
core/tests/javascript/media.html
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>Pyodide Media Module Test</title>
|
||||||
|
<link rel="stylesheet" href="../../dist/core.css">
|
||||||
|
<script type="module" src="../../dist/core.js"></script>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Pyodide Media Module Test</h1>
|
||||||
|
<div id="test-results">Running tests...</div>
|
||||||
|
|
||||||
|
<script type="py" terminal>
|
||||||
|
from pyscript import window, document
|
||||||
|
from pyscript import media
|
||||||
|
|
||||||
|
async def run_tests():
|
||||||
|
# Test basic module structure
|
||||||
|
assert hasattr(media, "Device"), "media module should have Device class"
|
||||||
|
assert hasattr(media, "list_devices"), "media module should have list_devices function"
|
||||||
|
|
||||||
|
# Test device enumeration
|
||||||
|
devices = await media.list_devices()
|
||||||
|
assert isinstance(devices, list), "list_devices should return a list"
|
||||||
|
|
||||||
|
# If we have devices, test properties of one
|
||||||
|
if devices:
|
||||||
|
device = devices[0]
|
||||||
|
assert hasattr(device, "id"), "Device should have id property"
|
||||||
|
assert hasattr(device, "group"), "Device should have group property"
|
||||||
|
assert hasattr(device, "kind"), "Device should have kind property"
|
||||||
|
assert hasattr(device, "label"), "Device should have label property"
|
||||||
|
|
||||||
|
document.getElementById('test-results').innerText = "Success!"
|
||||||
|
document.documentElement.classList.add('media-ok')
|
||||||
|
|
||||||
|
await run_tests()
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
@@ -171,3 +171,24 @@ test('MicroPython buffered NO error', async ({ page }) => {
|
|||||||
const body = await page.evaluate(() => document.body.textContent.trim());
|
const body = await page.evaluate(() => document.body.textContent.trim());
|
||||||
await expect(body).toBe('');
|
await expect(body).toBe('');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('Pyodide media module', async ({ page }) => {
|
||||||
|
await page.context().grantPermissions(['camera', 'microphone']);
|
||||||
|
await page.context().addInitScript(() => {
|
||||||
|
const originalEnumerateDevices = navigator.mediaDevices.enumerateDevices;
|
||||||
|
navigator.mediaDevices.enumerateDevices = async function() {
|
||||||
|
const realDevices = await originalEnumerateDevices.call(this);
|
||||||
|
if (!realDevices || realDevices.length === 0) {
|
||||||
|
return [
|
||||||
|
{ deviceId: 'camera1', groupId: 'group1', kind: 'videoinput', label: 'Simulated Camera' },
|
||||||
|
{ deviceId: 'mic1', groupId: 'group2', kind: 'audioinput', label: 'Simulated Microphone' }
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return realDevices;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
await page.goto('http://localhost:8080/tests/javascript/media.html');
|
||||||
|
await page.waitForSelector('html.media-ok', { timeout: 10000 });
|
||||||
|
const isSuccess = await page.evaluate(() => document.documentElement.classList.contains('media-ok'));
|
||||||
|
expect(isSuccess).toBe(true);
|
||||||
|
});
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
"./tests/test_fetch.py": "tests/test_fetch.py",
|
"./tests/test_fetch.py": "tests/test_fetch.py",
|
||||||
"./tests/test_ffi.py": "tests/test_ffi.py",
|
"./tests/test_ffi.py": "tests/test_ffi.py",
|
||||||
"./tests/test_js_modules.py": "tests/test_js_modules.py",
|
"./tests/test_js_modules.py": "tests/test_js_modules.py",
|
||||||
|
"./tests/test_media.py": "tests/test_media.py",
|
||||||
"./tests/test_storage.py": "tests/test_storage.py",
|
"./tests/test_storage.py": "tests/test_storage.py",
|
||||||
"./tests/test_running_in_worker.py": "tests/test_running_in_worker.py",
|
"./tests/test_running_in_worker.py": "tests/test_running_in_worker.py",
|
||||||
"./tests/test_web.py": "tests/test_web.py",
|
"./tests/test_web.py": "tests/test_web.py",
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
"./tests/test_document.py": "tests/test_document.py",
|
"./tests/test_document.py": "tests/test_document.py",
|
||||||
"./tests/test_fetch.py": "tests/test_fetch.py",
|
"./tests/test_fetch.py": "tests/test_fetch.py",
|
||||||
"./tests/test_ffi.py": "tests/test_ffi.py",
|
"./tests/test_ffi.py": "tests/test_ffi.py",
|
||||||
|
"./tests/test_media.py": "tests/test_media.py",
|
||||||
"./tests/test_js_modules.py": "tests/test_js_modules.py",
|
"./tests/test_js_modules.py": "tests/test_js_modules.py",
|
||||||
"./tests/test_storage.py": "tests/test_storage.py",
|
"./tests/test_storage.py": "tests/test_storage.py",
|
||||||
"./tests/test_running_in_worker.py": "tests/test_running_in_worker.py",
|
"./tests/test_running_in_worker.py": "tests/test_running_in_worker.py",
|
||||||
|
|||||||
@@ -22,6 +22,17 @@ def teardown():
|
|||||||
container.innerHTML = ""
|
container.innerHTML = ""
|
||||||
|
|
||||||
|
|
||||||
|
def test_event_no_result():
|
||||||
|
"""
|
||||||
|
If an event has not been triggered with a result, accessing the result
|
||||||
|
parameter raises a ValueError.
|
||||||
|
"""
|
||||||
|
event = Event()
|
||||||
|
with upytest.raises(ValueError) as e:
|
||||||
|
event.result
|
||||||
|
assert str(e.exception) == "Event has not been triggered yet. No result available."
|
||||||
|
|
||||||
|
|
||||||
def test_event_add_listener():
|
def test_event_add_listener():
|
||||||
"""
|
"""
|
||||||
Adding a listener to an event should add it to the list of listeners. It
|
Adding a listener to an event should add it to the list of listeners. It
|
||||||
@@ -35,6 +46,52 @@ def test_event_add_listener():
|
|||||||
assert listener in event._listeners # The item is the expected listener.
|
assert listener in event._listeners # The item is the expected listener.
|
||||||
|
|
||||||
|
|
||||||
|
def test_event_add_invalid_listener():
|
||||||
|
"""
|
||||||
|
Adding an invalid listener should raise a ValueError.
|
||||||
|
"""
|
||||||
|
event = Event()
|
||||||
|
with upytest.raises(ValueError) as e:
|
||||||
|
event.add_listener("invalid")
|
||||||
|
assert str(e.exception) == "Listener must be callable or awaitable."
|
||||||
|
|
||||||
|
|
||||||
|
def test_event_add_listener_triggered():
|
||||||
|
"""
|
||||||
|
Adding a listener to an event that has already been triggered should call
|
||||||
|
the listener immediately with the result.
|
||||||
|
"""
|
||||||
|
event = Event()
|
||||||
|
counter = 0
|
||||||
|
|
||||||
|
def listener(x):
|
||||||
|
nonlocal counter
|
||||||
|
counter += 1
|
||||||
|
assert x == "ok"
|
||||||
|
|
||||||
|
event.trigger("ok")
|
||||||
|
event.add_listener(listener)
|
||||||
|
assert counter == 1 # The listener has been triggered with the expected result.
|
||||||
|
|
||||||
|
|
||||||
|
def test_event_add_listener_multiple_times():
|
||||||
|
"""
|
||||||
|
Adding the same listener multiple times should not call it multiple times.
|
||||||
|
"""
|
||||||
|
event = Event()
|
||||||
|
counter = 0
|
||||||
|
|
||||||
|
def listener(x):
|
||||||
|
nonlocal counter
|
||||||
|
counter += 1
|
||||||
|
assert x == "ok"
|
||||||
|
|
||||||
|
event.add_listener(listener)
|
||||||
|
event.add_listener(listener)
|
||||||
|
event.trigger("ok")
|
||||||
|
assert counter == 1 # The listener has been triggered only once.
|
||||||
|
|
||||||
|
|
||||||
def test_event_remove_listener():
|
def test_event_remove_listener():
|
||||||
"""
|
"""
|
||||||
Removing a listener from an event should remove it from the list of
|
Removing a listener from an event should remove it from the list of
|
||||||
|
|||||||
87
core/tests/python/tests/test_media.py
Normal file
87
core/tests/python/tests/test_media.py
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
""""
|
||||||
|
Tests for the PyScript media module.
|
||||||
|
"""
|
||||||
|
|
||||||
|
from pyscript import media
|
||||||
|
import upytest
|
||||||
|
|
||||||
|
from pyscript import media
|
||||||
|
|
||||||
|
|
||||||
|
@upytest.skip(
|
||||||
|
"Uses Pyodide-specific to_js function in MicroPython",
|
||||||
|
skip_when=upytest.is_micropython,
|
||||||
|
)
|
||||||
|
async def test_device_enumeration():
|
||||||
|
"""Test enumerating media devices."""
|
||||||
|
devices = await media.list_devices()
|
||||||
|
assert isinstance(devices, list), "list_devices should return a list"
|
||||||
|
|
||||||
|
# If devices are found, verify they have the expected functionality
|
||||||
|
if devices:
|
||||||
|
device = devices[0]
|
||||||
|
|
||||||
|
# Test real device properties exist (but don't assert on their values)
|
||||||
|
# Browser security might restrict actual values until permissions are granted
|
||||||
|
assert hasattr(device, "id"), "Device should have id property"
|
||||||
|
assert hasattr(device, "kind"), "Device should have kind property"
|
||||||
|
assert device.kind in [
|
||||||
|
"videoinput",
|
||||||
|
"audioinput",
|
||||||
|
"audiooutput",
|
||||||
|
], f"Device should have a valid kind, got: {device.kind}"
|
||||||
|
|
||||||
|
# Verify dictionary access works with actual device
|
||||||
|
assert (
|
||||||
|
device["id"] == device.id
|
||||||
|
), "Dictionary access should match property access"
|
||||||
|
assert (
|
||||||
|
device["kind"] == device.kind
|
||||||
|
), "Dictionary access should match property access"
|
||||||
|
|
||||||
|
|
||||||
|
@upytest.skip("Waiting on a bug-fix in MicroPython, for this test to work.", skip_when=upytest.is_micropython)
|
||||||
|
async def test_video_stream_acquisition():
|
||||||
|
"""Test video stream."""
|
||||||
|
try:
|
||||||
|
# Load a video stream
|
||||||
|
stream = await media.Device.load(video=True)
|
||||||
|
|
||||||
|
# Verify we get a real stream with expected properties
|
||||||
|
assert hasattr(stream, "active"), "Stream should have active property"
|
||||||
|
|
||||||
|
# Check for video tracks, but don't fail if permissions aren't granted
|
||||||
|
if stream._dom_element and hasattr(stream._dom_element, "getVideoTracks"):
|
||||||
|
tracks = stream._dom_element.getVideoTracks()
|
||||||
|
if tracks.length > 0:
|
||||||
|
assert True, "Video stream has video tracks"
|
||||||
|
except Exception as e:
|
||||||
|
# If the browser blocks access, the test should still pass
|
||||||
|
# This is because we're testing the API works, not that permissions are granted
|
||||||
|
assert (
|
||||||
|
True
|
||||||
|
), f"Stream acquisition attempted but may require permissions: {str(e)}"
|
||||||
|
|
||||||
|
|
||||||
|
@upytest.skip("Waiting on a bug-fix in MicroPython, for this test to work.", skip_when=upytest.is_micropython)
|
||||||
|
async def test_custom_video_constraints():
|
||||||
|
"""Test loading video with custom constraints."""
|
||||||
|
try:
|
||||||
|
# Define custom constraints
|
||||||
|
constraints = {"width": 640, "height": 480}
|
||||||
|
|
||||||
|
# Load stream with custom constraints
|
||||||
|
stream = await media.Device.load(video=constraints)
|
||||||
|
|
||||||
|
# Basic stream property check
|
||||||
|
assert hasattr(stream, "active"), "Stream should have active property"
|
||||||
|
|
||||||
|
# Check for tracks only if we have access
|
||||||
|
if stream._dom_element and hasattr(stream._dom_element, "getVideoTracks"):
|
||||||
|
tracks = stream._dom_element.getVideoTracks()
|
||||||
|
if tracks.length > 0 and hasattr(tracks[0], "getSettings"):
|
||||||
|
# Settings verification is optional - browsers may handle constraints differently
|
||||||
|
pass
|
||||||
|
except Exception as e:
|
||||||
|
# If the browser blocks access, test that the API structure works
|
||||||
|
assert True, f"Custom constraint test attempted: {str(e)}"
|
||||||
@@ -3,10 +3,12 @@ Exercise the pyscript.Websocket class.
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import upytest
|
||||||
|
|
||||||
from pyscript import WebSocket
|
from pyscript import WebSocket
|
||||||
|
|
||||||
|
|
||||||
|
@upytest.skip("Websocket tests are disabled.")
|
||||||
async def test_websocket_with_attributes():
|
async def test_websocket_with_attributes():
|
||||||
"""
|
"""
|
||||||
Event handlers assigned via object attributes.
|
Event handlers assigned via object attributes.
|
||||||
@@ -52,6 +54,7 @@ async def test_websocket_with_attributes():
|
|||||||
assert closed_flag is True
|
assert closed_flag is True
|
||||||
|
|
||||||
|
|
||||||
|
@upytest.skip("Websocket tests are disabled.")
|
||||||
async def test_websocket_with_init():
|
async def test_websocket_with_init():
|
||||||
"""
|
"""
|
||||||
Event handlers assigned via __init__ arguments.
|
Event handlers assigned via __init__ arguments.
|
||||||
Reference in New Issue
Block a user