From 13a621bb40a2686b10c1f607cd253ae365d2e703 Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Fri, 1 Aug 2025 14:03:18 -0700 Subject: [PATCH 1/9] Update to Blockly 11.2.2 --- block-lexical-variables/package-lock.json | 603 ++++++++++++++-------- block-lexical-variables/package.json | 6 +- 2 files changed, 393 insertions(+), 216 deletions(-) diff --git a/block-lexical-variables/package-lock.json b/block-lexical-variables/package-lock.json index c0d72a3..43fa902 100644 --- a/block-lexical-variables/package-lock.json +++ b/block-lexical-variables/package-lock.json @@ -10,8 +10,8 @@ "license": "Apache-2.0", "devDependencies": { "@blockly/dev-scripts": "^4.0.9", - "@blockly/dev-tools": "^7.1.6", - "blockly": "^10.4.0", + "@blockly/dev-tools": "^8.1.2", + "blockly": "^11.2.2", "chai": "^4.5.0", "mocha": "^10.2.0" }, @@ -19,7 +19,7 @@ "node": ">=8.17.0" }, "peerDependencies": { - "blockly": "^10.4.0" + "blockly": "^11.2.2" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -31,6 +31,27 @@ "node": ">=0.10.0" } }, + "node_modules/@asamuzakjp/css-color": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.2.0.tgz", + "integrity": "sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@csstools/css-calc": "^2.1.3", + "@csstools/css-color-parser": "^3.0.9", + "@csstools/css-parser-algorithms": "^3.0.4", + "@csstools/css-tokenizer": "^3.0.3", + "lru-cache": "^10.4.3" + } + }, + "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", @@ -243,15 +264,16 @@ } }, "node_modules/@blockly/block-test": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@blockly/block-test/-/block-test-5.1.3.tgz", - "integrity": "sha512-O/N5l2cWnrlhUsDroWMqMqdzSk9FJMzxQYvhp2blkPl3tZiFXarXMdiY4ej7v+YYnI4v7NmVF3P3aL8atRjfoQ==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/@blockly/block-test/-/block-test-6.0.13.tgz", + "integrity": "sha512-nq9qg9/azE73nlDY6bpvUGOjSR4TrQkRtpUTEGGQNXK9TdgwbW97F6Jfx5eutnghLdouRS09Hvo9PjuyffaD0g==", "dev": true, + "license": "Apache 2.0", "engines": { "node": ">=8.17.0" }, "peerDependencies": { - "blockly": "^10.0.0" + "blockly": "^11.0.0" } }, "node_modules/@blockly/dev-scripts": { @@ -291,16 +313,17 @@ } }, "node_modules/@blockly/dev-tools": { - "version": "7.1.11", - "resolved": "https://registry.npmjs.org/@blockly/dev-tools/-/dev-tools-7.1.11.tgz", - "integrity": "sha512-TU2h41BV3zqVnDt59jh1abDGp0ttxZZDYyiqNt2iFYHklgBcmohHQuHMPq06tOq9NiZO/8M2q1aplIU92w5wSQ==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@blockly/dev-tools/-/dev-tools-8.1.2.tgz", + "integrity": "sha512-K54oIKbaLZV3NGC9w4FaE+MzGmlVDxyTNWO+Vuq+WrGRa3F0cons9jvzaMs1RKyHRNbMoKcHy3VzALNalG46SA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "@blockly/block-test": "^5.1.3", - "@blockly/theme-dark": "^6.0.7", - "@blockly/theme-deuteranopia": "^5.0.8", - "@blockly/theme-highcontrast": "^5.0.7", - "@blockly/theme-tritanopia": "^5.0.7", + "@blockly/block-test": "^6.0.13", + "@blockly/theme-dark": "^7.0.12", + "@blockly/theme-deuteranopia": "^6.0.12", + "@blockly/theme-highcontrast": "^6.0.12", + "@blockly/theme-tritanopia": "^6.0.12", "chai": "^4.2.0", "dat.gui": "^0.7.7", "lodash.assign": "^4.2.0", @@ -312,7 +335,7 @@ "node": ">=8.0.0" }, "peerDependencies": { - "blockly": "^10.0.0" + "blockly": "^11.0.0" } }, "node_modules/@blockly/eslint-config": { @@ -337,51 +360,170 @@ } }, "node_modules/@blockly/theme-dark": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/@blockly/theme-dark/-/theme-dark-6.0.7.tgz", - "integrity": "sha512-QrOo/muDnaKb2lyQ0QYEy81THNhsZdObqxUpMgNCGnSFTpw3h+po3+2aC39POxlx8Z/aMrPU+tr736bLBew7Yw==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@blockly/theme-dark/-/theme-dark-7.0.12.tgz", + "integrity": "sha512-DbRiiwSfVTAbAISnCQ1ismCxqc0lnSvtPL4t526X/m5WsLlMh0GT09ivDcP4ajXyWV4yk70wkhv3RYhZkmXuAQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.17.0" }, "peerDependencies": { - "blockly": "^10.0.0" + "blockly": "^11.0.0" } }, "node_modules/@blockly/theme-deuteranopia": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@blockly/theme-deuteranopia/-/theme-deuteranopia-5.0.8.tgz", - "integrity": "sha512-2KLDrTkmTjy268nBl7/wWKnN01Jp8mO/iMeD0TcWTOqwmEqV8IY6ZPdkdrbQ7+oTQoVeMIgL0um+TJq/XuDoNQ==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@blockly/theme-deuteranopia/-/theme-deuteranopia-6.0.12.tgz", + "integrity": "sha512-4mlt36kwlaYi0j9IzmPmJTb2XsaOL3bLvHQVTpqoCqFivYY56VpNudZU9aGmknvhH0swNO5VXFrvCcPgWyrruQ==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.17.0" }, "peerDependencies": { - "blockly": "^10.0.0" + "blockly": "^11.0.0" } }, "node_modules/@blockly/theme-highcontrast": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@blockly/theme-highcontrast/-/theme-highcontrast-5.0.7.tgz", - "integrity": "sha512-JPqSCEEOYkQ8iBVdNzw89/Pst1FsKC21xSy8IR1R2tHQeyOje7tk7N3bgpeYJ5VXGTLmY8lUrfPwAxScl4zRcg==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@blockly/theme-highcontrast/-/theme-highcontrast-6.0.12.tgz", + "integrity": "sha512-n//Cg7cJFC8A7FXiwoxuoYorFcKk6MQqyUpYZsr2iQI3XMrqqgn0XAyEyvIZRgcqeoRK5g8wSDNiDnGC94McBw==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.17.0" }, "peerDependencies": { - "blockly": "^10.0.0" + "blockly": "^11.0.0" } }, "node_modules/@blockly/theme-tritanopia": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@blockly/theme-tritanopia/-/theme-tritanopia-5.0.7.tgz", - "integrity": "sha512-HeE1tu1abIuC8R14IbJzSpL2Wwiuo9EUnat2PPNeUWp5SfsCvDkEZmmZEiVHBZQqsYxu7ksy62rPqnbB+zvLUQ==", + "version": "6.0.12", + "resolved": "https://registry.npmjs.org/@blockly/theme-tritanopia/-/theme-tritanopia-6.0.12.tgz", + "integrity": "sha512-KYpKJiGKNy7w4/Nm7oBYe7ezSK/PRGZPh7pDbC+In6OyQm5CXCKaG6EVmA0tgbJ8urJusyOydlPfTFj1QIIO8g==", "dev": true, + "license": "Apache-2.0", "engines": { "node": ">=8.17.0" }, "peerDependencies": { - "blockly": "^10.0.0" + "blockly": "^11.0.0" + } + }, + "node_modules/@csstools/color-helpers": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", + "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, + "node_modules/@csstools/css-calc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.4.tgz", + "integrity": "sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-color-parser": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.10.tgz", + "integrity": "sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "dependencies": { + "@csstools/color-helpers": "^5.0.2", + "@csstools/css-calc": "^2.1.4" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" } }, "node_modules/@discoveryjs/json-ext": { @@ -630,15 +772,6 @@ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, - "node_modules/@tootallnate/once": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", - "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, - "engines": { - "node": ">= 10" - } - }, "node_modules/@types/body-parser": { "version": "1.19.6", "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.6.tgz", @@ -1328,15 +1461,13 @@ } }, "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, - "dependencies": { - "debug": "4" - }, + "license": "MIT", "engines": { - "node": ">= 6.0.0" + "node": ">= 14" } }, "node_modules/ajv": { @@ -1520,7 +1651,8 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/babel-eslint": { "version": "10.1.0", @@ -1586,12 +1718,16 @@ } }, "node_modules/blockly": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/blockly/-/blockly-10.4.3.tgz", - "integrity": "sha512-+opfBmQnSiv7vTiY/TkDEBOslxUyfj8luS3S+qs1NnQKjInC+Waf2l9cNsMh9J8BMkmiCIT+Ed/3mmjIaL9wug==", + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/blockly/-/blockly-11.2.2.tgz", + "integrity": "sha512-YJW9jMz4qoBXzOOUqxWBOHL35QhOOTAg2a6sVAFJh+/uNTXW0z506JS7qkqZI4PQ9fnUhDqmhF8a0qWSTL1tjg==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "jsdom": "22.1.0" + "jsdom": "25.0.1" + }, + "engines": { + "node": ">=18" } }, "node_modules/body-parser": { @@ -1968,6 +2104,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, + "license": "MIT", "dependencies": { "delayed-stream": "~1.0.0" }, @@ -2134,17 +2271,26 @@ } }, "node_modules/cssstyle": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-3.0.0.tgz", - "integrity": "sha512-N4u2ABATi3Qplzf0hWbVCdjenim8F3ojEXpBDF5hBpjzW182MjNGLqfmQ0SkSPeQ+V86ZXgeH8aXj6kayd4jgg==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.6.0.tgz", + "integrity": "sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==", "dev": true, + "license": "MIT", "dependencies": { - "rrweb-cssom": "^0.6.0" + "@asamuzakjp/css-color": "^3.2.0", + "rrweb-cssom": "^0.8.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, + "node_modules/cssstyle/node_modules/rrweb-cssom": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", + "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", + "dev": true, + "license": "MIT" + }, "node_modules/dat.gui": { "version": "0.7.9", "resolved": "https://registry.npmjs.org/dat.gui/-/dat.gui-0.7.9.tgz", @@ -2152,26 +2298,27 @@ "dev": true }, "node_modules/data-urls": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-4.0.0.tgz", - "integrity": "sha512-/mMTei/JXPqvFqQtfyTowxmJVwr2PVAeCcDxyFf6LhoOu/09TX2OX3kb2wzi4DMXcfj4OItwDOnhl5oziPnT6g==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", + "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", "dev": true, + "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.0" + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/debug": { @@ -2205,10 +2352,11 @@ } }, "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==", - "dev": true + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.6.0.tgz", + "integrity": "sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==", + "dev": true, + "license": "MIT" }, "node_modules/deep-eql": { "version": "4.1.3", @@ -2285,6 +2433,7 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } @@ -2364,18 +2513,6 @@ "node": ">=6.0.0" } }, - "node_modules/domexception": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", - "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, - "dependencies": { - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2456,10 +2593,11 @@ } }, "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.12" }, @@ -2528,6 +2666,22 @@ "node": ">= 0.4" } }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -3238,13 +3392,16 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -3499,6 +3656,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "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", @@ -3575,15 +3748,16 @@ } }, "node_modules/html-encoding-sniffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", - "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", + "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", "dev": true, + "license": "MIT", "dependencies": { - "whatwg-encoding": "^2.0.0" + "whatwg-encoding": "^3.1.1" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/http-deceiver": { @@ -3633,17 +3807,17 @@ } }, "node_modules/http-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", - "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "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==", "dev": true, + "license": "MIT", "dependencies": { - "@tootallnate/once": "2", - "agent-base": "6", - "debug": "4" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/http-proxy-middleware": { @@ -3685,16 +3859,17 @@ } }, "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, + "license": "MIT", "dependencies": { - "agent-base": "6", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { - "node": ">= 6" + "node": ">= 14" } }, "node_modules/hyperdyperid": { @@ -3974,7 +4149,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-unicode-supported": { "version": "0.1.0", @@ -4085,40 +4261,39 @@ } }, "node_modules/jsdom": { - "version": "22.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz", - "integrity": "sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw==", + "version": "25.0.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-25.0.1.tgz", + "integrity": "sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==", "dev": true, + "license": "MIT", "dependencies": { - "abab": "^2.0.6", - "cssstyle": "^3.0.0", - "data-urls": "^4.0.0", + "cssstyle": "^4.1.0", + "data-urls": "^5.0.0", "decimal.js": "^10.4.3", - "domexception": "^4.0.0", "form-data": "^4.0.0", - "html-encoding-sniffer": "^3.0.0", - "http-proxy-agent": "^5.0.0", - "https-proxy-agent": "^5.0.1", + "html-encoding-sniffer": "^4.0.0", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.5", "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.4", + "nwsapi": "^2.2.12", "parse5": "^7.1.2", - "rrweb-cssom": "^0.6.0", + "rrweb-cssom": "^0.7.1", "saxes": "^6.0.0", "symbol-tree": "^3.2.4", - "tough-cookie": "^4.1.2", - "w3c-xmlserializer": "^4.0.0", + "tough-cookie": "^5.0.0", + "w3c-xmlserializer": "^5.0.0", "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^2.0.0", - "whatwg-mimetype": "^3.0.0", - "whatwg-url": "^12.0.1", - "ws": "^8.13.0", - "xml-name-validator": "^4.0.0" + "whatwg-encoding": "^3.1.1", + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^14.0.0", + "ws": "^8.18.0", + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=16" + "node": ">=18" }, "peerDependencies": { - "canvas": "^2.5.0" + "canvas": "^2.11.2" }, "peerDependenciesMeta": { "canvas": { @@ -4127,12 +4302,13 @@ } }, "node_modules/jsdom/node_modules/whatwg-mimetype": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", - "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/jsesc": { @@ -4752,10 +4928,11 @@ } }, "node_modules/nwsapi": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz", - "integrity": "sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==", - "dev": true + "version": "2.2.21", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.21.tgz", + "integrity": "sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==", + "dev": true, + "license": "MIT" }, "node_modules/object-inspect": { "version": "1.13.4", @@ -4933,12 +5110,13 @@ } }, "node_modules/parse5": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz", - "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==", + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz", + "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==", "dev": true, + "license": "MIT", "dependencies": { - "entities": "^4.4.0" + "entities": "^6.0.0" }, "funding": { "url": "https://github.com/inikulin/parse5?sponsor=1" @@ -5096,17 +5274,12 @@ "node": ">= 0.10" } }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -5127,12 +5300,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -5355,10 +5522,11 @@ } }, "node_modules/rrweb-cssom": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.6.0.tgz", - "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", - "dev": true + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.7.1.tgz", + "integrity": "sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==", + "dev": true, + "license": "MIT" }, "node_modules/run-applescript": { "version": "7.0.0", @@ -5428,6 +5596,7 @@ "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", "dev": true, + "license": "ISC", "dependencies": { "xmlchars": "^2.2.0" }, @@ -6098,7 +6267,8 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/table": { "version": "6.8.1", @@ -6230,6 +6400,26 @@ "dev": true, "license": "MIT" }, + "node_modules/tldts": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", + "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tldts-core": "^6.1.86" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.86", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", + "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "dev": true, + "license": "MIT" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -6253,39 +6443,29 @@ } }, "node_modules/tough-cookie": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz", - "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", + "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "tldts": "^6.1.32" }, "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" + "node": ">=16" } }, "node_modules/tr46": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-4.1.1.tgz", - "integrity": "sha512-2lv/66T7e5yNyhAAC4NaKe5nVavzuGJQVVtRYLyQ2OI8tsJ61PMLlelehb0wi2Hx6+hT/OJUWZcw8MjlSRnxvw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", + "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", "dev": true, + "license": "MIT", "dependencies": { - "punycode": "^2.3.0" + "punycode": "^2.3.1" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/ts-loader": { @@ -6445,16 +6625,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6499,15 +6669,16 @@ } }, "node_modules/w3c-xmlserializer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-4.0.0.tgz", - "integrity": "sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", + "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", "dev": true, + "license": "MIT", "dependencies": { - "xml-name-validator": "^4.0.0" + "xml-name-validator": "^5.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/watchpack": { @@ -6538,6 +6709,7 @@ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=12" } @@ -6915,15 +7087,16 @@ } }, "node_modules/whatwg-encoding": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", - "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", + "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", "dev": true, + "license": "MIT", "dependencies": { "iconv-lite": "0.6.3" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/whatwg-encoding/node_modules/iconv-lite": { @@ -6931,6 +7104,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -6945,16 +7119,17 @@ "dev": true }, "node_modules/whatwg-url": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-12.0.1.tgz", - "integrity": "sha512-Ed/LrqB8EPlGxjS+TrsXcpUond1mhccS3pchLhzSgPCnTimUCKj3IZE75pAs5m6heB2U2TMerKFUXheyHY+VDQ==", + "version": "14.2.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", + "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", "dev": true, + "license": "MIT", "dependencies": { - "tr46": "^4.1.1", + "tr46": "^5.1.0", "webidl-conversions": "^7.0.0" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/which": { @@ -7048,19 +7223,21 @@ } }, "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", + "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/y18n": { "version": "5.0.8", diff --git a/block-lexical-variables/package.json b/block-lexical-variables/package.json index 4420f61..e296d9c 100644 --- a/block-lexical-variables/package.json +++ b/block-lexical-variables/package.json @@ -47,13 +47,13 @@ ], "devDependencies": { "@blockly/dev-scripts": "^4.0.9", - "@blockly/dev-tools": "^7.1.6", - "blockly": "^10.4.0", + "@blockly/dev-tools": "^8.1.2", + "blockly": "^11.2.2", "chai": "^4.5.0", "mocha": "^10.2.0" }, "peerDependencies": { - "blockly": "^10.4.0" + "blockly": "^11.2.2" }, "publishConfig": {}, "engines": { From 793dc883227931831dd08a8878ae53f3f4d41e8f Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Fri, 1 Aug 2025 14:07:22 -0700 Subject: [PATCH 2/9] Fix deprecated Blockly.inputTypes https://github.com/google/blockly/commit/75007a064c1849ddc0ffadc05f7475dc63f3dd8b#diff-b0eef723c99dc1228104b3187ab5ff8c524198db8a12994fcbe099f9bef4b010L654-L655 --- block-lexical-variables/src/inputs/indented_input.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block-lexical-variables/src/inputs/indented_input.js b/block-lexical-variables/src/inputs/indented_input.js index cc9c73a..46038d5 100644 --- a/block-lexical-variables/src/inputs/indented_input.js +++ b/block-lexical-variables/src/inputs/indented_input.js @@ -19,7 +19,7 @@ export class IndentedInput extends Blockly.inputs.ValueInput { constructor(name, block) { super(name, block); this.connection = this.makeConnection(Blockly.ConnectionType.INPUT_VALUE); - this.type = Blockly.inputTypes.VALUE; + this.type = Blockly.inputs.inputTypes.VALUE; } } From 65b5c9c9aebdf1d0fd7c349979b1e62acdf7f353 Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Sun, 3 Aug 2025 17:57:40 -0700 Subject: [PATCH 3/9] Fix headless horizontal/vertical param toggle https://github.com/google/blockly/commit/5db9b5bf1174634d06c0bd8198af09f86b257776#diff-d2452865ee29274f173594ba31093a2b8845c47113f7223ca0df1933e4b3de85L273-L274 https://github.com/google/blockly/commit/5db9b5bf1174634d06c0bd8198af09f86b257776#diff-d2452865ee29274f173594ba31093a2b8845c47113f7223ca0df1933e4b3de85R288-R291 --- block-lexical-variables/src/blocks/procedures.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/block-lexical-variables/src/blocks/procedures.js b/block-lexical-variables/src/blocks/procedures.js index 7c87e63..0c5fb7d 100644 --- a/block-lexical-variables/src/blocks/procedures.js +++ b/block-lexical-variables/src/blocks/procedures.js @@ -250,7 +250,11 @@ Blockly.Blocks['procedures_defnoreturn'] = { // horizontal -> vertical params in procedure decl doesn't handle body tag // appropriately! for (let i = 0; i < this.inputList.length; i++) { - this.inputList[i].init(); + if (this.inputList[i].sourceBlock.rendered) { + this.inputList[i].init(); + } else { + this.inputList[i].initModel(); + } } if (this.rendered) { this.render(); From 92ad383ee8375a04b6da653b7942897b83a47e82 Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Tue, 5 Aug 2025 10:21:38 -0700 Subject: [PATCH 4/9] Fix Blockly.Drawer not found in blocky/core https://github.com/ewpatton/appinventor-sources/commit/6c74e5bc9d6881a5e187ce947a1e1513bd8b28d9#diff-179ada7bc9ef841c7b52e24fe50097e0ee0aad37f7f1e4d19fec4f5323ef9785L24 --- block-lexical-variables/src/procedure_utils.js | 1 - 1 file changed, 1 deletion(-) diff --git a/block-lexical-variables/src/procedure_utils.js b/block-lexical-variables/src/procedure_utils.js index 996f864..0f31c07 100644 --- a/block-lexical-variables/src/procedure_utils.js +++ b/block-lexical-variables/src/procedure_utils.js @@ -25,7 +25,6 @@ export const onChange = function(procedureId) { let workspace = this.block.workspace.getTopWorkspace(); // [lyn, 10/14/13] .editable is undefined on blocks. Changed to .editable_ if (!this.block.isEditable()) { - workspace = Blockly.Drawer.flyout_.workspace_; return; } From 64af1e90949ca2724ef5edcb1a4b0e69ef967006 Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Fri, 29 Aug 2025 15:18:50 -0700 Subject: [PATCH 5/9] Fix init/render timing issues https://github.com/mit-cml/blockly-plugins/pull/68#issuecomment-3178836697 https://github.com/google/blockly/pull/7777 https://github.com/google/blockly/issues/6786 https://developers.google.com/blockly/guides/contribute/core-architecture/render-management Co-Authored-By: TannerGabriel <40315960+TannerGabriel@users.noreply.github.com> --- .../src/blocks/lexical-variables.js | 28 +---------- .../src/blocks/procedures.js | 50 +------------------ 2 files changed, 4 insertions(+), 74 deletions(-) diff --git a/block-lexical-variables/src/blocks/lexical-variables.js b/block-lexical-variables/src/blocks/lexical-variables.js index f308ba8..747b79b 100644 --- a/block-lexical-variables/src/blocks/lexical-variables.js +++ b/block-lexical-variables/src/blocks/lexical-variables.js @@ -282,16 +282,10 @@ Blockly.Blocks['local_declaration_statement'] = { // list. [lyn, 03/04/13] As of change to, Blockly 1636, there is no longer // a collapsed input at end. - // Remember last (= body) input - const bodyInput = this.inputList[this.inputList.length - 1]; // Body input // for local // declaration const numDecls = this.inputList.length - 1; - // [lyn, 07/03/14] stop rendering until block is recreated - const savedRendered = this.rendered; - this.rendered = false; - // Modify this local-in-do block according to arrangement of name blocks in // mutator editor. Remove all the local declaration inputs ... const thisBlock = this; // Grab correct object for use in thunk below @@ -305,9 +299,7 @@ Blockly.Blocks['local_declaration_statement'] = { }, ); - // Empty the inputList and recreate it, building local initializers from - // mutator - this.inputList = []; + // Build local initializers from mutator this.localNames_ = names; for (let i = 0; i < names.length; i++) { @@ -331,13 +323,7 @@ Blockly.Blocks['local_declaration_statement'] = { } // Now put back last (= body) input - this.inputList = this.inputList.concat(bodyInput); - - this.rendered = savedRendered; - if (this.rendered) { - this.initSvg(); - this.render(); - } + this.moveInputBefore(this.bodyInputName); }, // [lyn, 10/27/13] Introduced this to correctly handle renaming of mutatorarg // in open mutator when procedure parameter flydown name is edited. @@ -421,17 +407,7 @@ Blockly.Blocks['local_declaration_statement'] = { // Reconstruct inputs only if local list has changed if (!LexicalVariable.stringListsEqual(this.localNames_, newLocalNames)) { - // Switch off rendering while the block is rebuilt. - // var savedRendered = this.rendered; - // this.rendered = false; - this.updateDeclarationInputs_(newLocalNames, initializers); - - // Restore rendering and show the changes. - // this.rendered = savedRendered; - // if (this.rendered) { - // this.render(); - // } } }, saveConnections: function(containerBlock) { diff --git a/block-lexical-variables/src/blocks/procedures.js b/block-lexical-variables/src/blocks/procedures.js index 0c5fb7d..aaaf95b 100644 --- a/block-lexical-variables/src/blocks/procedures.js +++ b/block-lexical-variables/src/blocks/procedures.js @@ -166,17 +166,6 @@ Blockly.Blocks['procedures_defnoreturn'] = { } const procName = this.getFieldValue('NAME'); - // save the first two input lines and the last input line - // to be re added to the block later - // var firstInput = this.inputList[0]; - // [lyn, 10/24/13] need to reconstruct first input - - // Body of procedure - const bodyInput = this.inputList[this.inputList.length - 1]; - - // stop rendering until block is recreated - const savedRendered = this.rendered; - this.rendered = false; // remove first input // console.log("updateParams_: remove input HEADER"); @@ -213,9 +202,6 @@ Blockly.Blocks['procedures_defnoreturn'] = { } } - // empty the inputList then recreate it - this.inputList = []; - // console.log("updateParams_: create input HEADER"); const headerInput = this.createHeader(procName); // const headerInput = @@ -241,24 +227,9 @@ Blockly.Blocks['procedures_defnoreturn'] = { } } - // put the last two arguments back - this.inputList = this.inputList.concat(bodyInput); + // Now put back last (= body) input + this.moveInputBefore(this.bodyInputName); - this.rendered = savedRendered; - // [lyn, 10/28/13] I thought this rerendering was unnecessary. But I was - // wrong! Without it, get bug noticed by Andrew in which toggling - // horizontal -> vertical params in procedure decl doesn't handle body tag - // appropriately! - for (let i = 0; i < this.inputList.length; i++) { - if (this.inputList[i].sourceBlock.rendered) { - this.inputList[i].init(); - } else { - this.inputList[i].initModel(); - } - } - if (this.rendered) { - this.render(); - } // set in BlocklyPanel.java on successful load if (this.workspace.loadCompleted) { Blockly.Procedures.mutateCallers(this); @@ -893,9 +864,6 @@ Blockly.Blocks['procedures_callnoreturn'] = { this.quarkArguments_ = []; } } - // Switch off rendering while the block is rebuilt. - const savedRendered = this.rendered; - this.rendered = false; // Update the quarkConnections_ with existing connections. for (x = 0; this.getInput('ARG' + x); x++) { input = this.getInput('ARG' + x); @@ -933,20 +901,6 @@ Blockly.Blocks['procedures_callnoreturn'] = { } } } - // Restore rendering and show the changes. - this.rendered = savedRendered; - if (!this.workspace.rendered) { - // workspace hasn't been rendered yet, so other connections may - // not yet exist. - return; - } - // Initialize the new inputs. - for (x = 0; x < this.arguments_.length; x++) { - this.getInput('ARG' + x).init(); - } - if (this.rendered) { - this.render(); - } }, mutationToDom: function() { // Save the name and arguments (none of which are editable). From 9ebcae2e6ea366662baf268c34d217bde055137c Mon Sep 17 00:00:00 2001 From: TannerGabriel Date: Sun, 31 Aug 2025 01:29:18 +0200 Subject: [PATCH 6/9] Fix block warning icon https://github.com/google/blockly/commit/75007a064c1849ddc0ffadc05f7475dc63f3dd8b#diff-bb0de0069443e7577f62ffa96e6b51c5fafd06703f50c3eed6eb616ac87467bfL118-L124 https://developers.google.com/blockly/reference/js/blockly.blocksvg_class.setwarningtext_1_method.md --- block-lexical-variables/src/warningHandler.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/block-lexical-variables/src/warningHandler.js b/block-lexical-variables/src/warningHandler.js index cefba47..fa3a6d9 100644 --- a/block-lexical-variables/src/warningHandler.js +++ b/block-lexical-variables/src/warningHandler.js @@ -73,10 +73,8 @@ export default class WarningHandler { } } - // remove the warning icon, if there is one - if (block.warning) { - block.setWarningText(null); - } + // remove the warning icon + block.setWarningText(null); if (block.hasWarning) { block.hasWarning = false; } From 0e66f920e4c08be731adad6986cfc3ff4f10c30c Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Mon, 1 Sep 2025 18:08:53 -0700 Subject: [PATCH 7/9] Fix renamed editable_ https://github.com/google/blockly/commit/61bbd7dbf6de1306986389a72f7a14fd7641b9ba#diff-3b78eb431743f14de69af3dbc7fa1d3d158299c58ee01e47c05c33dd205165fbL191-R191 https://github.com/google/blockly/blob/blockly-v11.2.2/core/block.ts#L921-L928 --- block-lexical-variables/src/blocks/procedures.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block-lexical-variables/src/blocks/procedures.js b/block-lexical-variables/src/blocks/procedures.js index aaaf95b..765cad7 100644 --- a/block-lexical-variables/src/blocks/procedures.js +++ b/block-lexical-variables/src/blocks/procedures.js @@ -415,7 +415,7 @@ Blockly.Blocks['procedures_defnoreturn'] = { }, dispose: function(...args) { const name = this.getFieldValue('NAME'); - const editable = this.editable_; + const editable = this.isOwnEditable(); const workspace = this.workspace; // This needs to happen first so that the Blockly events will be replayed From 211d5ae368671236e01586f1febee9eecfc283b4 Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Tue, 2 Sep 2025 10:33:22 -0700 Subject: [PATCH 8/9] Fix block warning icon (revert comment) setWarningText checks for warning icon https://github.com/google/blockly/blob/blockly-v11.2.2/core/block_svg.ts#L972 --- block-lexical-variables/src/warningHandler.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block-lexical-variables/src/warningHandler.js b/block-lexical-variables/src/warningHandler.js index fa3a6d9..df3effd 100644 --- a/block-lexical-variables/src/warningHandler.js +++ b/block-lexical-variables/src/warningHandler.js @@ -73,7 +73,7 @@ export default class WarningHandler { } } - // remove the warning icon + // remove the warning icon, if there is one block.setWarningText(null); if (block.hasWarning) { block.hasWarning = false; From e65356095abc726fda8e1d9e409ccb4f7d8107f0 Mon Sep 17 00:00:00 2001 From: Michael Gallagher Date: Wed, 3 Sep 2025 18:07:25 -0700 Subject: [PATCH 9/9] Fix render & code generation on dropdown change Blocky 10 caused `this.setValue(text)` to stack overflow so it was replaced with `this.doValueUpdate_(text)` which stops render & code generation. It can be removed as it's inside the field validator so the value will be set after successful validation. https://github.com/ewpatton/appinventor-sources/commit/bd2cec91180ee9c24682772452922831e1315b60 https://github.com/ewpatton/appinventor-sources/commit/6c74e5bc9d6881a5e187ce947a1e1513bd8b28d9#diff-179ada7bc9ef841c7b52e24fe50097e0ee0aad37f7f1e4d19fec4f5323ef9785R41 https://developers.google.com/blockly/guides/create-custom-blocks/fields/validators --- block-lexical-variables/src/procedure_utils.js | 1 - 1 file changed, 1 deletion(-) diff --git a/block-lexical-variables/src/procedure_utils.js b/block-lexical-variables/src/procedure_utils.js index 0f31c07..7c5d174 100644 --- a/block-lexical-variables/src/procedure_utils.js +++ b/block-lexical-variables/src/procedure_utils.js @@ -42,7 +42,6 @@ export const onChange = function(procedureId) { // return; } } - this.doValueUpdate_(text); // If we're just in the midst of renaming the procedure, we don't have (or want) to // add the new arguments if (!this.block.isRenaming) {