From f464fbf2dc6a80b4ab9f580ee949be741c308b09 Mon Sep 17 00:00:00 2001 From: Kyle D McCormick Date: Mon, 10 Aug 2026 14:52:06 -0400 Subject: [PATCH 1/9] build: Regenerate package-lock.json for pdf-block Vitest deps The src/xblock_pdf/js_tests workspace (pdf-block) declares vitest, vite, @vitest/browser-playwright, and typescript as devDependencies, but package-lock.json was not regenerated to include their dependency tree. This left the lock out of sync with the workspace's package.json, so `npm ci` would fail. Regenerate the lock to add the missing (dev-only) transitive dependencies. Co-Authored-By: Claude Opus 4.8 (1M context) --- package-lock.json | 4027 ++++++++++++++------------------------------- 1 file changed, 1202 insertions(+), 2825 deletions(-) diff --git a/package-lock.json b/package-lock.json index c3092f03..747416f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,7 @@ }, "node_modules/@babel/code-frame": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", "dependencies": { "@babel/helper-validator-identifier": "^7.28.5", "js-tokens": "^4.0.0", @@ -24,16 +23,14 @@ }, "node_modules/@babel/compat-data": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", - "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", - "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -59,31 +56,9 @@ "url": "https://opencollective.com/babel" } }, - "node_modules/@babel/core/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/core/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/@babel/generator": { "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "license": "MIT", "dependencies": { "@babel/parser": "^7.29.0", "@babel/types": "^7.29.0", @@ -97,8 +72,7 @@ }, "node_modules/@babel/helper-compilation-targets": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", - "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "license": "MIT", "dependencies": { "@babel/compat-data": "^7.28.6", "@babel/helper-validator-option": "^7.27.1", @@ -112,16 +86,14 @@ }, "node_modules/@babel/helper-globals": { "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "license": "MIT", "dependencies": { "@babel/traverse": "^7.28.6", "@babel/types": "^7.28.6" @@ -132,8 +104,7 @@ }, "node_modules/@babel/helper-module-transforms": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "license": "MIT", "dependencies": { "@babel/helper-module-imports": "^7.28.6", "@babel/helper-validator-identifier": "^7.28.5", @@ -148,44 +119,39 @@ }, "node_modules/@babel/helper-string-parser": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", - "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "version": "7.29.2", + "license": "MIT", "dependencies": { "@babel/template": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/types": "^7.29.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.2", + "license": "MIT", "dependencies": { "@babel/types": "^7.29.0" }, @@ -198,8 +164,7 @@ }, "node_modules/@babel/template": { "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.28.6", "@babel/parser": "^7.28.6", @@ -211,8 +176,7 @@ }, "node_modules/@babel/traverse": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "license": "MIT", "dependencies": { "@babel/code-frame": "^7.29.0", "@babel/generator": "^7.29.0", @@ -226,31 +190,9 @@ "node": ">=6.9.0" } }, - "node_modules/@babel/traverse/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/@babel/traverse/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "node_modules/@babel/types": { "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "license": "MIT", "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" @@ -261,98 +203,34 @@ }, "node_modules/@bazel/runfiles": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/@bazel/runfiles/-/runfiles-6.5.0.tgz", - "integrity": "sha512-RzahvqTkfpY2jsDxo8YItPX+/iZ6hbiikw1YhE0bA9EKBR5Og8Pa6FHn9PO9M0zaXRVsr0GFQLKbB/0rzy9SzA==", "dev": true, + "license": "Apache-2.0", "peer": true }, "node_modules/@blazediff/core": { "version": "1.9.1", - "resolved": "https://registry.npmjs.org/@blazediff/core/-/core-1.9.1.tgz", - "integrity": "sha512-ehg3jIkYKulZh+8om/O25vkvSsXXwC+skXmyA87FFx6A/45eqOkZsBltMw/TVteb0mloiGT8oGRTcjRAz66zaA==", "dev": true, "license": "MIT" }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.0.0" } }, - "node_modules/@emnapi/core": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", - "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/wasi-threads": "1.2.1", - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/core/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, - "node_modules/@emnapi/runtime": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", - "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/runtime/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, - "node_modules/@emnapi/wasi-threads": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", - "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@emnapi/wasi-threads/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "version": "0.1.6", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", - "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" @@ -360,8 +238,7 @@ }, "node_modules/@jridgewell/remapping": { "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.24" @@ -369,16 +246,14 @@ }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", - "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { "version": "0.3.11", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz", - "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==", + "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25" @@ -386,41 +261,18 @@ }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", - "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==" + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", - "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@napi-rs/wasm-runtime": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", - "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@tybys/wasm-util": "^0.10.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/Brooooooklyn" - }, - "peerDependencies": { - "@emnapi/core": "^1.7.1", - "@emnapi/runtime": "^1.7.1" - } - }, "node_modules/@oxc-project/types": { - "version": "0.133.0", - "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.133.0.tgz", - "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "version": "0.143.0", "dev": true, "license": "MIT", "funding": { @@ -429,9 +281,8 @@ }, "node_modules/@parcel/watcher": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.6.tgz", - "integrity": "sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==", "hasInstallScript": true, + "license": "MIT", "optional": true, "dependencies": { "detect-libc": "^2.0.3", @@ -462,32 +313,12 @@ "@parcel/watcher-win32-x64": "2.5.6" } }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz", - "integrity": "sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@parcel/watcher-darwin-arm64": { "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz", - "integrity": "sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==", "cpu": [ "arm64" ], + "license": "MIT", "optional": true, "os": [ "darwin" @@ -500,243 +331,13 @@ "url": "https://opencollective.com/parcel" } }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz", - "integrity": "sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz", - "integrity": "sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz", - "integrity": "sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz", - "integrity": "sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz", - "integrity": "sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz", - "integrity": "sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz", - "integrity": "sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz", - "integrity": "sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz", - "integrity": "sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz", - "integrity": "sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz", - "integrity": "sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, "node_modules/@polka/url": { "version": "1.0.0-next.29", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.29.tgz", - "integrity": "sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==", "dev": true, "license": "MIT" }, - "node_modules/@rolldown/binding-android-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", - "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/binding-darwin-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", - "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "version": "1.2.3", "cpu": [ "arm64" ], @@ -750,284 +351,18 @@ "node": "^20.19.0 || >=22.12.0" } }, - "node_modules/@rolldown/binding-darwin-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", - "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-freebsd-x64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", - "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm-gnueabihf": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", - "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", - "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-arm64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", - "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-ppc64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", - "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", - "cpu": [ - "ppc64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-s390x-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", - "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", - "cpu": [ - "s390x" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-gnu": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", - "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "glibc" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-linux-x64-musl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", - "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", - "cpu": [ - "x64" - ], - "dev": true, - "libc": [ - "musl" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-openharmony-arm64": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", - "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-wasm32-wasi": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", - "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", - "cpu": [ - "wasm32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@emnapi/core": "1.10.0", - "@emnapi/runtime": "1.10.0", - "@napi-rs/wasm-runtime": "^1.1.4" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-arm64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", - "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, - "node_modules/@rolldown/binding-win32-x64-msvc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", - "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": "^20.19.0 || >=22.12.0" - } - }, "node_modules/@rolldown/pluginutils": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", - "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", "dev": true, "license": "MIT" }, "node_modules/@standard-schema/spec": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz", - "integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==", "dev": true, "license": "MIT" }, - "node_modules/@tybys/wasm-util": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", - "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "tslib": "^2.4.0" - } - }, - "node_modules/@tybys/wasm-util/node_modules/tslib": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", - "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "dev": true, - "license": "0BSD", - "optional": true - }, "node_modules/@types/chai": { "version": "5.2.3", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", - "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", "dependencies": { @@ -1037,15 +372,12 @@ }, "node_modules/@types/deep-eql": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/deep-eql/-/deep-eql-4.0.2.tgz", - "integrity": "sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==", "dev": true, "license": "MIT" }, "node_modules/@types/eslint": { "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", "dependencies": { "@types/estree": "*", "@types/json-schema": "*" @@ -1053,8 +385,7 @@ }, "node_modules/@types/eslint-scope": { "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", "dependencies": { "@types/eslint": "*", "@types/estree": "*" @@ -1062,14 +393,12 @@ }, "node_modules/@types/estree": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==" + "license": "MIT" }, "node_modules/@types/glob": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", "dev": true, + "license": "MIT", "dependencies": { "@types/minimatch": "*", "@types/node": "*" @@ -1077,44 +406,33 @@ }, "node_modules/@types/jquery": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-4.0.1.tgz", - "integrity": "sha512-9a59A/tycXgYuPABcp6/3spSShn0NT2UOM4EfHvMumjYi4lJWTsK5SZWjhx3yRm9IHGCeWXdV2YfNsrWrft/CA==", "dev": true, "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "license": "MIT" }, "node_modules/@types/minimatch": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-6.0.0.tgz", - "integrity": "sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==", - "deprecated": "This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.", + "version": "5.1.2", "dev": true, - "dependencies": { - "minimatch": "*" - } + "license": "MIT" }, "node_modules/@types/node": { - "version": "25.3.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz", - "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==", + "version": "25.6.0", + "license": "MIT", "dependencies": { - "undici-types": "~7.18.0" + "undici-types": "~7.19.0" } }, "node_modules/@vitest/browser": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/browser/-/browser-4.1.8.tgz", - "integrity": "sha512-u21VzX07HzlJYpFgkxmjEXar/tG2UqWGgyGG/46SrrPc7rSdCTPw5vuowopO9CIqF8UCUQzDFdbVnNpw6N0BfQ==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { "@blazediff/core": "1.9.1", - "@vitest/mocker": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/mocker": "4.1.10", + "@vitest/utils": "4.1.10", "magic-string": "^0.30.21", "pngjs": "^7.0.0", "sirv": "^3.0.2", @@ -1125,66 +443,40 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "vitest": "4.1.8" + "vitest": "4.1.10" } }, "node_modules/@vitest/browser-playwright": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/browser-playwright/-/browser-playwright-4.1.8.tgz", - "integrity": "sha512-SR7FqgegaexEg73xvf3ArtygXegagMdXnL0EZMpxrWvvhQxvicD/E8p0ib0J91riPRtQUViyh67Xjw3NqvyhVg==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { - "@vitest/browser": "4.1.8", - "@vitest/mocker": "4.1.8", + "@vitest/browser": "4.1.10", + "@vitest/mocker": "4.1.10", "tinyrainbow": "^3.1.0" }, "funding": { "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "playwright": "*", - "vitest": "4.1.8" - }, - "peerDependenciesMeta": { - "playwright": { - "optional": false - } - } - }, - "node_modules/@vitest/browser/node_modules/ws": { - "version": "8.21.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", - "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true + "playwright": "*", + "vitest": "4.1.10" + }, + "peerDependenciesMeta": { + "playwright": { + "optional": false } } }, "node_modules/@vitest/expect": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-4.1.8.tgz", - "integrity": "sha512-h3nDO677RDLEGlBxyQ5CW8RlMThSKSRLUePLOx09gNIWRL40edgA1GCZSZgf1W55MFAG6/Sw14KeaAnqv0NKdQ==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { "@standard-schema/spec": "^1.1.0", "@types/chai": "^5.2.2", - "@vitest/spy": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", "chai": "^6.2.2", "tinyrainbow": "^3.1.0" }, @@ -1193,13 +485,11 @@ } }, "node_modules/@vitest/mocker": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-4.1.8.tgz", - "integrity": "sha512-LEiN/xe4OSIbKe9HQIp5OC24agGD9J5CnmMgsLohVVoOPWL9a2sBoR6VBx43jQZb7Kr1l4RCuyCJzcAa0+dojw==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "4.1.8", + "@vitest/spy": "4.1.10", "estree-walker": "^3.0.3", "magic-string": "^0.30.21" }, @@ -1220,9 +510,7 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-4.1.8.tgz", - "integrity": "sha512-9GasEBxpZ1VYIpqHf/0+YGg121uSNwCKOJqIrTwWP/TB7DmFCiaBpNl3aPZzoLWfWkuqhbH8vJIVobZkvdo2cA==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { @@ -1233,13 +521,11 @@ } }, "node_modules/@vitest/runner": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-4.1.8.tgz", - "integrity": "sha512-EmVxeBAfMJvycdjd6Hm+RbFBbA9fKvo0Kx37hNpBYoYeavH3RNsBXWDooR1mgD52dCrxIIuP7UotpfiwOikvcg==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "4.1.8", + "@vitest/utils": "4.1.10", "pathe": "^2.0.3" }, "funding": { @@ -1247,14 +533,12 @@ } }, "node_modules/@vitest/snapshot": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-4.1.8.tgz", - "integrity": "sha512-acfZboRmAIf05DEKcBQy33VXojFJjtUdLyo7oOmV9kebb2xdU01UknNiPuPZoJZQyO7DF0gZdTGTpeAzET9QPQ==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/pretty-format": "4.1.10", + "@vitest/utils": "4.1.10", "magic-string": "^0.30.21", "pathe": "^2.0.3" }, @@ -1263,9 +547,7 @@ } }, "node_modules/@vitest/spy": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-4.1.8.tgz", - "integrity": "sha512-6EevtBp6OZOPF7bmz36HrGMeP3txgVSrgebWxHOafDXGkhIzfXK14f8KF6MuFfgXXUeHxmpD3BQxkV00/3s5mA==", + "version": "4.1.10", "dev": true, "license": "MIT", "funding": { @@ -1273,13 +555,11 @@ } }, "node_modules/@vitest/utils": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-4.1.8.tgz", - "integrity": "sha512-uOJamYALNhfJ6iolExyQM40yIQwDqYnkKtQ5VCiSe17E33H0aQ/u+1GlRuz4LZBk6Mm3sg90G9hEbmEt37C1Zg==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "4.1.8", + "@vitest/pretty-format": "4.1.10", "convert-source-map": "^2.0.0", "tinyrainbow": "^3.1.0" }, @@ -1289,8 +569,7 @@ }, "node_modules/@webassemblyjs/ast": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", - "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/helper-numbers": "1.13.2", "@webassemblyjs/helper-wasm-bytecode": "1.13.2" @@ -1298,23 +577,19 @@ }, "node_modules/@webassemblyjs/floating-point-hex-parser": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", - "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==" + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", - "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==" + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", - "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==" + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", - "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", "dependencies": { "@webassemblyjs/floating-point-hex-parser": "1.13.2", "@webassemblyjs/helper-api-error": "1.13.2", @@ -1323,13 +598,11 @@ }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", - "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==" + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", - "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -1339,29 +612,25 @@ }, "node_modules/@webassemblyjs/ieee754": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==" + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", - "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -1375,8 +644,7 @@ }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", - "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-wasm-bytecode": "1.13.2", @@ -1387,8 +655,7 @@ }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", - "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-buffer": "1.14.1", @@ -1398,8 +665,7 @@ }, "node_modules/@webassemblyjs/wasm-parser": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", - "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@webassemblyjs/helper-api-error": "1.13.2", @@ -1411,8 +677,7 @@ }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", - "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", "dependencies": { "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" @@ -1420,9 +685,8 @@ }, "node_modules/@webpack-cli/configtest": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1433,9 +697,8 @@ }, "node_modules/@webpack-cli/info": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1446,9 +709,8 @@ }, "node_modules/@webpack-cli/serve": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1464,19 +726,16 @@ }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "license": "Apache-2.0" }, "node_modules/accepts": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha512-AOPopplFOUlmUugwiZUCDpOwmqvSgdCyE8iJVLWI4NcB7qfMKQN34dn5xYtlUU03XGG5egRWW4NW5gIxpa5hEA==", "dev": true, + "license": "MIT", "dependencies": { "mime-types": "~2.1.11", "negotiator": "0.6.1" @@ -1487,8 +746,7 @@ }, "node_modules/acorn": { "version": "8.16.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz", - "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1498,8 +756,7 @@ }, "node_modules/acorn-import-phases": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/acorn-import-phases/-/acorn-import-phases-1.0.4.tgz", - "integrity": "sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==", + "license": "MIT", "engines": { "node": ">=10.13.0" }, @@ -1509,14 +766,12 @@ }, "node_modules/after": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha512-QbJ0NTQ/I9DI3uSJA4cbexiwQeRAfjPScqIbSjUDd9TOrcg6pTkdgziesOqxBMBzit8vFCTwrP27t13vFOORRA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ajv": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", - "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "version": "8.20.0", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -1530,8 +785,7 @@ }, "node_modules/ajv-formats": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", - "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", "dependencies": { "ajv": "^8.0.0" }, @@ -1546,8 +800,7 @@ }, "node_modules/ajv-keywords": { "version": "5.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", - "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -1557,8 +810,7 @@ }, "node_modules/ansi-colors": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz", - "integrity": "sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA==", + "license": "MIT", "dependencies": { "ansi-wrap": "^0.1.0" }, @@ -1568,8 +820,7 @@ }, "node_modules/ansi-gray": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", - "integrity": "sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw==", + "license": "MIT", "dependencies": { "ansi-wrap": "0.1.0" }, @@ -1579,8 +830,7 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -1593,17 +843,15 @@ }, "node_modules/ansi-wrap": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", - "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/anymatch": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", - "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, + "license": "ISC", "dependencies": { "micromatch": "^2.1.5", "normalize-path": "^2.0.0" @@ -1611,9 +859,8 @@ }, "node_modules/anymatch/node_modules/normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -1623,18 +870,16 @@ }, "node_modules/append-prepend-loader": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-prepend-loader/-/append-prepend-loader-1.0.0.tgz", - "integrity": "sha512-TpqFKoWUJZgo69yFD+EZ+NBhEVAVT6LK5vgMbBEyHd65a33v/ECNq7H8THzL4eobBZaaJ21bVg5ruJeYxTSsYw==", "dev": true, + "license": "MIT", "peerDependencies": { "webpack": "*" } }, "node_modules/arr-diff": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha512-dtXTVMkh6VkEEA7OhXnN1Ecb8aAGFdZ1LFxtOCoqj4qkyOJMt7+qs6Ahdy6p/NQCPYsRSXXivhSB/J5E9jmYKA==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.0.1" }, @@ -1644,35 +889,31 @@ }, "node_modules/arr-flatten": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/arr-union": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-slice": { "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha512-rlVfZW/1Ph2SNySXwR9QYkChp8EkOEiTMO5Vwx60usw04i4nWemkm9RXmQqgkQFaLHsqLuADvjp6IfgL9l2M8Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-union": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", "dev": true, + "license": "MIT", "dependencies": { "array-uniq": "^1.0.1" }, @@ -1682,32 +923,26 @@ }, "node_modules/array-uniq": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/array-unique": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha512-G2n5bG5fSUCpnsXz4+8FUkYsGPkNfLn9YvS66U5qbTIXI2Ynnlo4Bi42bWv+omKUCqz+ejzfClwne0alJWJPhg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/arraybuffer.slice": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha512-6ZjfQaBSy6CuIH0+B0NrxMfDE5VIOCP/5gOqSpEIsaAZx9/giszzrXg6PZ7G51U/n88UmlAgYLNQ9wAnII7PJA==", "dev": true }, "node_modules/assertion-error": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz", - "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==", "dev": true, "license": "MIT", "engines": { @@ -1720,29 +955,26 @@ }, "node_modules/assign-symbols": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/async-each": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz", - "integrity": "sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg==", "dev": true, "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } - ] + ], + "license": "MIT" }, "node_modules/atob": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "dev": true, + "license": "(MIT OR Apache-2.0)", "bin": { "atob": "bin/atob.js" }, @@ -1752,8 +984,7 @@ }, "node_modules/available-typed-arrays": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "license": "MIT", "dependencies": { "possible-typed-array-names": "^1.0.0" }, @@ -1766,8 +997,7 @@ }, "node_modules/babel-loader": { "version": "9.2.1", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", - "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", + "license": "MIT", "dependencies": { "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" @@ -1782,16 +1012,13 @@ }, "node_modules/backbone": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.6.1.tgz", - "integrity": "sha512-YQzWxOrIgL6BoFnZjThVN99smKYhyEXXFyJJ2lsF1wJLyo4t+QjmkLrH8/fN22FZ4ykF70Xq7PgTugJVR4zS9Q==", + "license": "MIT", "dependencies": { "underscore": ">=1.8.3" } }, "node_modules/backbone-associations": { "version": "0.6.2", - "resolved": "https://registry.npmjs.org/backbone-associations/-/backbone-associations-0.6.2.tgz", - "integrity": "sha512-mE9eNMy+fLbFa8Gf9WNdo3+uwjUIuNoXmGT5NNlZ7Dyu0KP3Y0FHq5OFVxJx+owlbd+olWzUFL3TdhfihcqlSA==", "dev": true, "dependencies": { "backbone": ">=1.0.0", @@ -1800,8 +1027,7 @@ }, "node_modules/backbone.paginator": { "version": "2.0.8", - "resolved": "https://registry.npmjs.org/backbone.paginator/-/backbone.paginator-2.0.8.tgz", - "integrity": "sha512-8XS2CTbjnwMbJ/3Traa1te2RPecOGbZ9tc52T89pzo6NXlVEJDFnC++dp7CQLBUZpgk3g0veX8mUbEF4wbD2NQ==", + "license": "MIT", "dependencies": { "backbone": "1.1.2 || 1.2.3 || ^1.3.2", "underscore": "^1.8.0" @@ -1809,21 +1035,18 @@ }, "node_modules/backo2": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha512-zj6Z6M7Eq+PBZ7PQxl5NT665MvJdAkzp0f60nAJ+sLaSCBPMwVak5ZegFbgVCzFcCJTKFoMizvM5Ld7+JrRJHA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/balanced-match": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/base": { "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, + "license": "MIT", "dependencies": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -1839,9 +1062,8 @@ }, "node_modules/base/node_modules/define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -1851,8 +1073,6 @@ }, "node_modules/base64-arraybuffer": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -1860,17 +1080,15 @@ }, "node_modules/base64id": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha512-rz8L+d/xByiB/vLVftPkyY215fqNrmasrcJsYkVcm4TgJNz+YXKrFaFAWibSaHkiKoSgMDCb+lipOIRQNGYesw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } }, "node_modules/baseline-browser-mapping": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz", - "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==", + "version": "2.10.24", + "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.cjs" }, @@ -1880,14 +1098,10 @@ }, "node_modules/batch": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.5.3.tgz", - "integrity": "sha512-aQgHPLH2DHpFTpBl5/GiVdNzHEqsLCSs1RiPvqkKP1+7RkNJlv71kL8/KXmvvaLqoZ7ylmvqkZhLjjAoRz8Xgw==", "dev": true }, "node_modules/better-assert": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha512-bYeph2DFlpK1XmGs6fvlLRUN29QISM3GBuUwSFsMY2XRx4AvC0WNCS57j4c/xGrK2RS24C1w3YoBOsw9fT46tQ==", "dev": true, "dependencies": { "callsite": "1.0.0" @@ -1898,26 +1112,23 @@ }, "node_modules/big.js": { "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/binary-extensions": { "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/bindings": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", "dev": true, + "license": "MIT", "optional": true, "dependencies": { "file-uri-to-path": "1.0.0" @@ -1925,21 +1136,17 @@ }, "node_modules/blob": { "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha512-YRc9zvVz4wNaxcXmiSgb9LAg7YYwqQ2xd0Sj6osfA7k/PKmIGVlnOYs3wOFdkRC9/JpQu8sGt/zHgJV7xzerfg==", "dev": true }, "node_modules/bluebird": { "version": "2.11.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", - "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", - "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "version": "1.20.5", "dev": true, + "license": "MIT", "dependencies": { "bytes": "~3.1.2", "content-type": "~1.0.5", @@ -1949,7 +1156,7 @@ "http-errors": "~2.0.1", "iconv-lite": "~0.4.24", "on-finished": "~2.4.1", - "qs": "~6.14.0", + "qs": "~6.15.1", "raw-body": "~2.5.3", "type-is": "~1.6.18", "unpipe": "~1.0.0" @@ -1959,11 +1166,21 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/bootstrap": { "version": "4.6.2", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.2.tgz", - "integrity": "sha512-51Bbp/Uxr9aTuy6ca/8FbFloBUJZLHwnhTcnjIeRn2suQWsWzcuJhGjKDB5eppVte/8oCdOL3VuwxvZDUggwGQ==", - "deprecated": "This version of Bootstrap is no longer supported. Please upgrade to the latest version.", "dev": true, "funding": [ { @@ -1975,16 +1192,16 @@ "url": "https://opencollective.com/bootstrap" } ], + "license": "MIT", "peerDependencies": { "jquery": "1.9.1 - 3", "popper.js": "^1.16.1" } }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1992,8 +1209,6 @@ }, "node_modules/braces": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha512-EIMHIv2UXHWFY2xubUGKz+hq9hNkENj4Pjvr7h58cmJgpkK2yMlKA8I484f7MSttkzVAy/lL7X9xDaILd6avzA==", "dev": true, "dependencies": { "expand-range": "^0.1.0" @@ -2003,9 +1218,7 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.2", "funding": [ { "type": "opencollective", @@ -2020,12 +1233,13 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.12", + "caniuse-lite": "^1.0.30001782", + "electron-to-chromium": "^1.5.328", + "node-releases": "^2.0.36", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -2036,9 +1250,8 @@ }, "node_modules/buffer-alloc": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", "dev": true, + "license": "MIT", "dependencies": { "buffer-alloc-unsafe": "^1.1.0", "buffer-fill": "^1.0.0" @@ -2046,35 +1259,30 @@ }, "node_modules/buffer-alloc-unsafe": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/buffer-fill": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "license": "MIT" }, "node_modules/bytes": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/cache-base": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, + "license": "MIT", "dependencies": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -2091,13 +1299,12 @@ } }, "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "version": "1.0.9", + "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" }, "engines": { @@ -2109,8 +1316,7 @@ }, "node_modules/call-bind-apply-helpers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", - "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" @@ -2121,8 +1327,7 @@ }, "node_modules/call-bound": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", - "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" @@ -2136,17 +1341,13 @@ }, "node_modules/callsite": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha512-0vdNRFXn5q+dtOqjfFtmtlI9N2eVZ7LMyEV2iKC5mEEFvSg/69Ml6b/WU2qF8W1nLRa0wiSrDT3Y5jOHZCwKPQ==", "dev": true, "engines": { "node": "*" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001770", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001770.tgz", - "integrity": "sha512-x/2CLQ1jHENRbHg5PSId2sXq1CIO1CISvwWAj027ltMVG2UNgW+w9oH2+HzgEIRFembL8bUlXtfbBHR1fCg2xw==", + "version": "1.0.30001791", "funding": [ { "type": "opencollective", @@ -2160,12 +1361,11 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/chai": { "version": "6.2.2", - "resolved": "https://registry.npmjs.org/chai/-/chai-6.2.2.tgz", - "integrity": "sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==", "dev": true, "license": "MIT", "engines": { @@ -2174,8 +1374,7 @@ }, "node_modules/chalk": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" @@ -2184,22 +1383,10 @@ "node": ">=8" } }, - "node_modules/chalk/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/chokidar": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha512-mk8fAWcRUOxY7btlLtitj3A45jOwSAxH4tOFOoEGbVsl6cL6pPMWUy7dwZ/canfj3QEdP6FHSnf/l1c6/WkzVg==", "dev": true, + "license": "MIT", "dependencies": { "anymatch": "^1.3.0", "async-each": "^1.0.0", @@ -2216,27 +1403,24 @@ }, "node_modules/chokidar/node_modules/glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^2.0.0" } }, "node_modules/chokidar/node_modules/is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/chokidar/node_modules/is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^1.0.0" }, @@ -2246,17 +1430,15 @@ }, "node_modules/chrome-trace-event": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", - "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/class-utils": { "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, + "license": "MIT", "dependencies": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -2269,9 +1451,8 @@ }, "node_modules/class-utils/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -2281,9 +1462,8 @@ }, "node_modules/class-utils/node_modules/is-descriptor": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" @@ -2294,9 +1474,8 @@ }, "node_modules/clean-webpack-plugin": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clean-webpack-plugin/-/clean-webpack-plugin-4.0.0.tgz", - "integrity": "sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==", "dev": true, + "license": "MIT", "dependencies": { "del": "^4.1.1" }, @@ -2309,8 +1488,7 @@ }, "node_modules/clone-deep": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4", "kind-of": "^6.0.2", @@ -2320,11 +1498,17 @@ "node": ">=6" } }, + "node_modules/clone-deep/node_modules/kind-of": { + "version": "6.0.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/collection-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", "dev": true, + "license": "MIT", "dependencies": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -2335,8 +1519,7 @@ }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -2346,71 +1529,58 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + "license": "MIT" }, "node_modules/color-support": { "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", - "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", + "license": "ISC", "bin": { "color-support": "bin.js" } }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/colors": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.1.90" } }, "node_modules/commander": { "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "license": "MIT" }, "node_modules/common-path-prefix": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", - "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==" + "license": "ISC" }, "node_modules/component-bind": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha512-WZveuKPeKAG9qY+FkYDeADzdHyTYdIboXS59ixDeRJL5ZhxpqUnxSOwop4FQjMsiYm3/Or8cegVbpAHNA7pHxw==", "dev": true }, "node_modules/component-emitter": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha512-jPatnhd33viNplKjqXKRkGU345p263OIWzDL2wH3LGIGp5Kojo+uXizHmOADRvhGFFTnJqX3jBAKP6vvmSDKcA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/component-inherit": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha512-w+LhYREhatpVqTESyGFg3NlP6Iu0kEKUHETY9GoZP/pQyW4mHFZuFWRUCIqVPZ36ueVLtoOEZaAqbCF2RDndaA==", "dev": true }, "node_modules/concat-map": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/connect": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "finalhandler": "1.1.2", @@ -2421,42 +1591,49 @@ "node": ">= 0.10.0" } }, + "node_modules/connect/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/content-type": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==" + "license": "MIT" }, "node_modules/cookie": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha512-+IJOX0OqlHCszo2mBUq+SrEbCj6w7Kpffqx60zYbPTFaO4+yYgRjHwcZNpWvaTylDHaV7PPmBHzSecZiMhtPgw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/copy-descriptor": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/copy-webpack-plugin": { "version": "14.0.0", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-14.0.0.tgz", - "integrity": "sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==", "dev": true, "license": "MIT", "dependencies": { @@ -2477,35 +1654,21 @@ "webpack": "^5.1.0" } }, - "node_modules/copy-webpack-plugin/node_modules/serialize-javascript": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.4.tgz", - "integrity": "sha512-DuGdB+Po43Q5Jxwpzt1lhyFSYKryqoNjQSA9M92tyw0lyHIOur+XCalOUe0KTJpyqzT8+fQ5A0Jf7vCx/NKmIg==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=20.0.0" - } - }, "node_modules/core-js": { "version": "2.6.12", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", - "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", - "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", "dev": true, - "hasInstallScript": true + "hasInstallScript": true, + "license": "MIT" }, "node_modules/core-util-is": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -2515,34 +1678,51 @@ "node": ">= 8" } }, + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/custom-event": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, + "version": "4.4.3", + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decode-uri-component": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", - "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0", "es-errors": "^1.3.0", @@ -2557,9 +1737,8 @@ }, "node_modules/define-property": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -2570,9 +1749,8 @@ }, "node_modules/del": { "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "dev": true, + "license": "MIT", "dependencies": { "@types/glob": "^7.1.1", "globby": "^6.1.0", @@ -2588,18 +1766,16 @@ }, "node_modules/depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/destroy": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -2607,24 +1783,21 @@ }, "node_modules/detect-libc": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", - "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", "devOptional": true, + "license": "Apache-2.0", "engines": { "node": ">=8" } }, "node_modules/di": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/dom-serialize": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, + "license": "MIT", "dependencies": { "custom-event": "~1.0.0", "ent": "~2.2.0", @@ -2634,8 +1807,7 @@ }, "node_modules/draggabilly": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/draggabilly/-/draggabilly-3.0.0.tgz", - "integrity": "sha512-aEs+B6prbMZQMxc9lgTpCBfyCUhRur/VFucHhIOvlvvdARTj7TcDmX/cdOUtqbjJJUh7+agyJXR5Z6IFe1MxwQ==", + "license": "MIT", "dependencies": { "get-size": "^3.0.0", "unidragger": "^3.0.0" @@ -2643,8 +1815,7 @@ }, "node_modules/dunder-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", - "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", @@ -2656,8 +1827,7 @@ }, "node_modules/edx-ui-toolkit": { "version": "1.8.7", - "resolved": "https://registry.npmjs.org/edx-ui-toolkit/-/edx-ui-toolkit-1.8.7.tgz", - "integrity": "sha512-2GF463dcfKu9u0wFY1u5fX6CUs5V3VQjcTQKt1tLzFzGoK1oGg/lRp0SYsbdcIAzCT8yQAFyrpvAQh1oGuTkiA==", + "license": "Apache-2.0", "dependencies": { "backbone": "1.6.0", "backbone.paginator": "2.0.8", @@ -2676,55 +1846,56 @@ }, "node_modules/edx-ui-toolkit/node_modules/backbone": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/backbone/-/backbone-1.6.0.tgz", - "integrity": "sha512-13PUjmsgw/49EowNcQvfG4gmczz1ximTMhUktj0Jfrjth0MVaTxehpU+qYYX4MxnuIuhmvBLC6/ayxuAGnOhbA==", + "license": "MIT", "dependencies": { "underscore": ">=1.8.3" } }, "node_modules/edx-ui-toolkit/node_modules/jquery": { "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.1.tgz", - "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" + "license": "MIT" + }, + "node_modules/edx-ui-toolkit/node_modules/requirejs": { + "version": "2.1.22", + "bin": { + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } }, "node_modules/edx-ui-toolkit/node_modules/underscore": { "version": "1.8.3", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", - "integrity": "sha512-5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==" + "license": "MIT" }, "node_modules/ee-first": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.302", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz", - "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==" + "version": "1.5.344", + "license": "ISC" }, "node_modules/emojis-list": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "license": "MIT", "engines": { "node": ">= 4" } }, "node_modules/encodeurl": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/engine.io": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.5.tgz", - "integrity": "sha512-j1DWIcktw4hRwrv6nWx++5nFH2X64x16MAG2P0Lmi5Dvdfi3I+Jhc7JKJIdAmDJa+5aZ/imHV7dWRPy2Cqjh3A==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "1.3.3", "base64id": "1.0.0", @@ -2736,9 +1907,8 @@ }, "node_modules/engine.io-client": { "version": "1.8.6", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.6.tgz", - "integrity": "sha512-6+rInQu8xU7c0fIF6RC4SRKuHVWPt8Xq0bZYS4lMrTwmhRineOlEMsU3X0zS5mHIvCgJsmpOKEX7DhihGk7j0g==", "dev": true, + "license": "MIT", "dependencies": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", @@ -2756,24 +1926,30 @@ }, "node_modules/engine.io-client/node_modules/debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", "dev": true, + "license": "MIT", "dependencies": { "ms": "0.7.2" } }, "node_modules/engine.io-client/node_modules/ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "1.1.5", + "dev": true, + "license": "MIT", + "dependencies": { + "options": ">=0.0.5", + "ultron": "1.0.x" + } }, "node_modules/engine.io-parser": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha512-3UyTJo+5Jbmr7rd3MosTAApK7BOIo4sjx8dJYSHa3Em5R3A9Y2s9GWu4JFJe6Px0VieJC0hKUA5NBytC+O7k2A==", "dev": true, + "license": "MIT", "dependencies": { "after": "0.8.2", "arraybuffer.slice": "0.0.6", @@ -2785,26 +1961,32 @@ }, "node_modules/engine.io/node_modules/debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", "dev": true, + "license": "MIT", + "dependencies": { + "ms": "0.7.2" + } + }, + "node_modules/engine.io/node_modules/ms": { + "version": "0.7.2", + "dev": true, + "license": "MIT" + }, + "node_modules/engine.io/node_modules/ws": { + "version": "1.1.5", + "dev": true, + "license": "MIT", "dependencies": { - "ms": "0.7.2" + "options": ">=0.0.5", + "ultron": "1.0.x" } }, - "node_modules/engine.io/node_modules/ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true - }, "node_modules/enhanced-resolve": { - "version": "5.19.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.19.0.tgz", - "integrity": "sha512-phv3E1Xl4tQOShqSte26C7Fl84EwUdZsyOuSSk9qtAGyyQs2s3jJzComh+Abf4g187lUUAvH+H26omrqia2aGg==", + "version": "5.21.0", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.3.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -2812,9 +1994,8 @@ }, "node_modules/ent": { "version": "2.2.2", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.2.tgz", - "integrity": "sha512-kKvD1tO6BM+oK9HzCPpUdRb4vKFQY/FPTFmurMvh6LlN68VMrdj77w8yp51/kDbpkFOS9J8w5W6zIzgM2H8/hw==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -2827,9 +2008,8 @@ }, "node_modules/envinfo": { "version": "7.21.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.21.0.tgz", - "integrity": "sha512-Lw7I8Zp5YKHFCXL7+Dz95g4CcbMEpgvqZNNq3AmlT5XAV6CgAAk6gyAMqn2zjw08K9BHfcNuKrMiCPLByGafow==", "dev": true, + "license": "MIT", "bin": { "envinfo": "dist/cli.js" }, @@ -2839,29 +2019,25 @@ }, "node_modules/es-define-property": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", - "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-errors": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==" + "version": "2.1.0", + "license": "MIT" }, "node_modules/es-object-atoms": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", "dependencies": { "es-errors": "^1.3.0" }, @@ -2871,22 +2047,19 @@ }, "node_modules/escalade": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/escape-html": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/eslint-scope": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "license": "BSD-2-Clause", "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^4.1.1" @@ -2897,8 +2070,7 @@ }, "node_modules/esrecurse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "license": "BSD-2-Clause", "dependencies": { "estraverse": "^5.2.0" }, @@ -2908,24 +2080,20 @@ }, "node_modules/esrecurse/node_modules/estraverse": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } }, "node_modules/estree-walker": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", - "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", "dev": true, "license": "MIT", "dependencies": { @@ -2934,28 +2102,24 @@ }, "node_modules/ev-emitter": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-2.1.2.tgz", - "integrity": "sha512-jQ5Ql18hdCQ4qS+RCrbLfz1n+Pags27q5TwMKvZyhp5hh2UULUYZUy1keqj6k6SYsdqIYjnmz7xyyEY0V67B8Q==" + "license": "MIT" }, "node_modules/eventemitter3": { "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/events": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", - "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", "engines": { "node": ">=0.8.x" } }, "node_modules/expand-braces": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha512-zOOsEnAhvIxxd0esCNbYG2xerGf46niZ1egS43eV7Fu4t7VIScgPXMcMabCLaPrqkzwvwo6zZipDiX3t0ILF2w==", "dev": true, + "license": "MIT", "dependencies": { "array-slice": "^0.2.3", "array-unique": "^0.2.1", @@ -2967,9 +2131,8 @@ }, "node_modules/expand-brackets": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha512-hxx03P2dJxss6ceIeri9cmYOT4SRs3Zk3afZwWpOsRqLqprhTR8u++SlC+sFGsQr7WGFPdMF7Gjc1njDLDK6UA==", "dev": true, + "license": "MIT", "dependencies": { "is-posix-bracket": "^0.1.0" }, @@ -2979,8 +2142,6 @@ }, "node_modules/expand-range": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha512-busOHJ0t7t5UcutcyNDqmaDX+1cb0XlqsAUgTlmplVv0rIqBaMcBSZRLlkDm0nxtl8O3o/EvRRrdQ/WnyPERLQ==", "dev": true, "dependencies": { "is-number": "^0.1.1", @@ -2991,9 +2152,7 @@ } }, "node_modules/expect-type": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", - "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", + "version": "1.4.0", "dev": true, "license": "Apache-2.0", "engines": { @@ -3002,31 +2161,19 @@ }, "node_modules/exports-loader": { "version": "0.6.4", - "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", - "integrity": "sha512-koRSTJrocXi3l7MKXSJPbNKUmewV2CewsWCZW+5KYxgkiZBjlEo4Z+DJuHDq4WzOi19drlyuT1xY7ADmwln8zQ==", "dependencies": { "loader-utils": "^1.0.2", "source-map": "0.5.x" } }, - "node_modules/exports-loader/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/extend": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/extend-shallow": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "license": "MIT", "dependencies": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -3037,8 +2184,7 @@ }, "node_modules/extend-shallow/node_modules/is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4" }, @@ -3048,9 +2194,8 @@ }, "node_modules/extglob": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha512-1FOj1LOwn42TMrruOHGt18HemVnbwAmAak7krWk+wa93KXxGbK+2jpezm+ytJYDaBX0/SPLZFHKM7m+tKobWGg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^1.0.0" }, @@ -3060,17 +2205,15 @@ }, "node_modules/extglob/node_modules/is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/fancy-log": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", - "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "license": "MIT", "dependencies": { "ansi-gray": "^0.1.1", "color-support": "^1.1.3", @@ -3083,13 +2226,10 @@ }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + "license": "MIT" }, "node_modules/fast-uri": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", "funding": [ { "type": "github", @@ -3099,22 +2239,21 @@ "type": "opencollective", "url": "https://opencollective.com/fastify" } - ] + ], + "license": "BSD-3-Clause" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4.9.1" } }, "node_modules/fdir": { "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12.0.0" }, @@ -3129,25 +2268,22 @@ }, "node_modules/file-uri-to-path": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "dev": true, + "license": "MIT", "optional": true }, "node_modules/filename-regex": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha512-BTCqyBaWBTsauvnHiE8i562+EdJj+oUpkqWp2R1iCoR8f6oo8STRu3of7WJJ0TqWtxN50a5YFpzYK4Jj9esYfQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/fill-range": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", - "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^2.1.0", "isobject": "^2.0.0", @@ -3161,9 +2297,8 @@ }, "node_modules/fill-range/node_modules/is-number": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha512-QUzH43Gfb9+5yckcrSA0VBDwEtDUchrk4F6tfJZQuNzDJbEDB9cZNzSfXGQ1jqmdDY/kl41lUOWM9syA8z8jlg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -3173,15 +2308,13 @@ }, "node_modules/fill-range/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/fill-range/node_modules/isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "1.0.0" }, @@ -3189,32 +2322,18 @@ "node": ">=0.10.0" } }, - "node_modules/fill-range/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/fill-range/node_modules/repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/finalhandler": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -3228,11 +2347,23 @@ "node": ">= 0.8" } }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/finalhandler/node_modules/on-finished": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -3242,8 +2373,7 @@ }, "node_modules/find-cache-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", - "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", + "license": "MIT", "dependencies": { "common-path-prefix": "^3.0.0", "pkg-dir": "^7.0.0" @@ -3255,10 +2385,9 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/find-up": { + "node_modules/find-up": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", - "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "license": "MIT", "dependencies": { "locate-path": "^7.1.0", "path-exists": "^5.0.0" @@ -3270,95 +2399,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", - "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", - "dependencies": { - "p-locate": "^6.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-limit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", - "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", - "dependencies": { - "yocto-queue": "^1.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", - "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", - "dependencies": { - "p-limit": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", - "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", - "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", - "dependencies": { - "find-up": "^6.3.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/flat": { "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "license": "BSD-3-Clause", "bin": { "flat": "cli.js" } }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", "dev": true, "funding": [ { @@ -3366,6 +2415,7 @@ "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, @@ -3377,8 +2427,7 @@ }, "node_modules/for-each": { "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", + "license": "MIT", "dependencies": { "is-callable": "^1.2.7" }, @@ -3391,18 +2440,16 @@ }, "node_modules/for-in": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/for-own": { "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", "dev": true, + "license": "MIT", "dependencies": { "for-in": "^1.0.1" }, @@ -3412,18 +2459,14 @@ }, "node_modules/formatio": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/formatio/-/formatio-1.1.1.tgz", - "integrity": "sha512-cPh7is6k3d8tIUh+pnXXuAbD/uhSXGgqLPw0UrYpv5lfdJ+MMMSjx40JNpqP7Top9Nt25YomWEiRmkHbOvkCaA==", - "deprecated": "This package is unmaintained. Use @sinonjs/formatio instead", "dependencies": { "samsam": "~1.1" } }, "node_modules/fragment-cache": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", "dev": true, + "license": "MIT", "dependencies": { "map-cache": "^0.2.2" }, @@ -3433,17 +2476,14 @@ }, "node_modules/fs.realpath": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/fsevents": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "deprecated": "Upgrade to fsevents v2 to mitigate potential security issues", "dev": true, "hasInstallScript": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -3458,32 +2498,28 @@ }, "node_modules/function-bind": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/generator-function": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz", - "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/get-intrinsic": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", - "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", @@ -3505,8 +2541,7 @@ }, "node_modules/get-proto": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", - "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" @@ -3517,24 +2552,20 @@ }, "node_modules/get-size": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-size/-/get-size-3.0.0.tgz", - "integrity": "sha512-Y8aiXLq4leR7807UY0yuKEwif5s3kbVp1nTv+i4jBeoUzByTLKkLWu/HorS6/pB+7gsB0o7OTogC8AoOOeT0Hw==" + "license": "MIT" }, "node_modules/get-value": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/glob": { "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, + "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -3552,9 +2583,8 @@ }, "node_modules/glob-base": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==", "dev": true, + "license": "MIT", "dependencies": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" @@ -3565,27 +2595,24 @@ }, "node_modules/glob-base/node_modules/glob-parent": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^2.0.0" } }, "node_modules/glob-base/node_modules/is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/glob-base/node_modules/is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^1.0.0" }, @@ -3595,9 +2622,8 @@ }, "node_modules/glob-parent": { "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, + "license": "ISC", "dependencies": { "is-glob": "^4.0.3" }, @@ -3607,14 +2633,12 @@ }, "node_modules/glob-to-regexp": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "license": "BSD-2-Clause" }, "node_modules/globby": { "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", "dev": true, + "license": "MIT", "dependencies": { "array-union": "^1.0.1", "glob": "^7.0.3", @@ -3628,17 +2652,15 @@ }, "node_modules/globby/node_modules/pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/gopd": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", - "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3648,13 +2670,11 @@ }, "node_modules/graceful-fs": { "version": "4.2.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + "license": "ISC" }, "node_modules/gulp-shell": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/gulp-shell/-/gulp-shell-0.8.0.tgz", - "integrity": "sha512-wHNCgmqbWkk1c6Gc2dOL5SprcoeujQdeepICwfQRo91DIylTE7a794VEE+leq3cE2YDoiS5ulvRfKVIEMazcTQ==", + "license": "MIT", "dependencies": { "chalk": "^3.0.0", "fancy-log": "^1.3.3", @@ -3669,31 +2689,27 @@ }, "node_modules/has-binary": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha512-k1Umb4/jrBWZbtL+QKSji8qWeoZ7ZTkXdnDXt1wxwBKAFM0//u96wDj43mBIqCIas8rDQMYyrBEvcS8hdGd4Sg==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "0.0.1" } }, "node_modules/has-cors": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha512-g5VNKdkFuUuVCP9gYfDJHjK2nqdQJ7aDLTnycnc2+RvsOQbuLdF5pm7vuE5J76SEBIQjs4kQY/BWq74JUmjbXA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/has-property-descriptors": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "license": "MIT", "dependencies": { "es-define-property": "^1.0.0" }, @@ -3703,8 +2719,7 @@ }, "node_modules/has-symbols": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", - "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3714,8 +2729,7 @@ }, "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==", + "license": "MIT", "dependencies": { "has-symbols": "^1.0.3" }, @@ -3728,9 +2742,8 @@ }, "node_modules/has-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", "dev": true, + "license": "MIT", "dependencies": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -3742,9 +2755,8 @@ }, "node_modules/has-values": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -3755,9 +2767,8 @@ }, "node_modules/has-values/node_modules/is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -3767,9 +2778,8 @@ }, "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -3779,9 +2789,8 @@ }, "node_modules/has-values/node_modules/kind-of": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -3790,9 +2799,8 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.3", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -3801,21 +2809,18 @@ } }, "node_modules/hls.js": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/hls.js/-/hls.js-1.6.15.tgz", - "integrity": "sha512-E3a5VwgXimGHwpRGV+WxRTKeSp2DW5DI5MWv34ulL3t5UNmyJWCQ1KmLEHbYzcfThfXG8amBL+fCYPneGHC4VA==" + "version": "1.6.16", + "license": "Apache-2.0" }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/http-errors": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", - "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, + "license": "MIT", "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", @@ -3833,18 +2838,16 @@ }, "node_modules/http-errors/node_modules/statuses": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", - "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/http-proxy": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, + "license": "MIT", "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -3856,9 +2859,8 @@ }, "node_modules/iconv-lite": { "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, + "license": "MIT", "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -3868,21 +2870,18 @@ }, "node_modules/immediate": { "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/immutable": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.4.tgz", - "integrity": "sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==" + "version": "5.1.5", + "license": "MIT" }, "node_modules/import-local": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", - "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, + "license": "MIT", "dependencies": { "pkg-dir": "^4.2.0", "resolve-cwd": "^3.0.0" @@ -3897,10 +2896,76 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-local/node_modules/find-up": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/locate-path": { + "version": "5.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/p-limit": { + "version": "2.3.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-local/node_modules/p-locate": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/path-exists": { + "version": "4.0.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/import-local/node_modules/pkg-dir": { + "version": "4.2.0", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/imports-loader": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.8.0.tgz", - "integrity": "sha512-kXWL7Scp8KQ4552ZcdVTeaQCZSLW+e6nJfp3cwUMB673T7Hr98Xjx5JK+ql7ADlJUvj1JS5O01RLbKoutN5QDQ==", + "license": "MIT", "dependencies": { "loader-utils": "^1.0.2", "source-map": "^0.6.1" @@ -3909,18 +2974,21 @@ "node": ">= 4" } }, + "node_modules/imports-loader/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/indexof": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==", "dev": true }, "node_modules/inflight": { "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, + "license": "ISC", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -3928,23 +2996,20 @@ }, "node_modules/inherits": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + "license": "ISC" }, "node_modules/interpret": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=10.13.0" } }, "node_modules/is-accessor-descriptor": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.1.tgz", - "integrity": "sha512-YBUanLI8Yoihw923YeFUS5fs0fF2f5TSFTNiYAAzhhDscDa3lEqYuz1pDOEP5KvX94I9ey3vsqjJcLVFVU+3QA==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -3954,8 +3019,7 @@ }, "node_modules/is-arguments": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", - "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -3969,9 +3033,8 @@ }, "node_modules/is-binary-path": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^1.0.0" }, @@ -3981,14 +3044,12 @@ }, "node_modules/is-buffer": { "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -3998,9 +3059,8 @@ }, "node_modules/is-core-module": { "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.2" }, @@ -4013,9 +3073,8 @@ }, "node_modules/is-data-descriptor": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.1.tgz", - "integrity": "sha512-bc4NlCDiCr28U4aEsQ3Qs2491gVq4V8G7MQyws968ImqjKuYtTJXrl7Vq7jsN7Ly/C3xj5KWFrY7sHNeDkAzXw==", "dev": true, + "license": "MIT", "dependencies": { "hasown": "^2.0.0" }, @@ -4025,9 +3084,8 @@ }, "node_modules/is-descriptor": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.3.tgz", - "integrity": "sha512-JCNNGbwWZEVaSPtS45mdtrneRWJFp07LLmykxeFV5F6oBvNF8vHSfJuJgoT472pSfk+Mf8VnlrspaFBHWM8JAw==", "dev": true, + "license": "MIT", "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" @@ -4038,9 +3096,8 @@ }, "node_modules/is-docker": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", "dev": true, + "license": "MIT", "bin": { "is-docker": "cli.js" }, @@ -4053,18 +3110,16 @@ }, "node_modules/is-dotfile": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-equal-shallow": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha512-0EygVC5qPvIyb+gSz7zdD5/AAoS6Qrx1e//6N4yv4oNm30kqvdmG66oZFWVlQHUWe5OjP08FuTw2IdT0EOTcYA==", "dev": true, + "license": "MIT", "dependencies": { "is-primitive": "^2.0.0" }, @@ -4074,26 +3129,23 @@ }, "node_modules/is-extendable": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "devOptional": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-generator-function": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz", - "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.4", "generator-function": "^2.0.0", @@ -4110,9 +3162,8 @@ }, "node_modules/is-glob": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "devOptional": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -4122,8 +3173,6 @@ }, "node_modules/is-number": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha512-la5kPULwIgkSSaZj9w7/A1uHqOBAgOhDUKQ5CkfL8LZ4Si6r4+2D0hI6b4o60MW4Uj2yNJARWIZUDPxlvOYQcw==", "dev": true, "engines": { "node": ">=0.10.0" @@ -4131,18 +3180,16 @@ }, "node_modules/is-path-cwd": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/is-path-in-cwd": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "dev": true, + "license": "MIT", "dependencies": { "is-path-inside": "^2.1.0" }, @@ -4152,9 +3199,8 @@ }, "node_modules/is-path-inside": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "dev": true, + "license": "MIT", "dependencies": { "path-is-inside": "^1.0.2" }, @@ -4164,8 +3210,7 @@ }, "node_modules/is-plain-object": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -4175,26 +3220,23 @@ }, "node_modules/is-posix-bracket": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha512-Yu68oeXJ7LeWNmZ3Zov/xg/oDBnBK2RNxwYY1ilNJX+tKKZqgPK+qOn/Gs9jEu66KDY9Netf5XLKNGzas/vPfQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-primitive": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha512-N3w1tFaRfk3UrPfqeRyD+GYDASU3W5VinKhlORy8EWVf/sIdDL9GAcew85XmktCfH+ngG7SRXEVDoO18WMdB/Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-regex": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "gopd": "^1.2.0", @@ -4210,8 +3252,7 @@ }, "node_modules/is-typed-array": { "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", "dependencies": { "which-typed-array": "^1.1.16" }, @@ -4224,18 +3265,16 @@ }, "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/is-wsl": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "dev": true, + "license": "MIT", "dependencies": { "is-docker": "^2.0.0" }, @@ -4245,15 +3284,13 @@ }, "node_modules/isarray": { "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/isbinaryfile": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", "dev": true, + "license": "MIT", "dependencies": { "buffer-alloc": "^1.2.0" }, @@ -4263,32 +3300,28 @@ }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/isobject": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", - "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-instrument": { "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "@babel/core": "^7.12.3", "@babel/parser": "^7.14.7", @@ -4302,9 +3335,8 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", - "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", @@ -4314,23 +3346,10 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/istanbul-lib-source-maps": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "debug": "^4.1.1", "istanbul-lib-coverage": "^3.0.0", @@ -4340,34 +3359,18 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/debug": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", - "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "node_modules/istanbul-lib-source-maps/node_modules/source-map": { + "version": "0.6.1", "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, + "license": "BSD-3-Clause", "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } + "node": ">=0.10.0" } }, - "node_modules/istanbul-lib-source-maps/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, "node_modules/istanbul-reports": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz", - "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" @@ -4378,9 +3381,8 @@ }, "node_modules/jasmine-core": { "version": "2.6.4", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz", - "integrity": "sha512-HUYBYi/hlSnCIr8QH9xuDBJUAzSHS0El3HxTomovIQcNxtbNhoOtKwpEZaB/jq3sfW/qyhqwW/VDUtoB2RZ4Tg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jasmine-jquery": { "version": "2.1.1", @@ -4391,8 +3393,7 @@ }, "node_modules/jest-worker": { "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -4402,30 +3403,38 @@ "node": ">= 10.13.0" } }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/jquery": { "version": "2.2.4", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-2.2.4.tgz", - "integrity": "sha512-lBHj60ezci2u1v2FqnZIraShGgEXq35qCzMv4lITyHGppTnA13rwR0MgwyNJh9TnDs3aXUvd1xjAotfraMHX/Q==", - "deprecated": "This version is deprecated. Please upgrade to the latest version or find support at https://www.herodevs.com/support/jquery-nes." + "license": "MIT" }, "node_modules/jquery-ui": { "version": "1.14.2", - "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.14.2.tgz", - "integrity": "sha512-1gSl7PUjyipa2adSr780Ujk16faicrV7PjPPzPtvWk7tTqBnsqp67NNV9jZK2+BIxUPXWSnIUU/LBCgwgGZE+Q==", "dev": true, + "license": "MIT", "dependencies": { "jquery": ">=1.12.0 <5.0.0" } }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + "license": "MIT" }, "node_modules/jsesc": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", - "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, @@ -4433,27 +3442,17 @@ "node": ">=6" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" - }, "node_modules/json-schema-traverse": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + "license": "MIT" }, "node_modules/json3": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha512-I5YLeauH3rIaE99EE++UeH2M2gSYo8/2TqDac7oZEH6D/DSQ4Woa628Qrfj1X9/OY5Mk5VvIDQaKCDchXaKrmA==", - "deprecated": "Please use the native JSON object instead of JSON 3", "dev": true }, "node_modules/json5": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", "bin": { "json5": "lib/cli.js" }, @@ -4463,9 +3462,8 @@ }, "node_modules/jszip": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "dev": true, + "license": "(MIT OR GPL-3.0-or-later)", "peer": true, "dependencies": { "lie": "~3.3.0", @@ -4476,16 +3474,14 @@ }, "node_modules/jszip/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/jszip/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "core-util-is": "~1.0.0", @@ -4497,18 +3493,10 @@ "util-deprecate": "~1.0.1" } }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "peer": true - }, "node_modules/jszip/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "~5.1.0" @@ -4516,9 +3504,8 @@ }, "node_modules/karma": { "version": "0.13.22", - "resolved": "https://registry.npmjs.org/karma/-/karma-0.13.22.tgz", - "integrity": "sha512-A9/7e/IzHUkTcfjnTy5Wzo2P5wPuf7+QZh1JzNdTpYA0AN/vSrxfFjPKtKC3jRYJFZMJ7S1I9L2LItaJS1XMSg==", "dev": true, + "license": "MIT", "dependencies": { "batch": "^0.5.3", "bluebird": "^2.9.27", @@ -4553,30 +3540,16 @@ }, "node_modules/karma-chrome-launcher": { "version": "3.2.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.2.0.tgz", - "integrity": "sha512-rE9RkUPI7I9mAxByQWkGJFXfFD6lE4gC5nPuZdobf/QdTEJI6EU4yIay/cfU/xV4ZxlM5JiTv7zWYgA64NpS5Q==", "dev": true, + "license": "MIT", "dependencies": { "which": "^1.2.1" } }, - "node_modules/karma-chrome-launcher/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/karma-coverage": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/karma-coverage/-/karma-coverage-2.2.1.tgz", - "integrity": "sha512-yj7hbequkQP2qOSb20GuNSIyE//PgJWHwC2IydLE6XRtsnaflv+/OSGNssPjobYUlhVVagy99TQpqUt3vAUG7A==", "dev": true, + "license": "MIT", "dependencies": { "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-instrument": "^5.1.0", @@ -4591,9 +3564,8 @@ }, "node_modules/karma-firefox-launcher": { "version": "2.1.3", - "resolved": "https://registry.npmjs.org/karma-firefox-launcher/-/karma-firefox-launcher-2.1.3.tgz", - "integrity": "sha512-LMM2bseebLbYjODBOVt7TCPP9OI2vZIXCavIXhkO9m+10Uj5l7u/SKoeRmYx8FYHTVGZSpk6peX+3BMHC1WwNw==", "dev": true, + "license": "MIT", "dependencies": { "is-wsl": "^2.2.0", "which": "^3.0.0" @@ -4601,9 +3573,8 @@ }, "node_modules/karma-firefox-launcher/node_modules/which": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", - "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, @@ -4616,18 +3587,16 @@ }, "node_modules/karma-jasmine": { "version": "0.3.8", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-0.3.8.tgz", - "integrity": "sha512-EDNIM4f9FV17XXoF+Rzfw+6uPajd7tOAfEFwe7PIyNVQrM3l1V5OJj2167JDY9KmLDIK/MQZX7tKkK1jVYlfmw==", "dev": true, + "license": "MIT", "peerDependencies": { "jasmine-core": "*" } }, "node_modules/karma-jasmine-html-reporter": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", - "integrity": "sha512-AHInTzedmNkyP8ue67p8lTy7DM6YUBfOX5VC3oexaUA0gY0L/2NErkl+aTd4QT9LYqg0VHTj6ie0LbMyulOwAw==", "dev": true, + "license": "MIT", "dependencies": { "karma-jasmine": "^1.0.2" }, @@ -4637,9 +3606,8 @@ }, "node_modules/karma-jasmine-html-reporter/node_modules/karma-jasmine": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", - "integrity": "sha512-SENGE9DhlIIFTSZWiNq4eGeXL8G6z9cqHIOdkx9jh1qhhQqwEy3tAoLRyER0vOcHqdOlKmGpOuXk+HOipIy7sg==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" }, @@ -4650,9 +3618,8 @@ }, "node_modules/karma-junit-reporter": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-junit-reporter/-/karma-junit-reporter-2.0.1.tgz", - "integrity": "sha512-VtcGfE0JE4OE1wn0LK8xxDKaTP7slN8DO3I+4xg6gAi1IoAHAXOJ1V9G/y45Xg6sxdxPOR3THCFtDlAfBo9Afw==", "dev": true, + "license": "MIT", "dependencies": { "path-is-absolute": "^1.0.0", "xmlbuilder": "12.0.0" @@ -4666,15 +3633,13 @@ }, "node_modules/karma-regex-preprocessor": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/karma-regex-preprocessor/-/karma-regex-preprocessor-1.0.1.tgz", - "integrity": "sha512-A+CTjK8VQZ1qZFnDMsuB7//2qWorOVuE2fnnZ2iDhv0H5Ug5Lv0I2FmolPV9KaTgJK1ipXHnSxVrG282fnoe7g==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/karma-requirejs": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-requirejs/-/karma-requirejs-1.1.0.tgz", - "integrity": "sha512-MHTOYKdwwJBkvYid0TaYvBzOnFH3TDtzo6ie5E4o9SaUSXXsfMRLa/whUz6efVIgTxj1xnKYasNn/XwEgJeB/Q==", "dev": true, + "license": "MIT", "peerDependencies": { "karma": ">=0.9", "requirejs": "^2.1.0" @@ -4695,381 +3660,126 @@ }, "node_modules/karma-sourcemap-loader": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.4.0.tgz", - "integrity": "sha512-xCRL3/pmhAYF3I6qOrcn0uhbQevitc2DERMPH82FMnG+4WReoGcGFZb1pURf2a5apyrOHRdvD+O6K7NljqKHyA==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.10" } }, "node_modules/karma-spec-reporter": { "version": "0.0.20", - "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.20.tgz", - "integrity": "sha512-pl+KmLNwnu802F/q9cZx5n20FuxA0ebwM3uMuy4Qh+GGfviy4EFK8I5Bl2cWogSRBUC2Fhg5oOsUFVlv/j5tuA==", - "dev": true, - "dependencies": { - "colors": "~0.6.0" - }, - "peerDependencies": { - "karma": ">=0.9" - } - }, - "node_modules/karma-spec-reporter/node_modules/colors": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz", - "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/karma-webpack": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-5.0.1.tgz", - "integrity": "sha512-oo38O+P3W2mSPCSUrQdySSPv1LvPpXP+f+bBimNomS5sW+1V4SuhCuW8TfJzV+rDv921w2fDSDw0xJbPe6U+kQ==", - "dev": true, - "dependencies": { - "glob": "^7.1.3", - "minimatch": "^9.0.3", - "webpack-merge": "^4.1.5" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/karma-webpack/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/karma-webpack/node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", - "dev": true - }, - "node_modules/karma-webpack/node_modules/minimatch": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", - "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.2" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/karma-webpack/node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/karma/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "peer": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/lightningcss": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", - "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", - "dev": true, - "license": "MPL-2.0", - "dependencies": { - "detect-libc": "^2.0.3" - }, - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "lightningcss-android-arm64": "1.32.0", - "lightningcss-darwin-arm64": "1.32.0", - "lightningcss-darwin-x64": "1.32.0", - "lightningcss-freebsd-x64": "1.32.0", - "lightningcss-linux-arm-gnueabihf": "1.32.0", - "lightningcss-linux-arm64-gnu": "1.32.0", - "lightningcss-linux-arm64-musl": "1.32.0", - "lightningcss-linux-x64-gnu": "1.32.0", - "lightningcss-linux-x64-musl": "1.32.0", - "lightningcss-win32-arm64-msvc": "1.32.0", - "lightningcss-win32-x64-msvc": "1.32.0" - } - }, - "node_modules/lightningcss-android-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", - "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-arm64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", - "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/lightningcss-darwin-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", - "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", - "cpu": [ - "x64" - ], "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 12.0.0" + "license": "MIT", + "dependencies": { + "colors": "~0.6.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "karma": ">=0.9" } }, - "node_modules/lightningcss-freebsd-x64": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", - "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", - "cpu": [ - "x64" - ], + "node_modules/karma-spec-reporter/node_modules/colors": { + "version": "0.6.2", "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "freebsd" - ], "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "node": ">=0.1.90" } }, - "node_modules/lightningcss-linux-arm-gnueabihf": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", - "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", - "cpu": [ - "arm" - ], + "node_modules/karma-webpack": { + "version": "5.0.1", "dev": true, - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], + "license": "MIT", + "dependencies": { + "glob": "^7.1.3", + "minimatch": "^9.0.3", + "webpack-merge": "^4.1.5" + }, "engines": { - "node": ">= 12.0.0" + "node": ">= 18" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "peerDependencies": { + "webpack": "^5.0.0" } }, - "node_modules/lightningcss-linux-arm64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", - "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", - "cpu": [ - "arm64" - ], + "node_modules/karma-webpack/node_modules/brace-expansion": { + "version": "2.1.0", "dev": true, - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/lightningcss-linux-arm64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", - "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", - "cpu": [ - "arm64" - ], + "node_modules/karma-webpack/node_modules/minimatch": { + "version": "9.0.9", "dev": true, - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.2" + }, "engines": { - "node": ">= 12.0.0" + "node": ">=16 || 14 >=14.17" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/lightningcss-linux-x64-gnu": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", - "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", - "cpu": [ - "x64" - ], + "node_modules/kind-of": { + "version": "3.2.2", "dev": true, - "libc": [ - "glibc" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" + "license": "MIT", + "dependencies": { + "is-buffer": "^1.1.5" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/lightningcss-linux-x64-musl": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", - "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", - "cpu": [ - "x64" - ], + "node_modules/lie": { + "version": "3.3.0", "dev": true, - "libc": [ - "musl" - ], - "license": "MPL-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" + "license": "MIT", + "peer": true, + "dependencies": { + "immediate": "~3.0.5" } }, - "node_modules/lightningcss-win32-arm64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", - "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", - "cpu": [ - "arm64" - ], + "node_modules/lightningcss": { + "version": "1.33.0", "dev": true, "license": "MPL-2.0", - "optional": true, - "os": [ - "win32" - ], + "dependencies": { + "detect-libc": "^2.0.3" + }, "engines": { "node": ">= 12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.33.0", + "lightningcss-darwin-arm64": "1.33.0", + "lightningcss-darwin-x64": "1.33.0", + "lightningcss-freebsd-x64": "1.33.0", + "lightningcss-linux-arm-gnueabihf": "1.33.0", + "lightningcss-linux-arm64-gnu": "1.33.0", + "lightningcss-linux-arm64-musl": "1.33.0", + "lightningcss-linux-x64-gnu": "1.33.0", + "lightningcss-linux-x64-musl": "1.33.0", + "lightningcss-win32-arm64-msvc": "1.33.0", + "lightningcss-win32-x64-msvc": "1.33.0" } }, - "node_modules/lightningcss-win32-x64-msvc": { - "version": "1.32.0", - "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", - "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "node_modules/lightningcss-darwin-arm64": { + "version": "1.33.0", "cpu": [ - "x64" + "arm64" ], "dev": true, "license": "MPL-2.0", "optional": true, "os": [ - "win32" + "darwin" ], "engines": { "node": ">= 12.0.0" @@ -5080,9 +3790,8 @@ } }, "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "version": "4.3.2", + "license": "MIT", "engines": { "node": ">=6.11.5" }, @@ -5093,8 +3802,7 @@ }, "node_modules/loader-utils": { "version": "1.4.2", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.2.tgz", - "integrity": "sha512-I5d00Pd/jwMD2QCduo657+YM/6L3KZu++pmX9VFncxaxvHcru9jx1lBaFft+r4Mt2jK0Yhp41XlRAihzPxHNCg==", + "license": "MIT", "dependencies": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -5106,8 +3814,7 @@ }, "node_modules/loader-utils/node_modules/json5": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "license": "MIT", "dependencies": { "minimist": "^1.2.0" }, @@ -5117,40 +3824,36 @@ }, "node_modules/loader-utils/node_modules/minimist": { "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, + "version": "7.2.0", + "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "p-locate": "^6.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/lodash._reinterpolate": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==" + "license": "MIT" }, "node_modules/lodash.template": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", - "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", - "deprecated": "This package is deprecated. Use https://socket.dev/npm/package/eta instead.", + "version": "4.18.1", + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0", "lodash.templatesettings": "^4.0.0" @@ -5158,18 +3861,15 @@ }, "node_modules/lodash.templatesettings": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", - "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "license": "MIT", "dependencies": { "lodash._reinterpolate": "^3.0.0" } }, "node_modules/log4js": { "version": "0.6.38", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha512-Cd+klbx7lkiaamEId9/0odHxv/PFHDz2E12kEfd6/CzIOZD084DzysASR/Dot4i1dYPBQKC3r2XIER+dfbLOmw==", - "deprecated": "0.x is no longer supported. Please upgrade to 6.x or higher.", "dev": true, + "license": "Apache-2.0", "dependencies": { "readable-stream": "~1.0.2", "semver": "~4.3.3" @@ -5180,30 +3880,25 @@ }, "node_modules/log4js/node_modules/semver": { "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver" } }, "node_modules/lolex": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz", - "integrity": "sha512-YYp8cqz7/8eruZ15L1mzcPkvLYxipfdsWIDESvNdNmQP9o7TsDitRhNuV2xb7aFu2ofZngao1jiVrVZ842x4BQ==" + "license": "BSD-3-Clause" }, "node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } }, "node_modules/magic-string": { "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5212,9 +3907,8 @@ }, "node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", - "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, + "license": "MIT", "dependencies": { "semver": "^7.5.3" }, @@ -5227,9 +3921,8 @@ }, "node_modules/make-dir/node_modules/semver": { "version": "7.7.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", - "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -5239,18 +3932,16 @@ }, "node_modules/map-cache": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/map-visit": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", "dev": true, + "license": "MIT", "dependencies": { "object-visit": "^1.0.0" }, @@ -5260,37 +3951,32 @@ }, "node_modules/math-intrinsics": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", - "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/math-random": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", - "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/media-typer": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "license": "MIT" }, "node_modules/micromatch": { "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha512-LnU2XFEk9xxSJ6rfgAry/ty5qwUTyHYOBU0g4R6tIw5ljwgGIBmiKhRWLw5NpMOnrgUNcDJ4WMp8rl3sYVHLNA==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^2.0.0", "array-unique": "^0.2.1", @@ -5312,9 +3998,8 @@ }, "node_modules/micromatch/node_modules/braces": { "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha512-xU7bpz2ytJl1bH9cgIurjpg/n8Gohy9GTw81heDYLJQ4RU60dlyJsa+atVF2pI0yMMvKxI9HkKwjePCj5XI1hw==", "dev": true, + "license": "MIT", "dependencies": { "expand-range": "^1.8.1", "preserve": "^0.2.0", @@ -5326,9 +4011,8 @@ }, "node_modules/micromatch/node_modules/expand-range": { "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha512-AFASGfIlnIbkKPQwX1yHaDjFvh/1gyKJODme52V6IORh69uEYgZp0o9C+qsIGNVEiuuhQU0CSSl++Rlegg1qvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^2.1.0" }, @@ -5338,18 +4022,16 @@ }, "node_modules/micromatch/node_modules/is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/micromatch/node_modules/is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^1.0.0" }, @@ -5357,23 +4039,10 @@ "node": ">=0.10.0" } }, - "node_modules/micromatch/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/micromatch/node_modules/normalize-path": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", "dev": true, + "license": "MIT", "dependencies": { "remove-trailing-separator": "^1.0.1" }, @@ -5383,9 +4052,8 @@ }, "node_modules/mime": { "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, + "license": "MIT", "bin": { "mime": "cli.js" }, @@ -5395,16 +4063,16 @@ }, "node_modules/mime-db": { "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/mime-types": { "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "license": "MIT", "dependencies": { "mime-db": "1.52.0" }, @@ -5413,9 +4081,8 @@ } }, "node_modules/mini-css-extract-plugin": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.10.0.tgz", - "integrity": "sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==", + "version": "2.10.2", + "license": "MIT", "dependencies": { "schema-utils": "^4.0.0", "tapable": "^2.2.1" @@ -5432,10 +4099,9 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -5445,15 +4111,13 @@ }, "node_modules/minimist": { "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/mixin-deep": { "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "dev": true, + "license": "MIT", "dependencies": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -5464,9 +4128,8 @@ }, "node_modules/mixin-deep/node_modules/is-extendable": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, + "license": "MIT", "dependencies": { "is-plain-object": "^2.0.4" }, @@ -5476,16 +4139,14 @@ }, "node_modules/moment": { "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", "engines": { "node": "*" } }, "node_modules/moment-timezone": { "version": "0.5.46", - "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.46.tgz", - "integrity": "sha512-ZXm9b36esbe7OmdABqIWJuBBiLLwAjrN7CE+7sYdCCx82Nabt1wHDj8TVseS59QIlfFPbOoiBPm6ca9BioG4hw==", + "license": "MIT", "dependencies": { "moment": "^2.29.4" }, @@ -5495,8 +4156,6 @@ }, "node_modules/mrmime": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", - "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", "dev": true, "license": "MIT", "engines": { @@ -5504,22 +4163,17 @@ } }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "version": "2.1.3", + "license": "MIT" }, "node_modules/nan": { - "version": "2.25.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.25.0.tgz", - "integrity": "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==", + "version": "2.26.2", "dev": true, + "license": "MIT", "optional": true }, "node_modules/nanoid": { - "version": "3.3.12", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", - "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "version": "3.3.18", "dev": true, "funding": [ { @@ -5537,9 +4191,8 @@ }, "node_modules/nanomatch": { "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -5559,76 +4212,73 @@ }, "node_modules/nanomatch/node_modules/arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/nanomatch/node_modules/array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/negotiator": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha512-qTxkr1RoLw5Pz+1+PTJ/66hWuyi2LEOeOuIDJDlx6JF8x75bmD5C7qXTg2UlX5W9rLfkqKP+r8q6Vy6NWdWrbw==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/neo-async": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + "license": "MIT" }, "node_modules/node-addon-api": { "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT", "optional": true }, "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==" + "version": "2.0.38", + "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha512-Lbc7GfN7XFaK30bzUN3cDYLOkT0dH05S0ax1QikylHUD9+Z9PRF3G1iYwX3kcz+6AlzTFGkUgMxz6l3aUwbwTA==", + "version": "4.1.1", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/object-component": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha512-S0sN3agnVh2SZNEIGc0N1X4Z5K0JeFbGBrnuZpsxuUh5XLF0BnvWkMjRXo/zGKLd/eghvNIKcx1pQkmUjXIyrA==", "dev": true }, "node_modules/object-copy": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", "dev": true, + "license": "MIT", "dependencies": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -5640,9 +4290,8 @@ }, "node_modules/object-copy/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -5652,9 +4301,8 @@ }, "node_modules/object-copy/node_modules/is-descriptor": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" @@ -5663,23 +4311,10 @@ "node": ">= 0.4" } }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.13.4", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", - "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -5689,9 +4324,8 @@ }, "node_modules/object-visit": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.0" }, @@ -5701,9 +4335,8 @@ }, "node_modules/object.omit": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha512-UiAM5mhmIuKLsOvrL+B0U2d1hXHF3bFYWIuH1LMpuV2EJEHG1Ntz06PgLEHjm6VFd87NpH8rastvPoyv6UW2fA==", "dev": true, + "license": "MIT", "dependencies": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" @@ -5714,9 +4347,8 @@ }, "node_modules/object.pick": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", "dev": true, + "license": "MIT", "dependencies": { "isobject": "^3.0.1" }, @@ -5725,9 +4357,7 @@ } }, "node_modules/obug": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.2.tgz", - "integrity": "sha512-AWGB9WFcRXOQs48Z/udjI5ZcZMHXwX8XPByNpOydgcGsDLIzjGizhoMWJyKAWze7AVW/2W1i+/gPX4YtKe5cyg==", + "version": "2.1.4", "dev": true, "funding": [ "https://github.com/sponsors/sxzz", @@ -5740,9 +4370,8 @@ }, "node_modules/on-finished": { "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, + "license": "MIT", "dependencies": { "ee-first": "1.1.1" }, @@ -5752,18 +4381,16 @@ }, "node_modules/once": { "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, + "license": "ISC", "dependencies": { "wrappy": "1" } }, "node_modules/optimist": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha512-snN4O4TkigujZphWLN0E//nQmm7790RYaE53DdL7ZYwee2D8DDo9/EyYiKUfN3rneWUjhJnueija3G9I2i0h3g==", "dev": true, + "license": "MIT/X11", "dependencies": { "minimist": "~0.0.1", "wordwrap": "~0.0.2" @@ -5771,8 +4398,6 @@ }, "node_modules/options": { "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha512-bOj3L1ypm++N+n7CEbbe473A414AB7z+amKYshRb//iuL3MpdDCLhPnw6aVTdKB9g5ZRVHIEp8eUln6L2NUStg==", "dev": true, "engines": { "node": ">=0.4.0" @@ -5780,70 +4405,64 @@ }, "node_modules/os-tmpdir": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, + "version": "4.0.0", + "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "yocto-queue": "^1.0.0" }, "engines": { - "node": ">=6" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, + "version": "6.0.0", + "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "p-limit": "^4.0.0" }, "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pako": { "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true, + "license": "(MIT AND Zlib)", "peer": true }, "node_modules/parse-glob": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==", "dev": true, + "license": "MIT", "dependencies": { "glob-base": "^0.3.0", "is-dotfile": "^1.0.0", @@ -5856,18 +4475,16 @@ }, "node_modules/parse-glob/node_modules/is-extglob": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/parse-glob/node_modules/is-glob": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^1.0.0" }, @@ -5877,100 +4494,86 @@ }, "node_modules/parse-node-version": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", - "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "license": "MIT", "engines": { "node": ">= 0.10" } }, "node_modules/parsejson": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha512-v38ZjVbinlZ2r1Rz06WUZEnGoSRcEGX+roMsiWjHeAe23s2qlQUyfmsPQZvh7d8l0E8AZzTIO/RkUr00LfkSiA==", "dev": true, + "license": "MIT", "dependencies": { "better-assert": "~1.0.0" } }, "node_modules/parseqs": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha512-B3Nrjw2aL7aI4TDujOzfA4NsEc4u1lVcIRE0xesutH8kjeWF70uk+W5cBlIQx04zUH9NTBvuN36Y9xLRPK6Jjw==", "dev": true, + "license": "MIT", "dependencies": { "better-assert": "~1.0.0" } }, "node_modules/parseuri": { "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha512-ijhdxJu6l5Ru12jF0JvzXVPvsC+VibqeaExlNoMhWN6VQ79PGjkmc7oA4W1lp00sFkNyj0fx6ivPLdV51/UMog==", "dev": true, + "license": "MIT", "dependencies": { "better-assert": "~1.0.0" } }, "node_modules/parseurl": { "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/pascalcase": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, + "version": "5.0.0", + "license": "MIT", "engines": { - "node": ">=8" + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/path-is-absolute": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/path-is-inside": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", - "dev": true + "dev": true, + "license": "(WTFPL OR MIT)" }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/path-parse": { "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pathe": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz", - "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==", "dev": true, "license": "MIT" }, @@ -5980,13 +4583,10 @@ }, "node_modules/picocolors": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" + "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", - "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "version": "4.0.5", "devOptional": true, "license": "MIT", "engines": { @@ -5998,27 +4598,24 @@ }, "node_modules/pify": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/pinkie": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/pinkie-promise": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", "dev": true, + "license": "MIT", "dependencies": { "pinkie": "^2.0.0" }, @@ -6027,41 +4624,38 @@ } }, "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, + "version": "7.0.0", + "license": "MIT", "dependencies": { - "find-up": "^4.0.0" + "find-up": "^6.3.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/playwright": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.60.0.tgz", - "integrity": "sha512-hheHdokM8cdqCb0lcE3s+zT4t4W+vvjpGxsZlDnikarzx8tSzMebh3UiFtgqwFwnTnjYQcsyMF8ei2mCO/tpeA==", + "version": "1.62.1", "dev": true, "license": "Apache-2.0", "peer": true, "dependencies": { - "playwright-core": "1.60.0" + "playwright-core": "1.62.1" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/playwright-core": { - "version": "1.60.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.60.0.tgz", - "integrity": "sha512-9bW6zvX/m0lEbgTKJ6YppOKx8H3VOPBMOCFh2irXFOT4BbHgrx5hPjwJYLT40Lu+4qtD36qKc/Hn56StUW57IA==", + "version": "1.62.1", "dev": true, "license": "Apache-2.0", "peer": true, @@ -6069,15 +4663,12 @@ "playwright-core": "cli.js" }, "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/playwright/node_modules/fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", "dev": true, - "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -6090,8 +4681,7 @@ }, "node_modules/plugin-error": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", - "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "license": "MIT", "dependencies": { "ansi-colors": "^1.0.1", "arr-diff": "^4.0.0", @@ -6104,16 +4694,13 @@ }, "node_modules/plugin-error/node_modules/arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/pngjs": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz", - "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==", "dev": true, "license": "MIT", "engines": { @@ -6122,10 +4709,8 @@ }, "node_modules/popper.js": { "version": "1.16.1", - "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", "dev": true, + "license": "MIT", "funding": { "type": "opencollective", "url": "https://opencollective.com/popperjs" @@ -6133,25 +4718,21 @@ }, "node_modules/posix-character-classes": { "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/possible-typed-array-names": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", - "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", "engines": { "node": ">= 0.4" } }, "node_modules/postcss": { - "version": "8.5.15", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", - "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "version": "8.5.26", "dev": true, "funding": [ { @@ -6169,7 +4750,7 @@ ], "license": "MIT", "dependencies": { - "nanoid": "^3.3.12", + "nanoid": "^3.3.17", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -6179,9 +4760,8 @@ }, "node_modules/preserve": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha512-s/46sYeylUfHNjI+sA/78FAHlmIuKqI9wNnzEOGehAlUUYeObv5C2mOinXBjyUyWmJ2SfcS2/ydApH4hTF4WXQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -6192,38 +4772,32 @@ }, "node_modules/process-nextick-args": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/pseudomap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/punycode": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/q": { "version": "0.9.7", - "resolved": "https://registry.npmjs.org/q/-/q-0.9.7.tgz", - "integrity": "sha512-ijt0LhxWClXBtc1RCt8H0WhlZLAdVX26nWbpsJy+Hblmp81d2F/pFsvlrJhJDDruFHM+ECtxP0H0HzGSrARkwg==", - "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6.0", "teleport": ">=0.2.0" } }, "node_modules/qs": { - "version": "6.14.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", - "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "version": "6.15.1", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "side-channel": "^1.1.0" }, @@ -6236,9 +4810,8 @@ }, "node_modules/randomatic": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", - "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^4.0.0", "kind-of": "^6.0.0", @@ -6250,26 +4823,24 @@ }, "node_modules/randomatic/node_modules/is-number": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", - "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" + "node_modules/randomatic/node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" } }, "node_modules/raw-body": { "version": "2.5.3", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", - "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, + "license": "MIT", "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", @@ -6282,9 +4853,8 @@ }, "node_modules/readable-stream": { "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.1", @@ -6294,9 +4864,8 @@ }, "node_modules/readdirp": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.1.11", "micromatch": "^3.1.10", @@ -6308,27 +4877,24 @@ }, "node_modules/readdirp/node_modules/arr-diff": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/readdirp/node_modules/array-unique": { "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/readdirp/node_modules/braces": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, + "license": "MIT", "dependencies": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -6347,9 +4913,8 @@ }, "node_modules/readdirp/node_modules/braces/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -6357,11 +4922,18 @@ "node": ">=0.10.0" } }, + "node_modules/readdirp/node_modules/debug": { + "version": "2.6.9", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, "node_modules/readdirp/node_modules/expand-brackets": { "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", "dev": true, + "license": "MIT", "dependencies": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -6377,9 +4949,8 @@ }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -6389,9 +4960,8 @@ }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -6401,9 +4971,8 @@ }, "node_modules/readdirp/node_modules/expand-brackets/node_modules/is-descriptor": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" @@ -6414,9 +4983,8 @@ }, "node_modules/readdirp/node_modules/extglob": { "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, + "license": "MIT", "dependencies": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -6433,9 +5001,8 @@ }, "node_modules/readdirp/node_modules/extglob/node_modules/define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -6445,9 +5012,8 @@ }, "node_modules/readdirp/node_modules/extglob/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -6457,9 +5023,8 @@ }, "node_modules/readdirp/node_modules/fill-range": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -6472,9 +5037,8 @@ }, "node_modules/readdirp/node_modules/fill-range/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -6484,9 +5048,8 @@ }, "node_modules/readdirp/node_modules/is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -6496,9 +5059,8 @@ }, "node_modules/readdirp/node_modules/is-number/node_modules/kind-of": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", "dev": true, + "license": "MIT", "dependencies": { "is-buffer": "^1.1.5" }, @@ -6508,15 +5070,21 @@ }, "node_modules/readdirp/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/readdirp/node_modules/kind-of": { + "version": "6.0.3", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/readdirp/node_modules/micromatch": { "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, + "license": "MIT", "dependencies": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -6536,11 +5104,15 @@ "node": ">=0.10.0" } }, + "node_modules/readdirp/node_modules/ms": { + "version": "2.0.0", + "dev": true, + "license": "MIT" + }, "node_modules/readdirp/node_modules/readable-stream": { "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, + "license": "MIT", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -6553,33 +5125,24 @@ }, "node_modules/readdirp/node_modules/repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, - "node_modules/readdirp/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, "node_modules/readdirp/node_modules/string_decoder": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, + "license": "MIT", "dependencies": { "safe-buffer": "~5.1.0" } }, "node_modules/rechoir": { "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", "dev": true, + "license": "MIT", "dependencies": { "resolve": "^1.20.0" }, @@ -6589,9 +5152,8 @@ }, "node_modules/regex-cache": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", - "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, + "license": "MIT", "dependencies": { "is-equal-shallow": "^0.1.3" }, @@ -6601,9 +5163,8 @@ }, "node_modules/regex-not": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -6614,23 +5175,19 @@ }, "node_modules/remove-trailing-separator": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/repeat-element": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", - "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/repeat-string": { "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha512-yHeI3F9v20MY+8/5WAUgIWseMZwpLD+l9h5hGyzh6fQjhle2AwjjRDao1m5IozSDuVvMw09/mvE8AU1oDmZKpQ==", "dev": true, "engines": { "node": ">=0.10" @@ -6638,17 +5195,16 @@ }, "node_modules/require-from-string": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/requirejs": { - "version": "2.1.22", - "resolved": "https://registry.npmjs.org/requirejs/-/requirejs-2.1.22.tgz", - "integrity": "sha512-AhZqN7UrWV8R2d1LfGfznskMJNF0Vb6yStwrCn52UbktJg6y5V1I7RoGRyJtACe86d50PyQn0Iw0jYDKMvc4iA==", + "version": "2.3.8", + "license": "MIT", "bin": { + "r_js": "bin/r.js", "r.js": "bin/r.js" }, "engines": { @@ -6657,21 +5213,19 @@ }, "node_modules/requirejs-text": { "version": "2.0.16", - "resolved": "https://registry.npmjs.org/requirejs-text/-/requirejs-text-2.0.16.tgz", - "integrity": "sha512-XrzjeTb1pwzIWmkz8qnUiM20gENgiwB+66IciNuziwlaPAJsYQsQPSYyQ1kD4tGKGZxTisIfDbOHk02DpI/76Q==" + "license": "MIT" }, "node_modules/requires-port": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "version": "1.22.12", "dev": true, + "license": "MIT", "dependencies": { + "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" @@ -6688,9 +5242,8 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, + "license": "MIT", "dependencies": { "resolve-from": "^5.0.0" }, @@ -6700,35 +5253,29 @@ }, "node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/resolve-url": { "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", - "deprecated": "https://github.com/lydell/resolve-url#deprecated", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/ret": { "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12" } }, "node_modules/rimraf": { "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, + "license": "ISC", "dependencies": { "glob": "^7.1.3" }, @@ -6737,13 +5284,11 @@ } }, "node_modules/rolldown": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.3.tgz", - "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "version": "1.2.3", "dev": true, "license": "MIT", "dependencies": { - "@oxc-project/types": "=0.133.0", + "@oxc-project/types": "=0.143.0", "@rolldown/pluginutils": "^1.0.0" }, "bin": { @@ -6753,55 +5298,38 @@ "node": "^20.19.0 || >=22.12.0" }, "optionalDependencies": { - "@rolldown/binding-android-arm64": "1.0.3", - "@rolldown/binding-darwin-arm64": "1.0.3", - "@rolldown/binding-darwin-x64": "1.0.3", - "@rolldown/binding-freebsd-x64": "1.0.3", - "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", - "@rolldown/binding-linux-arm64-gnu": "1.0.3", - "@rolldown/binding-linux-arm64-musl": "1.0.3", - "@rolldown/binding-linux-ppc64-gnu": "1.0.3", - "@rolldown/binding-linux-s390x-gnu": "1.0.3", - "@rolldown/binding-linux-x64-gnu": "1.0.3", - "@rolldown/binding-linux-x64-musl": "1.0.3", - "@rolldown/binding-openharmony-arm64": "1.0.3", - "@rolldown/binding-wasm32-wasi": "1.0.3", - "@rolldown/binding-win32-arm64-msvc": "1.0.3", - "@rolldown/binding-win32-x64-msvc": "1.0.3" + "@rolldown/binding-android-arm64": "1.2.3", + "@rolldown/binding-darwin-arm64": "1.2.3", + "@rolldown/binding-darwin-x64": "1.2.3", + "@rolldown/binding-freebsd-x64": "1.2.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.2.3", + "@rolldown/binding-linux-arm64-gnu": "1.2.3", + "@rolldown/binding-linux-arm64-musl": "1.2.3", + "@rolldown/binding-linux-ppc64-gnu": "1.2.3", + "@rolldown/binding-linux-s390x-gnu": "1.2.3", + "@rolldown/binding-linux-x64-gnu": "1.2.3", + "@rolldown/binding-linux-x64-musl": "1.2.3", + "@rolldown/binding-openharmony-arm64": "1.2.3", + "@rolldown/binding-win32-arm64-msvc": "1.2.3", + "@rolldown/binding-win32-x64-msvc": "1.2.3" } }, "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] + "version": "5.1.2", + "dev": true, + "license": "MIT" }, "node_modules/safe-regex": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", "dev": true, + "license": "MIT", "dependencies": { "ret": "~0.1.10" } }, "node_modules/safe-regex-test": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -6816,23 +5344,18 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/samsam": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/samsam/-/samsam-1.1.2.tgz", - "integrity": "sha512-iVL7LibpM3tl4rQPweOXXrmjGegxx27flTOjQEZD3PXe4oZNFzuz6Si4mgleK/JWU/hyCvtV01RUovjvBEpDmw==", - "deprecated": "This package has been deprecated in favour of @sinonjs/samsam" + "version": "1.1.2" }, "node_modules/sass": { - "version": "1.97.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.97.3.tgz", - "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", + "version": "1.99.0", + "license": "MIT", "dependencies": { "chokidar": "^4.0.0", - "immutable": "^5.0.2", + "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -6847,8 +5370,7 @@ }, "node_modules/sass/node_modules/chokidar": { "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "license": "MIT", "dependencies": { "readdirp": "^4.0.1" }, @@ -6861,8 +5383,7 @@ }, "node_modules/sass/node_modules/readdirp": { "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "license": "MIT", "engines": { "node": ">= 14.18.0" }, @@ -6873,8 +5394,7 @@ }, "node_modules/schema-utils": { "version": "4.3.3", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.3.3.tgz", - "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -6890,9 +5410,7 @@ } }, "node_modules/selenium-webdriver": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.41.0.tgz", - "integrity": "sha512-1XxuKVhr9az24xwixPBEDGSZP+P0z3ZOnCmr9Oiep0MlJN2Mk+flIjD3iBS9BgyjS4g14dikMqnrYUPIjhQBhA==", + "version": "4.43.0", "dev": true, "funding": [ { @@ -6904,69 +5422,36 @@ "url": "https://opencollective.com/selenium" } ], + "license": "Apache-2.0", "peer": true, "dependencies": { "@bazel/runfiles": "^6.5.0", "jszip": "^3.10.1", "tmp": "^0.2.5", - "ws": "^8.19.0" + "ws": "^8.20.0" }, "engines": { "node": ">= 20.0.0" } }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz", - "integrity": "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==", - "dev": true, - "peer": true, - "engines": { - "node": ">=14.14" - } - }, - "node_modules/selenium-webdriver/node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", - "dev": true, - "peer": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dependencies": { - "randombytes": "^2.1.0" + "version": "7.0.5", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=20.0.0" } }, "node_modules/set-function-length": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "license": "MIT", "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -6981,9 +5466,8 @@ }, "node_modules/set-value": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -6996,9 +5480,8 @@ }, "node_modules/set-value/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -7008,21 +5491,18 @@ }, "node_modules/setimmediate": { "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/setprototypeof": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/shallow-clone": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "license": "MIT", "dependencies": { "kind-of": "^6.0.2" }, @@ -7030,11 +5510,17 @@ "node": ">=8" } }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "6.0.3", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, + "license": "MIT", "dependencies": { "shebang-regex": "^3.0.0" }, @@ -7044,18 +5530,16 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, "node_modules/side-channel": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", - "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", @@ -7071,13 +5555,12 @@ } }, "node_modules/side-channel-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", - "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "version": "1.0.1", "dev": true, + "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "object-inspect": "^1.13.3" + "object-inspect": "^1.13.4" }, "engines": { "node": ">= 0.4" @@ -7088,9 +5571,8 @@ }, "node_modules/side-channel-map": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", - "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7106,9 +5588,8 @@ }, "node_modules/side-channel-weakmap": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", - "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, + "license": "MIT", "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -7125,16 +5606,12 @@ }, "node_modules/siginfo": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz", - "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==", "dev": true, "license": "ISC" }, "node_modules/sinon": { "version": "1.17.7", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-1.17.7.tgz", - "integrity": "sha512-M9rtyQxKfcTTdB64rpPSRaTzOvunb+HHPv/3PxvNPrEDnFSny95Pi6/3VoD471ody0ay0IHyzT3BErfcLXj6NA==", - "deprecated": "16.1.1", + "license": "BSD-3-Clause", "dependencies": { "formatio": "1.1.1", "lolex": "1.3.2", @@ -7147,8 +5624,6 @@ }, "node_modules/sirv": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/sirv/-/sirv-3.0.2.tgz", - "integrity": "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g==", "dev": true, "license": "MIT", "dependencies": { @@ -7162,9 +5637,8 @@ }, "node_modules/snapdragon": { "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, + "license": "MIT", "dependencies": { "base": "^0.11.1", "debug": "^2.2.0", @@ -7181,9 +5655,8 @@ }, "node_modules/snapdragon-node": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -7195,9 +5668,8 @@ }, "node_modules/snapdragon-node/node_modules/define-property": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^1.0.0" }, @@ -7207,9 +5679,8 @@ }, "node_modules/snapdragon-util": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.2.0" }, @@ -7217,23 +5688,18 @@ "node": ">=0.10.0" } }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", "dev": true, + "license": "MIT", "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" + "ms": "2.0.0" } }, "node_modules/snapdragon/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -7243,9 +5709,8 @@ }, "node_modules/snapdragon/node_modules/extend-shallow": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", "dev": true, + "license": "MIT", "dependencies": { "is-extendable": "^0.1.0" }, @@ -7255,9 +5720,8 @@ }, "node_modules/snapdragon/node_modules/is-descriptor": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" @@ -7266,20 +5730,15 @@ "node": ">= 0.4" } }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", "dev": true, - "engines": { - "node": ">=0.10.0" - } + "license": "MIT" }, "node_modules/socket.io": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.4.tgz", - "integrity": "sha512-rKMY/U7gBmbHjwrljcPHy+uEXZ5973WvO2DrooL643w1R24SZVzsmhvNmJFjYVhAL4y7wrZJJS/znUfp0VWfKw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.3.3", "engine.io": "~1.8.4", @@ -7292,9 +5751,8 @@ }, "node_modules/socket.io-adapter": { "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha512-zmYvlFJay9skt4yk1MffE9p93HKvQtyy0BLZ5dRM73bOXFJXNZWq8qZVdY456sLaxdK6fHGiZ7glxzqvzwGzkw==", "dev": true, + "license": "MIT", "dependencies": { "debug": "2.3.3", "socket.io-parser": "2.3.1" @@ -7302,24 +5760,21 @@ }, "node_modules/socket.io-adapter/node_modules/debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", "dev": true, + "license": "MIT", "dependencies": { "ms": "0.7.2" } }, "node_modules/socket.io-adapter/node_modules/ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/socket.io-client": { "version": "1.7.4", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.4.tgz", - "integrity": "sha512-vW9xr9XyTJejFS//7GNZmLTLkUSAcvOSxRXXhrojV+7wboTFB8CuvK1UBCW3NiB2kqyi0h9cTeyD7dXjdUd9jQ==", "dev": true, + "license": "MIT", "dependencies": { "backo2": "1.0.2", "component-bind": "1.0.0", @@ -7336,24 +5791,21 @@ }, "node_modules/socket.io-client/node_modules/debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", "dev": true, + "license": "MIT", "dependencies": { "ms": "0.7.2" } }, "node_modules/socket.io-client/node_modules/ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/socket.io-parser": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha512-j6l4g/+yWQjmy1yByzg1DPFL4vxQw+NwCJatIxni/AE1wfm17FBtIKSWU4Ay+onrJwDxmC4eK4QS/04ZsqYwZQ==", "dev": true, + "license": "MIT", "dependencies": { "component-emitter": "1.1.2", "debug": "2.2.0", @@ -7363,68 +5815,64 @@ }, "node_modules/socket.io-parser/node_modules/component-emitter": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha512-YhIbp3PJiznERfjlIkK0ue4obZxt2S60+0W8z24ZymOHT8sHloOqWOqZRU2eN5OlY8U08VFsP02letcu26FilA==", "dev": true }, "node_modules/socket.io-parser/node_modules/debug": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha512-X0rGvJcskG1c3TgSCPqHJ0XJgwlcvOC7elJ5Y0hYuKBZoVqWpAMfLOeIh2UI/DCQ5ruodIjvsugZtjUYUw2pUw==", "dev": true, + "license": "MIT", "dependencies": { "ms": "0.7.1" } }, "node_modules/socket.io-parser/node_modules/ms": { "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha512-lRLiIR9fSNpnP6TC4v8+4OU7oStC01esuNowdQ34L+Gk8e5Puoc88IqJ+XAY/B3Mn2ZKis8l8HX90oU8ivzUHg==", "dev": true }, "node_modules/socket.io/node_modules/debug": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha512-dCHp4G+F11zb+RtEu7BE2U8R32AYmM/4bljQfut8LipH3PdwsVBVGh083MXvtKkB7HSQUzSwiXz53c4mzJvYfw==", "dev": true, + "license": "MIT", "dependencies": { "ms": "0.7.2" } }, "node_modules/socket.io/node_modules/ms": { "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha512-5NnE67nQSQDJHVahPJna1PQ/zCXMnQop3yUCxjKPNzCxuyPSKWTQ/5Gu5CZmjetwGLWRA+PzeF5thlbOdbQldA==", - "dev": true + "dev": true, + "license": "MIT" + }, + "node_modules/socket.io/node_modules/object-assign": { + "version": "4.1.0", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/source-list-map": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.5.7", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-js": { "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } }, "node_modules/source-map-resolve": { "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, + "license": "MIT", "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -7435,25 +5883,28 @@ }, "node_modules/source-map-support": { "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/source-map-url": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", - "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", - "deprecated": "See https://github.com/lydell/source-map-url#deprecated", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/split-string": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, + "license": "MIT", "dependencies": { "extend-shallow": "^3.0.0" }, @@ -7463,16 +5914,13 @@ }, "node_modules/stackback": { "version": "0.0.2", - "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz", - "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==", "dev": true, "license": "MIT" }, "node_modules/static-extend": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -7483,9 +5931,8 @@ }, "node_modules/static-extend/node_modules/define-property": { "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", "dev": true, + "license": "MIT", "dependencies": { "is-descriptor": "^0.1.0" }, @@ -7495,9 +5942,8 @@ }, "node_modules/static-extend/node_modules/is-descriptor": { "version": "0.1.7", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.7.tgz", - "integrity": "sha512-C3grZTvObeN1xud4cRWl366OMXZTj0+HGyk4hvfpx4ZHt1Pb60ANSXqCK7pdOTeUQpRzECBSTphqvD7U+l22Eg==", "dev": true, + "license": "MIT", "dependencies": { "is-accessor-descriptor": "^1.0.1", "is-data-descriptor": "^1.0.1" @@ -7508,31 +5954,26 @@ }, "node_modules/statuses": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } }, "node_modules/std-env": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-4.1.0.tgz", - "integrity": "sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==", + "version": "4.2.0", "dev": true, "license": "MIT" }, "node_modules/string_decoder": { "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/string-replace-loader": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-3.3.0.tgz", - "integrity": "sha512-AZ3y7ktSHhd/Ebipczkp6vdfp01d2kQVwFujCGAgmogTB8t4dRhbsRGDKnyZAYqBbIA9QW7+D/IsACVJOOpcBg==", "dev": true, + "license": "MIT", "dependencies": { "schema-utils": "^4" }, @@ -7544,24 +5985,19 @@ } }, "node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "version": "7.2.0", + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": ">=8" } }, "node_modules/supports-preserve-symlinks-flag": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -7570,9 +6006,8 @@ } }, "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.3.3", + "license": "MIT", "engines": { "node": ">=6" }, @@ -7582,9 +6017,8 @@ } }, "node_modules/terser": { - "version": "5.46.0", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.46.0.tgz", - "integrity": "sha512-jTwoImyr/QbOWFFso3YoU3ik0jBBDJ6JTOQiy/J2YxVJdZCc+5u7skhNwiOR3FQIygFqVUPHl7qbbxtjW2K3Qg==", + "version": "5.46.2", + "license": "BSD-2-Clause", "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -7599,14 +6033,12 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.5.0", + "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -7633,8 +6065,7 @@ }, "node_modules/through2": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", - "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "license": "MIT", "dependencies": { "inherits": "^2.0.4", "readable-stream": "2 || 3" @@ -7642,8 +6073,7 @@ }, "node_modules/through2/node_modules/readable-stream": { "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -7653,33 +6083,45 @@ "node": ">= 6" } }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.2.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/through2/node_modules/string_decoder": { "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/time-stamp": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==", + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/tinybench": { "version": "2.9.0", - "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz", - "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==", "dev": true, "license": "MIT" }, "node_modules/tinyexec": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.2.4.tgz", - "integrity": "sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==", + "version": "1.3.0", "dev": true, "license": "MIT", "engines": { @@ -7688,8 +6130,6 @@ }, "node_modules/tinyglobby": { "version": "0.2.17", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", - "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { @@ -7704,9 +6144,7 @@ } }, "node_modules/tinyrainbow": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-3.1.0.tgz", - "integrity": "sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==", + "version": "3.1.1", "dev": true, "license": "MIT", "engines": { @@ -7714,28 +6152,22 @@ } }, "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "version": "0.2.5", "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, + "license": "MIT", + "peer": true, "engines": { - "node": ">=0.6.0" + "node": ">=14.14" } }, "node_modules/to-array": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha512-LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==", "dev": true }, "node_modules/to-object-path": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -7743,23 +6175,10 @@ "node": ">=0.10.0" } }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex": { "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, + "license": "MIT", "dependencies": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -7772,9 +6191,8 @@ }, "node_modules/to-regex-range": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -7785,9 +6203,8 @@ }, "node_modules/to-regex-range/node_modules/is-number": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", "dev": true, + "license": "MIT", "dependencies": { "kind-of": "^3.0.2" }, @@ -7795,40 +6212,24 @@ "node": ">=0.10.0" } }, - "node_modules/to-regex-range/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/to-regex-range/node_modules/repeat-string": { "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10" } }, "node_modules/toidentifier": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.6" } }, "node_modules/totalist": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz", - "integrity": "sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==", "dev": true, "license": "MIT", "engines": { @@ -7837,14 +6238,12 @@ }, "node_modules/tslib": { "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + "license": "0BSD" }, "node_modules/type-is": { "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, + "license": "MIT", "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -7855,8 +6254,6 @@ }, "node_modules/typescript": { "version": "6.0.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", - "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7869,33 +6266,28 @@ }, "node_modules/ultron": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha512-QMpnpVtYaWEeY+MwKDN/UdKlE/LsFZXM5lO1u7GaZzNgmIbGixHEmVMIKT+vqYOALu3m5GYQy9kz4Xu4IVn7Ow==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/underscore": { "version": "1.13.8", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz", - "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==" + "license": "MIT" }, "node_modules/undici-types": { - "version": "7.18.2", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", - "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==" + "version": "7.19.2", + "license": "MIT" }, "node_modules/unidragger": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/unidragger/-/unidragger-3.0.1.tgz", - "integrity": "sha512-RngbGSwBFmqGBWjkaH+yB677uzR95blSQyxq6hYbrQCejH3Mx1nm8DVOuh3M9k2fQyTstWUG5qlgCnNqV/9jVw==", + "license": "MIT", "dependencies": { "ev-emitter": "^2.0.0" } }, "node_modules/union-value": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "dev": true, + "license": "MIT", "dependencies": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -7908,18 +6300,16 @@ }, "node_modules/unpipe": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8" } }, "node_modules/unset-value": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", "dev": true, + "license": "MIT", "dependencies": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -7930,9 +6320,8 @@ }, "node_modules/unset-value/node_modules/has-value": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", "dev": true, + "license": "MIT", "dependencies": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -7944,9 +6333,8 @@ }, "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "1.0.0" }, @@ -7956,23 +6344,19 @@ }, "node_modules/unset-value/node_modules/has-values": { "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/unset-value/node_modules/isarray": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/update-browserslist-db": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", - "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "funding": [ { "type": "opencollective", @@ -7987,6 +6371,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -8000,30 +6385,25 @@ }, "node_modules/urijs": { "version": "1.19.11", - "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz", - "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==" + "license": "MIT" }, "node_modules/urix": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", - "deprecated": "Please see https://github.com/lydell/urix#deprecated", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/use": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/useragent": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", "dev": true, + "license": "MIT", "dependencies": { "lru-cache": "4.1.x", "tmp": "0.0.x" @@ -8031,24 +6411,32 @@ }, "node_modules/useragent/node_modules/lru-cache": { "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", "dev": true, + "license": "ISC", "dependencies": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" } }, + "node_modules/useragent/node_modules/tmp": { + "version": "0.0.33", + "dev": true, + "license": "MIT", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, "node_modules/useragent/node_modules/yallist": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/util": { "version": "0.12.5", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", - "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "license": "MIT", "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -8059,14 +6447,12 @@ }, "node_modules/util-deprecate": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.4.0" } @@ -8076,16 +6462,14 @@ "link": true }, "node_modules/vite": { - "version": "8.0.16", - "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.16.tgz", - "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "version": "8.2.1", "dev": true, "license": "MIT", "dependencies": { - "lightningcss": "^1.32.0", - "picomatch": "^4.0.4", - "postcss": "^8.5.15", - "rolldown": "1.0.3", + "lightningcss": "^1.33.0", + "picomatch": "^4.0.5", + "postcss": "^8.5.25", + "rolldown": "~1.2.1", "tinyglobby": "^0.2.17" }, "bin": { @@ -8102,7 +6486,7 @@ }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", - "@vitejs/devtools": "^0.1.18", + "@vitejs/devtools": "^0.4.0", "esbuild": "^0.27.0 || ^0.28.0", "jiti": ">=1.21.0", "less": "^4.0.0", @@ -8155,10 +6539,7 @@ }, "node_modules/vite/node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "hasInstallScript": true, "license": "MIT", "optional": true, "os": [ @@ -8169,19 +6550,17 @@ } }, "node_modules/vitest": { - "version": "4.1.8", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-4.1.8.tgz", - "integrity": "sha512-flY6ScbCIt9HThs+C5HS7jvGOB560DJtk/Z15IQROTA6zEy49Nh8T/dofWTQL+n3vswqn87sbJNiuqw1SDp5Ig==", + "version": "4.1.10", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "4.1.8", - "@vitest/mocker": "4.1.8", - "@vitest/pretty-format": "4.1.8", - "@vitest/runner": "4.1.8", - "@vitest/snapshot": "4.1.8", - "@vitest/spy": "4.1.8", - "@vitest/utils": "4.1.8", + "@vitest/expect": "4.1.10", + "@vitest/mocker": "4.1.10", + "@vitest/pretty-format": "4.1.10", + "@vitest/runner": "4.1.10", + "@vitest/snapshot": "4.1.10", + "@vitest/spy": "4.1.10", + "@vitest/utils": "4.1.10", "es-module-lexer": "^2.0.0", "expect-type": "^1.3.0", "magic-string": "^0.30.21", @@ -8209,12 +6588,12 @@ "@edge-runtime/vm": "*", "@opentelemetry/api": "^1.9.0", "@types/node": "^20.0.0 || ^22.0.0 || >=24.0.0", - "@vitest/browser-playwright": "4.1.8", - "@vitest/browser-preview": "4.1.8", - "@vitest/browser-webdriverio": "4.1.8", - "@vitest/coverage-istanbul": "4.1.8", - "@vitest/coverage-v8": "4.1.8", - "@vitest/ui": "4.1.8", + "@vitest/browser-playwright": "4.1.10", + "@vitest/browser-preview": "4.1.10", + "@vitest/browser-webdriverio": "4.1.10", + "@vitest/coverage-istanbul": "4.1.10", + "@vitest/coverage-v8": "4.1.10", + "@vitest/ui": "4.1.10", "happy-dom": "*", "jsdom": "*", "vite": "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -8260,17 +6639,15 @@ }, "node_modules/void-elements": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } }, "node_modules/watchpack": { "version": "2.5.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.1.tgz", - "integrity": "sha512-Zn5uXdcFNIA1+1Ei5McRd+iRzfhENPCe7LeABkJtNulSxjma+l7ltNx55BWZkRlwRnpOgHqxnjyaDgJnNXnqzg==", + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -8280,9 +6657,8 @@ } }, "node_modules/webpack": { - "version": "5.105.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.105.2.tgz", - "integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==", + "version": "5.106.2", + "license": "MIT", "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -8290,25 +6666,24 @@ "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.19.0", + "enhanced-resolve": "^5.20.0", "es-module-lexer": "^2.0.0", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", + "mime-db": "^1.54.0", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.16", + "terser-webpack-plugin": "^5.3.17", "watchpack": "^2.5.1", - "webpack-sources": "^3.3.3" + "webpack-sources": "^3.3.4" }, "bin": { "webpack": "bin/webpack.js" @@ -8328,9 +6703,8 @@ }, "node_modules/webpack-cli": { "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", "@webpack-cli/configtest": "^2.1.1", @@ -8373,18 +6747,29 @@ }, "node_modules/webpack-cli/node_modules/commander": { "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { "node": ">=14" } }, + "node_modules/webpack-cli/node_modules/webpack-merge": { + "version": "5.10.0", + "dev": true, + "license": "MIT", + "dependencies": { + "clone-deep": "^4.0.1", + "flat": "^5.0.2", + "wildcard": "^2.0.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/webpack-manifest-plugin": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-5.0.1.tgz", - "integrity": "sha512-xTlX7dC3hrASixA2inuWFMz6qHsNi6MT3Uiqw621sJjRTShtpMjbDYhPPZBwWUKdIYKIjSq9em6+uzWayf38aQ==", "dev": true, + "license": "MIT", "dependencies": { "tapable": "^2.0.0", "webpack-sources": "^2.2.0" @@ -8396,11 +6781,18 @@ "webpack": "^5.75.0" } }, + "node_modules/webpack-manifest-plugin/node_modules/source-map": { + "version": "0.6.1", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/webpack-manifest-plugin/node_modules/webpack-sources": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.3.1.tgz", - "integrity": "sha512-y9EI9AO42JjEcrTJFOYmVywVZdKVUfOvDUPsJea5GIr1JOEGFVqwlY2K098fFoIjOkDzHn2AjRvM8dsBZu+gCA==", "dev": true, + "license": "MIT", "dependencies": { "source-list-map": "^2.0.1", "source-map": "^0.6.1" @@ -8410,46 +6802,46 @@ } }, "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", + "version": "4.2.2", "dev": true, + "license": "MIT", "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" + "lodash": "^4.17.15" } }, + "node_modules/webpack-merge/node_modules/lodash": { + "version": "4.18.1", + "dev": true, + "license": "MIT" + }, "node_modules/webpack-sources": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.4.tgz", - "integrity": "sha512-7tP1PdV4vF+lYPnkMR0jMY5/la2ub5Fc/8VQrrU+lXkiM6C4TjVfGw7iKfyhnTQOsD+6Q/iKw0eFciziRgD58Q==", + "version": "3.4.0", + "license": "MIT", "engines": { "node": ">=10.13.0" } }, + "node_modules/webpack/node_modules/mime-db": { + "version": "1.54.0", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "version": "1.3.1", "dev": true, + "license": "ISC", "dependencies": { "isexe": "^2.0.0" }, "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" + "which": "bin/which" } }, "node_modules/which-typed-array": { "version": "1.1.20", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz", - "integrity": "sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==", + "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -8468,8 +6860,6 @@ }, "node_modules/why-is-node-running": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz", - "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==", "dev": true, "license": "MIT", "dependencies": { @@ -8485,53 +6875,56 @@ }, "node_modules/wildcard": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" + "license": "MIT" }, "node_modules/wordwrap": { "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha512-1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.4.0" } }, "node_modules/wrappy": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/ws": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", - "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", + "version": "8.20.0", "dev": true, - "dependencies": { - "options": ">=0.0.5", - "ultron": "1.0.x" + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, "node_modules/wtf-8": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha512-qfR6ovmRRMxNHgUNYI9LRdVofApe/eYrv4ggNOvvCP+pPdEo9Ym93QN4jUceGD6PignBbp2zAzgoE7GibAdq2A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/xmlbuilder": { "version": "12.0.0", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-12.0.0.tgz", - "integrity": "sha512-lMo8DJ8u6JRWp0/Y4XLa/atVDr75H9litKlb2E5j3V3MesoL50EBgZDWoLT3F/LztVnG67GjPXLZpqcky/UMnQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.0" } }, "node_modules/xmlhttprequest-ssl": { "version": "1.6.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz", - "integrity": "sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q==", "dev": true, "engines": { "node": ">=0.4.0" @@ -8539,19 +6932,16 @@ }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "license": "ISC" }, "node_modules/yeast": { "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha512-8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/yocto-queue": { "version": "1.2.2", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz", - "integrity": "sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ==", + "license": "MIT", "engines": { "node": ">=12.20" }, @@ -8559,18 +6949,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "xblock_pdf/assets": { - "name": "pdf-block", - "version": "1.0.0", - "extraneous": true, - "devDependencies": { - "@types/jquery": "^4.0.0", - "@vitest/browser-playwright": "^4.1.8", - "typescript": "^6.0.3", - "vite": "^8.0.16", - "vitest": "^4.1.8" - } - }, "xblock_pdf/js_tests": { "name": "pdf-block", "version": "1.0.0", @@ -8671,8 +7049,7 @@ }, "xblocks_contrib/video/assets/node_modules/webpack-merge": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", - "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", + "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", "flat": "^5.0.2", From 4084d3914d50c447bf5446367cca948c4ffbc5ba Mon Sep 17 00:00:00 2001 From: Kyle D McCormick Date: Mon, 10 Aug 2026 13:15:07 -0400 Subject: [PATCH 2/9] build!: Rename PyPI package from xblocks-contrib to xblocks-core MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The repository was originally named "xblocks-contrib", inspired by "django.contrib", which is a collection of nonessential but widely used django modules such as django.contrib.auth. But, the "Contrib" the term is not widely understood in Open edX, whereas "Core Blocks" is a widely understood concept. So, we've decided to rename the project while it's still new. This commit updates the PyPI package name, the GitHub repository URL, the development status classifier (Alpha → Production/Stable), the README title, and all documentation references. Code and file layout are unchanged here; the module restructuring follows in the next commit. Co-Authored-By: Claude Sonnet 4.6 Related: https://github.com/openedx/xblocks-core/issues/149 --- README.rst | 16 +++++++++------- catalog-info.yaml | 2 +- docs/Makefile | 8 ++++---- docs/conf.py | 17 ++++++++--------- docs/decisions/0002-pointer-tags-handling.rst | 4 ++-- docs/index.rst | 6 +++--- docs/make.bat | 4 ++-- docs/testing.rst | 2 +- package.json | 1 + pyproject.toml | 6 +++--- 10 files changed, 34 insertions(+), 32 deletions(-) diff --git a/README.rst b/README.rst index 92b1afda..6790bc3a 100644 --- a/README.rst +++ b/README.rst @@ -1,6 +1,8 @@ -=============== -xblocks-contrib -=============== +============ +xblocks-core +============ + +*Before Verawood, this repository was known as "xblocks-contrib"* This repository is the new home for XBlocks which are part of the base openedx-platform installation. @@ -94,8 +96,8 @@ For information on how to enable translations, visit the `Open edX XBlock tutori The included Makefile contains targets for extracting, compiling and validating translatable strings. Each XBlock in this repository has its own translation configuration under -``xblocks_contrib//conf/locale/`` and its own Transifex resource mapping under -``xblocks_contrib//.tx/config``. All Make targets iterate over every XBlock automatically. +``src/xblock_/conf/locale/`` and its own Transifex resource mapping under +``src/xblock_/.tx/config``. All Make targets iterate over every XBlock automatically. The general steps to provide multilingual messages for a Python program (or an XBlock) are: @@ -155,11 +157,11 @@ This iterates over every XBlock and: The output for each XBlock is a single file at:: - xblocks_contrib//conf/locale/en/LC_MESSAGES/text.po + src/xblock_/conf/locale/en/LC_MESSAGES/text.po Additionally, all per-xblock ``text.po`` files are merged into a single combined file at:: - xblocks_contrib/conf/locale/en/LC_MESSAGES/django.po + src/xblocks_core_locale/conf/locale/en/LC_MESSAGES/django.po This combined file is used by the `openedx-translations `_ pipeline (OEP-58) diff --git a/catalog-info.yaml b/catalog-info.yaml index 2491a39c..cf0cda61 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -7,7 +7,7 @@ apiVersion: backstage.io/v1alpha1 kind: Component metadata: - name: xblocks-contrib + name: xblocks-core annotations: openedx.org/component-type: "XBlock" openedx.org/arch-interest-groups: "feanil" diff --git a/docs/Makefile b/docs/Makefile index 1d579f6a..3cff6343 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -96,9 +96,9 @@ qthelp: @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/xblocks-contrib.qhcp" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/xblocks-core.qhcp" @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/xblocks-contrib.qhc" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/xblocks-core.qhc" .PHONY: applehelp applehelp: @@ -115,8 +115,8 @@ devhelp: @echo @echo "Build finished." @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/xblocks-contrib" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/xblocks-contrib" + @echo "# mkdir -p $$HOME/.local/share/devhelp/xblocks-core" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/xblocks-core" @echo "# devhelp" .PHONY: epub diff --git a/docs/conf.py b/docs/conf.py index 2178b9bc..685dea47 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -1,6 +1,6 @@ # pylint: disable=invalid-name """ -xblocks-contrib documentation build configuration file. +xblocks-core documentation build configuration file. This file is execfile()d with the current directory set to its containing dir. @@ -37,7 +37,7 @@ try: - VERSION = version("xblocks-contrib") + VERSION = version("xblocks-core") except PackageNotFoundError: VERSION = "unknown" @@ -88,17 +88,17 @@ top_level_doc = "index" # General information about the project. -project = "xblocks-contrib" +project = "xblocks-core" copyright = f"{datetime.now().year}, Axim Collaborative, Inc." # pylint: disable=redefined-builtin author = "Axim Collaborative, Inc." -project_title = "xblocks-contrib" +project_title = "xblocks-core" documentation_title = f"{project_title}" # Set display_github to False if you don't want "edit on Github" button html_context = { "display_github": True, # Integrate GitHub "github_user": "edx", # Username - "github_repo": "xblocks-contrib", # Repo name + "github_repo": "xblocks-core", # Repo name "github_version": "main", # Version "conf_py_path": "/docs/", # Path in the checkout to the docs root } @@ -183,7 +183,7 @@ # documentation. # html_theme_options = { - "repository_url": "https://github.com/openedx/xblocks-contrib", + "repository_url": "https://github.com/openedx/xblocks-core", "repository_branch": "main", "path_to_docs": "docs/", "home_page_in_toc": True, @@ -220,7 +220,7 @@ # The name for this set of Sphinx documents. # " v documentation" by default. # -# html_title = 'xblocks-contrib v0.1.0' +# html_title = 'xblocks-core v0.1.0' # A shorter title for the navigation bar. Default is the same as html_title. # @@ -536,8 +536,7 @@ def on_init(app): # pylint: disable=unused-argument apidoc_path, "-o", docs_path, - os.path.join(root_path, "xblocks_contrib"), - os.path.join(root_path, "xblocks_contrib/migrations"), + os.path.join(root_path, "src"), ] ) diff --git a/docs/decisions/0002-pointer-tags-handling.rst b/docs/decisions/0002-pointer-tags-handling.rst index c8f6426a..58878c29 100644 --- a/docs/decisions/0002-pointer-tags-handling.rst +++ b/docs/decisions/0002-pointer-tags-handling.rst @@ -54,7 +54,7 @@ Both formats are supported by edx-platform's `XmlMixin`, which handles: - **Parsing:** detecting pointer tags and loading their definitions from the pointed-to file. - **Exporting:** serializing blocks in pointer format. -However, this was disrupted when **built-in XBlocks** (such as `WordCloud`, `Annotatable`, `LTI`, `HTML`, `Poll`, `Video`, `Problem`) were **extracted from edx-platform** into a new repository: **xblocks-contrib**. +However, this was disrupted when **built-in XBlocks** (such as `WordCloud`, `Annotatable`, `LTI`, `HTML`, `Poll`, `Video`, `Problem`) were **extracted from edx-platform** into a new repository: **xblocks-core**. The key architectural change was that **extracted XBlocks no longer depend on `XmlMixin`** and instead inherit directly from the base `XBlock` class — following the *pure XBlock* pattern. This transition removed pointer-tag handling functionality for those blocks. @@ -115,4 +115,4 @@ References - `openedx/XBlock#830` - Initial attempt to add pointer-tag parsing to XBlock core - `openedx/edx-platform#37133` - Runtime-based pointer resolution PR -- `xblocks_contrib` - Repository containing extracted XBlocks and new `PointerTagMixin` +- `xblocks-core` - Repository containing extracted XBlocks and new `PointerTagMixin` diff --git a/docs/index.rst b/docs/index.rst index c1a0c307..e19b230f 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,10 +1,10 @@ -.. xblocks-contrib documentation top level file, created by +.. xblocks-core documentation top level file, created by sphinx-quickstart on Thu Jul 04 13:23:33 2024. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. -xblocks-contrib -=============== +xblocks-core +============ core xblocks diff --git a/docs/make.bat b/docs/make.bat index efd211c8..ace88b07 100644 --- a/docs/make.bat +++ b/docs/make.bat @@ -129,9 +129,9 @@ if "%1" == "qthelp" ( echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\xblocks-contrib.qhcp + echo.^> qcollectiongenerator %BUILDDIR%\qthelp\xblocks-core.qhcp echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\xblocks-contrib.ghc + echo.^> assistant -collectionFile %BUILDDIR%\qthelp\xblocks-core.ghc goto end ) diff --git a/docs/testing.rst b/docs/testing.rst index a882d178..4b8f2a16 100644 --- a/docs/testing.rst +++ b/docs/testing.rst @@ -3,7 +3,7 @@ Testing ####### -xblocks-contrib has an assortment of test cases and code quality +xblocks-core has an assortment of test cases and code quality checks to catch potential problems during development. To run them all in the version of Python you chose for your virtualenv: diff --git a/package.json b/package.json index 08f93ef0..5ce58241 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,5 @@ { + "name": "xblocks-core", "private": true, "workspaces": [ "xblocks_contrib/*/*", diff --git a/pyproject.toml b/pyproject.toml index 90a187e9..e1bf8fe9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires = ["setuptools>=64", "setuptools-scm>=8.0"] build-backend = "setuptools.build_meta" [project] -name = "xblocks-contrib" +name = "xblocks-core" dynamic = ["version"] description = "core xblocks" readme = "README.rst" @@ -14,7 +14,7 @@ authors = [ ] keywords = ["Python", "edx"] classifiers = [ - "Development Status :: 3 - Alpha", + "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Natural Language :: English", "Programming Language :: Python :: 3", @@ -56,7 +56,7 @@ dependencies = [ ] [project.urls] -Homepage = "https://github.com/openedx/xblocks-contrib" +Homepage = "https://github.com/openedx/xblocks-core" [project.entry-points."xblock.v1"] # _extracted suffix is added for testing only. From a9fc7971c11075d17b4f186108052c8520dc80ad Mon Sep 17 00:00:00 2001 From: Kyle D McCormick Date: Mon, 10 Aug 2026 13:17:43 -0400 Subject: [PATCH 3/9] feat!: Move XBlocks to individual packages under src/ Each XBlock now lives in its own standalone package under src/. Previously, all built-in XBlocks shared a single xblocks_contrib namespace package (xblocks_contrib.annotatable, xblocks_contrib.video, etc.), with xblock_pdf as a separate exception. The new layout is: src/xblock_annotatable/ src/xblock_discussion/ src/xblock_html/ src/xblock_lti/ src/xblock_pdf/ src/xblock_poll_question/ src/xblock_problem/ src/xblock_video/ src/xblock_word_cloud/ src/xblocks_core/ (shared legacy utilities) Each package has a single block.py entry point, an __init__.py that re-exports the block class, and its own conf/locale/ and .tx/config for translations. This makes it straightforward to eventually publish any XBlock as a separate, independently versioned package, if that is ever desired. It also is also now possible and low-risk to add new blocks in (e.g. xblock_drag_and_drop_v2) without changing their improt path. The poll XBlock becomes xblock_poll_question rather than xblock_poll because the name xblock_poll is already registered on PyPI by OpenCraft's polling XBlock (https://github.com/open-craft/xblock-poll), which has a different feature set. The entry-point key was already _poll_question_extracted, so consumers using the entry-point API are unaffected; only direct Python imports of xblocks_contrib.poll change. Dev and prod static-asset paths are now the same (public/ relative to each block), removing a special-case code path that produced different paths in the two environments. Related: https://github.com/openedx/xblocks-core/issues/237 Co-Authored-By: Claude Sonnet 4.6 --- .gitignore | 3 +- MANIFEST.in | 25 ++-- Makefile | 12 +- docs/internationalization.rst | 12 +- docs/xblocks_core.legacy_utils.rst | 21 +++ docs/xblocks_core.rst | 18 +++ package-lock.json | 47 +++--- package.json | 5 +- pyproject.toml | 26 ++-- .../lti => src/xblock_annotatable}/.tx/config | 2 +- src/xblock_annotatable/__init__.py | 5 + .../xblock_annotatable/block.py | 2 +- .../conf/locale/__init__.py | 0 .../conf/locale/config.yaml | 0 .../static/css/annotatable.css | 0 .../static/css/annotatable_editor.css | 0 .../static/js/src/annotatable.js | 0 .../static/js/src/annotatable_editor.js | 0 .../templates/annotatable.html | 0 .../templates/annotatable_editor.html | 0 .../tests/test_annotatable.py | 9 +- .../poll => src/xblock_discussion}/.tx/config | 2 +- src/xblock_discussion/__init__.py | 5 + .../xblock_discussion}/apps.py | 8 +- .../assets/jasmine.common.conf.js | 0 .../xblock_discussion}/assets/karma.conf.js | 0 .../xblock_discussion}/assets/package.json | 0 .../static/css/inline-discussion-rtl.css | 0 .../assets/static/css/inline-discussion.css | 0 .../assets/static/js/common/content.js | 0 .../assets/static/js/common/discussion.js | 0 .../static/js/common/mathjax_include.js | 0 .../models/discussion_course_settings.js | 0 .../js/common/models/discussion_user.js | 0 .../assets/static/js/common/utils.js | 0 .../common/views/discussion_content_view.js | 0 .../js/common/views/discussion_inline_view.js | 0 .../views/discussion_thread_edit_view.js | 0 .../views/discussion_thread_list_view.js | 0 .../views/discussion_thread_profile_view.js | 0 .../views/discussion_thread_show_view.js | 0 .../js/common/views/discussion_thread_view.js | 0 .../views/discussion_topic_menu_view.js | 0 .../static/js/common/views/new_post_view.js | 0 .../views/response_comment_edit_view.js | 0 .../views/response_comment_show_view.js | 0 .../js/common/views/response_comment_view.js | 0 .../common/views/thread_response_edit_view.js | 0 .../common/views/thread_response_show_view.js | 0 .../js/common/views/thread_response_view.js | 0 .../assets/static/js/customwmd.js | 0 .../assets/static/js/discussion_main.js | 0 .../assets/static/js/mathjax_accessible.js | 0 .../static/js/mathjax_delay_renderer.js | 0 .../static/js/vendor/Markdown.Converter.js | 0 .../static/js/vendor/Markdown.Editor.js | 0 .../static/js/vendor/Markdown.Sanitizer.js | 0 .../assets/static/js/vendor/URI.min.js | 0 .../static/js/vendor/jquery.ajaxfileupload.js | 0 .../static/js/vendor/jquery.leanModal.js | 0 .../assets/static/js/vendor/jquery.timeago.js | 0 .../static/js/vendor/jquery.timeago.locale.js | 0 .../static/js/vendor/jquery.truncate.js | 0 .../assets/static/js/vendor/split.js | 0 .../assets/static/spec/content_spec.js | 0 .../static/spec/fixtures/templates.underscore | 0 .../spec_helpers/discussion_spec_helper.js | 0 .../assets/static/spec/spec_helpers/i18n.js | 0 .../assets/static/spec/utils_spec.js | 0 .../spec/view/discussion_content_view_spec.js | 0 .../spec/view/discussion_inline_view_spec.js | 0 .../view/discussion_thread_edit_view_spec.js | 0 .../view/discussion_thread_list_view_spec.js | 0 .../discussion_thread_profile_view_spec.js | 0 .../view/discussion_thread_show_view_spec.js | 0 .../spec/view/discussion_thread_view_spec.js | 0 .../view/discussion_topic_menu_view_spec.js | 0 .../spec/view/discussion_view_spec_helper.js | 0 .../static/spec/view/new_post_view_spec.js | 0 .../view/response_comment_show_view_spec.js | 0 .../spec/view/response_comment_view_spec.js | 0 .../view/thread_response_show_view_spec.js | 0 .../spec/view/thread_response_view_spec.js | 0 .../assets/webpack.common.config.js | 0 .../assets/webpack.dev.config.js | 0 .../assets/webpack.prod.config.js | 0 .../xblock_discussion/block.py | 25 +--- .../conf/locale/__init__.py | 0 .../conf/locale/config.yaml | 0 .../templates/_discussion_inline_studio.html | 0 .../_discussion_inline.html | 0 .../_thread_list_template.html | 0 .../_underscore_templates.html | 0 .../discussion_templates/templates.underscore | 0 .../tests/test_discussion.py | 5 +- .../html => src/xblock_html}/.tx/config | 2 +- src/xblock_html/__init__.py | 6 + .../html/html.py => src/xblock_html/block.py | 2 +- .../xblock_html}/conf/locale/__init__.py | 0 .../xblock_html}/conf/locale/config.yaml | 0 .../xblock_html}/static/css/html.css | 0 .../templates/html/announcement.yaml | 0 .../templates/html/anon_user_id.yaml | 0 .../xblock_html}/templates/html/iframe.yaml | 0 .../xblock_html}/templates/html/raw.yaml | 0 .../templates/html/zooming_image.yaml | 0 .../xblock_html}/tests/test_html.py | 9 +- .../video => src/xblock_lti}/.tx/config | 2 +- .../lti => src/xblock_lti}/__init__.py | 2 +- .../lti/lti.py => src/xblock_lti/block.py | 2 +- .../xblock_lti/conf/locale}/__init__.py | 0 .../xblock_lti}/conf/locale/config.yaml | 0 .../lti => src/xblock_lti}/lti_2_util.py | 0 .../lti => src/xblock_lti}/static/css/lti.css | 0 .../xblock_lti}/static/js/src/lti.js | 0 .../lti => src/xblock_lti}/templates/lti.html | 2 +- .../xblock_lti}/templates/lti_form.html | 0 .../xblock_lti/tests}/__init__.py | 0 .../lti => src/xblock_lti}/tests/helpers.py | 0 .../xblock_lti}/tests/test_lti20_unit.py | 4 +- .../xblock_lti}/tests/test_lti_unit.py | 32 ++-- src/xblock_pdf/__init__.py | 3 + xblock_pdf/pdf.py => src/xblock_pdf/block.py | 0 .../xblock_pdf}/js_tests/jquery.d.ts | 0 .../xblock_pdf}/js_tests/package-lock.json | 0 .../xblock_pdf}/js_tests/package.json | 0 .../js_tests/specs/helpers/loadAsElement.js | 0 .../js_tests/specs/helpers/loadAsJQuery.js | 0 .../js_tests/specs/helpers/mockRuntime.js | 0 .../js_tests/specs/helpers/proveJQuery.js | 0 .../xblock_pdf}/js_tests/specs/pdf.spec.ts | 0 .../xblock_pdf}/js_tests/tsconfig.json | 0 .../xblock_pdf}/js_tests/vitest.config.ts | 0 .../xblock_pdf}/static/js/pdf.js | 0 .../xblock_pdf}/templates/html/pdf.html | 0 .../xblock_pdf}/tests/test_pdf.py | 0 {xblock_pdf => src/xblock_pdf}/utils.py | 0 src/xblock_poll_question/.tx/config | 8 + src/xblock_poll_question/__init__.py | 5 + .../xblock_poll_question/block.py | 2 +- .../conf/locale}/__init__.py | 0 .../conf/locale/config.yaml | 0 .../xblock_poll_question}/static/css/poll.css | 0 .../static/js/src/poll.js | 0 .../xblock_poll_question}/templates/poll.html | 0 .../xblock_poll_question}/tests/test_poll.py | 2 +- src/xblock_problem/.tx/config | 8 + src/xblock_problem/__init__.py | 5 + .../assets/fixtures/checkbox_problem.html | 0 .../assets/fixtures/codeinput_problem.html | 0 .../assets/fixtures/imageinput.html | 0 .../assets/fixtures/imageinput.underscore | 0 .../assets/fixtures/jsinput_problem.html | 0 .../assets/fixtures/matlabinput_problem.html | 0 .../assets/fixtures/problem.html | 0 .../assets/fixtures/problem_content.html | 0 .../assets/fixtures/problem_content_1240.html | 0 .../assets/fixtures/radiobutton_problem.html | 0 .../xblock_problem}/assets/karma.conf.js | 0 .../xblock_problem}/assets/karma_runner.js | 0 .../xblock_problem}/assets/package.json | 0 .../assets/spec/collapsible_spec.js | 0 .../assets/spec/display_spec.js | 0 .../assets/spec/imageinput_spec.js | 0 .../spec_helpers/accessibility_tools.js | 0 .../assets/spec_helpers/add_ajax_prefix.js | 0 .../assets/spec_helpers/ajax_prefix.js | 0 .../assets/spec_helpers/helper.js | 0 .../assets/spec_helpers/i18n.js | 0 .../assets/spec_helpers/jasmine-extensions.js | 0 .../assets/spec_helpers/jasmine-imagediff.js | 0 .../assets/spec_helpers/jasmine-waituntil.js | 0 .../assets/spec_helpers/logger.js | 0 .../assets/static/css/ProblemBlockDisplay.css | 0 .../assets/static/js/.gitignore | 0 .../assets/static/js/collapsible.js | 0 .../assets/static/js/display.js | 0 .../assets/static/js/imageinput.js | 0 .../assets/static/js/javascript_loader.js | 0 .../assets/static/js/schematic.js | 0 .../static/js/vendor/codemirror-compressed.js | 0 .../assets/static/js/xmodule.js | 0 .../xblock_problem}/assets/webpack.config.js | 0 .../assets/webpack.prod.config.js | 0 .../xblock_problem/block.py | 33 ++--- .../xblock_problem/capa}/__init__.py | 0 .../xblock_problem}/capa/apps.py | 7 +- .../xblock_problem}/capa/capa_problem.py | 18 +-- .../xblock_problem}/capa/checker.py | 2 +- .../xblock_problem}/capa/correctmap.py | 0 .../xblock_problem}/capa/customrender.py | 0 .../xblock_problem}/capa/errors.py | 0 .../xblock_problem}/capa/inputtypes.py | 6 +- .../xblock_problem}/capa/registry.py | 0 .../xblock_problem}/capa/responsetypes.py | 6 +- .../xblock_problem}/capa/safe_exec/README.rst | 0 .../capa/safe_exec/__init__.py | 0 .../capa/safe_exec/exceptions.py | 0 .../xblock_problem}/capa/safe_exec/lazymod.py | 0 .../capa/safe_exec/remote_exec.py | 0 .../capa/safe_exec/safe_exec.py | 0 .../capa/safe_exec/tests}/__init__.py | 0 .../tests/test_files/pylib/constant.py | 2 + .../capa/safe_exec/tests/test_lazymod.py | 2 +- .../capa/safe_exec/tests/test_remote_exec.py | 2 +- .../capa/safe_exec/tests/test_safe_exec.py | 39 +++-- .../capa/static/applets/Protex.jar | Bin .../capa/static/applets/genex.jar | Bin .../static/images/vsepr/AX2E0-3D-balls.png | Bin .../static/images/vsepr/AX2E1-3D-balls.png | Bin .../static/images/vsepr/AX2E2-3D-balls.png | Bin .../static/images/vsepr/AX2E3-3D-balls.png | Bin .../static/images/vsepr/AX3E0-3D-balls.png | Bin .../static/images/vsepr/AX3E1-3D-balls.png | Bin .../static/images/vsepr/AX3E2-3D-balls.png | Bin .../static/images/vsepr/AX4E0-3D-balls.png | Bin .../static/images/vsepr/AX4E1-3D-balls.png | Bin .../static/images/vsepr/AX4E2-3D-balls.png | Bin .../static/images/vsepr/AX5E1-3D-balls.png | Bin .../static/images/vsepr/AX5E2-3D-balls.png | Bin .../static/images/vsepr/AX6E0-3D-balls.png | Bin .../static/images/vsepr/AX6E1-3D-balls.png | Bin .../static/images/vsepr/AX7E0-3D-balls.png | Bin .../static/images/vsepr/AX8E0-3D-balls.png | Bin .../static/images/vsepr/AX9E0-3D-balls.png | Bin .../static/images/vsepr/Bent-3D-balls.png | Bin .../static/images/vsepr/Linear-3D-balls.png | Bin .../capa/static/images/vsepr/Linear-stick.png | Bin .../images/vsepr/Octahedral-3D-balls.png | Bin .../static/images/vsepr/Octahedral-stick.png | Bin .../vsepr/Pentagonal-bipyramidal-3D-balls.png | Bin .../vsepr/Pentagonal-planar-3D-balls.png | Bin .../vsepr/Pentagonal-pyramidal-3D-balls.png | Bin .../images/vsepr/Pyramidal-3D-balls.png | Bin .../static/images/vsepr/Seesaw-3D-balls.png | Bin .../vsepr/Square-antiprismatic-3D-balls.png | Bin .../images/vsepr/Square-planar-3D-balls.png | Bin .../static/images/vsepr/T-shaped-3D-balls.png | Bin .../images/vsepr/Tetrahedral-3D-balls.png | Bin .../static/images/vsepr/Tetrahedral-stick.png | Bin .../static/images/vsepr/Trigonal-3D-balls.png | Bin .../vsepr/Trigonal-bipyramidal-3D-balls.png | Bin .../vsepr/Trigonal-bipyramidal-stick.png | Bin .../images/vsepr/Trigonal-planar-stick.png | Bin .../capa/static/js/capa/README | 0 .../capa/static/js/capa/annotationinput.js | 0 .../js/capa/chemical_equation_preview.js | 0 .../capa/static/js/capa/choicetextinput.js | 0 .../capa/static/js/capa/design-protein-2d.js | 0 .../capa/static/js/capa/drag_and_drop.js | 0 .../js/capa/drag_and_drop/base_image.js | 0 .../js/capa/drag_and_drop/config_parser.js | 0 .../static/js/capa/drag_and_drop/container.js | 0 .../js/capa/drag_and_drop/draggable_events.js | 0 .../js/capa/drag_and_drop/draggable_logic.js | 0 .../js/capa/drag_and_drop/draggables.js | 0 .../capa/static/js/capa/drag_and_drop/main.js | 0 .../static/js/capa/drag_and_drop/scroller.js | 0 .../static/js/capa/drag_and_drop/state.js | 0 .../static/js/capa/drag_and_drop/targets.js | 0 .../js/capa/drag_and_drop/update_input.js | 0 .../capa/static/js/capa/edit-a-gene.js | 0 .../capa/static/js/capa/fixtures/jsinput.html | 0 ...1B31BA00E7CE7B6BD63DD13A8586A45.cache.html | 0 ...3308EE54E8033A708B414CAC05B0C32.cache.html | 0 ...AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html | 0 ...B4F4D4EFA24CDE2E4287CC07897F249.cache.html | 0 ...069AC107D79C29D6237614AC340F0C0.cache.html | 0 ...6220FCC8B9234FEAD8D826A73C6D2A4.cache.html | 0 .../capa/static/js/capa/genex/clear.cache.gif | Bin .../capa/static/js/capa/genex/genex.css | 0 .../static/js/capa/genex/genex.nocache.js | 0 .../capa/static/js/capa/genex/hosted.html | 0 .../static/js/capa/genex/images/circles.png | Bin .../js/capa/genex/images/circles_ie6.png | Bin .../static/js/capa/genex/images/corner.png | Bin .../js/capa/genex/images/corner_ie6.png | Bin .../static/js/capa/genex/images/hborder.png | Bin .../js/capa/genex/images/hborder_ie6.png | Bin .../js/capa/genex/images/thumb_horz.png | Bin .../js/capa/genex/images/thumb_vertical.png | Bin .../static/js/capa/genex/images/vborder.png | Bin .../js/capa/genex/images/vborder_ie6.png | Bin .../js/capa/jsinput/jsinput_example.css | 0 .../js/capa/jsinput/jsinput_example.html | 0 .../static/js/capa/jsinput/jsinput_example.js | 0 ...9CC89519B0E1FCB47B935AC9FE13D7B.cache.html | 0 ...E05B1CD5BFCAF7D53C7C64D84318178.cache.html | 0 ...824A958AB642DC2213DFFDAC640BEAA.cache.html | 0 ...9267DE8FB02F8B995B4A58C66C76E29.cache.html | 0 ...275492F7098103BCB05F4F86ABF6218.cache.html | 0 ...3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html | 0 .../static/js/capa/protex/clear.cache.gif | Bin .../capa/static/js/capa/protex/hosted.html | 0 .../capa/static/js/capa/protex/protex.css | 0 .../static/js/capa/protex/protex.nocache.js | 0 .../js/capa/protex/scrollTableLoading.gif | Bin .../capa/static/js/capa/schematicinput.js | 0 .../spec/formula_equation_preview_spec.js | 0 .../capa/static/js/capa/spec/jsinput_spec.js | 0 .../js/capa/src/formula_equation_preview.js | 0 .../capa/static/js/capa/src/jschannel.js | 0 .../capa/static/js/capa/src/jsinput.js | 0 .../js/capa/symbolic_mathjax_preprocessor.js | 0 .../static/js/vendor/CodeMirror/octave.js | 0 .../capa/templates/annotationinput.html | 0 .../capa/templates/chemicalequationinput.html | 0 .../capa/templates/choicegroup.html | 0 .../capa/templates/choicetext.html | 0 .../capa/templates/clarification.html | 0 .../capa/templates/codeinput.html | 0 .../capa/templates/crystallography.html | 0 .../capa/templates/designprotein2dinput.html | 0 .../capa/templates/drag_and_drop_input.html | 0 .../capa/templates/editageneinput.html | 0 .../capa/templates/editamolecule.html | 0 .../capa/templates/filesubmission.html | 0 .../capa/templates/formulaequationinput.html | 0 .../capa/templates/imageinput.html | 0 .../capa/templates/jsinput.html | 0 .../capa/templates/mathstring.html | 0 .../capa/templates/matlabinput.html | 0 .../capa/templates/optioninput.html | 0 .../capa/templates/problem.html | 0 .../capa/templates/problem_ajax.html | 0 .../capa/templates/problem_notifications.html | 0 .../capa/templates/schematicinput.html | 0 .../capa/templates/solutionspan.html | 0 .../capa/templates/status_span.html | 0 .../capa/templates/textline.html | 0 .../capa/templates/vsepr_input.html | 0 .../xblock_problem/capa}/tests/__init__.py | 0 .../xblock_problem}/capa/tests/helpers.py | 4 +- .../capa/tests/response_xml_factory.py | 0 .../capa/tests/test_answer_pool.py | 4 +- .../capa/tests/test_capa_problem.py | 10 +- .../capa/tests/test_correctmap.py | 2 +- .../capa/tests/test_customrender.py | 4 +- .../xblock_problem}/capa/tests/test_errors.py | 2 +- .../capa/tests/test_files/dynamath_input.txt | 0 .../capa/tests/test_files/extended_hints.xml | 0 .../test_files/extended_hints_checkbox.xml | 0 .../test_files/extended_hints_dropdown.xml | 0 .../extended_hints_multiple_choice.xml | 0 ...tended_hints_multiple_choice_with_html.xml | 0 .../extended_hints_numeric_input.xml | 0 .../test_files/extended_hints_text_input.xml | 0 .../test_files/extended_hints_with_errors.xml | 0 .../test_files/filename_convert_test.txt | 0 .../test_files/js/mersenne-twister-min.js | 0 .../test_files/js/test_problem_display.js | 0 .../test_files/js/test_problem_generator.js | 0 .../test_files/js/test_problem_grader.js | 0 .../capa/tests/test_files/js/xproblem.js | 0 .../tests/test_files/snuggletex_2x+3y.xml | 0 .../tests/test_files/snuggletex_correct.html | 0 .../tests/test_files/snuggletex_wrong.html | 0 .../tests/test_files/snuggletex_x+x+3y.xml | 0 .../tests/test_files/targeted_feedback.xml | 0 .../test_files/targeted_feedback_multiple.xml | 0 .../capa/tests/test_hint_functionality.py | 2 +- .../capa/tests/test_html_render.py | 6 +- .../capa/tests/test_input_templates.py | 8 +- .../capa/tests/test_inputtypes.py | 34 ++--- .../capa/tests/test_responsetypes.py | 22 +-- .../capa/tests/test_shuffle.py | 4 +- .../capa/tests/test_targeted_feedback.py | 2 +- .../xblock_problem}/capa/tests/test_util.py | 4 +- .../capa/tests/test_xqueue_interface.py | 6 +- .../capa/tests/test_xqueue_submission.py | 2 +- .../xblock_problem}/capa/util.py | 2 +- .../xblock_problem}/capa/xqueue_interface.py | 4 +- .../xblock_problem}/capa/xqueue_submission.py | 2 +- .../xblock_problem/conf/locale}/__init__.py | 0 .../xblock_problem}/conf/locale/config.yaml | 0 .../problem => src/xblock_problem}/markup.py | 2 +- .../xblock_problem}/stringify.py | 0 .../xblock_problem}/tests/__init__.py | 7 +- .../xblock_problem}/tests/data/capa/prog1.py | 0 .../xblock_problem}/tests/data/capa/prog2.py | 2 +- .../xblock_problem}/tests/data/capa/prog3.py | 0 .../xblock_problem}/tests/test_capa_block.py | 140 +++++++++--------- .../xblock_problem}/tests/test_stringify.py | 2 +- .../xblock_problem}/xmlparser.py | 0 src/xblock_video/.tx/config | 8 + src/xblock_video/__init__.py | 5 + .../xblock_video}/ajax_handler_mixin.py | 0 .../xblock_video}/assets/css/video.css | 0 .../assets/jasmine.common.conf.js | 0 .../assets/jasmine_stack_trace.js | 0 .../assets/js/src/00_async_process.js | 0 .../assets/js/src/00_component.js | 0 .../xblock_video}/assets/js/src/00_i18n.js | 0 .../assets/js/src/00_iterator.js | 0 .../xblock_video}/assets/js/src/00_resizer.js | 0 .../xblock_video}/assets/js/src/00_sjson.js | 0 .../assets/js/src/00_video_storage.js | 0 .../assets/js/src/01_initialize.js | 0 .../assets/js/src/025_focus_grabber.js | 0 .../assets/js/src/02_html5_hls_video.js | 0 .../assets/js/src/02_html5_video.js | 0 .../js/src/035_video_accessible_menu.js | 0 .../assets/js/src/036_video_social_sharing.js | 0 .../js/src/037_video_transcript_feedback.js | 0 .../assets/js/src/03_video_player.js | 0 .../assets/js/src/04_video_control.js | 0 .../assets/js/src/04_video_full_screen.js | 0 .../assets/js/src/05_video_quality_control.js | 0 .../assets/js/src/06_video_progress_slider.js | 0 .../assets/js/src/07_video_volume_control.js | 0 .../js/src/08_video_auto_advance_control.js | 0 .../assets/js/src/08_video_speed_control.js | 0 .../assets/js/src/095_video_context_menu.js | 0 .../xblock_video}/assets/js/src/09_bumper.js | 0 .../assets/js/src/09_completion.js | 0 .../assets/js/src/09_events_bumper_plugin.js | 0 .../assets/js/src/09_events_plugin.js | 0 .../assets/js/src/09_play_pause_control.js | 0 .../assets/js/src/09_play_placeholder.js | 0 .../assets/js/src/09_play_skip_control.js | 0 .../xblock_video}/assets/js/src/09_poster.js | 0 .../assets/js/src/09_save_state_plugin.js | 0 .../assets/js/src/09_skip_control.js | 0 .../assets/js/src/09_video_caption.js | 0 .../assets/js/src/10_commands.js | 0 .../xblock_video}/assets/js/src/10_main.js | 0 .../assets/js/src/utils/add_ajax_prefix.js | 0 .../assets/js/src/utils/ajax_prefix.js | 0 .../assets/js/src/utils/logger.js | 0 .../xblock_video}/assets/js/src/utils/time.js | 0 .../assets/js/src/vendor/jquery-ui.min.js | 0 .../assets/js/src/vendor/jquery.js | 0 .../xblock_video}/assets/karma.conf.js | 0 .../assets/karma.webpack.entry.js | 0 .../xblock_video}/assets/package.json | 0 .../assets/webpack.common.config.js | 0 .../assets/webpack.dev.config.js | 0 .../assets/webpack.prod.config.js | 0 .../video.py => src/xblock_video/block.py | 42 +++--- .../xblock_video}/bumper_utils.py | 0 .../video => src/xblock_video}/cache_utils.py | 0 .../xblock_video}/conf/locale/__init__.py | 0 .../xblock_video}/conf/locale/config.yaml | 0 .../video => src/xblock_video}/constants.py | 0 .../video => src/xblock_video}/exceptions.py | 0 .../video => src/xblock_video}/mixin.py | 0 .../xblock_video}/studio_metadata_mixin.py | 6 +- .../xblock_video}/templates/video.html | 2 +- .../xblock_video}/tests/__init__.py | 2 +- .../XXXXXXXXT114-V015600_0_.m3u8 | 0 .../XXXXXXXXT114-V015600_0_0.ts | Bin .../XXXXXXXXT114-V015600_0_1.ts | Bin .../XXXXXXXXT114-V015600_0_2.ts | Bin .../XXXXXXXXT114-V015600_1_.m3u8 | 0 .../XXXXXXXXT114-V015600_1_0.ts | Bin .../XXXXXXXXT114-V015600_1_1.ts | Bin .../XXXXXXXXT114-V015600_1_2.ts | Bin .../XXXXXXXXT114-V015600_2_.m3u8 | 0 .../XXXXXXXXT114-V015600_2_0.ts | Bin .../XXXXXXXXT114-V015600_2_1.ts | Bin .../XXXXXXXXT114-V015600_2_2.ts | Bin .../XXXXXXXXT114-V015600_3_.m3u8 | 0 .../XXXXXXXXT114-V015600_3_0.ts | Bin .../XXXXXXXXT114-V015600_3_1.ts | Bin .../XXXXXXXXT114-V015600_3_2.ts | Bin .../XXXXXXXXT114-V015600_4_.m3u8 | 0 .../XXXXXXXXT114-V015600_4_0.ts | Bin .../XXXXXXXXT114-V015600_4_1.ts | Bin .../XXXXXXXXT114-V015600_4_2.ts | Bin .../xblock_video}/tests/fixtures/hls/hls.m3u8 | 0 .../xblock_video}/tests/fixtures/play.png | Bin .../xblock_video}/tests/fixtures/poster.jpg | Bin .../xblock_video}/tests/fixtures/poster.png | Bin .../tests/fixtures/sequence.html | 0 .../tests/fixtures/tabs-edit.html | 0 .../xblock_video}/tests/fixtures/test.mp4 | Bin .../xblock_video}/tests/fixtures/test.ogv | Bin .../xblock_video}/tests/fixtures/test.webm | Bin .../xblock_video}/tests/fixtures/video.html | 0 .../tests/fixtures/video_all.html | 0 .../tests/fixtures/video_autoadvance.html | 0 .../fixtures/video_autoadvance_disabled.html | 0 .../tests/fixtures/video_hls.html | 0 .../tests/fixtures/video_html5.html | 0 .../tests/fixtures/video_no_captions.html | 0 .../fixtures/video_transcript_feedback.html | 0 .../tests/fixtures/video_with_bumper.html | 0 .../tests/fixtures/video_yt_multiple.html | 0 .../tests/fixtures/youtube_iframe_api.js | 0 .../video => src/xblock_video}/tests/i18n.js | 0 .../tests/js/async_process_spec.js | 0 .../xblock_video}/tests/js/completion_spec.js | 0 .../xblock_video}/tests/js/events_spec.js | 0 .../xblock_video}/tests/js/general_spec.js | 0 .../tests/js/html5_video_spec.js | 0 .../xblock_video}/tests/js/initialize_spec.js | 0 .../xblock_video}/tests/js/iterator_spec.js | 0 .../xblock_video}/tests/js/resizer_spec.js | 0 .../xblock_video}/tests/js/sjson_spec.js | 0 .../tests/js/social_share_spec.js | 0 .../xblock_video}/tests/js/time_spec.js | 0 .../tests/js/video_autoadvance_spec.js | 0 .../tests/js/video_bumper_spec.js | 0 .../tests/js/video_caption_spec.js | 0 .../tests/js/video_context_menu_spec.js | 0 .../tests/js/video_control_spec.js | 0 .../js/video_events_bumper_plugin_spec.js | 0 .../tests/js/video_events_plugin_spec.js | 0 .../tests/js/video_focus_grabber_spec.js | 0 .../tests/js/video_full_screen_spec.js | 0 .../tests/js/video_play_pause_control_spec.js | 0 .../tests/js/video_play_placeholder_spec.js | 0 .../tests/js/video_play_skip_control_spec.js | 0 .../tests/js/video_player_spec.js | 0 .../tests/js/video_poster_spec.js | 0 .../tests/js/video_progress_slider_spec.js | 0 .../tests/js/video_quality_control_spec.js | 0 .../tests/js/video_save_state_plugin_spec.js | 0 .../tests/js/video_skip_control_spec.js | 0 .../tests/js/video_speed_control_spec.js | 0 .../tests/js/video_storage_spec.js | 0 .../js/video_transcript_feedback_spec.js | 0 .../tests/js/video_volume_control_spec.js | 0 .../tests/spec_helpers/helper.js | 0 .../tests/spec_helpers/jasmine-extensions.js | 0 .../tests/spec_helpers/jasmine-stealth.js | 0 .../tests/spec_helpers/jasmine-waituntil.js | 0 .../tests/spec_helpers/page_helpers.js | 0 .../tests/spec_helpers/template_helpers.js | 0 .../spec_helpers/vertical_student_view.js | 0 .../tests/spec_helpers/video_helper.js | 0 .../tests/spec_helpers/view_helpers.js | 0 .../tests/spec_helpers/xmodule_spec.js | 0 .../tests/test_studio_metadata_mixin.py | 6 +- .../xblock_video}/tests/test_utils.py | 0 .../xblock_video}/tests/test_video.py | 34 ++--- .../tests/views/bookmark_button.js | 0 .../tests/views/message_banner.js | 0 .../video => src/xblock_video}/validation.py | 0 .../xblock_video}/video_handlers.py | 6 +- .../video_static_content_utils.py | 0 .../xblock_video}/video_transcripts_utils.py | 6 +- .../video => src/xblock_video}/video_utils.py | 29 ---- .../xblock_video}/video_xfields.py | 0 src/xblock_word_cloud/.tx/config | 8 + .../xblock_word_cloud}/__init__.py | 2 +- .../xblock_word_cloud/block.py | 2 +- .../conf/locale/__init__.py | 0 .../conf/locale/config.yaml | 0 .../static/css/word_cloud.css | 0 .../static/js/src/d3.layout.cloud.js | 0 .../static/js/src/d3.min.js | 0 .../static/js/src/html_utils.js | 0 .../static/js/src/word_cloud.js | 0 .../templates/word_cloud.html | 2 +- .../xblock_word_cloud/tests}/__init__.py | 0 .../tests/test_word_cloud.py | 2 +- src/xblocks_core/__init__.py | 11 ++ src/xblocks_core/legacy_utils/__init__.py | 6 + .../xblocks_core}/legacy_utils/xml_utils.py | 2 +- test_settings.py | 6 +- xblock_pdf/__init__.py | 3 - xblocks_contrib/__init__.py | 10 -- xblocks_contrib/annotatable/.tx/config | 8 - xblocks_contrib/annotatable/__init__.py | 5 - xblocks_contrib/discussion/.tx/config | 8 - xblocks_contrib/discussion/__init__.py | 5 - xblocks_contrib/html/__init__.py | 6 - xblocks_contrib/poll/__init__.py | 5 - xblocks_contrib/problem/.tx/config | 8 - xblocks_contrib/problem/__init__.py | 5 - .../tests/test_files/pylib/constant.py | 1 - xblocks_contrib/video/__init__.py | 5 - xblocks_contrib/word_cloud/.tx/config | 8 - xblocks_contrib/word_cloud/tests/__init__.py | 0 575 files changed, 494 insertions(+), 492 deletions(-) create mode 100644 docs/xblocks_core.legacy_utils.rst create mode 100644 docs/xblocks_core.rst rename {xblocks_contrib/lti => src/xblock_annotatable}/.tx/config (75%) create mode 100644 src/xblock_annotatable/__init__.py rename xblocks_contrib/annotatable/annotatable.py => src/xblock_annotatable/block.py (99%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/conf/locale/__init__.py (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/conf/locale/config.yaml (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/static/css/annotatable.css (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/static/css/annotatable_editor.css (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/static/js/src/annotatable.js (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/static/js/src/annotatable_editor.js (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/templates/annotatable.html (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/templates/annotatable_editor.html (100%) rename {xblocks_contrib/annotatable => src/xblock_annotatable}/tests/test_annotatable.py (96%) rename {xblocks_contrib/poll => src/xblock_discussion}/.tx/config (75%) create mode 100644 src/xblock_discussion/__init__.py rename {xblocks_contrib/discussion => src/xblock_discussion}/apps.py (89%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/jasmine.common.conf.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/karma.conf.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/package.json (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/css/inline-discussion-rtl.css (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/css/inline-discussion.css (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/content.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/discussion.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/mathjax_include.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/models/discussion_course_settings.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/models/discussion_user.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/utils.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_content_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_inline_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_thread_edit_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_thread_list_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_thread_profile_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_thread_show_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_thread_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/discussion_topic_menu_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/new_post_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/response_comment_edit_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/response_comment_show_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/response_comment_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/thread_response_edit_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/thread_response_show_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/common/views/thread_response_view.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/customwmd.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/discussion_main.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/mathjax_accessible.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/mathjax_delay_renderer.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/Markdown.Converter.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/Markdown.Editor.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/Markdown.Sanitizer.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/URI.min.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/jquery.ajaxfileupload.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/jquery.leanModal.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/jquery.timeago.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/jquery.timeago.locale.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/jquery.truncate.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/js/vendor/split.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/content_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/fixtures/templates.underscore (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/spec_helpers/discussion_spec_helper.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/spec_helpers/i18n.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/utils_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_content_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_inline_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_thread_edit_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_thread_list_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_thread_profile_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_thread_show_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_thread_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_topic_menu_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/discussion_view_spec_helper.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/new_post_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/response_comment_show_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/response_comment_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/thread_response_show_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/static/spec/view/thread_response_view_spec.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/webpack.common.config.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/webpack.dev.config.js (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/assets/webpack.prod.config.js (100%) rename xblocks_contrib/discussion/discussion.py => src/xblock_discussion/block.py (90%) rename {xblocks_contrib/discussion => src/xblock_discussion}/conf/locale/__init__.py (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/conf/locale/config.yaml (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/templates/_discussion_inline_studio.html (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/templates/discussion_templates/_discussion_inline.html (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/templates/discussion_templates/_thread_list_template.html (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/templates/discussion_templates/_underscore_templates.html (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/templates/discussion_templates/templates.underscore (100%) rename {xblocks_contrib/discussion => src/xblock_discussion}/tests/test_discussion.py (98%) rename {xblocks_contrib/html => src/xblock_html}/.tx/config (75%) create mode 100644 src/xblock_html/__init__.py rename xblocks_contrib/html/html.py => src/xblock_html/block.py (99%) rename {xblocks_contrib/html => src/xblock_html}/conf/locale/__init__.py (100%) rename {xblocks_contrib/html => src/xblock_html}/conf/locale/config.yaml (100%) rename {xblocks_contrib/html => src/xblock_html}/static/css/html.css (100%) rename {xblocks_contrib/html => src/xblock_html}/templates/html/announcement.yaml (100%) rename {xblocks_contrib/html => src/xblock_html}/templates/html/anon_user_id.yaml (100%) rename {xblocks_contrib/html => src/xblock_html}/templates/html/iframe.yaml (100%) rename {xblocks_contrib/html => src/xblock_html}/templates/html/raw.yaml (100%) rename {xblocks_contrib/html => src/xblock_html}/templates/html/zooming_image.yaml (100%) rename {xblocks_contrib/html => src/xblock_html}/tests/test_html.py (97%) rename {xblocks_contrib/video => src/xblock_lti}/.tx/config (74%) rename {xblocks_contrib/lti => src/xblock_lti}/__init__.py (77%) rename xblocks_contrib/lti/lti.py => src/xblock_lti/block.py (99%) rename {xblocks_contrib/legacy_utils => src/xblock_lti/conf/locale}/__init__.py (100%) rename {xblocks_contrib/lti => src/xblock_lti}/conf/locale/config.yaml (100%) rename {xblocks_contrib/lti => src/xblock_lti}/lti_2_util.py (100%) rename {xblocks_contrib/lti => src/xblock_lti}/static/css/lti.css (100%) rename {xblocks_contrib/lti => src/xblock_lti}/static/js/src/lti.js (100%) rename {xblocks_contrib/lti => src/xblock_lti}/templates/lti.html (98%) rename {xblocks_contrib/lti => src/xblock_lti}/templates/lti_form.html (100%) rename {xblocks_contrib/lti/conf/locale => src/xblock_lti/tests}/__init__.py (100%) rename {xblocks_contrib/lti => src/xblock_lti}/tests/helpers.py (100%) rename {xblocks_contrib/lti => src/xblock_lti}/tests/test_lti20_unit.py (99%) rename {xblocks_contrib/lti => src/xblock_lti}/tests/test_lti_unit.py (96%) create mode 100644 src/xblock_pdf/__init__.py rename xblock_pdf/pdf.py => src/xblock_pdf/block.py (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/jquery.d.ts (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/package-lock.json (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/package.json (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/specs/helpers/loadAsElement.js (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/specs/helpers/loadAsJQuery.js (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/specs/helpers/mockRuntime.js (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/specs/helpers/proveJQuery.js (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/specs/pdf.spec.ts (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/tsconfig.json (100%) rename {xblock_pdf => src/xblock_pdf}/js_tests/vitest.config.ts (100%) rename {xblock_pdf => src/xblock_pdf}/static/js/pdf.js (100%) rename {xblock_pdf => src/xblock_pdf}/templates/html/pdf.html (100%) rename {xblock_pdf => src/xblock_pdf}/tests/test_pdf.py (100%) rename {xblock_pdf => src/xblock_pdf}/utils.py (100%) create mode 100644 src/xblock_poll_question/.tx/config create mode 100644 src/xblock_poll_question/__init__.py rename xblocks_contrib/poll/poll.py => src/xblock_poll_question/block.py (99%) rename {xblocks_contrib/lti/tests => src/xblock_poll_question/conf/locale}/__init__.py (100%) rename {xblocks_contrib/poll => src/xblock_poll_question}/conf/locale/config.yaml (100%) rename {xblocks_contrib/poll => src/xblock_poll_question}/static/css/poll.css (100%) rename {xblocks_contrib/poll => src/xblock_poll_question}/static/js/src/poll.js (100%) rename {xblocks_contrib/poll => src/xblock_poll_question}/templates/poll.html (100%) rename {xblocks_contrib/poll => src/xblock_poll_question}/tests/test_poll.py (98%) create mode 100644 src/xblock_problem/.tx/config create mode 100644 src/xblock_problem/__init__.py rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/checkbox_problem.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/codeinput_problem.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/imageinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/imageinput.underscore (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/jsinput_problem.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/matlabinput_problem.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/problem.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/problem_content.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/problem_content_1240.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/fixtures/radiobutton_problem.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/karma.conf.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/karma_runner.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/package.json (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec/collapsible_spec.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec/display_spec.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec/imageinput_spec.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/accessibility_tools.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/add_ajax_prefix.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/ajax_prefix.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/helper.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/i18n.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/jasmine-extensions.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/jasmine-imagediff.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/jasmine-waituntil.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/spec_helpers/logger.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/css/ProblemBlockDisplay.css (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/.gitignore (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/collapsible.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/display.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/imageinput.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/javascript_loader.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/schematic.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/vendor/codemirror-compressed.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/static/js/xmodule.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/webpack.config.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/assets/webpack.prod.config.js (100%) rename xblocks_contrib/problem/capa_block.py => src/xblock_problem/block.py (98%) rename {xblocks_contrib/poll/conf/locale => src/xblock_problem/capa}/__init__.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/apps.py (90%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/capa_problem.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/checker.py (98%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/correctmap.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/customrender.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/errors.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/inputtypes.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/registry.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/responsetypes.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/README.rst (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/__init__.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/exceptions.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/lazymod.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/remote_exec.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/safe_exec.py (100%) rename {xblocks_contrib/problem/capa => src/xblock_problem/capa/safe_exec/tests}/__init__.py (100%) create mode 100644 src/xblock_problem/capa/safe_exec/tests/test_files/pylib/constant.py rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/tests/test_lazymod.py (97%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/tests/test_remote_exec.py (92%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/safe_exec/tests/test_safe_exec.py (94%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/applets/Protex.jar (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/applets/genex.jar (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX2E0-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX2E1-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX2E2-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX2E3-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX3E0-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX3E1-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX3E2-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX4E0-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX4E1-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX4E2-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX5E1-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX5E2-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX6E0-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX6E1-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX7E0-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX8E0-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/AX9E0-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Bent-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Linear-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Linear-stick.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Octahedral-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Octahedral-stick.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Pentagonal-bipyramidal-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Pentagonal-planar-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Pentagonal-pyramidal-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Pyramidal-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Seesaw-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Square-antiprismatic-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Square-planar-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/T-shaped-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Tetrahedral-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Tetrahedral-stick.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Trigonal-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Trigonal-bipyramidal-3D-balls.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Trigonal-bipyramidal-stick.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/images/vsepr/Trigonal-planar-stick.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/README (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/annotationinput.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/chemical_equation_preview.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/choicetextinput.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/design-protein-2d.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/base_image.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/config_parser.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/container.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/draggable_events.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/draggable_logic.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/draggables.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/main.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/scroller.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/state.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/targets.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/drag_and_drop/update_input.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/edit-a-gene.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/fixtures/jsinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/21B31BA00E7CE7B6BD63DD13A8586A45.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/63308EE54E8033A708B414CAC05B0C32.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/7AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/9B4F4D4EFA24CDE2E4287CC07897F249.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/A069AC107D79C29D6237614AC340F0C0.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/C6220FCC8B9234FEAD8D826A73C6D2A4.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/clear.cache.gif (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/genex.css (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/genex.nocache.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/hosted.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/circles.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/circles_ie6.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/corner.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/corner_ie6.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/hborder.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/hborder_ie6.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/thumb_horz.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/thumb_vertical.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/vborder.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/genex/images/vborder_ie6.png (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/jsinput/jsinput_example.css (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/jsinput/jsinput_example.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/jsinput/jsinput_example.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/39CC89519B0E1FCB47B935AC9FE13D7B.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/6E05B1CD5BFCAF7D53C7C64D84318178.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/C824A958AB642DC2213DFFDAC640BEAA.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/D9267DE8FB02F8B995B4A58C66C76E29.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/F275492F7098103BCB05F4F86ABF6218.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/F3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/clear.cache.gif (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/hosted.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/protex.css (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/protex.nocache.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/protex/scrollTableLoading.gif (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/schematicinput.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/spec/formula_equation_preview_spec.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/spec/jsinput_spec.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/src/formula_equation_preview.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/src/jschannel.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/src/jsinput.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/capa/symbolic_mathjax_preprocessor.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/static/js/vendor/CodeMirror/octave.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/annotationinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/chemicalequationinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/choicegroup.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/choicetext.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/clarification.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/codeinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/crystallography.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/designprotein2dinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/drag_and_drop_input.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/editageneinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/editamolecule.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/filesubmission.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/formulaequationinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/imageinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/jsinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/mathstring.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/matlabinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/optioninput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/problem.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/problem_ajax.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/problem_notifications.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/schematicinput.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/solutionspan.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/status_span.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/textline.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/templates/vsepr_input.html (100%) rename {xblocks_contrib/problem/capa/safe_exec => src/xblock_problem/capa}/tests/__init__.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/helpers.py (96%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/response_xml_factory.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_answer_pool.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_capa_problem.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_correctmap.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_customrender.py (95%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_errors.py (97%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/dynamath_input.txt (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints_checkbox.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints_dropdown.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints_multiple_choice.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints_multiple_choice_with_html.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints_numeric_input.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints_text_input.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/extended_hints_with_errors.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/filename_convert_test.txt (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/js/mersenne-twister-min.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/js/test_problem_display.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/js/test_problem_generator.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/js/test_problem_grader.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/js/xproblem.js (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/snuggletex_2x+3y.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/snuggletex_correct.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/snuggletex_wrong.html (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/snuggletex_x+x+3y.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/targeted_feedback.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_files/targeted_feedback_multiple.xml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_hint_functionality.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_html_render.py (98%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_input_templates.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_inputtypes.py (98%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_responsetypes.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_shuffle.py (98%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_targeted_feedback.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_util.py (98%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_xqueue_interface.py (90%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/tests/test_xqueue_submission.py (98%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/util.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/xqueue_interface.py (97%) rename {xblocks_contrib/problem => src/xblock_problem}/capa/xqueue_submission.py (98%) rename {xblocks_contrib/problem/capa/tests => src/xblock_problem/conf/locale}/__init__.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/conf/locale/config.yaml (100%) rename {xblocks_contrib/problem => src/xblock_problem}/markup.py (93%) rename {xblocks_contrib/problem => src/xblock_problem}/stringify.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/tests/__init__.py (97%) rename {xblocks_contrib/problem => src/xblock_problem}/tests/data/capa/prog1.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/tests/data/capa/prog2.py (99%) rename {xblocks_contrib/problem => src/xblock_problem}/tests/data/capa/prog3.py (100%) rename {xblocks_contrib/problem => src/xblock_problem}/tests/test_capa_block.py (96%) rename {xblocks_contrib/problem => src/xblock_problem}/tests/test_stringify.py (95%) rename {xblocks_contrib/problem => src/xblock_problem}/xmlparser.py (100%) create mode 100644 src/xblock_video/.tx/config create mode 100644 src/xblock_video/__init__.py rename {xblocks_contrib/video => src/xblock_video}/ajax_handler_mixin.py (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/css/video.css (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/jasmine.common.conf.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/jasmine_stack_trace.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/00_async_process.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/00_component.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/00_i18n.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/00_iterator.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/00_resizer.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/00_sjson.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/00_video_storage.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/01_initialize.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/025_focus_grabber.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/02_html5_hls_video.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/02_html5_video.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/035_video_accessible_menu.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/036_video_social_sharing.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/037_video_transcript_feedback.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/03_video_player.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/04_video_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/04_video_full_screen.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/05_video_quality_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/06_video_progress_slider.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/07_video_volume_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/08_video_auto_advance_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/08_video_speed_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/095_video_context_menu.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_bumper.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_completion.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_events_bumper_plugin.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_events_plugin.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_play_pause_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_play_placeholder.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_play_skip_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_poster.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_save_state_plugin.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_skip_control.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/09_video_caption.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/10_commands.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/10_main.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/utils/add_ajax_prefix.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/utils/ajax_prefix.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/utils/logger.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/utils/time.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/vendor/jquery-ui.min.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/js/src/vendor/jquery.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/karma.conf.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/karma.webpack.entry.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/package.json (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/webpack.common.config.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/webpack.dev.config.js (100%) rename {xblocks_contrib/video => src/xblock_video}/assets/webpack.prod.config.js (100%) rename xblocks_contrib/video/video.py => src/xblock_video/block.py (97%) rename {xblocks_contrib/video => src/xblock_video}/bumper_utils.py (100%) rename {xblocks_contrib/video => src/xblock_video}/cache_utils.py (100%) rename {xblocks_contrib/problem => src/xblock_video}/conf/locale/__init__.py (100%) rename {xblocks_contrib/video => src/xblock_video}/conf/locale/config.yaml (100%) rename {xblocks_contrib/video => src/xblock_video}/constants.py (100%) rename {xblocks_contrib/video => src/xblock_video}/exceptions.py (100%) rename {xblocks_contrib/video => src/xblock_video}/mixin.py (100%) rename {xblocks_contrib/video => src/xblock_video}/studio_metadata_mixin.py (96%) rename {xblocks_contrib/video => src/xblock_video}/templates/video.html (99%) rename {xblocks_contrib/video => src/xblock_video}/tests/__init__.py (66%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_.m3u8 (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_0.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_1.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_2.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_.m3u8 (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_0.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_1.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_2.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_.m3u8 (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_0.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_1.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_2.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_.m3u8 (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_0.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_1.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_2.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_.m3u8 (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_0.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_1.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_2.ts (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/hls/hls.m3u8 (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/play.png (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/poster.jpg (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/poster.png (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/sequence.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/tabs-edit.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/test.mp4 (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/test.ogv (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/test.webm (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_all.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_autoadvance.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_autoadvance_disabled.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_hls.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_html5.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_no_captions.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_transcript_feedback.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_with_bumper.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/video_yt_multiple.html (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/fixtures/youtube_iframe_api.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/i18n.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/async_process_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/completion_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/events_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/general_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/html5_video_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/initialize_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/iterator_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/resizer_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/sjson_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/social_share_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/time_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_autoadvance_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_bumper_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_caption_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_context_menu_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_control_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_events_bumper_plugin_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_events_plugin_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_focus_grabber_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_full_screen_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_play_pause_control_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_play_placeholder_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_play_skip_control_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_player_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_poster_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_progress_slider_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_quality_control_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_save_state_plugin_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_skip_control_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_speed_control_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_storage_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_transcript_feedback_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/js/video_volume_control_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/helper.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/jasmine-extensions.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/jasmine-stealth.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/jasmine-waituntil.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/page_helpers.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/template_helpers.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/vertical_student_view.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/video_helper.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/view_helpers.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/spec_helpers/xmodule_spec.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/test_studio_metadata_mixin.py (97%) rename {xblocks_contrib/video => src/xblock_video}/tests/test_utils.py (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/test_video.py (97%) rename {xblocks_contrib/video => src/xblock_video}/tests/views/bookmark_button.js (100%) rename {xblocks_contrib/video => src/xblock_video}/tests/views/message_banner.js (100%) rename {xblocks_contrib/video => src/xblock_video}/validation.py (100%) rename {xblocks_contrib/video => src/xblock_video}/video_handlers.py (98%) rename {xblocks_contrib/video => src/xblock_video}/video_static_content_utils.py (100%) rename {xblocks_contrib/video => src/xblock_video}/video_transcripts_utils.py (97%) rename {xblocks_contrib/video => src/xblock_video}/video_utils.py (83%) rename {xblocks_contrib/video => src/xblock_video}/video_xfields.py (100%) create mode 100644 src/xblock_word_cloud/.tx/config rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/__init__.py (60%) rename xblocks_contrib/word_cloud/word_cloud.py => src/xblock_word_cloud/block.py (99%) rename {xblocks_contrib/video => src/xblock_word_cloud}/conf/locale/__init__.py (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/conf/locale/config.yaml (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/static/css/word_cloud.css (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/static/js/src/d3.layout.cloud.js (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/static/js/src/d3.min.js (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/static/js/src/html_utils.js (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/static/js/src/word_cloud.js (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/templates/word_cloud.html (97%) rename {xblocks_contrib/word_cloud/conf/locale => src/xblock_word_cloud/tests}/__init__.py (100%) rename {xblocks_contrib/word_cloud => src/xblock_word_cloud}/tests/test_word_cloud.py (98%) create mode 100644 src/xblocks_core/__init__.py create mode 100644 src/xblocks_core/legacy_utils/__init__.py rename {xblocks_contrib => src/xblocks_core}/legacy_utils/xml_utils.py (99%) delete mode 100644 xblock_pdf/__init__.py delete mode 100644 xblocks_contrib/__init__.py delete mode 100644 xblocks_contrib/annotatable/.tx/config delete mode 100644 xblocks_contrib/annotatable/__init__.py delete mode 100644 xblocks_contrib/discussion/.tx/config delete mode 100644 xblocks_contrib/discussion/__init__.py delete mode 100644 xblocks_contrib/html/__init__.py delete mode 100644 xblocks_contrib/poll/__init__.py delete mode 100644 xblocks_contrib/problem/.tx/config delete mode 100644 xblocks_contrib/problem/__init__.py delete mode 100644 xblocks_contrib/problem/capa/safe_exec/tests/test_files/pylib/constant.py delete mode 100644 xblocks_contrib/video/__init__.py delete mode 100644 xblocks_contrib/word_cloud/.tx/config delete mode 100644 xblocks_contrib/word_cloud/tests/__init__.py diff --git a/.gitignore b/.gitignore index 7c03c9d3..7e5a0cec 100644 --- a/.gitignore +++ b/.gitignore @@ -83,8 +83,7 @@ output/*/index.html # Sphinx docs/_build/ docs/modules.rst -docs/xblocks_contrib.rst -docs/xblocks_contrib.*.rst +docs/xblock_*.rst # Private requirements requirements/private.in diff --git a/MANIFEST.in b/MANIFEST.in index 2fde07c7..435723a3 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2,30 +2,29 @@ include LICENSE.txt README.rst # --- PACKAGE DATA --- -recursive-include xblocks_contrib *.html *.js *.css *.jar *.png *.gif *.jpg *.jpeg *.svg *.yaml *.underscore -recursive-include xblock_pdf *.html *.js *.css +recursive-include src *.html *.js *.css *.jar *.png *.gif *.jpg *.jpeg *.svg *.yaml *.underscore # --- EXCLUSIONS --- # Prevent raw frontend source files and node_modules from bloating the Python wheel. -prune xblocks_contrib/*/assets -prune xblocks_contrib/*/node_modules +prune src/*/assets +prune src/*/node_modules global-exclude webpack*.config.js karma*.js package*.json package-lock.json .gitignore # Exclude top-level tests and JS specs by default to keep the distribution size small. -# NOTE: The `*` here only looks one directory deep (e.g., `foo/tests`). -prune */tests -prune */spec +# NOTE: The `*` here only looks one directory deep (e.g., `foo/tests`). +prune src/*/tests +prune src/*/spec # Because MANIFEST.in does not support `**` (globstar) for infinite folder depth, # generic wildcards cannot reach deeply nested folders. We must explicitly prune # these deep directories to prevent them from being swept up by `recursive-include`. -prune xblocks_contrib/problem/capa/static/js/capa/spec -prune xblocks_contrib/problem/capa/static/js/capa/fixtures -prune xblocks_contrib/problem/capa/tests/test_files +prune src/xblock_problem/capa/static/js/capa/spec +prune src/xblock_problem/capa/static/js/capa/fixtures +prune src/xblock_problem/capa/tests/test_files # --- TEST UTILITY INCLUSIONS --- # Re-include specific test files that are excluded above. # We do this because openedx-platform imports these specific test helpers. -include xblocks_contrib/problem/capa/tests/test_util.py -include xblocks_contrib/problem/capa/tests/helpers.py -include xblocks_contrib/problem/capa/tests/response_xml_factory.py +include src/xblock_problem/capa/tests/test_util.py +include src/xblock_problem/capa/tests/helpers.py +include src/xblock_problem/capa/tests/response_xml_factory.py diff --git a/Makefile b/Makefile index 1e478c4e..9c7440cc 100644 --- a/Makefile +++ b/Makefile @@ -5,10 +5,12 @@ .PHONY: detect_changed_source_translations dummy_translations build_dummy_translations .PHONY: validate_translations pull_translations push_translations install_transifex_clients -PACKAGE_NAME := xblocks_contrib +SRC_DIR := src EXTRACT_DIR := conf/locale/en/LC_MESSAGES -COMBINED_LOCALE_DIR := $(PACKAGE_NAME)/conf/locale/en/LC_MESSAGES -JS_TARGET := $(PACKAGE_NAME)/public/js/translations +# Combined-locale output for the openedx-translations pipeline (OEP-58), +# which expects a single `django.po` source file per repository. +COMBINED_LOCALE_DIR := $(SRC_DIR)/xblocks_core_locale/conf/locale/en/LC_MESSAGES +JS_TARGET := $(SRC_DIR)/xblocks_core_locale/public/js/translations help: @perl -nle'print $& if m{^[\.a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m %-25s\033[0m %s\n", $$1, $$2}' @@ -34,8 +36,8 @@ requirements: ## install development environment requirements using uv uv sync --group dev uv tool install tox --with tox-uv -# XBlock directories -XBLOCKS=$(shell find $(shell pwd)/$(PACKAGE_NAME) -mindepth 2 -maxdepth 2 -type d -name 'conf' -exec dirname {} \;) +# XBlock directories: each src/xblock_/ that has its own conf/ subdir +XBLOCKS=$(shell find $(shell pwd)/$(SRC_DIR) -mindepth 2 -maxdepth 2 -type d -name 'conf' -exec dirname {} \;) ## Localization targets diff --git a/docs/internationalization.rst b/docs/internationalization.rst index ed16c7e0..ea8fae5e 100644 --- a/docs/internationalization.rst +++ b/docs/internationalization.rst @@ -14,14 +14,14 @@ Project structure ***************** Each XBlock in this repository manages its own translations independently: -- **Config**: ``xblocks_contrib//conf/locale/config.yaml`` -- defines supported languages and +- **Config**: ``src/xblock_/conf/locale/config.yaml`` -- defines supported languages and ignored directories. -- **Source strings**: ``xblocks_contrib//conf/locale/en/LC_MESSAGES/text.po`` -- extracted +- **Source strings**: ``src/xblock_/conf/locale/en/LC_MESSAGES/text.po`` -- extracted English strings (Python, HTML, and JavaScript combined into a single file). -- **Transifex mapping**: ``xblocks_contrib//.tx/config`` -- maps the local ``conf/locale/`` +- **Transifex mapping**: ``src/xblock_/.tx/config`` -- maps the local ``conf/locale/`` paths to the Transifex resource for that XBlock. -- **Combined source file**: ``xblocks_contrib/conf/locale/en/LC_MESSAGES/django.po`` -- all per-xblock - ``text.po`` files merged into one, used by the openedx-translations pipeline (OEP-58). +- **Combined source file**: ``src/xblocks_core_locale/conf/locale/en/LC_MESSAGES/django.po`` -- all + per-xblock ``text.po`` files merged into one, used by the openedx-translations pipeline (OEP-58). All ``make`` targets iterate over every XBlock that has a ``conf/`` directory automatically. @@ -37,7 +37,7 @@ the `openedx-translations`_ repository rather than directly via Transifex. 1. A daily GitHub Actions workflow in openedx-translations clones this repo and runs ``make extract_translations``. -2. The combined ``django.po`` file at ``xblocks_contrib/conf/locale/en/`` is committed to +2. The combined ``django.po`` file at ``src/xblocks_core_locale/conf/locale/en/`` is committed to openedx-translations. 3. The Transifex GitHub App syncs source strings to the ``openedx-translations`` Transifex project under the ``open-edx`` organization. diff --git a/docs/xblocks_core.legacy_utils.rst b/docs/xblocks_core.legacy_utils.rst new file mode 100644 index 00000000..5a9a0142 --- /dev/null +++ b/docs/xblocks_core.legacy_utils.rst @@ -0,0 +1,21 @@ +xblocks\_core.legacy\_utils package +=================================== + +Submodules +---------- + +xblocks\_core.legacy\_utils.xml\_utils module +--------------------------------------------- + +.. automodule:: xblocks_core.legacy_utils.xml_utils + :members: + :show-inheritance: + :undoc-members: + +Module contents +--------------- + +.. automodule:: xblocks_core.legacy_utils + :members: + :show-inheritance: + :undoc-members: diff --git a/docs/xblocks_core.rst b/docs/xblocks_core.rst new file mode 100644 index 00000000..12bdfdea --- /dev/null +++ b/docs/xblocks_core.rst @@ -0,0 +1,18 @@ +xblocks\_core package +===================== + +Subpackages +----------- + +.. toctree:: + :maxdepth: 4 + + xblocks_core.legacy_utils + +Module contents +--------------- + +.. automodule:: xblocks_core + :members: + :show-inheritance: + :undoc-members: diff --git a/package-lock.json b/package-lock.json index 747416f7..7b77fbcc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,9 +4,9 @@ "requires": true, "packages": { "": { + "name": "xblocks-core", "workspaces": [ - "xblocks_contrib/*/*", - "xblock_pdf/*/" + "src/*/*/" ] }, "node_modules/@babel/code-frame": { @@ -950,7 +950,7 @@ } }, "node_modules/assets": { - "resolved": "xblocks_contrib/discussion/assets", + "resolved": "src/xblock_discussion/assets", "link": true }, "node_modules/assign-symbols": { @@ -4578,7 +4578,7 @@ "license": "MIT" }, "node_modules/pdf-block": { - "resolved": "xblock_pdf/js_tests", + "resolved": "src/xblock_pdf/js_tests", "link": true }, "node_modules/picocolors": { @@ -4767,7 +4767,7 @@ } }, "node_modules/problem-xblock": { - "resolved": "xblocks_contrib/problem/assets", + "resolved": "src/xblock_problem/assets", "link": true }, "node_modules/process-nextick-args": { @@ -6458,7 +6458,7 @@ } }, "node_modules/video-xblock": { - "resolved": "xblocks_contrib/video/assets", + "resolved": "src/xblock_video/assets", "link": true }, "node_modules/vite": { @@ -6949,18 +6949,7 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "xblock_pdf/js_tests": { - "name": "pdf-block", - "version": "1.0.0", - "devDependencies": { - "@types/jquery": "^4.0.0", - "@vitest/browser-playwright": "^4.1.8", - "typescript": "^6.0.3", - "vite": "^8.0.16", - "vitest": "^4.1.8" - } - }, - "xblocks_contrib/discussion/assets": { + "src/xblock_discussion/assets": { "devDependencies": { "append-prepend-loader": "^1.0.0", "backbone": "^1", @@ -6986,7 +6975,18 @@ "webpack-cli": "^5" } }, - "xblocks_contrib/problem/assets": { + "src/xblock_pdf/js_tests": { + "name": "pdf-block", + "version": "1.0.0", + "devDependencies": { + "@types/jquery": "^4.0.0", + "@vitest/browser-playwright": "^4.1.8", + "typescript": "^6.0.3", + "vite": "^8.0.16", + "vitest": "^4.1.8" + } + }, + "src/xblock_problem/assets": { "name": "problem-xblock", "dependencies": { "babel-loader": "^9", @@ -7012,7 +7012,7 @@ "webpack-cli": "^5" } }, - "xblocks_contrib/video/assets": { + "src/xblock_video/assets": { "name": "video-xblock", "version": "1.0.0", "dependencies": { @@ -7047,8 +7047,10 @@ "webpack-manifest-plugin": "^5" } }, - "xblocks_contrib/video/assets/node_modules/webpack-merge": { + "src/xblock_video/assets/node_modules/webpack-merge": { "version": "6.0.1", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-6.0.1.tgz", + "integrity": "sha512-hXXvrjtx2PLYx4qruKl+kyRSLc52V+cCvMxRjmKwoA+CBbbF5GfIBtR6kCvl0fYGqTUPKB+1ktVmTHqMOzgCBg==", "license": "MIT", "dependencies": { "clone-deep": "^4.0.1", @@ -7058,6 +7060,9 @@ "engines": { "node": ">=18.0.0" } + }, + "xblocks_contrib/video/assets": { + "extraneous": true } } } diff --git a/package.json b/package.json index 5ce58241..96c4b07a 100644 --- a/package.json +++ b/package.json @@ -2,13 +2,12 @@ "name": "xblocks-core", "private": true, "workspaces": [ - "xblocks_contrib/*/*", - "xblock_pdf/*/" + "src/*/*/" ], "scripts": { "build": "npm run build --workspaces --if-present", "build-dev": "npm run build-dev --workspaces --if-present", - "watch-build-dev": "for w in xblocks_contrib/*/assets; do npm run watch-build-dev --if-present -w \"$w\" & done; wait", + "watch-build-dev": "for w in src/*/assets; do npm run watch-build-dev --if-present -w \"$w\" & done; wait", "setup-tests": "npm run setup-tests --workspaces --if-present", "test": "npm run test --workspaces --if-present", "test-ci": "npm run test-ci --workspaces --if-present" diff --git a/pyproject.toml b/pyproject.toml index e1bf8fe9..986af465 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -60,25 +60,25 @@ Homepage = "https://github.com/openedx/xblocks-core" [project.entry-points."xblock.v1"] # _extracted suffix is added for testing only. -_annotatable_extracted = "xblocks_contrib:AnnotatableBlock" -_discussion_extracted = "xblocks_contrib:DiscussionXBlock" -_html_extracted = "xblocks_contrib:HtmlBlock" -_lti_extracted = "xblocks_contrib:LTIBlock" -_poll_question_extracted = "xblocks_contrib:PollBlock" -_problem_extracted = "xblocks_contrib:ProblemBlock" -_video_extracted = "xblocks_contrib:VideoBlock" -_word_cloud_extracted = "xblocks_contrib:WordCloudBlock" +_annotatable_extracted = "xblock_annotatable:AnnotatableBlock" +_discussion_extracted = "xblock_discussion:DiscussionXBlock" +_html_extracted = "xblock_html:HtmlBlock" +_lti_extracted = "xblock_lti:LTIBlock" +_poll_question_extracted = "xblock_poll_question:PollBlock" +_problem_extracted = "xblock_problem:ProblemBlock" +_video_extracted = "xblock_video:VideoBlock" +_word_cloud_extracted = "xblock_word_cloud:WordCloudBlock" # 'Done' XBlocks -- ones that are ready for general use today, # and have been migrated fully from edx-platform or their original repository. pdf = "xblock_pdf:PDFBlock" [project.entry-points."lms.djangoapp"] -xblocks_contrib_problem_capa = "xblocks_contrib.problem.capa.apps:CapaAppConfig" -xblocks_contrib_discussion = "xblocks_contrib.discussion.apps:DiscussionAppConfig" +xblock_problem_capa = "xblock_problem.capa.apps:CapaAppConfig" +xblock_discussion = "xblock_discussion.apps:DiscussionAppConfig" [project.entry-points."cms.djangoapp"] -xblocks_contrib_problem_capa = "xblocks_contrib.problem.capa.apps:CapaAppConfig" -xblocks_contrib_discussion = "xblocks_contrib.discussion.apps:DiscussionAppConfig" +xblock_problem_capa = "xblock_problem.capa.apps:CapaAppConfig" +xblock_discussion = "xblock_discussion.apps:DiscussionAppConfig" [dependency-groups] test-base = [ @@ -126,7 +126,7 @@ local_scheme = "no-local-version" include-package-data = true [tool.setuptools.packages.find] -include = ["xblocks_contrib*", "xblock_pdf*"] +where = ["src"] exclude = ["*tests*"] [tool.setuptools.exclude-package-data] diff --git a/xblocks_contrib/lti/.tx/config b/src/xblock_annotatable/.tx/config similarity index 75% rename from xblocks_contrib/lti/.tx/config rename to src/xblock_annotatable/.tx/config index bd0e4061..b032490c 100644 --- a/xblocks_contrib/lti/.tx/config +++ b/src/xblock_annotatable/.tx/config @@ -1,7 +1,7 @@ [main] host = https://www.transifex.com -[o:open-edx:p:openedx-translations:r:xblocks-contrib-lti] +[o:open-edx:p:openedx-translations:r:xblock-annotatable] file_filter = conf/locale//LC_MESSAGES/text.po source_file = conf/locale/en/LC_MESSAGES/text.po source_lang = en diff --git a/src/xblock_annotatable/__init__.py b/src/xblock_annotatable/__init__.py new file mode 100644 index 00000000..a8244fc8 --- /dev/null +++ b/src/xblock_annotatable/__init__.py @@ -0,0 +1,5 @@ +""" +Init for the AnnotatableBlock. +""" + +from .block import AnnotatableBlock as AnnotatableBlock diff --git a/xblocks_contrib/annotatable/annotatable.py b/src/xblock_annotatable/block.py similarity index 99% rename from xblocks_contrib/annotatable/annotatable.py rename to src/xblock_annotatable/block.py index d7db7610..c87433a6 100644 --- a/xblocks_contrib/annotatable/annotatable.py +++ b/src/xblock_annotatable/block.py @@ -17,7 +17,7 @@ from xblock.fields import Scope, String, XMLString from xblock.utils.resources import ResourceLoader -from xblocks_contrib.legacy_utils.xml_utils import LegacyXmlMixin +from xblocks_core.legacy_utils.xml_utils import LegacyXmlMixin log = logging.getLogger(__name__) diff --git a/xblocks_contrib/annotatable/conf/locale/__init__.py b/src/xblock_annotatable/conf/locale/__init__.py similarity index 100% rename from xblocks_contrib/annotatable/conf/locale/__init__.py rename to src/xblock_annotatable/conf/locale/__init__.py diff --git a/xblocks_contrib/annotatable/conf/locale/config.yaml b/src/xblock_annotatable/conf/locale/config.yaml similarity index 100% rename from xblocks_contrib/annotatable/conf/locale/config.yaml rename to src/xblock_annotatable/conf/locale/config.yaml diff --git a/xblocks_contrib/annotatable/static/css/annotatable.css b/src/xblock_annotatable/static/css/annotatable.css similarity index 100% rename from xblocks_contrib/annotatable/static/css/annotatable.css rename to src/xblock_annotatable/static/css/annotatable.css diff --git a/xblocks_contrib/annotatable/static/css/annotatable_editor.css b/src/xblock_annotatable/static/css/annotatable_editor.css similarity index 100% rename from xblocks_contrib/annotatable/static/css/annotatable_editor.css rename to src/xblock_annotatable/static/css/annotatable_editor.css diff --git a/xblocks_contrib/annotatable/static/js/src/annotatable.js b/src/xblock_annotatable/static/js/src/annotatable.js similarity index 100% rename from xblocks_contrib/annotatable/static/js/src/annotatable.js rename to src/xblock_annotatable/static/js/src/annotatable.js diff --git a/xblocks_contrib/annotatable/static/js/src/annotatable_editor.js b/src/xblock_annotatable/static/js/src/annotatable_editor.js similarity index 100% rename from xblocks_contrib/annotatable/static/js/src/annotatable_editor.js rename to src/xblock_annotatable/static/js/src/annotatable_editor.js diff --git a/xblocks_contrib/annotatable/templates/annotatable.html b/src/xblock_annotatable/templates/annotatable.html similarity index 100% rename from xblocks_contrib/annotatable/templates/annotatable.html rename to src/xblock_annotatable/templates/annotatable.html diff --git a/xblocks_contrib/annotatable/templates/annotatable_editor.html b/src/xblock_annotatable/templates/annotatable_editor.html similarity index 100% rename from xblocks_contrib/annotatable/templates/annotatable_editor.html rename to src/xblock_annotatable/templates/annotatable_editor.html diff --git a/xblocks_contrib/annotatable/tests/test_annotatable.py b/src/xblock_annotatable/tests/test_annotatable.py similarity index 96% rename from xblocks_contrib/annotatable/tests/test_annotatable.py rename to src/xblock_annotatable/tests/test_annotatable.py index d494ba4e..f07d9b09 100644 --- a/xblocks_contrib/annotatable/tests/test_annotatable.py +++ b/src/xblock_annotatable/tests/test_annotatable.py @@ -1,3 +1,4 @@ +"""Tests for the AnnotatableBlock.""" import json import unittest from unittest.mock import MagicMock @@ -7,10 +8,14 @@ from xblock.fields import ScopeIds from xblock.test.tools import TestRuntime -from xblocks_contrib.annotatable.annotatable import AnnotatableBlock +from xblock_annotatable.block import AnnotatableBlock class AnnotatableBlockTestCase(unittest.TestCase): + """Tests for AnnotatableBlock.""" + + # pylint: disable=protected-access + sample_xml = """ Read the text. @@ -148,7 +153,7 @@ def test_submit_studio_edits(self): response = self.annotatable.submit_studio_edits(mock_request) - response_body = json.loads(response.body.decode("utf-8")) + response_body = json.loads(response.body.decode("utf-8")) # pylint: disable=no-member self.assertEqual(response_body["result"], "success") self.assertEqual(self.annotatable.display_name, "New Display Name") diff --git a/xblocks_contrib/poll/.tx/config b/src/xblock_discussion/.tx/config similarity index 75% rename from xblocks_contrib/poll/.tx/config rename to src/xblock_discussion/.tx/config index d36d8212..227a6be6 100644 --- a/xblocks_contrib/poll/.tx/config +++ b/src/xblock_discussion/.tx/config @@ -1,7 +1,7 @@ [main] host = https://www.transifex.com -[o:open-edx:p:openedx-translations:r:xblocks-contrib-poll] +[o:open-edx:p:openedx-translations:r:xblock-discussion] file_filter = conf/locale//LC_MESSAGES/text.po source_file = conf/locale/en/LC_MESSAGES/text.po source_lang = en diff --git a/src/xblock_discussion/__init__.py b/src/xblock_discussion/__init__.py new file mode 100644 index 00000000..f4b0f81e --- /dev/null +++ b/src/xblock_discussion/__init__.py @@ -0,0 +1,5 @@ +""" +Init for the DiscussionXBlock. +""" + +from .block import DiscussionXBlock as DiscussionXBlock diff --git a/xblocks_contrib/discussion/apps.py b/src/xblock_discussion/apps.py similarity index 89% rename from xblocks_contrib/discussion/apps.py rename to src/xblock_discussion/apps.py index 3a317cb2..508dee16 100644 --- a/xblocks_contrib/discussion/apps.py +++ b/src/xblock_discussion/apps.py @@ -1,5 +1,5 @@ """ -Django App configuration for the xblocks-contrib Discussion XBlock. +Django App configuration for the xblocks-core Discussion XBlock. """ from django.apps import AppConfig @@ -37,9 +37,9 @@ class DiscussionAppConfig(AppConfig): """ - name = "xblocks_contrib.discussion" - label = "xblocks_contrib_discussion" - verbose_name = "XBlocks Contrib - Discussion Templates" + name = "xblock_discussion" + label = "xblock_discussion" + verbose_name = "XBlocks Core - Discussion Templates" plugin_app = { "settings_config": { diff --git a/xblocks_contrib/discussion/assets/jasmine.common.conf.js b/src/xblock_discussion/assets/jasmine.common.conf.js similarity index 100% rename from xblocks_contrib/discussion/assets/jasmine.common.conf.js rename to src/xblock_discussion/assets/jasmine.common.conf.js diff --git a/xblocks_contrib/discussion/assets/karma.conf.js b/src/xblock_discussion/assets/karma.conf.js similarity index 100% rename from xblocks_contrib/discussion/assets/karma.conf.js rename to src/xblock_discussion/assets/karma.conf.js diff --git a/xblocks_contrib/discussion/assets/package.json b/src/xblock_discussion/assets/package.json similarity index 100% rename from xblocks_contrib/discussion/assets/package.json rename to src/xblock_discussion/assets/package.json diff --git a/xblocks_contrib/discussion/assets/static/css/inline-discussion-rtl.css b/src/xblock_discussion/assets/static/css/inline-discussion-rtl.css similarity index 100% rename from xblocks_contrib/discussion/assets/static/css/inline-discussion-rtl.css rename to src/xblock_discussion/assets/static/css/inline-discussion-rtl.css diff --git a/xblocks_contrib/discussion/assets/static/css/inline-discussion.css b/src/xblock_discussion/assets/static/css/inline-discussion.css similarity index 100% rename from xblocks_contrib/discussion/assets/static/css/inline-discussion.css rename to src/xblock_discussion/assets/static/css/inline-discussion.css diff --git a/xblocks_contrib/discussion/assets/static/js/common/content.js b/src/xblock_discussion/assets/static/js/common/content.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/content.js rename to src/xblock_discussion/assets/static/js/common/content.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/discussion.js b/src/xblock_discussion/assets/static/js/common/discussion.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/discussion.js rename to src/xblock_discussion/assets/static/js/common/discussion.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/mathjax_include.js b/src/xblock_discussion/assets/static/js/common/mathjax_include.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/mathjax_include.js rename to src/xblock_discussion/assets/static/js/common/mathjax_include.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/models/discussion_course_settings.js b/src/xblock_discussion/assets/static/js/common/models/discussion_course_settings.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/models/discussion_course_settings.js rename to src/xblock_discussion/assets/static/js/common/models/discussion_course_settings.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/models/discussion_user.js b/src/xblock_discussion/assets/static/js/common/models/discussion_user.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/models/discussion_user.js rename to src/xblock_discussion/assets/static/js/common/models/discussion_user.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/utils.js b/src/xblock_discussion/assets/static/js/common/utils.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/utils.js rename to src/xblock_discussion/assets/static/js/common/utils.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_content_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_content_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_content_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_content_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_inline_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_inline_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_inline_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_inline_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_edit_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_thread_edit_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_edit_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_thread_edit_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_list_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_thread_list_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_list_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_thread_list_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_profile_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_thread_profile_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_profile_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_thread_profile_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_show_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_thread_show_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_show_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_thread_show_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_thread_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_thread_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_thread_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/discussion_topic_menu_view.js b/src/xblock_discussion/assets/static/js/common/views/discussion_topic_menu_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/discussion_topic_menu_view.js rename to src/xblock_discussion/assets/static/js/common/views/discussion_topic_menu_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/new_post_view.js b/src/xblock_discussion/assets/static/js/common/views/new_post_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/new_post_view.js rename to src/xblock_discussion/assets/static/js/common/views/new_post_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/response_comment_edit_view.js b/src/xblock_discussion/assets/static/js/common/views/response_comment_edit_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/response_comment_edit_view.js rename to src/xblock_discussion/assets/static/js/common/views/response_comment_edit_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/response_comment_show_view.js b/src/xblock_discussion/assets/static/js/common/views/response_comment_show_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/response_comment_show_view.js rename to src/xblock_discussion/assets/static/js/common/views/response_comment_show_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/response_comment_view.js b/src/xblock_discussion/assets/static/js/common/views/response_comment_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/response_comment_view.js rename to src/xblock_discussion/assets/static/js/common/views/response_comment_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/thread_response_edit_view.js b/src/xblock_discussion/assets/static/js/common/views/thread_response_edit_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/thread_response_edit_view.js rename to src/xblock_discussion/assets/static/js/common/views/thread_response_edit_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/thread_response_show_view.js b/src/xblock_discussion/assets/static/js/common/views/thread_response_show_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/thread_response_show_view.js rename to src/xblock_discussion/assets/static/js/common/views/thread_response_show_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/common/views/thread_response_view.js b/src/xblock_discussion/assets/static/js/common/views/thread_response_view.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/common/views/thread_response_view.js rename to src/xblock_discussion/assets/static/js/common/views/thread_response_view.js diff --git a/xblocks_contrib/discussion/assets/static/js/customwmd.js b/src/xblock_discussion/assets/static/js/customwmd.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/customwmd.js rename to src/xblock_discussion/assets/static/js/customwmd.js diff --git a/xblocks_contrib/discussion/assets/static/js/discussion_main.js b/src/xblock_discussion/assets/static/js/discussion_main.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/discussion_main.js rename to src/xblock_discussion/assets/static/js/discussion_main.js diff --git a/xblocks_contrib/discussion/assets/static/js/mathjax_accessible.js b/src/xblock_discussion/assets/static/js/mathjax_accessible.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/mathjax_accessible.js rename to src/xblock_discussion/assets/static/js/mathjax_accessible.js diff --git a/xblocks_contrib/discussion/assets/static/js/mathjax_delay_renderer.js b/src/xblock_discussion/assets/static/js/mathjax_delay_renderer.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/mathjax_delay_renderer.js rename to src/xblock_discussion/assets/static/js/mathjax_delay_renderer.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/Markdown.Converter.js b/src/xblock_discussion/assets/static/js/vendor/Markdown.Converter.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/Markdown.Converter.js rename to src/xblock_discussion/assets/static/js/vendor/Markdown.Converter.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/Markdown.Editor.js b/src/xblock_discussion/assets/static/js/vendor/Markdown.Editor.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/Markdown.Editor.js rename to src/xblock_discussion/assets/static/js/vendor/Markdown.Editor.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/Markdown.Sanitizer.js b/src/xblock_discussion/assets/static/js/vendor/Markdown.Sanitizer.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/Markdown.Sanitizer.js rename to src/xblock_discussion/assets/static/js/vendor/Markdown.Sanitizer.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/URI.min.js b/src/xblock_discussion/assets/static/js/vendor/URI.min.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/URI.min.js rename to src/xblock_discussion/assets/static/js/vendor/URI.min.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/jquery.ajaxfileupload.js b/src/xblock_discussion/assets/static/js/vendor/jquery.ajaxfileupload.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/jquery.ajaxfileupload.js rename to src/xblock_discussion/assets/static/js/vendor/jquery.ajaxfileupload.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/jquery.leanModal.js b/src/xblock_discussion/assets/static/js/vendor/jquery.leanModal.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/jquery.leanModal.js rename to src/xblock_discussion/assets/static/js/vendor/jquery.leanModal.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/jquery.timeago.js b/src/xblock_discussion/assets/static/js/vendor/jquery.timeago.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/jquery.timeago.js rename to src/xblock_discussion/assets/static/js/vendor/jquery.timeago.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/jquery.timeago.locale.js b/src/xblock_discussion/assets/static/js/vendor/jquery.timeago.locale.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/jquery.timeago.locale.js rename to src/xblock_discussion/assets/static/js/vendor/jquery.timeago.locale.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/jquery.truncate.js b/src/xblock_discussion/assets/static/js/vendor/jquery.truncate.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/jquery.truncate.js rename to src/xblock_discussion/assets/static/js/vendor/jquery.truncate.js diff --git a/xblocks_contrib/discussion/assets/static/js/vendor/split.js b/src/xblock_discussion/assets/static/js/vendor/split.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/js/vendor/split.js rename to src/xblock_discussion/assets/static/js/vendor/split.js diff --git a/xblocks_contrib/discussion/assets/static/spec/content_spec.js b/src/xblock_discussion/assets/static/spec/content_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/content_spec.js rename to src/xblock_discussion/assets/static/spec/content_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/fixtures/templates.underscore b/src/xblock_discussion/assets/static/spec/fixtures/templates.underscore similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/fixtures/templates.underscore rename to src/xblock_discussion/assets/static/spec/fixtures/templates.underscore diff --git a/xblocks_contrib/discussion/assets/static/spec/spec_helpers/discussion_spec_helper.js b/src/xblock_discussion/assets/static/spec/spec_helpers/discussion_spec_helper.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/spec_helpers/discussion_spec_helper.js rename to src/xblock_discussion/assets/static/spec/spec_helpers/discussion_spec_helper.js diff --git a/xblocks_contrib/discussion/assets/static/spec/spec_helpers/i18n.js b/src/xblock_discussion/assets/static/spec/spec_helpers/i18n.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/spec_helpers/i18n.js rename to src/xblock_discussion/assets/static/spec/spec_helpers/i18n.js diff --git a/xblocks_contrib/discussion/assets/static/spec/utils_spec.js b/src/xblock_discussion/assets/static/spec/utils_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/utils_spec.js rename to src/xblock_discussion/assets/static/spec/utils_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_content_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_content_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_content_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_content_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_inline_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_inline_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_inline_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_inline_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_edit_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_thread_edit_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_edit_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_thread_edit_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_list_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_thread_list_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_list_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_thread_list_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_profile_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_thread_profile_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_profile_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_thread_profile_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_show_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_thread_show_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_show_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_thread_show_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_thread_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_thread_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_thread_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_topic_menu_view_spec.js b/src/xblock_discussion/assets/static/spec/view/discussion_topic_menu_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_topic_menu_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/discussion_topic_menu_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/discussion_view_spec_helper.js b/src/xblock_discussion/assets/static/spec/view/discussion_view_spec_helper.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/discussion_view_spec_helper.js rename to src/xblock_discussion/assets/static/spec/view/discussion_view_spec_helper.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/new_post_view_spec.js b/src/xblock_discussion/assets/static/spec/view/new_post_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/new_post_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/new_post_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/response_comment_show_view_spec.js b/src/xblock_discussion/assets/static/spec/view/response_comment_show_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/response_comment_show_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/response_comment_show_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/response_comment_view_spec.js b/src/xblock_discussion/assets/static/spec/view/response_comment_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/response_comment_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/response_comment_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/thread_response_show_view_spec.js b/src/xblock_discussion/assets/static/spec/view/thread_response_show_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/thread_response_show_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/thread_response_show_view_spec.js diff --git a/xblocks_contrib/discussion/assets/static/spec/view/thread_response_view_spec.js b/src/xblock_discussion/assets/static/spec/view/thread_response_view_spec.js similarity index 100% rename from xblocks_contrib/discussion/assets/static/spec/view/thread_response_view_spec.js rename to src/xblock_discussion/assets/static/spec/view/thread_response_view_spec.js diff --git a/xblocks_contrib/discussion/assets/webpack.common.config.js b/src/xblock_discussion/assets/webpack.common.config.js similarity index 100% rename from xblocks_contrib/discussion/assets/webpack.common.config.js rename to src/xblock_discussion/assets/webpack.common.config.js diff --git a/xblocks_contrib/discussion/assets/webpack.dev.config.js b/src/xblock_discussion/assets/webpack.dev.config.js similarity index 100% rename from xblocks_contrib/discussion/assets/webpack.dev.config.js rename to src/xblock_discussion/assets/webpack.dev.config.js diff --git a/xblocks_contrib/discussion/assets/webpack.prod.config.js b/src/xblock_discussion/assets/webpack.prod.config.js similarity index 100% rename from xblocks_contrib/discussion/assets/webpack.prod.config.js rename to src/xblock_discussion/assets/webpack.prod.config.js diff --git a/xblocks_contrib/discussion/discussion.py b/src/xblock_discussion/block.py similarity index 90% rename from xblocks_contrib/discussion/discussion.py rename to src/xblock_discussion/block.py index b2021c34..5dd684ae 100644 --- a/xblocks_contrib/discussion/discussion.py +++ b/src/xblock_discussion/block.py @@ -17,7 +17,7 @@ from xblock.utils.resources import ResourceLoader from xblock.utils.studio_editable import StudioEditableXBlockMixin -from xblocks_contrib.legacy_utils.xml_utils import LegacyXmlMixin +from xblocks_core.legacy_utils.xml_utils import LegacyXmlMixin log = logging.getLogger(__name__) loader = ResourceLoader(__name__) @@ -126,22 +126,13 @@ def add_resource_urls(self, fragment): """ Adds URLs for JS and CSS resources that this XBlock depends on to `fragment`. """ - - css_file_path = "/css/inline-discussion-rtl.css" if get_language_bidi() else "/css/inline-discussion.css" - - # Determine how static assets should be served based on Django settings. - # Open edX requires different asset paths for production vs. local development. - pipeline = getattr(settings, "PIPELINE", {}) - use_pipeline = pipeline.get("PIPELINE_ENABLED", True) or not getattr(settings, "REQUIRE_DEBUG", False) - - # When the Django pipeline is active (production), XBlock assets are namespaced - # using the package scope (e.g., "discussion/public"). - # When inactive (local dev fallback), they are served directly from "public". - # https://github.com/openedx/openedx-platform/blob/master/openedx/core/lib/xblock_utils/__init__.py#L417 - base_path = "discussion/public" if use_pipeline else "public" - - fragment.add_css_url(self.runtime.local_resource_url(self, f"{base_path}{css_file_path}")) - fragment.add_javascript_url(self.runtime.local_resource_url(self, f"{base_path}/js/discussion_bundle.js")) + css_file_path = ( + 'css/inline-discussion-rtl.css' + if get_language_bidi() + else 'css/inline-discussion.css' + ) + fragment.add_css_url(self.runtime.local_resource_url(self, f"public/{css_file_path}")) + fragment.add_javascript_url(self.runtime.local_resource_url(self, "public/js/discussion_bundle.js")) def has_permission(self, permission): """ diff --git a/xblocks_contrib/discussion/conf/locale/__init__.py b/src/xblock_discussion/conf/locale/__init__.py similarity index 100% rename from xblocks_contrib/discussion/conf/locale/__init__.py rename to src/xblock_discussion/conf/locale/__init__.py diff --git a/xblocks_contrib/discussion/conf/locale/config.yaml b/src/xblock_discussion/conf/locale/config.yaml similarity index 100% rename from xblocks_contrib/discussion/conf/locale/config.yaml rename to src/xblock_discussion/conf/locale/config.yaml diff --git a/xblocks_contrib/discussion/templates/_discussion_inline_studio.html b/src/xblock_discussion/templates/_discussion_inline_studio.html similarity index 100% rename from xblocks_contrib/discussion/templates/_discussion_inline_studio.html rename to src/xblock_discussion/templates/_discussion_inline_studio.html diff --git a/xblocks_contrib/discussion/templates/discussion_templates/_discussion_inline.html b/src/xblock_discussion/templates/discussion_templates/_discussion_inline.html similarity index 100% rename from xblocks_contrib/discussion/templates/discussion_templates/_discussion_inline.html rename to src/xblock_discussion/templates/discussion_templates/_discussion_inline.html diff --git a/xblocks_contrib/discussion/templates/discussion_templates/_thread_list_template.html b/src/xblock_discussion/templates/discussion_templates/_thread_list_template.html similarity index 100% rename from xblocks_contrib/discussion/templates/discussion_templates/_thread_list_template.html rename to src/xblock_discussion/templates/discussion_templates/_thread_list_template.html diff --git a/xblocks_contrib/discussion/templates/discussion_templates/_underscore_templates.html b/src/xblock_discussion/templates/discussion_templates/_underscore_templates.html similarity index 100% rename from xblocks_contrib/discussion/templates/discussion_templates/_underscore_templates.html rename to src/xblock_discussion/templates/discussion_templates/_underscore_templates.html diff --git a/xblocks_contrib/discussion/templates/discussion_templates/templates.underscore b/src/xblock_discussion/templates/discussion_templates/templates.underscore similarity index 100% rename from xblocks_contrib/discussion/templates/discussion_templates/templates.underscore rename to src/xblock_discussion/templates/discussion_templates/templates.underscore diff --git a/xblocks_contrib/discussion/tests/test_discussion.py b/src/xblock_discussion/tests/test_discussion.py similarity index 98% rename from xblocks_contrib/discussion/tests/test_discussion.py rename to src/xblock_discussion/tests/test_discussion.py index f4ea60b5..dd01c20c 100644 --- a/xblocks_contrib/discussion/tests/test_discussion.py +++ b/src/xblock_discussion/tests/test_discussion.py @@ -12,7 +12,7 @@ from xblock.fields import NO_CACHE_VALUE, UNIQUE_ID, ScopeIds from xblock.runtime import Runtime -from xblocks_contrib.discussion import DiscussionXBlock +from xblock_discussion import DiscussionXBlock def attribute_pair_repr(self): @@ -62,8 +62,7 @@ class DiscussionXBlockImportExportTests(TestCase): """ Import and export tests """ - - DISCUSSION_XBLOCK_LOCATION = "xblocks_contrib.discussion.DiscussionXBlock" + DISCUSSION_XBLOCK_LOCATION = "xblock_discussion.DiscussionXBlock" def setUp(self): """ diff --git a/xblocks_contrib/html/.tx/config b/src/xblock_html/.tx/config similarity index 75% rename from xblocks_contrib/html/.tx/config rename to src/xblock_html/.tx/config index a4dd8e84..f1c2762d 100644 --- a/xblocks_contrib/html/.tx/config +++ b/src/xblock_html/.tx/config @@ -1,7 +1,7 @@ [main] host = https://www.transifex.com -[o:open-edx:p:openedx-translations:r:xblocks-contrib-html] +[o:open-edx:p:openedx-translations:r:xblock-html] file_filter = conf/locale//LC_MESSAGES/text.po source_file = conf/locale/en/LC_MESSAGES/text.po source_lang = en diff --git a/src/xblock_html/__init__.py b/src/xblock_html/__init__.py new file mode 100644 index 00000000..8968c266 --- /dev/null +++ b/src/xblock_html/__init__.py @@ -0,0 +1,6 @@ +""" +Init for the HtmlBlock. +""" + +from .block import HtmlBlock as HtmlBlock +from .block import HtmlBlockMixin as HtmlBlockMixin diff --git a/xblocks_contrib/html/html.py b/src/xblock_html/block.py similarity index 99% rename from xblocks_contrib/html/html.py rename to src/xblock_html/block.py index 42346525..8885ebe1 100644 --- a/xblocks_contrib/html/html.py +++ b/src/xblock_html/block.py @@ -23,7 +23,7 @@ from xblock.fields import Boolean, Scope, String from xblock.utils.resources import ResourceLoader -from xblocks_contrib.legacy_utils.xml_utils import LegacyXmlMixin, name_to_pathname +from xblocks_core.legacy_utils.xml_utils import LegacyXmlMixin, name_to_pathname log = logging.getLogger(__name__) resource_loader = ResourceLoader(__name__) diff --git a/xblocks_contrib/html/conf/locale/__init__.py b/src/xblock_html/conf/locale/__init__.py similarity index 100% rename from xblocks_contrib/html/conf/locale/__init__.py rename to src/xblock_html/conf/locale/__init__.py diff --git a/xblocks_contrib/html/conf/locale/config.yaml b/src/xblock_html/conf/locale/config.yaml similarity index 100% rename from xblocks_contrib/html/conf/locale/config.yaml rename to src/xblock_html/conf/locale/config.yaml diff --git a/xblocks_contrib/html/static/css/html.css b/src/xblock_html/static/css/html.css similarity index 100% rename from xblocks_contrib/html/static/css/html.css rename to src/xblock_html/static/css/html.css diff --git a/xblocks_contrib/html/templates/html/announcement.yaml b/src/xblock_html/templates/html/announcement.yaml similarity index 100% rename from xblocks_contrib/html/templates/html/announcement.yaml rename to src/xblock_html/templates/html/announcement.yaml diff --git a/xblocks_contrib/html/templates/html/anon_user_id.yaml b/src/xblock_html/templates/html/anon_user_id.yaml similarity index 100% rename from xblocks_contrib/html/templates/html/anon_user_id.yaml rename to src/xblock_html/templates/html/anon_user_id.yaml diff --git a/xblocks_contrib/html/templates/html/iframe.yaml b/src/xblock_html/templates/html/iframe.yaml similarity index 100% rename from xblocks_contrib/html/templates/html/iframe.yaml rename to src/xblock_html/templates/html/iframe.yaml diff --git a/xblocks_contrib/html/templates/html/raw.yaml b/src/xblock_html/templates/html/raw.yaml similarity index 100% rename from xblocks_contrib/html/templates/html/raw.yaml rename to src/xblock_html/templates/html/raw.yaml diff --git a/xblocks_contrib/html/templates/html/zooming_image.yaml b/src/xblock_html/templates/html/zooming_image.yaml similarity index 100% rename from xblocks_contrib/html/templates/html/zooming_image.yaml rename to src/xblock_html/templates/html/zooming_image.yaml diff --git a/xblocks_contrib/html/tests/test_html.py b/src/xblock_html/tests/test_html.py similarity index 97% rename from xblocks_contrib/html/tests/test_html.py rename to src/xblock_html/tests/test_html.py index 4d2a65c8..08b36738 100644 --- a/xblocks_contrib/html/tests/test_html.py +++ b/src/xblock_html/tests/test_html.py @@ -1,3 +1,4 @@ +"""Tests for the HTML XBlock.""" import unittest from unittest.mock import Mock @@ -10,7 +11,7 @@ from xblock.reference.user_service import UserService, XBlockUser from xblock.test.tools import TestRuntime -from xblocks_contrib.html.html import HtmlBlock +from xblock_html.block import HtmlBlock def get_test_descriptor_system(): @@ -62,14 +63,14 @@ def get_current_user(self): return user - class TestRuntimeWithRender(TestRuntime): + class TestRuntimeWithRender(TestRuntime): # pylint: disable=abstract-method """Custom runtime that includes a basic render method.""" def __init__(self, services, anonymous_student_id="test-user-id"): super().__init__(services=services) self.anonymous_student_id = anonymous_student_id - def render(self, block, view, context): + def render(self, block, view_name, context): # pylint: disable=signature-differs return Mock(content=block.get_html()) services = { @@ -191,7 +192,7 @@ def test_substitution_without_anonymous_student_id(self): field_data = DictFieldData({"data": sample_xml}) module_system = get_test_system(user=AnonymousUser()) block = HtmlBlock(module_system, field_data, Mock()) - block.runtime.service(block, "user")._deprecated_anonymous_user_id = "" + block.runtime.service(block, "user")._deprecated_anonymous_user_id = "" # pylint: disable=protected-access assert block.get_html() == sample_xml diff --git a/xblocks_contrib/video/.tx/config b/src/xblock_lti/.tx/config similarity index 74% rename from xblocks_contrib/video/.tx/config rename to src/xblock_lti/.tx/config index d42f5547..b989cd39 100644 --- a/xblocks_contrib/video/.tx/config +++ b/src/xblock_lti/.tx/config @@ -1,7 +1,7 @@ [main] host = https://www.transifex.com -[o:open-edx:p:openedx-translations:r:xblocks-contrib-video] +[o:open-edx:p:openedx-translations:r:xblock-lti] file_filter = conf/locale//LC_MESSAGES/text.po source_file = conf/locale/en/LC_MESSAGES/text.po source_lang = en diff --git a/xblocks_contrib/lti/__init__.py b/src/xblock_lti/__init__.py similarity index 77% rename from xblocks_contrib/lti/__init__.py rename to src/xblock_lti/__init__.py index cc65289f..be3f6735 100644 --- a/xblocks_contrib/lti/__init__.py +++ b/src/xblock_lti/__init__.py @@ -4,4 +4,4 @@ Learning Tools Interoperability (LTI) module. """ -from .lti import LTIBlock as LTIBlock +from .block import LTIBlock as LTIBlock diff --git a/xblocks_contrib/lti/lti.py b/src/xblock_lti/block.py similarity index 99% rename from xblocks_contrib/lti/lti.py rename to src/xblock_lti/block.py index 968956b7..7f371202 100644 --- a/xblocks_contrib/lti/lti.py +++ b/src/xblock_lti/block.py @@ -79,7 +79,7 @@ from xblock.utils.resources import ResourceLoader from xblock.utils.studio_editable import StudioEditableXBlockMixin -from xblocks_contrib.legacy_utils.xml_utils import LegacyXmlMixin +from xblocks_core.legacy_utils.xml_utils import LegacyXmlMixin from .lti_2_util import LTI20BlockMixin, LTIError diff --git a/xblocks_contrib/legacy_utils/__init__.py b/src/xblock_lti/conf/locale/__init__.py similarity index 100% rename from xblocks_contrib/legacy_utils/__init__.py rename to src/xblock_lti/conf/locale/__init__.py diff --git a/xblocks_contrib/lti/conf/locale/config.yaml b/src/xblock_lti/conf/locale/config.yaml similarity index 100% rename from xblocks_contrib/lti/conf/locale/config.yaml rename to src/xblock_lti/conf/locale/config.yaml diff --git a/xblocks_contrib/lti/lti_2_util.py b/src/xblock_lti/lti_2_util.py similarity index 100% rename from xblocks_contrib/lti/lti_2_util.py rename to src/xblock_lti/lti_2_util.py diff --git a/xblocks_contrib/lti/static/css/lti.css b/src/xblock_lti/static/css/lti.css similarity index 100% rename from xblocks_contrib/lti/static/css/lti.css rename to src/xblock_lti/static/css/lti.css diff --git a/xblocks_contrib/lti/static/js/src/lti.js b/src/xblock_lti/static/js/src/lti.js similarity index 100% rename from xblocks_contrib/lti/static/js/src/lti.js rename to src/xblock_lti/static/js/src/lti.js diff --git a/xblocks_contrib/lti/templates/lti.html b/src/xblock_lti/templates/lti.html similarity index 98% rename from xblocks_contrib/lti/templates/lti.html rename to src/xblock_lti/templates/lti.html index f761db3f..da153fef 100644 --- a/xblocks_contrib/lti/templates/lti.html +++ b/src/xblock_lti/templates/lti.html @@ -26,7 +26,7 @@

class="{{ element_class }}" data-ask-to-send-username="{{ ask_to_send_username }}" data-ask-to-send-email="{{ ask_to_send_email }}" - data-package-name="xblocks-contrib" + data-package-name="xblocks-core" > {% if launch_url and launch_url != 'http://www.example.com' and not hide_launch %} diff --git a/xblocks_contrib/lti/templates/lti_form.html b/src/xblock_lti/templates/lti_form.html similarity index 100% rename from xblocks_contrib/lti/templates/lti_form.html rename to src/xblock_lti/templates/lti_form.html diff --git a/xblocks_contrib/lti/conf/locale/__init__.py b/src/xblock_lti/tests/__init__.py similarity index 100% rename from xblocks_contrib/lti/conf/locale/__init__.py rename to src/xblock_lti/tests/__init__.py diff --git a/xblocks_contrib/lti/tests/helpers.py b/src/xblock_lti/tests/helpers.py similarity index 100% rename from xblocks_contrib/lti/tests/helpers.py rename to src/xblock_lti/tests/helpers.py diff --git a/xblocks_contrib/lti/tests/test_lti20_unit.py b/src/xblock_lti/tests/test_lti20_unit.py similarity index 99% rename from xblocks_contrib/lti/tests/test_lti20_unit.py rename to src/xblock_lti/tests/test_lti20_unit.py index c28a2a15..59ac12db 100644 --- a/xblocks_contrib/lti/tests/test_lti20_unit.py +++ b/src/xblock_lti/tests/test_lti20_unit.py @@ -9,8 +9,8 @@ from pytz import UTC from xblock.field_data import DictFieldData -from xblocks_contrib.lti.lti import LTIBlock -from xblocks_contrib.lti.lti_2_util import LTIError +from xblock_lti.block import LTIBlock +from xblock_lti.lti_2_util import LTIError from .helpers import StubUserService, get_test_system diff --git a/xblocks_contrib/lti/tests/test_lti_unit.py b/src/xblock_lti/tests/test_lti_unit.py similarity index 96% rename from xblocks_contrib/lti/tests/test_lti_unit.py rename to src/xblock_lti/tests/test_lti_unit.py index dcb15363..ed9add2f 100644 --- a/xblocks_contrib/lti/tests/test_lti_unit.py +++ b/src/xblock_lti/tests/test_lti_unit.py @@ -17,8 +17,8 @@ from xblock.field_data import DictFieldData from xblock.fields import ScopeIds -from xblocks_contrib.lti.lti import LTIBlock -from xblocks_contrib.lti.lti_2_util import LTIError +from xblock_lti.block import LTIBlock +from xblock_lti.lti_2_util import LTIError from .helpers import StubUserService, Timedelta, get_test_system @@ -123,7 +123,7 @@ def get_response_values(self, response): } @patch( - "xblocks_contrib.lti.lti.LTIBlock.get_client_key_secret", + "xblock_lti.block.LTIBlock.get_client_key_secret", return_value=("test_client_key", "test_client_secret"), ) def test_authorization_header_not_present(self, _get_key_secret): @@ -147,7 +147,7 @@ def test_authorization_header_not_present(self, _get_key_secret): self.assertDictEqual(expected_response, real_response) @patch( - "xblocks_contrib.lti.lti.LTIBlock.get_client_key_secret", + "xblock_lti.block.LTIBlock.get_client_key_secret", return_value=("test_client_key", "test_client_secret"), ) def test_authorization_header_empty(self, _get_key_secret): @@ -309,8 +309,12 @@ def mock_handler_url(block, handler_name, **kwargs): # pylint: disable=unused-a assert real_outcome_service_url == (mock_url_prefix + test_service_name) def test_resource_link_id(self): - with patch("xblocks_contrib.lti.lti.LTIBlock.usage_key", new_callable=PropertyMock): - self.xblock.usage_key.html_id = lambda: "i4x-2-3-lti-31de800015cf4afb973356dbe81496df" + with patch( + "xblock_lti.block.LTIBlock.usage_key", new_callable=PropertyMock + ): + self.xblock.usage_key.html_id = ( + lambda: "i4x-2-3-lti-31de800015cf4afb973356dbe81496df" + ) expected_resource_link_id = str(parse.quote(self.unquoted_resource_link_id)) real_resource_link_id = self.xblock.get_resource_link_id() assert real_resource_link_id == expected_resource_link_id @@ -377,9 +381,11 @@ def test_bad_client_key_secret(self): with pytest.raises(LTIError): self.xblock.get_client_key_secret() - @patch("xblocks_contrib.lti.lti.signature.verify_hmac_sha1", Mock(return_value=True)) @patch( - "xblocks_contrib.lti.lti.LTIBlock.get_client_key_secret", + "xblock_lti.block.signature.verify_hmac_sha1", Mock(return_value=True) + ) + @patch( + "xblock_lti.block.LTIBlock.get_client_key_secret", Mock(return_value=("test_client_key", "test_client_secret")), ) def test_successful_verify_oauth_body_sign(self): @@ -389,11 +395,11 @@ def test_successful_verify_oauth_body_sign(self): self.xblock.verify_oauth_body_sign(self.get_signed_grade_mock_request()) @patch( - "xblocks_contrib.lti.lti.LTIBlock.get_outcome_service_url", + "xblock_lti.block.LTIBlock.get_outcome_service_url", Mock(return_value="https://testurl/"), ) @patch( - "xblocks_contrib.lti.lti.LTIBlock.get_client_key_secret", + "xblock_lti.block.LTIBlock.get_client_key_secret", Mock(return_value=("__consumer_key__", "__lti_secret__")), ) def test_failed_verify_oauth_body_sign_proxy_mangle_url(self): @@ -464,9 +470,11 @@ def test_parse_grade_xml_body(self): assert self.defaults["grade"] == grade assert self.defaults["action"] == action - @patch("xblocks_contrib.lti.lti.signature.verify_hmac_sha1", Mock(return_value=False)) @patch( - "xblocks_contrib.lti.lti.LTIBlock.get_client_key_secret", + "xblock_lti.block.signature.verify_hmac_sha1", Mock(return_value=False) + ) + @patch( + "xblock_lti.block.LTIBlock.get_client_key_secret", Mock(return_value=("test_client_key", "test_client_secret")), ) def test_failed_verify_oauth_body_sign(self): diff --git a/src/xblock_pdf/__init__.py b/src/xblock_pdf/__init__.py new file mode 100644 index 00000000..40ef2dd7 --- /dev/null +++ b/src/xblock_pdf/__init__.py @@ -0,0 +1,3 @@ +"""Init for PDFBlock.""" + +from .block import PDFBlock as PDFBlock diff --git a/xblock_pdf/pdf.py b/src/xblock_pdf/block.py similarity index 100% rename from xblock_pdf/pdf.py rename to src/xblock_pdf/block.py diff --git a/xblock_pdf/js_tests/jquery.d.ts b/src/xblock_pdf/js_tests/jquery.d.ts similarity index 100% rename from xblock_pdf/js_tests/jquery.d.ts rename to src/xblock_pdf/js_tests/jquery.d.ts diff --git a/xblock_pdf/js_tests/package-lock.json b/src/xblock_pdf/js_tests/package-lock.json similarity index 100% rename from xblock_pdf/js_tests/package-lock.json rename to src/xblock_pdf/js_tests/package-lock.json diff --git a/xblock_pdf/js_tests/package.json b/src/xblock_pdf/js_tests/package.json similarity index 100% rename from xblock_pdf/js_tests/package.json rename to src/xblock_pdf/js_tests/package.json diff --git a/xblock_pdf/js_tests/specs/helpers/loadAsElement.js b/src/xblock_pdf/js_tests/specs/helpers/loadAsElement.js similarity index 100% rename from xblock_pdf/js_tests/specs/helpers/loadAsElement.js rename to src/xblock_pdf/js_tests/specs/helpers/loadAsElement.js diff --git a/xblock_pdf/js_tests/specs/helpers/loadAsJQuery.js b/src/xblock_pdf/js_tests/specs/helpers/loadAsJQuery.js similarity index 100% rename from xblock_pdf/js_tests/specs/helpers/loadAsJQuery.js rename to src/xblock_pdf/js_tests/specs/helpers/loadAsJQuery.js diff --git a/xblock_pdf/js_tests/specs/helpers/mockRuntime.js b/src/xblock_pdf/js_tests/specs/helpers/mockRuntime.js similarity index 100% rename from xblock_pdf/js_tests/specs/helpers/mockRuntime.js rename to src/xblock_pdf/js_tests/specs/helpers/mockRuntime.js diff --git a/xblock_pdf/js_tests/specs/helpers/proveJQuery.js b/src/xblock_pdf/js_tests/specs/helpers/proveJQuery.js similarity index 100% rename from xblock_pdf/js_tests/specs/helpers/proveJQuery.js rename to src/xblock_pdf/js_tests/specs/helpers/proveJQuery.js diff --git a/xblock_pdf/js_tests/specs/pdf.spec.ts b/src/xblock_pdf/js_tests/specs/pdf.spec.ts similarity index 100% rename from xblock_pdf/js_tests/specs/pdf.spec.ts rename to src/xblock_pdf/js_tests/specs/pdf.spec.ts diff --git a/xblock_pdf/js_tests/tsconfig.json b/src/xblock_pdf/js_tests/tsconfig.json similarity index 100% rename from xblock_pdf/js_tests/tsconfig.json rename to src/xblock_pdf/js_tests/tsconfig.json diff --git a/xblock_pdf/js_tests/vitest.config.ts b/src/xblock_pdf/js_tests/vitest.config.ts similarity index 100% rename from xblock_pdf/js_tests/vitest.config.ts rename to src/xblock_pdf/js_tests/vitest.config.ts diff --git a/xblock_pdf/static/js/pdf.js b/src/xblock_pdf/static/js/pdf.js similarity index 100% rename from xblock_pdf/static/js/pdf.js rename to src/xblock_pdf/static/js/pdf.js diff --git a/xblock_pdf/templates/html/pdf.html b/src/xblock_pdf/templates/html/pdf.html similarity index 100% rename from xblock_pdf/templates/html/pdf.html rename to src/xblock_pdf/templates/html/pdf.html diff --git a/xblock_pdf/tests/test_pdf.py b/src/xblock_pdf/tests/test_pdf.py similarity index 100% rename from xblock_pdf/tests/test_pdf.py rename to src/xblock_pdf/tests/test_pdf.py diff --git a/xblock_pdf/utils.py b/src/xblock_pdf/utils.py similarity index 100% rename from xblock_pdf/utils.py rename to src/xblock_pdf/utils.py diff --git a/src/xblock_poll_question/.tx/config b/src/xblock_poll_question/.tx/config new file mode 100644 index 00000000..f56079e4 --- /dev/null +++ b/src/xblock_poll_question/.tx/config @@ -0,0 +1,8 @@ +[main] +host = https://www.transifex.com + +[o:open-edx:p:openedx-translations:r:xblock-poll-question] +file_filter = conf/locale//LC_MESSAGES/text.po +source_file = conf/locale/en/LC_MESSAGES/text.po +source_lang = en +type = PO diff --git a/src/xblock_poll_question/__init__.py b/src/xblock_poll_question/__init__.py new file mode 100644 index 00000000..73e3e308 --- /dev/null +++ b/src/xblock_poll_question/__init__.py @@ -0,0 +1,5 @@ +""" +Init for the PollBlock. +""" + +from .block import PollBlock as PollBlock diff --git a/xblocks_contrib/poll/poll.py b/src/xblock_poll_question/block.py similarity index 99% rename from xblocks_contrib/poll/poll.py rename to src/xblock_poll_question/block.py index 7af0ef48..747ea926 100644 --- a/xblocks_contrib/poll/poll.py +++ b/src/xblock_poll_question/block.py @@ -19,7 +19,7 @@ from xblock.fields import Boolean, Dict, List, Scope, String from xblock.utils.resources import ResourceLoader -from xblocks_contrib.legacy_utils.xml_utils import LegacyXmlMixin +from xblocks_core.legacy_utils.xml_utils import LegacyXmlMixin Text = markupsafe.escape resource_loader = ResourceLoader(__name__) diff --git a/xblocks_contrib/lti/tests/__init__.py b/src/xblock_poll_question/conf/locale/__init__.py similarity index 100% rename from xblocks_contrib/lti/tests/__init__.py rename to src/xblock_poll_question/conf/locale/__init__.py diff --git a/xblocks_contrib/poll/conf/locale/config.yaml b/src/xblock_poll_question/conf/locale/config.yaml similarity index 100% rename from xblocks_contrib/poll/conf/locale/config.yaml rename to src/xblock_poll_question/conf/locale/config.yaml diff --git a/xblocks_contrib/poll/static/css/poll.css b/src/xblock_poll_question/static/css/poll.css similarity index 100% rename from xblocks_contrib/poll/static/css/poll.css rename to src/xblock_poll_question/static/css/poll.css diff --git a/xblocks_contrib/poll/static/js/src/poll.js b/src/xblock_poll_question/static/js/src/poll.js similarity index 100% rename from xblocks_contrib/poll/static/js/src/poll.js rename to src/xblock_poll_question/static/js/src/poll.js diff --git a/xblocks_contrib/poll/templates/poll.html b/src/xblock_poll_question/templates/poll.html similarity index 100% rename from xblocks_contrib/poll/templates/poll.html rename to src/xblock_poll_question/templates/poll.html diff --git a/xblocks_contrib/poll/tests/test_poll.py b/src/xblock_poll_question/tests/test_poll.py similarity index 98% rename from xblocks_contrib/poll/tests/test_poll.py rename to src/xblock_poll_question/tests/test_poll.py index bc0fad3e..215a3d17 100644 --- a/xblocks_contrib/poll/tests/test_poll.py +++ b/src/xblock_poll_question/tests/test_poll.py @@ -8,7 +8,7 @@ from xblock.fields import ScopeIds from xblock.test.tools import TestRuntime -from xblocks_contrib import PollBlock +from xblock_poll_question import PollBlock class PollBlockTest(TestCase): diff --git a/src/xblock_problem/.tx/config b/src/xblock_problem/.tx/config new file mode 100644 index 00000000..4a54abbe --- /dev/null +++ b/src/xblock_problem/.tx/config @@ -0,0 +1,8 @@ +[main] +host = https://www.transifex.com + +[o:open-edx:p:openedx-translations:r:xblock-problem] +file_filter = conf/locale//LC_MESSAGES/text.po +source_file = conf/locale/en/LC_MESSAGES/text.po +source_lang = en +type = PO diff --git a/src/xblock_problem/__init__.py b/src/xblock_problem/__init__.py new file mode 100644 index 00000000..347099b0 --- /dev/null +++ b/src/xblock_problem/__init__.py @@ -0,0 +1,5 @@ +""" +Init for the ProblemBlock. +""" + +from .block import ProblemBlock as ProblemBlock diff --git a/xblocks_contrib/problem/assets/fixtures/checkbox_problem.html b/src/xblock_problem/assets/fixtures/checkbox_problem.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/checkbox_problem.html rename to src/xblock_problem/assets/fixtures/checkbox_problem.html diff --git a/xblocks_contrib/problem/assets/fixtures/codeinput_problem.html b/src/xblock_problem/assets/fixtures/codeinput_problem.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/codeinput_problem.html rename to src/xblock_problem/assets/fixtures/codeinput_problem.html diff --git a/xblocks_contrib/problem/assets/fixtures/imageinput.html b/src/xblock_problem/assets/fixtures/imageinput.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/imageinput.html rename to src/xblock_problem/assets/fixtures/imageinput.html diff --git a/xblocks_contrib/problem/assets/fixtures/imageinput.underscore b/src/xblock_problem/assets/fixtures/imageinput.underscore similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/imageinput.underscore rename to src/xblock_problem/assets/fixtures/imageinput.underscore diff --git a/xblocks_contrib/problem/assets/fixtures/jsinput_problem.html b/src/xblock_problem/assets/fixtures/jsinput_problem.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/jsinput_problem.html rename to src/xblock_problem/assets/fixtures/jsinput_problem.html diff --git a/xblocks_contrib/problem/assets/fixtures/matlabinput_problem.html b/src/xblock_problem/assets/fixtures/matlabinput_problem.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/matlabinput_problem.html rename to src/xblock_problem/assets/fixtures/matlabinput_problem.html diff --git a/xblocks_contrib/problem/assets/fixtures/problem.html b/src/xblock_problem/assets/fixtures/problem.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/problem.html rename to src/xblock_problem/assets/fixtures/problem.html diff --git a/xblocks_contrib/problem/assets/fixtures/problem_content.html b/src/xblock_problem/assets/fixtures/problem_content.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/problem_content.html rename to src/xblock_problem/assets/fixtures/problem_content.html diff --git a/xblocks_contrib/problem/assets/fixtures/problem_content_1240.html b/src/xblock_problem/assets/fixtures/problem_content_1240.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/problem_content_1240.html rename to src/xblock_problem/assets/fixtures/problem_content_1240.html diff --git a/xblocks_contrib/problem/assets/fixtures/radiobutton_problem.html b/src/xblock_problem/assets/fixtures/radiobutton_problem.html similarity index 100% rename from xblocks_contrib/problem/assets/fixtures/radiobutton_problem.html rename to src/xblock_problem/assets/fixtures/radiobutton_problem.html diff --git a/xblocks_contrib/problem/assets/karma.conf.js b/src/xblock_problem/assets/karma.conf.js similarity index 100% rename from xblocks_contrib/problem/assets/karma.conf.js rename to src/xblock_problem/assets/karma.conf.js diff --git a/xblocks_contrib/problem/assets/karma_runner.js b/src/xblock_problem/assets/karma_runner.js similarity index 100% rename from xblocks_contrib/problem/assets/karma_runner.js rename to src/xblock_problem/assets/karma_runner.js diff --git a/xblocks_contrib/problem/assets/package.json b/src/xblock_problem/assets/package.json similarity index 100% rename from xblocks_contrib/problem/assets/package.json rename to src/xblock_problem/assets/package.json diff --git a/xblocks_contrib/problem/assets/spec/collapsible_spec.js b/src/xblock_problem/assets/spec/collapsible_spec.js similarity index 100% rename from xblocks_contrib/problem/assets/spec/collapsible_spec.js rename to src/xblock_problem/assets/spec/collapsible_spec.js diff --git a/xblocks_contrib/problem/assets/spec/display_spec.js b/src/xblock_problem/assets/spec/display_spec.js similarity index 100% rename from xblocks_contrib/problem/assets/spec/display_spec.js rename to src/xblock_problem/assets/spec/display_spec.js diff --git a/xblocks_contrib/problem/assets/spec/imageinput_spec.js b/src/xblock_problem/assets/spec/imageinput_spec.js similarity index 100% rename from xblocks_contrib/problem/assets/spec/imageinput_spec.js rename to src/xblock_problem/assets/spec/imageinput_spec.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/accessibility_tools.js b/src/xblock_problem/assets/spec_helpers/accessibility_tools.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/accessibility_tools.js rename to src/xblock_problem/assets/spec_helpers/accessibility_tools.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/add_ajax_prefix.js b/src/xblock_problem/assets/spec_helpers/add_ajax_prefix.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/add_ajax_prefix.js rename to src/xblock_problem/assets/spec_helpers/add_ajax_prefix.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/ajax_prefix.js b/src/xblock_problem/assets/spec_helpers/ajax_prefix.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/ajax_prefix.js rename to src/xblock_problem/assets/spec_helpers/ajax_prefix.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/helper.js b/src/xblock_problem/assets/spec_helpers/helper.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/helper.js rename to src/xblock_problem/assets/spec_helpers/helper.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/i18n.js b/src/xblock_problem/assets/spec_helpers/i18n.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/i18n.js rename to src/xblock_problem/assets/spec_helpers/i18n.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/jasmine-extensions.js b/src/xblock_problem/assets/spec_helpers/jasmine-extensions.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/jasmine-extensions.js rename to src/xblock_problem/assets/spec_helpers/jasmine-extensions.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/jasmine-imagediff.js b/src/xblock_problem/assets/spec_helpers/jasmine-imagediff.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/jasmine-imagediff.js rename to src/xblock_problem/assets/spec_helpers/jasmine-imagediff.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/jasmine-waituntil.js b/src/xblock_problem/assets/spec_helpers/jasmine-waituntil.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/jasmine-waituntil.js rename to src/xblock_problem/assets/spec_helpers/jasmine-waituntil.js diff --git a/xblocks_contrib/problem/assets/spec_helpers/logger.js b/src/xblock_problem/assets/spec_helpers/logger.js similarity index 100% rename from xblocks_contrib/problem/assets/spec_helpers/logger.js rename to src/xblock_problem/assets/spec_helpers/logger.js diff --git a/xblocks_contrib/problem/assets/static/css/ProblemBlockDisplay.css b/src/xblock_problem/assets/static/css/ProblemBlockDisplay.css similarity index 100% rename from xblocks_contrib/problem/assets/static/css/ProblemBlockDisplay.css rename to src/xblock_problem/assets/static/css/ProblemBlockDisplay.css diff --git a/xblocks_contrib/problem/assets/static/js/.gitignore b/src/xblock_problem/assets/static/js/.gitignore similarity index 100% rename from xblocks_contrib/problem/assets/static/js/.gitignore rename to src/xblock_problem/assets/static/js/.gitignore diff --git a/xblocks_contrib/problem/assets/static/js/collapsible.js b/src/xblock_problem/assets/static/js/collapsible.js similarity index 100% rename from xblocks_contrib/problem/assets/static/js/collapsible.js rename to src/xblock_problem/assets/static/js/collapsible.js diff --git a/xblocks_contrib/problem/assets/static/js/display.js b/src/xblock_problem/assets/static/js/display.js similarity index 100% rename from xblocks_contrib/problem/assets/static/js/display.js rename to src/xblock_problem/assets/static/js/display.js diff --git a/xblocks_contrib/problem/assets/static/js/imageinput.js b/src/xblock_problem/assets/static/js/imageinput.js similarity index 100% rename from xblocks_contrib/problem/assets/static/js/imageinput.js rename to src/xblock_problem/assets/static/js/imageinput.js diff --git a/xblocks_contrib/problem/assets/static/js/javascript_loader.js b/src/xblock_problem/assets/static/js/javascript_loader.js similarity index 100% rename from xblocks_contrib/problem/assets/static/js/javascript_loader.js rename to src/xblock_problem/assets/static/js/javascript_loader.js diff --git a/xblocks_contrib/problem/assets/static/js/schematic.js b/src/xblock_problem/assets/static/js/schematic.js similarity index 100% rename from xblocks_contrib/problem/assets/static/js/schematic.js rename to src/xblock_problem/assets/static/js/schematic.js diff --git a/xblocks_contrib/problem/assets/static/js/vendor/codemirror-compressed.js b/src/xblock_problem/assets/static/js/vendor/codemirror-compressed.js similarity index 100% rename from xblocks_contrib/problem/assets/static/js/vendor/codemirror-compressed.js rename to src/xblock_problem/assets/static/js/vendor/codemirror-compressed.js diff --git a/xblocks_contrib/problem/assets/static/js/xmodule.js b/src/xblock_problem/assets/static/js/xmodule.js similarity index 100% rename from xblocks_contrib/problem/assets/static/js/xmodule.js rename to src/xblock_problem/assets/static/js/xmodule.js diff --git a/xblocks_contrib/problem/assets/webpack.config.js b/src/xblock_problem/assets/webpack.config.js similarity index 100% rename from xblocks_contrib/problem/assets/webpack.config.js rename to src/xblock_problem/assets/webpack.config.js diff --git a/xblocks_contrib/problem/assets/webpack.prod.config.js b/src/xblock_problem/assets/webpack.prod.config.js similarity index 100% rename from xblocks_contrib/problem/assets/webpack.prod.config.js rename to src/xblock_problem/assets/webpack.prod.config.js diff --git a/xblocks_contrib/problem/capa_block.py b/src/xblock_problem/block.py similarity index 98% rename from xblocks_contrib/problem/capa_block.py rename to src/xblock_problem/block.py index bee1c199..50700fec 100644 --- a/xblocks_contrib/problem/capa_block.py +++ b/src/xblock_problem/block.py @@ -18,7 +18,6 @@ from zoneinfo import ZoneInfo import nh3 -from django.conf import settings from django.template.loader import render_to_string from django.utils.encoding import smart_str from django.utils.functional import cached_property @@ -47,13 +46,13 @@ from xblock.runtime import KeyValueStore, KvsFieldData from xblock.scorable import ScorableXBlockMixin, Score, ShowCorrectness -from xblocks_contrib.legacy_utils.xml_utils import LegacyXmlMixin, is_pointer_tag -from xblocks_contrib.problem.capa import responsetypes -from xblocks_contrib.problem.capa.capa_problem import LoncapaProblem, LoncapaSystem -from xblocks_contrib.problem.capa.inputtypes import Status -from xblocks_contrib.problem.capa.responsetypes import LoncapaProblemError, ResponseError, StudentInputError -from xblocks_contrib.problem.capa.util import convert_files_to_filenames, get_inner_html_from_xpath -from xblocks_contrib.problem.markup import HTML, Text +from xblock_problem.capa import responsetypes +from xblock_problem.capa.capa_problem import LoncapaProblem, LoncapaSystem +from xblock_problem.capa.inputtypes import Status +from xblock_problem.capa.responsetypes import LoncapaProblemError, ResponseError, StudentInputError +from xblock_problem.capa.util import convert_files_to_filenames, get_inner_html_from_xpath +from xblock_problem.markup import HTML, Text +from xblocks_core.legacy_utils.xml_utils import LegacyXmlMixin, is_pointer_tag log = logging.getLogger("edx.courseware") @@ -206,7 +205,7 @@ class ProblemBlock(ScorableXBlockMixin, LegacyXmlMixin, XBlock): An XBlock representing a "problem". A problem contains zero or more respondable items, such as multiple choice, - numeric response, true/false, etc. See xblocks_contrib/problem/capa/responsetypes.py + numeric response, true/false, etc. See src/xblock_problem/capa/responsetypes.py for the full ensemble. The rendering logic of a problem is largely encapsulated within @@ -428,20 +427,8 @@ def student_view(self, _context, show_detailed_errors=False): else: html = self.get_html() fragment = Fragment(html) - - # Determine how static assets should be served based on Django settings. - # Open edX requires different asset paths for production vs. local development. - pipeline = getattr(settings, "PIPELINE", {}) - use_pipeline = pipeline.get("PIPELINE_ENABLED", True) or not getattr(settings, "REQUIRE_DEBUG", False) - - # When the Django pipeline is active (production), XBlock assets are namespaced - # using the package scope (e.g., "problem/public"). - # When inactive (local dev fallback), they are served directly from "public". - # https://github.com/openedx/openedx-platform/blob/master/openedx/core/lib/xblock_utils/__init__.py#L417 - base_path = "problem/public" if use_pipeline else "public" - - fragment.add_css_url(self.runtime.local_resource_url(self, f"{base_path}/css/ProblemBlockDisplay.css")) - fragment.add_javascript_url(self.runtime.local_resource_url(self, f"{base_path}/js/ProblemBlockDisplay.js")) + fragment.add_css_url(self.runtime.local_resource_url(self, "public/css/ProblemBlockDisplay.css")) + fragment.add_javascript_url(self.runtime.local_resource_url(self, "public/js/ProblemBlockDisplay.js")) fragment.initialize_js("Problem") return fragment diff --git a/xblocks_contrib/poll/conf/locale/__init__.py b/src/xblock_problem/capa/__init__.py similarity index 100% rename from xblocks_contrib/poll/conf/locale/__init__.py rename to src/xblock_problem/capa/__init__.py diff --git a/xblocks_contrib/problem/capa/apps.py b/src/xblock_problem/capa/apps.py similarity index 90% rename from xblocks_contrib/problem/capa/apps.py rename to src/xblock_problem/capa/apps.py index e3373de2..d075e8bd 100644 --- a/xblocks_contrib/problem/capa/apps.py +++ b/src/xblock_problem/capa/apps.py @@ -1,5 +1,5 @@ """ -Django App configuration for the xblocks-contrib CAPA module. +Django App configuration for the xblocks-core CAPA module. """ from django.apps import AppConfig @@ -37,8 +37,9 @@ class CapaAppConfig(AppConfig): """ - name = "xblocks_contrib.problem.capa" - verbose_name = "XBlocks Contrib - CAPA Problem Templates" + name = "xblock_problem.capa" + label = "xblock_problem_capa" + verbose_name = "XBlocks Core - CAPA Problem Templates" # The Open edX plugin dictionary that triggers dynamic injection plugin_app = { diff --git a/xblocks_contrib/problem/capa/capa_problem.py b/src/xblock_problem/capa/capa_problem.py similarity index 99% rename from xblocks_contrib/problem/capa/capa_problem.py rename to src/xblock_problem/capa/capa_problem.py index 00a9e6f3..6ec3d229 100644 --- a/xblocks_contrib/problem/capa/capa_problem.py +++ b/src/xblock_problem/capa/capa_problem.py @@ -26,17 +26,13 @@ from django.conf import settings from lxml import etree -from xblocks_contrib.problem.capa import customrender, inputtypes, responsetypes, xqueue_interface -from xblocks_contrib.problem.capa.correctmap import CorrectMap -from xblocks_contrib.problem.capa.safe_exec import safe_exec -from xblocks_contrib.problem.capa.util import ( - contextualize_text, - convert_files_to_filenames, - get_course_id_from_capa_block, -) -from xblocks_contrib.problem.markup import HTML, Text -from xblocks_contrib.problem.stringify import stringify_children -from xblocks_contrib.problem.xmlparser import XML +from xblock_problem.capa import customrender, inputtypes, responsetypes, xqueue_interface +from xblock_problem.capa.correctmap import CorrectMap +from xblock_problem.capa.safe_exec import safe_exec +from xblock_problem.capa.util import contextualize_text, convert_files_to_filenames, get_course_id_from_capa_block +from xblock_problem.markup import HTML, Text +from xblock_problem.stringify import stringify_children +from xblock_problem.xmlparser import XML # extra things displayed after "show answers" is pressed solution_tags = ["solution"] diff --git a/xblocks_contrib/problem/capa/checker.py b/src/xblock_problem/capa/checker.py similarity index 98% rename from xblocks_contrib/problem/capa/checker.py rename to src/xblock_problem/capa/checker.py index 50226837..c156e900 100755 --- a/xblocks_contrib/problem/capa/checker.py +++ b/src/xblock_problem/capa/checker.py @@ -11,7 +11,7 @@ from calc import UndefinedVariable from django.template.loader import get_template -from xblocks_contrib.problem.capa.capa_problem import LoncapaProblem +from xblock_problem.capa.capa_problem import LoncapaProblem logging.basicConfig(format="%(levelname)s %(message)s") log = logging.getLogger("capa.checker") diff --git a/xblocks_contrib/problem/capa/correctmap.py b/src/xblock_problem/capa/correctmap.py similarity index 100% rename from xblocks_contrib/problem/capa/correctmap.py rename to src/xblock_problem/capa/correctmap.py diff --git a/xblocks_contrib/problem/capa/customrender.py b/src/xblock_problem/capa/customrender.py similarity index 100% rename from xblocks_contrib/problem/capa/customrender.py rename to src/xblock_problem/capa/customrender.py diff --git a/xblocks_contrib/problem/capa/errors.py b/src/xblock_problem/capa/errors.py similarity index 100% rename from xblocks_contrib/problem/capa/errors.py rename to src/xblock_problem/capa/errors.py diff --git a/xblocks_contrib/problem/capa/inputtypes.py b/src/xblock_problem/capa/inputtypes.py similarity index 99% rename from xblocks_contrib/problem/capa/inputtypes.py rename to src/xblock_problem/capa/inputtypes.py index c87017d0..bad92ce3 100644 --- a/xblocks_contrib/problem/capa/inputtypes.py +++ b/src/xblock_problem/capa/inputtypes.py @@ -55,9 +55,9 @@ from chem import chemcalc from lxml import etree -from xblocks_contrib.problem.capa.xqueue_interface import XQUEUE_TIMEOUT -from xblocks_contrib.problem.markup import HTML, Text -from xblocks_contrib.problem.stringify import stringify_children +from xblock_problem.capa.xqueue_interface import XQUEUE_TIMEOUT +from xblock_problem.markup import HTML, Text +from xblock_problem.stringify import stringify_children from . import xqueue_interface from .registry import TagRegistry diff --git a/xblocks_contrib/problem/capa/registry.py b/src/xblock_problem/capa/registry.py similarity index 100% rename from xblocks_contrib/problem/capa/registry.py rename to src/xblock_problem/capa/registry.py diff --git a/xblocks_contrib/problem/capa/responsetypes.py b/src/xblock_problem/capa/responsetypes.py similarity index 99% rename from xblocks_contrib/problem/capa/responsetypes.py rename to src/xblock_problem/capa/responsetypes.py index 85f93949..33b533ea 100644 --- a/xblocks_contrib/problem/capa/responsetypes.py +++ b/src/xblock_problem/capa/responsetypes.py @@ -38,9 +38,9 @@ from shapely.geometry import MultiPoint, Point from symmath import symmath_check -from xblocks_contrib.problem.capa.safe_exec import safe_exec -from xblocks_contrib.problem.capa.xqueue_interface import DATEFORMAT, make_hashkey, make_xheader -from xblocks_contrib.problem.markup import HTML, Text +from xblock_problem.capa.safe_exec import safe_exec +from xblock_problem.capa.xqueue_interface import DATEFORMAT, make_hashkey, make_xheader +from xblock_problem.markup import HTML, Text from . import correctmap from .registry import TagRegistry diff --git a/xblocks_contrib/problem/capa/safe_exec/README.rst b/src/xblock_problem/capa/safe_exec/README.rst similarity index 100% rename from xblocks_contrib/problem/capa/safe_exec/README.rst rename to src/xblock_problem/capa/safe_exec/README.rst diff --git a/xblocks_contrib/problem/capa/safe_exec/__init__.py b/src/xblock_problem/capa/safe_exec/__init__.py similarity index 100% rename from xblocks_contrib/problem/capa/safe_exec/__init__.py rename to src/xblock_problem/capa/safe_exec/__init__.py diff --git a/xblocks_contrib/problem/capa/safe_exec/exceptions.py b/src/xblock_problem/capa/safe_exec/exceptions.py similarity index 100% rename from xblocks_contrib/problem/capa/safe_exec/exceptions.py rename to src/xblock_problem/capa/safe_exec/exceptions.py diff --git a/xblocks_contrib/problem/capa/safe_exec/lazymod.py b/src/xblock_problem/capa/safe_exec/lazymod.py similarity index 100% rename from xblocks_contrib/problem/capa/safe_exec/lazymod.py rename to src/xblock_problem/capa/safe_exec/lazymod.py diff --git a/xblocks_contrib/problem/capa/safe_exec/remote_exec.py b/src/xblock_problem/capa/safe_exec/remote_exec.py similarity index 100% rename from xblocks_contrib/problem/capa/safe_exec/remote_exec.py rename to src/xblock_problem/capa/safe_exec/remote_exec.py diff --git a/xblocks_contrib/problem/capa/safe_exec/safe_exec.py b/src/xblock_problem/capa/safe_exec/safe_exec.py similarity index 100% rename from xblocks_contrib/problem/capa/safe_exec/safe_exec.py rename to src/xblock_problem/capa/safe_exec/safe_exec.py diff --git a/xblocks_contrib/problem/capa/__init__.py b/src/xblock_problem/capa/safe_exec/tests/__init__.py similarity index 100% rename from xblocks_contrib/problem/capa/__init__.py rename to src/xblock_problem/capa/safe_exec/tests/__init__.py diff --git a/src/xblock_problem/capa/safe_exec/tests/test_files/pylib/constant.py b/src/xblock_problem/capa/safe_exec/tests/test_files/pylib/constant.py new file mode 100644 index 00000000..c71ae3be --- /dev/null +++ b/src/xblock_problem/capa/safe_exec/tests/test_files/pylib/constant.py @@ -0,0 +1,2 @@ +"""Test constant module for safe_exec pylib tests.""" +THE_CONST = 23 diff --git a/xblocks_contrib/problem/capa/safe_exec/tests/test_lazymod.py b/src/xblock_problem/capa/safe_exec/tests/test_lazymod.py similarity index 97% rename from xblocks_contrib/problem/capa/safe_exec/tests/test_lazymod.py rename to src/xblock_problem/capa/safe_exec/tests/test_lazymod.py index fcc30973..8c683bcd 100644 --- a/xblocks_contrib/problem/capa/safe_exec/tests/test_lazymod.py +++ b/src/xblock_problem/capa/safe_exec/tests/test_lazymod.py @@ -3,7 +3,7 @@ import sys import unittest -from xblocks_contrib.problem.capa.safe_exec.lazymod import LazyModule +from xblock_problem.capa.safe_exec.lazymod import LazyModule class ModuleIsolation: diff --git a/xblocks_contrib/problem/capa/safe_exec/tests/test_remote_exec.py b/src/xblock_problem/capa/safe_exec/tests/test_remote_exec.py similarity index 92% rename from xblocks_contrib/problem/capa/safe_exec/tests/test_remote_exec.py rename to src/xblock_problem/capa/safe_exec/tests/test_remote_exec.py index cda96274..2a6c3227 100644 --- a/xblocks_contrib/problem/capa/safe_exec/tests/test_remote_exec.py +++ b/src/xblock_problem/capa/safe_exec/tests/test_remote_exec.py @@ -8,7 +8,7 @@ from django.test import override_settings -from xblocks_contrib.problem.capa.safe_exec.remote_exec import get_remote_exec +from xblock_problem.capa.safe_exec.remote_exec import get_remote_exec class TestRemoteExec(TestCase): diff --git a/xblocks_contrib/problem/capa/safe_exec/tests/test_safe_exec.py b/src/xblock_problem/capa/safe_exec/tests/test_safe_exec.py similarity index 94% rename from xblocks_contrib/problem/capa/safe_exec/tests/test_safe_exec.py rename to src/xblock_problem/capa/safe_exec/tests/test_safe_exec.py index 90f8420d..11609528 100644 --- a/xblocks_contrib/problem/capa/safe_exec/tests/test_safe_exec.py +++ b/src/xblock_problem/capa/safe_exec/tests/test_safe_exec.py @@ -18,13 +18,10 @@ from django.test import override_settings from six import unichr -from xblocks_contrib.problem.capa.safe_exec import safe_exec, update_hash -from xblocks_contrib.problem.capa.safe_exec.remote_exec import ( - is_codejail_in_darklaunch, - is_codejail_rest_service_enabled, -) -from xblocks_contrib.problem.capa.safe_exec.safe_exec import emsg_normalizers, normalize_error_message -from xblocks_contrib.problem.capa.tests.test_util import UseUnsafeCodejail +from xblock_problem.capa.safe_exec import safe_exec, update_hash +from xblock_problem.capa.safe_exec.remote_exec import is_codejail_in_darklaunch, is_codejail_rest_service_enabled +from xblock_problem.capa.safe_exec.safe_exec import emsg_normalizers, normalize_error_message +from xblock_problem.capa.tests.test_util import UseUnsafeCodejail @UseUnsafeCodejail() @@ -98,7 +95,7 @@ def test_cant_do_something_forbidden(self): throws SafeExecException, protecting the calling process. This test is skipped unless a local or remote CodeJail service is - properly configured. In xblocks-contrib, the test **will pass** + properly configured. In xblocks-core, the test **will pass** when the CodeJail REST service is running and the following setting is enabled: @@ -109,7 +106,7 @@ def test_cant_do_something_forbidden(self): See setup instructions: * in-platform setup: - https://github.com/openedx/xblocks-contrib/blob/main/xblocks_contrib/problem/capa/safe_exec/README.rst + https://github.com/openedx/xblocks-core/blob/main/src/xblock_problem/capa/safe_exec/README.rst * remote setup (using Tutor): https://github.com/eduNEXT/tutor-contrib-codejail """ @@ -142,8 +139,8 @@ class TestCodeJailDarkLaunch(unittest.TestCase): Test that the behavior of the dark launched code behaves as expected. """ - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.get_remote_exec") - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.codejail_safe_exec") + @patch("xblock_problem.capa.safe_exec.safe_exec.get_remote_exec") + @patch("xblock_problem.capa.safe_exec.safe_exec.codejail_safe_exec") def test_default_code_execution(self, mock_local_exec, mock_remote_exec): """Check that default code execution uses local exec only.""" # Test default only runs local exec. @@ -153,8 +150,8 @@ def test_default_code_execution(self, mock_local_exec, mock_remote_exec): assert not mock_remote_exec.called @override_settings(ENABLE_CODEJAIL_REST_SERVICE=True) - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.get_remote_exec") - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.codejail_safe_exec") + @patch("xblock_problem.capa.safe_exec.safe_exec.get_remote_exec") + @patch("xblock_problem.capa.safe_exec.safe_exec.codejail_safe_exec") def test_code_execution_only_codejail_service(self, mock_local_exec, mock_remote_exec): """Check execution via codejail service only.""" # Set return values to empty values to indicate no error. @@ -166,8 +163,8 @@ def test_code_execution_only_codejail_service(self, mock_local_exec, mock_remote assert mock_remote_exec.called @override_settings(ENABLE_CODEJAIL_DARKLAUNCH=True) - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.get_remote_exec") - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.codejail_safe_exec") + @patch("xblock_problem.capa.safe_exec.safe_exec.get_remote_exec") + @patch("xblock_problem.capa.safe_exec.safe_exec.codejail_safe_exec") def test_code_execution_darklaunch_misconfig(self, mock_local_exec, mock_remote_exec): """Test that darklaunch doesn't run when remote service is generally enabled.""" mock_remote_exec.return_value = (None, None) @@ -202,10 +199,10 @@ def run_dark_launch( # pylint: disable=too-many-positional-arguments,too-many-a assert is_codejail_in_darklaunch() with ( - patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.codejail_safe_exec") as mock_local_exec, - patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.get_remote_exec") as mock_remote_exec, - patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.set_custom_attribute") as mock_set_custom_attribute, - patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.log.info") as mock_log_info, + patch("xblock_problem.capa.safe_exec.safe_exec.codejail_safe_exec") as mock_local_exec, + patch("xblock_problem.capa.safe_exec.safe_exec.get_remote_exec") as mock_remote_exec, + patch("xblock_problem.capa.safe_exec.safe_exec.set_custom_attribute") as mock_set_custom_attribute, + patch("xblock_problem.capa.safe_exec.safe_exec.log.info") as mock_log_info, ): mock_local_exec.side_effect = local mock_remote_exec.side_effect = remote @@ -477,8 +474,8 @@ def test_can_replace_normalizers(self): }, ] ) - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.record_exception") - @patch("xblocks_contrib.problem.capa.safe_exec.safe_exec.log.error") + @patch("xblock_problem.capa.safe_exec.safe_exec.record_exception") + @patch("xblock_problem.capa.safe_exec.safe_exec.log.error") def test_normalizers_validate(self, mock_log_error, mock_record_exception): """Normalizers are validated, and fall back to default list on error.""" assert len(emsg_normalizers()) > 0 diff --git a/xblocks_contrib/problem/capa/static/applets/Protex.jar b/src/xblock_problem/capa/static/applets/Protex.jar similarity index 100% rename from xblocks_contrib/problem/capa/static/applets/Protex.jar rename to src/xblock_problem/capa/static/applets/Protex.jar diff --git a/xblocks_contrib/problem/capa/static/applets/genex.jar b/src/xblock_problem/capa/static/applets/genex.jar similarity index 100% rename from xblocks_contrib/problem/capa/static/applets/genex.jar rename to src/xblock_problem/capa/static/applets/genex.jar diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX2E0-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX2E0-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX2E0-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX2E0-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX2E1-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX2E1-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX2E1-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX2E1-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX2E2-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX2E2-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX2E2-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX2E2-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX2E3-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX2E3-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX2E3-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX2E3-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX3E0-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX3E0-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX3E0-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX3E0-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX3E1-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX3E1-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX3E1-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX3E1-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX3E2-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX3E2-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX3E2-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX3E2-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX4E0-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX4E0-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX4E0-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX4E0-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX4E1-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX4E1-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX4E1-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX4E1-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX4E2-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX4E2-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX4E2-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX4E2-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX5E1-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX5E1-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX5E1-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX5E1-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX5E2-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX5E2-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX5E2-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX5E2-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX6E0-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX6E0-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX6E0-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX6E0-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX6E1-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX6E1-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX6E1-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX6E1-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX7E0-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX7E0-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX7E0-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX7E0-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX8E0-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX8E0-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX8E0-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX8E0-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/AX9E0-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/AX9E0-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/AX9E0-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/AX9E0-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Bent-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Bent-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Bent-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Bent-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Linear-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Linear-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Linear-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Linear-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Linear-stick.png b/src/xblock_problem/capa/static/images/vsepr/Linear-stick.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Linear-stick.png rename to src/xblock_problem/capa/static/images/vsepr/Linear-stick.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Octahedral-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Octahedral-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Octahedral-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Octahedral-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Octahedral-stick.png b/src/xblock_problem/capa/static/images/vsepr/Octahedral-stick.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Octahedral-stick.png rename to src/xblock_problem/capa/static/images/vsepr/Octahedral-stick.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Pentagonal-bipyramidal-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Pentagonal-bipyramidal-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Pentagonal-bipyramidal-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Pentagonal-bipyramidal-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Pentagonal-planar-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Pentagonal-planar-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Pentagonal-planar-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Pentagonal-planar-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Pentagonal-pyramidal-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Pentagonal-pyramidal-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Pentagonal-pyramidal-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Pentagonal-pyramidal-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Pyramidal-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Pyramidal-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Pyramidal-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Pyramidal-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Seesaw-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Seesaw-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Seesaw-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Seesaw-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Square-antiprismatic-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Square-antiprismatic-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Square-antiprismatic-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Square-antiprismatic-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Square-planar-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Square-planar-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Square-planar-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Square-planar-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/T-shaped-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/T-shaped-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/T-shaped-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/T-shaped-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Tetrahedral-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Tetrahedral-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Tetrahedral-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Tetrahedral-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Tetrahedral-stick.png b/src/xblock_problem/capa/static/images/vsepr/Tetrahedral-stick.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Tetrahedral-stick.png rename to src/xblock_problem/capa/static/images/vsepr/Tetrahedral-stick.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Trigonal-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Trigonal-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-bipyramidal-3D-balls.png b/src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-3D-balls.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-bipyramidal-3D-balls.png rename to src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-3D-balls.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-bipyramidal-stick.png b/src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-stick.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-bipyramidal-stick.png rename to src/xblock_problem/capa/static/images/vsepr/Trigonal-bipyramidal-stick.png diff --git a/xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-planar-stick.png b/src/xblock_problem/capa/static/images/vsepr/Trigonal-planar-stick.png similarity index 100% rename from xblocks_contrib/problem/capa/static/images/vsepr/Trigonal-planar-stick.png rename to src/xblock_problem/capa/static/images/vsepr/Trigonal-planar-stick.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/README b/src/xblock_problem/capa/static/js/capa/README similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/README rename to src/xblock_problem/capa/static/js/capa/README diff --git a/xblocks_contrib/problem/capa/static/js/capa/annotationinput.js b/src/xblock_problem/capa/static/js/capa/annotationinput.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/annotationinput.js rename to src/xblock_problem/capa/static/js/capa/annotationinput.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/chemical_equation_preview.js b/src/xblock_problem/capa/static/js/capa/chemical_equation_preview.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/chemical_equation_preview.js rename to src/xblock_problem/capa/static/js/capa/chemical_equation_preview.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/choicetextinput.js b/src/xblock_problem/capa/static/js/capa/choicetextinput.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/choicetextinput.js rename to src/xblock_problem/capa/static/js/capa/choicetextinput.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/design-protein-2d.js b/src/xblock_problem/capa/static/js/capa/design-protein-2d.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/design-protein-2d.js rename to src/xblock_problem/capa/static/js/capa/design-protein-2d.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/base_image.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/base_image.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/base_image.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/base_image.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/config_parser.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/config_parser.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/config_parser.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/config_parser.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/container.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/container.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/container.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/container.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/draggable_events.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_events.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/draggable_events.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_events.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/draggable_logic.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_logic.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/draggable_logic.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/draggable_logic.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/draggables.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/draggables.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/draggables.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/draggables.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/main.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/main.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/main.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/main.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/scroller.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/scroller.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/scroller.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/scroller.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/state.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/state.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/state.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/state.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/targets.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/targets.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/targets.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/targets.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/update_input.js b/src/xblock_problem/capa/static/js/capa/drag_and_drop/update_input.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/drag_and_drop/update_input.js rename to src/xblock_problem/capa/static/js/capa/drag_and_drop/update_input.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/edit-a-gene.js b/src/xblock_problem/capa/static/js/capa/edit-a-gene.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/edit-a-gene.js rename to src/xblock_problem/capa/static/js/capa/edit-a-gene.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/fixtures/jsinput.html b/src/xblock_problem/capa/static/js/capa/fixtures/jsinput.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/fixtures/jsinput.html rename to src/xblock_problem/capa/static/js/capa/fixtures/jsinput.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/21B31BA00E7CE7B6BD63DD13A8586A45.cache.html b/src/xblock_problem/capa/static/js/capa/genex/21B31BA00E7CE7B6BD63DD13A8586A45.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/21B31BA00E7CE7B6BD63DD13A8586A45.cache.html rename to src/xblock_problem/capa/static/js/capa/genex/21B31BA00E7CE7B6BD63DD13A8586A45.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/63308EE54E8033A708B414CAC05B0C32.cache.html b/src/xblock_problem/capa/static/js/capa/genex/63308EE54E8033A708B414CAC05B0C32.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/63308EE54E8033A708B414CAC05B0C32.cache.html rename to src/xblock_problem/capa/static/js/capa/genex/63308EE54E8033A708B414CAC05B0C32.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/7AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html b/src/xblock_problem/capa/static/js/capa/genex/7AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/7AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html rename to src/xblock_problem/capa/static/js/capa/genex/7AC57DC6EC8C1D8672DDF6E6D4EF57CC.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/9B4F4D4EFA24CDE2E4287CC07897F249.cache.html b/src/xblock_problem/capa/static/js/capa/genex/9B4F4D4EFA24CDE2E4287CC07897F249.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/9B4F4D4EFA24CDE2E4287CC07897F249.cache.html rename to src/xblock_problem/capa/static/js/capa/genex/9B4F4D4EFA24CDE2E4287CC07897F249.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/A069AC107D79C29D6237614AC340F0C0.cache.html b/src/xblock_problem/capa/static/js/capa/genex/A069AC107D79C29D6237614AC340F0C0.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/A069AC107D79C29D6237614AC340F0C0.cache.html rename to src/xblock_problem/capa/static/js/capa/genex/A069AC107D79C29D6237614AC340F0C0.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/C6220FCC8B9234FEAD8D826A73C6D2A4.cache.html b/src/xblock_problem/capa/static/js/capa/genex/C6220FCC8B9234FEAD8D826A73C6D2A4.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/C6220FCC8B9234FEAD8D826A73C6D2A4.cache.html rename to src/xblock_problem/capa/static/js/capa/genex/C6220FCC8B9234FEAD8D826A73C6D2A4.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/clear.cache.gif b/src/xblock_problem/capa/static/js/capa/genex/clear.cache.gif similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/clear.cache.gif rename to src/xblock_problem/capa/static/js/capa/genex/clear.cache.gif diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/genex.css b/src/xblock_problem/capa/static/js/capa/genex/genex.css similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/genex.css rename to src/xblock_problem/capa/static/js/capa/genex/genex.css diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/genex.nocache.js b/src/xblock_problem/capa/static/js/capa/genex/genex.nocache.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/genex.nocache.js rename to src/xblock_problem/capa/static/js/capa/genex/genex.nocache.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/hosted.html b/src/xblock_problem/capa/static/js/capa/genex/hosted.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/hosted.html rename to src/xblock_problem/capa/static/js/capa/genex/hosted.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/circles.png b/src/xblock_problem/capa/static/js/capa/genex/images/circles.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/circles.png rename to src/xblock_problem/capa/static/js/capa/genex/images/circles.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/circles_ie6.png b/src/xblock_problem/capa/static/js/capa/genex/images/circles_ie6.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/circles_ie6.png rename to src/xblock_problem/capa/static/js/capa/genex/images/circles_ie6.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/corner.png b/src/xblock_problem/capa/static/js/capa/genex/images/corner.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/corner.png rename to src/xblock_problem/capa/static/js/capa/genex/images/corner.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/corner_ie6.png b/src/xblock_problem/capa/static/js/capa/genex/images/corner_ie6.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/corner_ie6.png rename to src/xblock_problem/capa/static/js/capa/genex/images/corner_ie6.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/hborder.png b/src/xblock_problem/capa/static/js/capa/genex/images/hborder.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/hborder.png rename to src/xblock_problem/capa/static/js/capa/genex/images/hborder.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/hborder_ie6.png b/src/xblock_problem/capa/static/js/capa/genex/images/hborder_ie6.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/hborder_ie6.png rename to src/xblock_problem/capa/static/js/capa/genex/images/hborder_ie6.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/thumb_horz.png b/src/xblock_problem/capa/static/js/capa/genex/images/thumb_horz.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/thumb_horz.png rename to src/xblock_problem/capa/static/js/capa/genex/images/thumb_horz.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/thumb_vertical.png b/src/xblock_problem/capa/static/js/capa/genex/images/thumb_vertical.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/thumb_vertical.png rename to src/xblock_problem/capa/static/js/capa/genex/images/thumb_vertical.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/vborder.png b/src/xblock_problem/capa/static/js/capa/genex/images/vborder.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/vborder.png rename to src/xblock_problem/capa/static/js/capa/genex/images/vborder.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/genex/images/vborder_ie6.png b/src/xblock_problem/capa/static/js/capa/genex/images/vborder_ie6.png similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/genex/images/vborder_ie6.png rename to src/xblock_problem/capa/static/js/capa/genex/images/vborder_ie6.png diff --git a/xblocks_contrib/problem/capa/static/js/capa/jsinput/jsinput_example.css b/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.css similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/jsinput/jsinput_example.css rename to src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.css diff --git a/xblocks_contrib/problem/capa/static/js/capa/jsinput/jsinput_example.html b/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/jsinput/jsinput_example.html rename to src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/jsinput/jsinput_example.js b/src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/jsinput/jsinput_example.js rename to src/xblock_problem/capa/static/js/capa/jsinput/jsinput_example.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/39CC89519B0E1FCB47B935AC9FE13D7B.cache.html b/src/xblock_problem/capa/static/js/capa/protex/39CC89519B0E1FCB47B935AC9FE13D7B.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/39CC89519B0E1FCB47B935AC9FE13D7B.cache.html rename to src/xblock_problem/capa/static/js/capa/protex/39CC89519B0E1FCB47B935AC9FE13D7B.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/6E05B1CD5BFCAF7D53C7C64D84318178.cache.html b/src/xblock_problem/capa/static/js/capa/protex/6E05B1CD5BFCAF7D53C7C64D84318178.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/6E05B1CD5BFCAF7D53C7C64D84318178.cache.html rename to src/xblock_problem/capa/static/js/capa/protex/6E05B1CD5BFCAF7D53C7C64D84318178.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/C824A958AB642DC2213DFFDAC640BEAA.cache.html b/src/xblock_problem/capa/static/js/capa/protex/C824A958AB642DC2213DFFDAC640BEAA.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/C824A958AB642DC2213DFFDAC640BEAA.cache.html rename to src/xblock_problem/capa/static/js/capa/protex/C824A958AB642DC2213DFFDAC640BEAA.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/D9267DE8FB02F8B995B4A58C66C76E29.cache.html b/src/xblock_problem/capa/static/js/capa/protex/D9267DE8FB02F8B995B4A58C66C76E29.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/D9267DE8FB02F8B995B4A58C66C76E29.cache.html rename to src/xblock_problem/capa/static/js/capa/protex/D9267DE8FB02F8B995B4A58C66C76E29.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/F275492F7098103BCB05F4F86ABF6218.cache.html b/src/xblock_problem/capa/static/js/capa/protex/F275492F7098103BCB05F4F86ABF6218.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/F275492F7098103BCB05F4F86ABF6218.cache.html rename to src/xblock_problem/capa/static/js/capa/protex/F275492F7098103BCB05F4F86ABF6218.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/F3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html b/src/xblock_problem/capa/static/js/capa/protex/F3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/F3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html rename to src/xblock_problem/capa/static/js/capa/protex/F3301B0E65F38C7FCF2EF3764B3BB0B6.cache.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/clear.cache.gif b/src/xblock_problem/capa/static/js/capa/protex/clear.cache.gif similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/clear.cache.gif rename to src/xblock_problem/capa/static/js/capa/protex/clear.cache.gif diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/hosted.html b/src/xblock_problem/capa/static/js/capa/protex/hosted.html similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/hosted.html rename to src/xblock_problem/capa/static/js/capa/protex/hosted.html diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/protex.css b/src/xblock_problem/capa/static/js/capa/protex/protex.css similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/protex.css rename to src/xblock_problem/capa/static/js/capa/protex/protex.css diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/protex.nocache.js b/src/xblock_problem/capa/static/js/capa/protex/protex.nocache.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/protex.nocache.js rename to src/xblock_problem/capa/static/js/capa/protex/protex.nocache.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/protex/scrollTableLoading.gif b/src/xblock_problem/capa/static/js/capa/protex/scrollTableLoading.gif similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/protex/scrollTableLoading.gif rename to src/xblock_problem/capa/static/js/capa/protex/scrollTableLoading.gif diff --git a/xblocks_contrib/problem/capa/static/js/capa/schematicinput.js b/src/xblock_problem/capa/static/js/capa/schematicinput.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/schematicinput.js rename to src/xblock_problem/capa/static/js/capa/schematicinput.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/spec/formula_equation_preview_spec.js b/src/xblock_problem/capa/static/js/capa/spec/formula_equation_preview_spec.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/spec/formula_equation_preview_spec.js rename to src/xblock_problem/capa/static/js/capa/spec/formula_equation_preview_spec.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/spec/jsinput_spec.js b/src/xblock_problem/capa/static/js/capa/spec/jsinput_spec.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/spec/jsinput_spec.js rename to src/xblock_problem/capa/static/js/capa/spec/jsinput_spec.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/src/formula_equation_preview.js b/src/xblock_problem/capa/static/js/capa/src/formula_equation_preview.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/src/formula_equation_preview.js rename to src/xblock_problem/capa/static/js/capa/src/formula_equation_preview.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/src/jschannel.js b/src/xblock_problem/capa/static/js/capa/src/jschannel.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/src/jschannel.js rename to src/xblock_problem/capa/static/js/capa/src/jschannel.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/src/jsinput.js b/src/xblock_problem/capa/static/js/capa/src/jsinput.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/src/jsinput.js rename to src/xblock_problem/capa/static/js/capa/src/jsinput.js diff --git a/xblocks_contrib/problem/capa/static/js/capa/symbolic_mathjax_preprocessor.js b/src/xblock_problem/capa/static/js/capa/symbolic_mathjax_preprocessor.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/capa/symbolic_mathjax_preprocessor.js rename to src/xblock_problem/capa/static/js/capa/symbolic_mathjax_preprocessor.js diff --git a/xblocks_contrib/problem/capa/static/js/vendor/CodeMirror/octave.js b/src/xblock_problem/capa/static/js/vendor/CodeMirror/octave.js similarity index 100% rename from xblocks_contrib/problem/capa/static/js/vendor/CodeMirror/octave.js rename to src/xblock_problem/capa/static/js/vendor/CodeMirror/octave.js diff --git a/xblocks_contrib/problem/capa/templates/annotationinput.html b/src/xblock_problem/capa/templates/annotationinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/annotationinput.html rename to src/xblock_problem/capa/templates/annotationinput.html diff --git a/xblocks_contrib/problem/capa/templates/chemicalequationinput.html b/src/xblock_problem/capa/templates/chemicalequationinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/chemicalequationinput.html rename to src/xblock_problem/capa/templates/chemicalequationinput.html diff --git a/xblocks_contrib/problem/capa/templates/choicegroup.html b/src/xblock_problem/capa/templates/choicegroup.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/choicegroup.html rename to src/xblock_problem/capa/templates/choicegroup.html diff --git a/xblocks_contrib/problem/capa/templates/choicetext.html b/src/xblock_problem/capa/templates/choicetext.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/choicetext.html rename to src/xblock_problem/capa/templates/choicetext.html diff --git a/xblocks_contrib/problem/capa/templates/clarification.html b/src/xblock_problem/capa/templates/clarification.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/clarification.html rename to src/xblock_problem/capa/templates/clarification.html diff --git a/xblocks_contrib/problem/capa/templates/codeinput.html b/src/xblock_problem/capa/templates/codeinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/codeinput.html rename to src/xblock_problem/capa/templates/codeinput.html diff --git a/xblocks_contrib/problem/capa/templates/crystallography.html b/src/xblock_problem/capa/templates/crystallography.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/crystallography.html rename to src/xblock_problem/capa/templates/crystallography.html diff --git a/xblocks_contrib/problem/capa/templates/designprotein2dinput.html b/src/xblock_problem/capa/templates/designprotein2dinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/designprotein2dinput.html rename to src/xblock_problem/capa/templates/designprotein2dinput.html diff --git a/xblocks_contrib/problem/capa/templates/drag_and_drop_input.html b/src/xblock_problem/capa/templates/drag_and_drop_input.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/drag_and_drop_input.html rename to src/xblock_problem/capa/templates/drag_and_drop_input.html diff --git a/xblocks_contrib/problem/capa/templates/editageneinput.html b/src/xblock_problem/capa/templates/editageneinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/editageneinput.html rename to src/xblock_problem/capa/templates/editageneinput.html diff --git a/xblocks_contrib/problem/capa/templates/editamolecule.html b/src/xblock_problem/capa/templates/editamolecule.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/editamolecule.html rename to src/xblock_problem/capa/templates/editamolecule.html diff --git a/xblocks_contrib/problem/capa/templates/filesubmission.html b/src/xblock_problem/capa/templates/filesubmission.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/filesubmission.html rename to src/xblock_problem/capa/templates/filesubmission.html diff --git a/xblocks_contrib/problem/capa/templates/formulaequationinput.html b/src/xblock_problem/capa/templates/formulaequationinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/formulaequationinput.html rename to src/xblock_problem/capa/templates/formulaequationinput.html diff --git a/xblocks_contrib/problem/capa/templates/imageinput.html b/src/xblock_problem/capa/templates/imageinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/imageinput.html rename to src/xblock_problem/capa/templates/imageinput.html diff --git a/xblocks_contrib/problem/capa/templates/jsinput.html b/src/xblock_problem/capa/templates/jsinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/jsinput.html rename to src/xblock_problem/capa/templates/jsinput.html diff --git a/xblocks_contrib/problem/capa/templates/mathstring.html b/src/xblock_problem/capa/templates/mathstring.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/mathstring.html rename to src/xblock_problem/capa/templates/mathstring.html diff --git a/xblocks_contrib/problem/capa/templates/matlabinput.html b/src/xblock_problem/capa/templates/matlabinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/matlabinput.html rename to src/xblock_problem/capa/templates/matlabinput.html diff --git a/xblocks_contrib/problem/capa/templates/optioninput.html b/src/xblock_problem/capa/templates/optioninput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/optioninput.html rename to src/xblock_problem/capa/templates/optioninput.html diff --git a/xblocks_contrib/problem/capa/templates/problem.html b/src/xblock_problem/capa/templates/problem.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/problem.html rename to src/xblock_problem/capa/templates/problem.html diff --git a/xblocks_contrib/problem/capa/templates/problem_ajax.html b/src/xblock_problem/capa/templates/problem_ajax.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/problem_ajax.html rename to src/xblock_problem/capa/templates/problem_ajax.html diff --git a/xblocks_contrib/problem/capa/templates/problem_notifications.html b/src/xblock_problem/capa/templates/problem_notifications.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/problem_notifications.html rename to src/xblock_problem/capa/templates/problem_notifications.html diff --git a/xblocks_contrib/problem/capa/templates/schematicinput.html b/src/xblock_problem/capa/templates/schematicinput.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/schematicinput.html rename to src/xblock_problem/capa/templates/schematicinput.html diff --git a/xblocks_contrib/problem/capa/templates/solutionspan.html b/src/xblock_problem/capa/templates/solutionspan.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/solutionspan.html rename to src/xblock_problem/capa/templates/solutionspan.html diff --git a/xblocks_contrib/problem/capa/templates/status_span.html b/src/xblock_problem/capa/templates/status_span.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/status_span.html rename to src/xblock_problem/capa/templates/status_span.html diff --git a/xblocks_contrib/problem/capa/templates/textline.html b/src/xblock_problem/capa/templates/textline.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/textline.html rename to src/xblock_problem/capa/templates/textline.html diff --git a/xblocks_contrib/problem/capa/templates/vsepr_input.html b/src/xblock_problem/capa/templates/vsepr_input.html similarity index 100% rename from xblocks_contrib/problem/capa/templates/vsepr_input.html rename to src/xblock_problem/capa/templates/vsepr_input.html diff --git a/xblocks_contrib/problem/capa/safe_exec/tests/__init__.py b/src/xblock_problem/capa/tests/__init__.py similarity index 100% rename from xblocks_contrib/problem/capa/safe_exec/tests/__init__.py rename to src/xblock_problem/capa/tests/__init__.py diff --git a/xblocks_contrib/problem/capa/tests/helpers.py b/src/xblock_problem/capa/tests/helpers.py similarity index 96% rename from xblocks_contrib/problem/capa/tests/helpers.py rename to src/xblock_problem/capa/tests/helpers.py index bf2279ff..d1fa3b66 100644 --- a/xblocks_contrib/problem/capa/tests/helpers.py +++ b/src/xblock_problem/capa/tests/helpers.py @@ -9,8 +9,8 @@ import fs.osfs from django.template.loader import get_template as django_get_template -from xblocks_contrib.problem.capa.capa_problem import LoncapaProblem, LoncapaSystem -from xblocks_contrib.problem.capa.inputtypes import Status +from xblock_problem.capa.capa_problem import LoncapaProblem, LoncapaSystem +from xblock_problem.capa.inputtypes import Status TEST_DIR = os.path.dirname(os.path.realpath(__file__)) diff --git a/xblocks_contrib/problem/capa/tests/response_xml_factory.py b/src/xblock_problem/capa/tests/response_xml_factory.py similarity index 100% rename from xblocks_contrib/problem/capa/tests/response_xml_factory.py rename to src/xblock_problem/capa/tests/response_xml_factory.py diff --git a/xblocks_contrib/problem/capa/tests/test_answer_pool.py b/src/xblock_problem/capa/tests/test_answer_pool.py similarity index 99% rename from xblocks_contrib/problem/capa/tests/test_answer_pool.py rename to src/xblock_problem/capa/tests/test_answer_pool.py index b13c5c90..77b4ae6e 100644 --- a/xblocks_contrib/problem/capa/tests/test_answer_pool.py +++ b/src/xblock_problem/capa/tests/test_answer_pool.py @@ -6,8 +6,8 @@ import textwrap import unittest -from xblocks_contrib.problem.capa.responsetypes import LoncapaProblemError -from xblocks_contrib.problem.capa.tests.helpers import mock_capa_system, new_loncapa_problem +from xblock_problem.capa.responsetypes import LoncapaProblemError +from xblock_problem.capa.tests.helpers import mock_capa_system, new_loncapa_problem class CapaAnswerPoolTest(unittest.TestCase): diff --git a/xblocks_contrib/problem/capa/tests/test_capa_problem.py b/src/xblock_problem/capa/tests/test_capa_problem.py similarity index 99% rename from xblocks_contrib/problem/capa/tests/test_capa_problem.py rename to src/xblock_problem/capa/tests/test_capa_problem.py index 4b449c7f..81f27f66 100644 --- a/xblocks_contrib/problem/capa/tests/test_capa_problem.py +++ b/src/xblock_problem/capa/tests/test_capa_problem.py @@ -11,11 +11,11 @@ from lxml import etree from markupsafe import Markup -from xblocks_contrib.problem.capa.correctmap import CorrectMap -from xblocks_contrib.problem.capa.responsetypes import LoncapaProblemError -from xblocks_contrib.problem.capa.tests.helpers import new_loncapa_problem -from xblocks_contrib.problem.capa.tests.test_util import UseUnsafeCodejail -from xblocks_contrib.problem.markup import HTML +from xblock_problem.capa.correctmap import CorrectMap +from xblock_problem.capa.responsetypes import LoncapaProblemError +from xblock_problem.capa.tests.helpers import new_loncapa_problem +from xblock_problem.capa.tests.test_util import UseUnsafeCodejail +from xblock_problem.markup import HTML @ddt.ddt diff --git a/xblocks_contrib/problem/capa/tests/test_correctmap.py b/src/xblock_problem/capa/tests/test_correctmap.py similarity index 99% rename from xblocks_contrib/problem/capa/tests/test_correctmap.py rename to src/xblock_problem/capa/tests/test_correctmap.py index aee23647..f5c08a38 100644 --- a/xblocks_contrib/problem/capa/tests/test_correctmap.py +++ b/src/xblock_problem/capa/tests/test_correctmap.py @@ -7,7 +7,7 @@ import pytest -from xblocks_contrib.problem.capa.correctmap import CorrectMap +from xblock_problem.capa.correctmap import CorrectMap class CorrectMapTest(unittest.TestCase): diff --git a/xblocks_contrib/problem/capa/tests/test_customrender.py b/src/xblock_problem/capa/tests/test_customrender.py similarity index 95% rename from xblocks_contrib/problem/capa/tests/test_customrender.py rename to src/xblock_problem/capa/tests/test_customrender.py index 0ed38c67..cf278676 100644 --- a/xblocks_contrib/problem/capa/tests/test_customrender.py +++ b/src/xblock_problem/capa/tests/test_customrender.py @@ -5,8 +5,8 @@ from lxml import etree -from xblocks_contrib.problem.capa import customrender -from xblocks_contrib.problem.capa.tests.helpers import mock_capa_system +from xblock_problem.capa import customrender +from xblock_problem.capa.tests.helpers import mock_capa_system # just a handy shortcut lookup_tag = customrender.registry.get_class_for_tag diff --git a/xblocks_contrib/problem/capa/tests/test_errors.py b/src/xblock_problem/capa/tests/test_errors.py similarity index 97% rename from xblocks_contrib/problem/capa/tests/test_errors.py rename to src/xblock_problem/capa/tests/test_errors.py index 7bc49db3..75ce5820 100644 --- a/xblocks_contrib/problem/capa/tests/test_errors.py +++ b/src/xblock_problem/capa/tests/test_errors.py @@ -4,7 +4,7 @@ import pytest -from xblocks_contrib.problem.capa.errors import ( +from xblock_problem.capa.errors import ( GetSubmissionParamsError, JSONParsingError, MissingKeyError, diff --git a/xblocks_contrib/problem/capa/tests/test_files/dynamath_input.txt b/src/xblock_problem/capa/tests/test_files/dynamath_input.txt similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/dynamath_input.txt rename to src/xblock_problem/capa/tests/test_files/dynamath_input.txt diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints.xml b/src/xblock_problem/capa/tests/test_files/extended_hints.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints_checkbox.xml b/src/xblock_problem/capa/tests/test_files/extended_hints_checkbox.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints_checkbox.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints_checkbox.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints_dropdown.xml b/src/xblock_problem/capa/tests/test_files/extended_hints_dropdown.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints_dropdown.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints_dropdown.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints_multiple_choice.xml b/src/xblock_problem/capa/tests/test_files/extended_hints_multiple_choice.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints_multiple_choice.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints_multiple_choice.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints_multiple_choice_with_html.xml b/src/xblock_problem/capa/tests/test_files/extended_hints_multiple_choice_with_html.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints_multiple_choice_with_html.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints_multiple_choice_with_html.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints_numeric_input.xml b/src/xblock_problem/capa/tests/test_files/extended_hints_numeric_input.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints_numeric_input.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints_numeric_input.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints_text_input.xml b/src/xblock_problem/capa/tests/test_files/extended_hints_text_input.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints_text_input.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints_text_input.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/extended_hints_with_errors.xml b/src/xblock_problem/capa/tests/test_files/extended_hints_with_errors.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/extended_hints_with_errors.xml rename to src/xblock_problem/capa/tests/test_files/extended_hints_with_errors.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/filename_convert_test.txt b/src/xblock_problem/capa/tests/test_files/filename_convert_test.txt similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/filename_convert_test.txt rename to src/xblock_problem/capa/tests/test_files/filename_convert_test.txt diff --git a/xblocks_contrib/problem/capa/tests/test_files/js/mersenne-twister-min.js b/src/xblock_problem/capa/tests/test_files/js/mersenne-twister-min.js similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/js/mersenne-twister-min.js rename to src/xblock_problem/capa/tests/test_files/js/mersenne-twister-min.js diff --git a/xblocks_contrib/problem/capa/tests/test_files/js/test_problem_display.js b/src/xblock_problem/capa/tests/test_files/js/test_problem_display.js similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/js/test_problem_display.js rename to src/xblock_problem/capa/tests/test_files/js/test_problem_display.js diff --git a/xblocks_contrib/problem/capa/tests/test_files/js/test_problem_generator.js b/src/xblock_problem/capa/tests/test_files/js/test_problem_generator.js similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/js/test_problem_generator.js rename to src/xblock_problem/capa/tests/test_files/js/test_problem_generator.js diff --git a/xblocks_contrib/problem/capa/tests/test_files/js/test_problem_grader.js b/src/xblock_problem/capa/tests/test_files/js/test_problem_grader.js similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/js/test_problem_grader.js rename to src/xblock_problem/capa/tests/test_files/js/test_problem_grader.js diff --git a/xblocks_contrib/problem/capa/tests/test_files/js/xproblem.js b/src/xblock_problem/capa/tests/test_files/js/xproblem.js similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/js/xproblem.js rename to src/xblock_problem/capa/tests/test_files/js/xproblem.js diff --git a/xblocks_contrib/problem/capa/tests/test_files/snuggletex_2x+3y.xml b/src/xblock_problem/capa/tests/test_files/snuggletex_2x+3y.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/snuggletex_2x+3y.xml rename to src/xblock_problem/capa/tests/test_files/snuggletex_2x+3y.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/snuggletex_correct.html b/src/xblock_problem/capa/tests/test_files/snuggletex_correct.html similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/snuggletex_correct.html rename to src/xblock_problem/capa/tests/test_files/snuggletex_correct.html diff --git a/xblocks_contrib/problem/capa/tests/test_files/snuggletex_wrong.html b/src/xblock_problem/capa/tests/test_files/snuggletex_wrong.html similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/snuggletex_wrong.html rename to src/xblock_problem/capa/tests/test_files/snuggletex_wrong.html diff --git a/xblocks_contrib/problem/capa/tests/test_files/snuggletex_x+x+3y.xml b/src/xblock_problem/capa/tests/test_files/snuggletex_x+x+3y.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/snuggletex_x+x+3y.xml rename to src/xblock_problem/capa/tests/test_files/snuggletex_x+x+3y.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/targeted_feedback.xml b/src/xblock_problem/capa/tests/test_files/targeted_feedback.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/targeted_feedback.xml rename to src/xblock_problem/capa/tests/test_files/targeted_feedback.xml diff --git a/xblocks_contrib/problem/capa/tests/test_files/targeted_feedback_multiple.xml b/src/xblock_problem/capa/tests/test_files/targeted_feedback_multiple.xml similarity index 100% rename from xblocks_contrib/problem/capa/tests/test_files/targeted_feedback_multiple.xml rename to src/xblock_problem/capa/tests/test_files/targeted_feedback_multiple.xml diff --git a/xblocks_contrib/problem/capa/tests/test_hint_functionality.py b/src/xblock_problem/capa/tests/test_hint_functionality.py similarity index 99% rename from xblocks_contrib/problem/capa/tests/test_hint_functionality.py rename to src/xblock_problem/capa/tests/test_hint_functionality.py index 19b52b78..9b97f5f4 100644 --- a/xblocks_contrib/problem/capa/tests/test_hint_functionality.py +++ b/src/xblock_problem/capa/tests/test_hint_functionality.py @@ -8,7 +8,7 @@ import pytest from ddt import data, ddt, unpack -from xblocks_contrib.problem.capa.tests.helpers import load_fixture, new_loncapa_problem +from xblock_problem.capa.tests.helpers import load_fixture, new_loncapa_problem # With the use of ddt, some of the data expected_string cases below are naturally long stretches # of text text without whitespace. I think it's best to leave such lines intact diff --git a/xblocks_contrib/problem/capa/tests/test_html_render.py b/src/xblock_problem/capa/tests/test_html_render.py similarity index 98% rename from xblocks_contrib/problem/capa/tests/test_html_render.py rename to src/xblock_problem/capa/tests/test_html_render.py index a94a1c45..98de1b51 100644 --- a/xblocks_contrib/problem/capa/tests/test_html_render.py +++ b/src/xblock_problem/capa/tests/test_html_render.py @@ -10,9 +10,9 @@ import ddt from lxml import etree -from xblocks_contrib.problem.capa.tests.helpers import mock_capa_system, new_loncapa_problem -from xblocks_contrib.problem.capa.tests.test_util import UseUnsafeCodejail -from xblocks_contrib.problem.markup import HTML +from xblock_problem.capa.tests.helpers import mock_capa_system, new_loncapa_problem +from xblock_problem.capa.tests.test_util import UseUnsafeCodejail +from xblock_problem.markup import HTML from .response_xml_factory import CustomResponseXMLFactory, StringResponseXMLFactory diff --git a/xblocks_contrib/problem/capa/tests/test_input_templates.py b/src/xblock_problem/capa/tests/test_input_templates.py similarity index 99% rename from xblocks_contrib/problem/capa/tests/test_input_templates.py rename to src/xblock_problem/capa/tests/test_input_templates.py index abf9e7f0..d19d234c 100644 --- a/xblocks_contrib/problem/capa/tests/test_input_templates.py +++ b/src/xblock_problem/capa/tests/test_input_templates.py @@ -10,10 +10,10 @@ from lxml import etree -from xblocks_contrib.problem.capa.inputtypes import Status -from xblocks_contrib.problem.capa.tests.helpers import capa_render_template -from xblocks_contrib.problem.markup import HTML -from xblocks_contrib.problem.stringify import stringify_children +from xblock_problem.capa.inputtypes import Status +from xblock_problem.capa.tests.helpers import capa_render_template +from xblock_problem.markup import HTML +from xblock_problem.stringify import stringify_children class TemplateError(Exception): diff --git a/xblocks_contrib/problem/capa/tests/test_inputtypes.py b/src/xblock_problem/capa/tests/test_inputtypes.py similarity index 98% rename from xblocks_contrib/problem/capa/tests/test_inputtypes.py rename to src/xblock_problem/capa/tests/test_inputtypes.py index ce1fb1ba..25749dff 100644 --- a/xblocks_contrib/problem/capa/tests/test_inputtypes.py +++ b/src/xblock_problem/capa/tests/test_inputtypes.py @@ -30,11 +30,11 @@ from lxml.html import fromstring from pyparsing import ParseException -from xblocks_contrib.problem.capa import inputtypes -from xblocks_contrib.problem.capa.checker import DemoSystem -from xblocks_contrib.problem.capa.tests.helpers import mock_capa_system -from xblocks_contrib.problem.capa.xqueue_interface import XQUEUE_TIMEOUT -from xblocks_contrib.problem.markup import HTML +from xblock_problem.capa import inputtypes +from xblock_problem.capa.checker import DemoSystem +from xblock_problem.capa.tests.helpers import mock_capa_system +from xblock_problem.capa.xqueue_interface import XQUEUE_TIMEOUT +from xblock_problem.markup import HTML # just a handy shortcut lookup_tag = inputtypes.registry.get_class_for_tag @@ -596,7 +596,7 @@ def test_rendering_when_completed(self): assert context == expected - @patch("xblocks_contrib.problem.capa.inputtypes.time.time", return_value=10) + @patch("xblock_problem.capa.inputtypes.time.time", return_value=10) def test_rendering_while_queued(self, time): # pylint: disable=unused-argument """Test rendering of Matlab input while a queue is in progress.""" state = { @@ -651,7 +651,7 @@ def test_plot_data_failure(self): assert "queuekey" not in self.the_input.input_state assert "queuestate" not in self.the_input.input_state - @patch("xblocks_contrib.problem.capa.inputtypes.time.time", return_value=10) + @patch("xblock_problem.capa.inputtypes.time.time", return_value=10) def test_ungraded_response_success(self, time): # pylint: disable=unused-argument """Test successful handling of ungraded responses from Xqueue.""" queuekey = "abcd" @@ -673,7 +673,7 @@ def test_ungraded_response_success(self, time): # pylint: disable=unused-argume assert input_state["queuestate"] is None assert input_state["queue_msg"] == inner_msg - @patch("xblocks_contrib.problem.capa.inputtypes.time.time", return_value=10) + @patch("xblock_problem.capa.inputtypes.time.time", return_value=10) def test_ungraded_response_key_mismatch(self, time): # pylint: disable=unused-argument """Ensure ungraded responses with mismatched keys are ignored.""" queuekey = "abcd" @@ -695,7 +695,7 @@ def test_ungraded_response_key_mismatch(self, time): # pylint: disable=unused-a assert input_state["queuestate"] == "queued" assert "queue_msg" not in input_state - @patch("xblocks_contrib.problem.capa.inputtypes.time.time", return_value=20) + @patch("xblock_problem.capa.inputtypes.time.time", return_value=20) def test_matlab_response_timeout_not_exceeded(self, time): # pylint: disable=unused-argument """Check status when Matlab response timeout has not been exceeded.""" @@ -705,7 +705,7 @@ def test_matlab_response_timeout_not_exceeded(self, time): # pylint: disable=un the_input = self.input_class(mock_capa_system(), elt, state) assert the_input.status == "queued" - @patch("xblocks_contrib.problem.capa.inputtypes.time.time", return_value=45) + @patch("xblock_problem.capa.inputtypes.time.time", return_value=45) def test_matlab_response_timeout_exceeded(self, time): # pylint: disable=unused-argument """Verify behavior when Matlab response timeout is exceeded.""" @@ -716,7 +716,7 @@ def test_matlab_response_timeout_exceeded(self, time): # pylint: disable=unused assert the_input.status == "unsubmitted" assert the_input.msg == f"No response from Xqueue within {XQUEUE_TIMEOUT} seconds. Aborted." - @patch("xblocks_contrib.problem.capa.inputtypes.time.time", return_value=20) + @patch("xblock_problem.capa.inputtypes.time.time", return_value=20) def test_matlab_response_migration_of_queuetime(self, time): # pylint: disable=unused-argument """ Test if problem was saved before queuetime was introduced. @@ -1240,19 +1240,19 @@ def test_ajax_parse_err(self): With parse errors, ChemicalEquationInput should give an error message """ # Simulate answering a problem that raises the exception - with patch("xblocks_contrib.problem.capa.inputtypes.chemcalc.render_to_html") as mock_render: + with patch("xblock_problem.capa.inputtypes.chemcalc.render_to_html") as mock_render: mock_render.side_effect = ParseException("ȧƈƈḗƞŧḗḓ ŧḗẋŧ ƒǿř ŧḗşŧīƞɠ") response = self.the_input.handle_ajax("preview_chemcalc", {"formula": "H2O + invalid chemistry"}) assert "error" in response assert "Couldn't parse formula" in response["error"] - @patch("xblocks_contrib.problem.capa.inputtypes.log") + @patch("xblock_problem.capa.inputtypes.log") def test_ajax_other_err(self, mock_log): """ With other errors, test that ChemicalEquationInput also logs it """ - with patch("xblocks_contrib.problem.capa.inputtypes.chemcalc.render_to_html") as mock_render: + with patch("xblock_problem.capa.inputtypes.chemcalc.render_to_html") as mock_render: mock_render.side_effect = Exception() response = self.the_input.handle_ajax("preview_chemcalc", {"formula": "H2O + superterrible chemistry"}) mock_log.warning.assert_called_once_with("Error while previewing chemical formula", exc_info=True) @@ -1377,7 +1377,7 @@ def test_ajax_parse_err(self): With parse errors, FormulaEquationInput should give an error message """ # Simulate answering a problem that raises the exception - with patch("xblocks_contrib.problem.capa.inputtypes.preview_numeric_input") as mock_preview: + with patch("xblock_problem.capa.inputtypes.preview_numeric_input") as mock_preview: mock_preview.side_effect = ParseException("Oopsie") response = self.the_input.handle_ajax( "preview_formcalc", @@ -1390,12 +1390,12 @@ def test_ajax_parse_err(self): assert "error" in response assert response["error"] == "Sorry, couldn't parse formula" - @patch("xblocks_contrib.problem.capa.inputtypes.log") + @patch("xblock_problem.capa.inputtypes.log") def test_ajax_other_err(self, mock_log): """ With other errors, test that FormulaEquationInput also logs it """ - with patch("xblocks_contrib.problem.capa.inputtypes.preview_numeric_input") as mock_preview: + with patch("xblock_problem.capa.inputtypes.preview_numeric_input") as mock_preview: mock_preview.side_effect = Exception() response = self.the_input.handle_ajax( "preview_formcalc", diff --git a/xblocks_contrib/problem/capa/tests/test_responsetypes.py b/src/xblock_problem/capa/tests/test_responsetypes.py similarity index 99% rename from xblocks_contrib/problem/capa/tests/test_responsetypes.py rename to src/xblock_problem/capa/tests/test_responsetypes.py index ebe56052..13e0d8ef 100644 --- a/xblocks_contrib/problem/capa/tests/test_responsetypes.py +++ b/src/xblock_problem/capa/tests/test_responsetypes.py @@ -19,10 +19,10 @@ import random2 as random import requests -from xblocks_contrib.problem.capa.correctmap import CorrectMap -from xblocks_contrib.problem.capa.responsetypes import LoncapaProblemError, ResponseError, StudentInputError -from xblocks_contrib.problem.capa.tests.helpers import load_fixture, mock_capa_system, new_loncapa_problem -from xblocks_contrib.problem.capa.tests.response_xml_factory import ( +from xblock_problem.capa.correctmap import CorrectMap +from xblock_problem.capa.responsetypes import LoncapaProblemError, ResponseError, StudentInputError +from xblock_problem.capa.tests.helpers import load_fixture, mock_capa_system, new_loncapa_problem +from xblock_problem.capa.tests.response_xml_factory import ( AnnotationResponseXMLFactory, ChoiceResponseXMLFactory, ChoiceTextResponseXMLFactory, @@ -38,9 +38,9 @@ SymbolicResponseXMLFactory, TrueFalseResponseXMLFactory, ) -from xblocks_contrib.problem.capa.tests.test_util import UseUnsafeCodejail -from xblocks_contrib.problem.capa.util import convert_files_to_filenames -from xblocks_contrib.problem.capa.xqueue_interface import DATEFORMAT +from xblock_problem.capa.tests.test_util import UseUnsafeCodejail +from xblock_problem.capa.util import convert_files_to_filenames +from xblock_problem.capa.xqueue_interface import DATEFORMAT class ResponseTest(unittest.TestCase): @@ -1567,7 +1567,7 @@ def test_staff_inputs_expressions_legacy(self): problem = self.build_problem(answer="1+1j", tolerance=1e-3) self.assert_grade(problem, "1+j", "correct") - @mock.patch("xblocks_contrib.problem.capa.responsetypes.log") + @mock.patch("xblock_problem.capa.responsetypes.log") def test_staff_inputs_bad_syntax(self, mock_log): """Test that staff may enter in a complex number as the answer.""" staff_ans = "clearly bad syntax )[+1e" @@ -1579,7 +1579,7 @@ def test_staff_inputs_bad_syntax(self, mock_log): mock_log.debug.assert_called_once_with("Content error--answer '%s' is not a valid number", staff_ans) - @mock.patch("xblocks_contrib.problem.capa.responsetypes.log") + @mock.patch("xblock_problem.capa.responsetypes.log") def test_responsetype_i18n(self, mock_log): # pylint: disable=unused-argument """Test that LoncapaSystem has an i18n that works.""" staff_ans = "clearly bad syntax )[+1e" @@ -1621,7 +1621,7 @@ def evaluator_side_effect(_, __, math_string): problem = self.build_problem(answer=4, tolerance="10%") - with mock.patch("xblocks_contrib.problem.capa.responsetypes.evaluator") as mock_eval: + with mock.patch("xblock_problem.capa.responsetypes.evaluator") as mock_eval: mock_eval.side_effect = evaluator_side_effect self.assert_grade(problem, "some big input", "incorrect") self.assert_grade(problem, "some neg input", "incorrect") @@ -1644,7 +1644,7 @@ def test_err_handling(self): (ZeroDivisionError(), "Could not interpret '.*' as a number"), ] - with mock.patch("xblocks_contrib.problem.capa.responsetypes.evaluator") as mock_eval: + with mock.patch("xblock_problem.capa.responsetypes.evaluator") as mock_eval: for err, msg_regex in errors: def evaluator_side_effect(_, __, math_string, err=err): diff --git a/xblocks_contrib/problem/capa/tests/test_shuffle.py b/src/xblock_problem/capa/tests/test_shuffle.py similarity index 98% rename from xblocks_contrib/problem/capa/tests/test_shuffle.py rename to src/xblock_problem/capa/tests/test_shuffle.py index a4d4f456..59140ad5 100644 --- a/xblocks_contrib/problem/capa/tests/test_shuffle.py +++ b/src/xblock_problem/capa/tests/test_shuffle.py @@ -3,8 +3,8 @@ import textwrap import unittest -from xblocks_contrib.problem.capa.responsetypes import LoncapaProblemError -from xblocks_contrib.problem.capa.tests.helpers import mock_capa_system, new_loncapa_problem +from xblock_problem.capa.responsetypes import LoncapaProblemError +from xblock_problem.capa.tests.helpers import mock_capa_system, new_loncapa_problem class CapaShuffleTest(unittest.TestCase): diff --git a/xblocks_contrib/problem/capa/tests/test_targeted_feedback.py b/src/xblock_problem/capa/tests/test_targeted_feedback.py similarity index 99% rename from xblocks_contrib/problem/capa/tests/test_targeted_feedback.py rename to src/xblock_problem/capa/tests/test_targeted_feedback.py index 245f83f3..412d24a3 100644 --- a/xblocks_contrib/problem/capa/tests/test_targeted_feedback.py +++ b/src/xblock_problem/capa/tests/test_targeted_feedback.py @@ -6,7 +6,7 @@ import textwrap import unittest -from xblocks_contrib.problem.capa.tests.helpers import load_fixture, mock_capa_system, new_loncapa_problem +from xblock_problem.capa.tests.helpers import load_fixture, mock_capa_system, new_loncapa_problem class CapaTargetedFeedbackTest(unittest.TestCase): diff --git a/xblocks_contrib/problem/capa/tests/test_util.py b/src/xblock_problem/capa/tests/test_util.py similarity index 98% rename from xblocks_contrib/problem/capa/tests/test_util.py rename to src/xblock_problem/capa/tests/test_util.py index 683a0e0a..a13506cb 100644 --- a/xblocks_contrib/problem/capa/tests/test_util.py +++ b/src/xblock_problem/capa/tests/test_util.py @@ -9,8 +9,8 @@ from django.test.utils import TestContextDecorator from lxml import etree -from xblocks_contrib.problem.capa.tests.helpers import mock_capa_system -from xblocks_contrib.problem.capa.util import ( +from xblock_problem.capa.tests.helpers import mock_capa_system +from xblock_problem.capa.util import ( compare_with_tolerance, contextualize_text, get_inner_html_from_xpath, diff --git a/xblocks_contrib/problem/capa/tests/test_xqueue_interface.py b/src/xblock_problem/capa/tests/test_xqueue_interface.py similarity index 90% rename from xblocks_contrib/problem/capa/tests/test_xqueue_interface.py rename to src/xblock_problem/capa/tests/test_xqueue_interface.py index d627a2a3..b2846e38 100644 --- a/xblocks_contrib/problem/capa/tests/test_xqueue_interface.py +++ b/src/xblock_problem/capa/tests/test_xqueue_interface.py @@ -5,11 +5,11 @@ import pytest -from xblocks_contrib.problem.capa.xqueue_interface import XQueueInterface +from xblock_problem.capa.xqueue_interface import XQueueInterface @pytest.mark.django_db -@patch("xblocks_contrib.problem.capa.xqueue_submission.XQueueInterfaceSubmission.send_to_submission") +@patch("xblock_problem.capa.xqueue_submission.XQueueInterfaceSubmission.send_to_submission") def test_send_to_queue_with_flag_enabled(mock_send_to_submission): """Test send_to_queue when the waffle flag is enabled.""" url = "http://example.com/xqueue" @@ -40,7 +40,7 @@ def test_send_to_queue_with_flag_enabled(mock_send_to_submission): @pytest.mark.django_db -@patch("xblocks_contrib.problem.capa.xqueue_interface.XQueueInterface._http_post") +@patch("xblock_problem.capa.xqueue_interface.XQueueInterface._http_post") def test_send_to_queue_with_flag_disabled(mock_http_post): """Test send_to_queue when the waffle flag is disabled.""" url = "http://example.com/xqueue" diff --git a/xblocks_contrib/problem/capa/tests/test_xqueue_submission.py b/src/xblock_problem/capa/tests/test_xqueue_submission.py similarity index 98% rename from xblocks_contrib/problem/capa/tests/test_xqueue_submission.py rename to src/xblock_problem/capa/tests/test_xqueue_submission.py index 60cf8821..b46e06a0 100644 --- a/xblocks_contrib/problem/capa/tests/test_xqueue_submission.py +++ b/src/xblock_problem/capa/tests/test_xqueue_submission.py @@ -9,7 +9,7 @@ from opaque_keys.edx.locator import BlockUsageLocator, CourseLocator from xblock.fields import ScopeIds -from xblocks_contrib.problem.capa.xqueue_submission import XQueueInterfaceSubmission +from xblock_problem.capa.xqueue_submission import XQueueInterfaceSubmission @pytest.fixture diff --git a/xblocks_contrib/problem/capa/util.py b/src/xblock_problem/capa/util.py similarity index 99% rename from xblocks_contrib/problem/capa/util.py rename to src/xblock_problem/capa/util.py index c41c52c2..ae705f6c 100644 --- a/xblocks_contrib/problem/capa/util.py +++ b/src/xblock_problem/capa/util.py @@ -11,7 +11,7 @@ from calc import evaluator from lxml import etree -from xblocks_contrib.problem.markup import HTML +from xblock_problem.markup import HTML # ----------------------------------------------------------------------------- # diff --git a/xblocks_contrib/problem/capa/xqueue_interface.py b/src/xblock_problem/capa/xqueue_interface.py similarity index 97% rename from xblocks_contrib/problem/capa/xqueue_interface.py rename to src/xblock_problem/capa/xqueue_interface.py index c4d5ca71..43347837 100644 --- a/xblocks_contrib/problem/capa/xqueue_interface.py +++ b/src/xblock_problem/capa/xqueue_interface.py @@ -10,10 +10,10 @@ import requests from requests.auth import HTTPBasicAuth -from xblocks_contrib.problem.capa.xqueue_submission import XQueueInterfaceSubmission +from xblock_problem.capa.xqueue_submission import XQueueInterfaceSubmission if TYPE_CHECKING: - from xblocks_contrib.problem.capa_block import ProblemBlock + from xblock_problem.block import ProblemBlock log = logging.getLogger(__name__) DATEFORMAT = "%Y%m%d%H%M%S" diff --git a/xblocks_contrib/problem/capa/xqueue_submission.py b/src/xblock_problem/capa/xqueue_submission.py similarity index 98% rename from xblocks_contrib/problem/capa/xqueue_submission.py rename to src/xblock_problem/capa/xqueue_submission.py index 98ef8bdf..3bb873f4 100644 --- a/xblocks_contrib/problem/capa/xqueue_submission.py +++ b/src/xblock_problem/capa/xqueue_submission.py @@ -6,7 +6,7 @@ import json import logging -from xblocks_contrib.problem.capa.errors import ( +from xblock_problem.capa.errors import ( GetSubmissionParamsError, JSONParsingError, MissingKeyError, diff --git a/xblocks_contrib/problem/capa/tests/__init__.py b/src/xblock_problem/conf/locale/__init__.py similarity index 100% rename from xblocks_contrib/problem/capa/tests/__init__.py rename to src/xblock_problem/conf/locale/__init__.py diff --git a/xblocks_contrib/problem/conf/locale/config.yaml b/src/xblock_problem/conf/locale/config.yaml similarity index 100% rename from xblocks_contrib/problem/conf/locale/config.yaml rename to src/xblock_problem/conf/locale/config.yaml diff --git a/xblocks_contrib/problem/markup.py b/src/xblock_problem/markup.py similarity index 93% rename from xblocks_contrib/problem/markup.py rename to src/xblock_problem/markup.py index 1f023317..1f2eb472 100644 --- a/xblocks_contrib/problem/markup.py +++ b/src/xblock_problem/markup.py @@ -22,7 +22,7 @@ def HTML(html): # pylint: disable=invalid-name <%! from django.utils.translation import gettext as _ - from xblocks_contrib.problem.markup import HTML, Text + from xblock_problem.markup import HTML, Text %> ${Text(_("Write & send {start}email{end}")).format( start=HTML("").format(user.email), diff --git a/xblocks_contrib/problem/stringify.py b/src/xblock_problem/stringify.py similarity index 100% rename from xblocks_contrib/problem/stringify.py rename to src/xblock_problem/stringify.py diff --git a/xblocks_contrib/problem/tests/__init__.py b/src/xblock_problem/tests/__init__.py similarity index 97% rename from xblocks_contrib/problem/tests/__init__.py rename to src/xblock_problem/tests/__init__.py index a2bbe977..3d222f69 100644 --- a/xblocks_contrib/problem/tests/__init__.py +++ b/src/xblock_problem/tests/__init__.py @@ -1,5 +1,5 @@ """ -Unit test harness for Problem Block in xblocks-contrib. +Unit test harness for Problem Block in xblocks-core. """ import pprint @@ -12,11 +12,10 @@ from xblock.reference.user_service import UserService, XBlockUser from xblock.test.tools import TestRuntime -from xblocks_contrib.problem.capa.xqueue_interface import XQueueInterface +from xblock_problem.capa.xqueue_interface import XQueueInterface -MODULE_DIR = path(__file__).dirname() # Location of common test DATA directory -DATA_DIR = MODULE_DIR.parent.parent / "problem" / "tests" / "data" +DATA_DIR = path(__file__).dirname() / "data" def mock_render_template(*args, **kwargs): diff --git a/xblocks_contrib/problem/tests/data/capa/prog1.py b/src/xblock_problem/tests/data/capa/prog1.py similarity index 100% rename from xblocks_contrib/problem/tests/data/capa/prog1.py rename to src/xblock_problem/tests/data/capa/prog1.py diff --git a/xblocks_contrib/problem/tests/data/capa/prog2.py b/src/xblock_problem/tests/data/capa/prog2.py similarity index 99% rename from xblocks_contrib/problem/tests/data/capa/prog2.py rename to src/xblock_problem/tests/data/capa/prog2.py index 16574308..d9016e56 100644 --- a/xblocks_contrib/problem/tests/data/capa/prog2.py +++ b/src/xblock_problem/tests/data/capa/prog2.py @@ -1,4 +1,4 @@ -# prog2 +"""Test data file for capa safe exec upload tests.""" # Make this file long, since that seems to affect how uploaded files are # handled in webob or cgi.FieldStorage. diff --git a/xblocks_contrib/problem/tests/data/capa/prog3.py b/src/xblock_problem/tests/data/capa/prog3.py similarity index 100% rename from xblocks_contrib/problem/tests/data/capa/prog3.py rename to src/xblock_problem/tests/data/capa/prog3.py diff --git a/xblocks_contrib/problem/tests/test_capa_block.py b/src/xblock_problem/tests/test_capa_block.py similarity index 96% rename from xblocks_contrib/problem/tests/test_capa_block.py rename to src/xblock_problem/tests/test_capa_block.py index 1af4f92a..ec1f498c 100644 --- a/xblocks_contrib/problem/tests/test_capa_block.py +++ b/src/xblock_problem/tests/test_capa_block.py @@ -28,15 +28,15 @@ from xblock.fields import ScopeIds from xblock.scorable import Score -from xblocks_contrib.problem.capa import responsetypes -from xblocks_contrib.problem.capa.correctmap import CorrectMap -from xblocks_contrib.problem.capa.responsetypes import LoncapaProblemError, ResponseError, StudentInputError -from xblocks_contrib.problem.capa.tests.test_util import UseUnsafeCodejail -from xblocks_contrib.problem.capa.xqueue_interface import XQueueInterface -from xblocks_contrib.problem.capa_block import ComplexEncoder, ProblemBlock -from xblocks_contrib.problem.tests import DATA_DIR - -from ..capa_block import RANDOMIZATION, SHOWANSWER +from xblock_problem.block import ComplexEncoder, ProblemBlock +from xblock_problem.capa import responsetypes +from xblock_problem.capa.correctmap import CorrectMap +from xblock_problem.capa.responsetypes import LoncapaProblemError, ResponseError, StudentInputError +from xblock_problem.capa.tests.test_util import UseUnsafeCodejail +from xblock_problem.capa.xqueue_interface import XQueueInterface +from xblock_problem.tests import DATA_DIR + +from ..block import RANDOMIZATION, SHOWANSWER from . import get_test_system @@ -838,8 +838,8 @@ def test_submit_problem_correct(self): # Simulate that all answers are marked correct, no matter # what the input is, by patching CorrectMap.is_correct() # Also simulate rendering the HTML - with patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: - with patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") as mock_html: + with patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: + with patch("xblock_problem.block.ProblemBlock.get_problem_html") as mock_html: mock_is_correct.return_value = True mock_html.return_value = "Test HTML" @@ -858,8 +858,8 @@ def test_submit_problem_correct(self): # and that this was considered attempt number 2 for grading purposes assert block.lcp.context["attempt"] == 2 - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_with_grading_method_disable(self, mock_html: Mock, mock_is_correct: Mock): """ Test that without a specific grading method, the score behaves as @@ -898,8 +898,8 @@ def test_submit_problem_with_grading_method_disable(self, mock_html: Mock, mock_ assert block.lcp.context["attempt"] == 3 assert block.score == Score(raw_earned=1, raw_possible=1) - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_with_grading_method_enable(self, mock_html: Mock, mock_is_correct: Mock): """ Test that the grading method is enabled when submit a problem. @@ -920,8 +920,8 @@ def test_submit_problem_with_grading_method_enable(self, mock_html: Mock, mock_i assert block.score == Score(raw_earned=1, raw_possible=1) mock_get_score.assert_called() - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_grading_method_always_enabled(self, mock_html: Mock, mock_is_correct: Mock): """ Test problem submission when grading method is always enabled by default. @@ -973,8 +973,8 @@ def test_submit_problem_grading_method_always_enabled(self, mock_html: Mock, moc assert block.lcp.context["attempt"] == 4 assert block.score == Score(raw_earned=1, raw_possible=1) - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_grading_method_always_enabled_highest_score(self, mock_html: Mock, mock_is_correct: Mock): """ Test problem submission when grading method is always enabled by default @@ -1026,8 +1026,8 @@ def test_submit_problem_grading_method_always_enabled_highest_score(self, mock_h assert block.lcp.context["attempt"] == 4 assert block.score == Score(raw_earned=1, raw_possible=1) - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_correct_last_score(self, mock_html: Mock, mock_is_correct: Mock): """ Test the `last_score` grading method. @@ -1059,8 +1059,8 @@ def test_submit_problem_correct_last_score(self, mock_html: Mock, mock_is_correc assert block.lcp.context["attempt"] == 2 assert block.score == Score(raw_earned=0, raw_possible=1) - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_correct_highest_score(self, mock_html: Mock, mock_is_correct: Mock): """ Test the `highest_score` grading method. @@ -1091,8 +1091,8 @@ def test_submit_problem_correct_highest_score(self, mock_html: Mock, mock_is_cor assert block.lcp.context["attempt"] == 2 assert block.score == Score(raw_earned=1, raw_possible=1) - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_correct_first_score(self, mock_html: Mock, mock_is_correct: Mock): """ Test the `first_score` grading method. @@ -1123,8 +1123,8 @@ def test_submit_problem_correct_first_score(self, mock_html: Mock, mock_is_corre assert block.lcp.context["attempt"] == 2 assert block.score == Score(raw_earned=0, raw_possible=1) - @patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") + @patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") + @patch("xblock_problem.block.ProblemBlock.get_problem_html") def test_submit_problem_correct_average_score(self, mock_html: Mock, mock_is_correct: Mock): """ Test the `average_score` grading method. @@ -1181,7 +1181,7 @@ def test_submit_problem_incorrect(self): block = CapaFactory.create(attempts=0) # Simulate marking the input incorrect - with patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: + with patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: mock_is_correct.return_value = False # Check the problem @@ -1202,7 +1202,7 @@ def test_submit_problem_closed(self): # Problem closed -- cannot submit # Simulate that ProblemBlock.closed() always returns True - with patch("xblocks_contrib.problem.capa_block.ProblemBlock.closed") as mock_closed: + with patch("xblock_problem.block.ProblemBlock.closed") as mock_closed: mock_closed.return_value = True with pytest.raises(NotFoundError): get_request_dict = {CapaFactory.input_key(): "3.14"} @@ -1250,7 +1250,7 @@ def test_submit_problem_queued(self): # Simulate that the problem is queued multipatch = patch.multiple( - "xblocks_contrib.problem.capa.capa_problem.LoncapaProblem", + "xblock_problem.capa.capa_problem.LoncapaProblem", is_queued=DEFAULT, get_recentmost_queuetime=DEFAULT, ) @@ -1380,7 +1380,7 @@ def test_submit_problem_error(self): block = CapaFactory.create(attempts=1, user_is_staff=False) # Simulate answering a problem that raises the exception - with patch("xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: + with patch("xblock_problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: mock_grade.side_effect = exception_class("test error") get_request_dict = {CapaFactory.input_key(): "3.14"} @@ -1406,7 +1406,7 @@ def test_submit_problem_error_with_codejail_exception(self): block = CapaFactory.create(attempts=1, user_is_staff=False) # Simulate a codejail exception "Exception: Couldn't execute jailed code" - with patch("xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: + with patch("xblock_problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: try: raise ResponseError( "Couldn't execute jailed code: stdout: '', " @@ -1442,7 +1442,7 @@ def test_submit_problem_other_errors(self): block.runtime.is_author_mode = True # Simulate answering a problem that raises the exception - with patch("xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: + with patch("xblock_problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: error_msg = "Superterrible error happened: ☠" mock_grade.side_effect = Exception(error_msg) @@ -1476,7 +1476,7 @@ def test_submit_problem_error_nonascii(self): block = CapaFactory.create(attempts=1, user_is_staff=False) # Simulate answering a problem that raises the exception - with patch("xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: + with patch("xblock_problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: mock_grade.side_effect = exception_class("ȧƈƈḗƞŧḗḓ ŧḗẋŧ ƒǿř ŧḗşŧīƞɠ") get_request_dict = {CapaFactory.input_key(): "3.14"} @@ -1501,7 +1501,7 @@ def test_submit_problem_error_with_staff_user(self): block = CapaFactory.create(attempts=1, user_is_staff=True) # Simulate answering a problem that raises an exception - with patch("xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: + with patch("xblock_problem.capa.capa_problem.LoncapaProblem.grade_answers") as mock_grade: mock_grade.side_effect = exception_class("test error") get_request_dict = {CapaFactory.input_key(): "3.14"} @@ -1532,7 +1532,7 @@ def test_handle_ajax_show_correctness(self, show_correctness, is_correct, expect block = CapaFactory.create(show_correctness=show_correctness, due=self.tomorrow_str, correct=is_correct) # Simulate marking the input correct/incorrect - with patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: + with patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: mock_is_correct.return_value = is_correct # Check the problem @@ -1555,7 +1555,7 @@ def test_reset_problem(self): block.choose_new_seed = Mock(wraps=block.choose_new_seed) # Stub out HTML rendering - with patch("xblocks_contrib.problem.capa_block.ProblemBlock.get_problem_html") as mock_html: + with patch("xblock_problem.block.ProblemBlock.get_problem_html") as mock_html: mock_html.return_value = "
Test HTML
" # Reset the problem @@ -1578,7 +1578,7 @@ def test_reset_problem_closed(self): block = CapaFactory.create(rerandomize=RANDOMIZATION.ALWAYS) # Simulate that the problem is closed - with patch("xblocks_contrib.problem.capa_block.ProblemBlock.closed") as mock_closed: + with patch("xblock_problem.block.ProblemBlock.closed") as mock_closed: mock_closed.return_value = True # Try to reset the problem @@ -1608,14 +1608,14 @@ def test_rescore_problem_correct(self): # Simulate that all answers are marked correct, no matter # what the input is, by patching LoncapaResponse.evaluate_answers() with patch( - "xblocks_contrib.problem.capa.responsetypes.LoncapaResponse.evaluate_answers" + "xblock_problem.capa.responsetypes.LoncapaResponse.evaluate_answers" ) as mock_evaluate_answers: mock_evaluate_answers.return_value = CorrectMap( answer_id=CapaFactory.answer_key(), correctness="correct", npoints=1, ) - with patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: + with patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: mock_is_correct.return_value = True # Check the problem @@ -1656,10 +1656,10 @@ def test_rescore_problem_additional_correct(self): # In case of rescore with only_if_higher=True it should update score of block # if previous score was lower - with patch("xblocks_contrib.problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: + with patch("xblock_problem.capa.correctmap.CorrectMap.is_correct") as mock_is_correct: mock_is_correct.return_value = True block.set_score(block.score_from_lcp(block.lcp)) - with patch("xblocks_contrib.problem.capa.responsetypes.NumericalResponse.get_staff_ans") as get_staff_ans: + with patch("xblock_problem.capa.responsetypes.NumericalResponse.get_staff_ans") as get_staff_ans: get_staff_ans.return_value = 1 + 0j block.rescore(only_if_higher=True) @@ -1680,7 +1680,7 @@ def test_rescore_problem_incorrect(self): # Simulate that all answers are marked incorrect, no matter # what the input is, by patching LoncapaResponse.evaluate_answers() with patch( - "xblocks_contrib.problem.capa.responsetypes.LoncapaResponse.evaluate_answers" + "xblock_problem.capa.responsetypes.LoncapaResponse.evaluate_answers" ) as mock_evaluate_answers: mock_evaluate_answers.return_value = CorrectMap(CapaFactory.answer_key(), "incorrect") block.rescore(only_if_higher=False) @@ -1720,7 +1720,7 @@ def test_rescore_problem_with_grading_method_enable(self): assert block.lcp.context["attempt"] == 1 mock_get_rescore.assert_called() - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.publish_grade") + @patch("xblock_problem.block.ProblemBlock.publish_grade") def test_rescore_problem_grading_method_always_enabled(self, mock_publish_grade: Mock): """ Test the rescore method when grading method is always enabled by default. @@ -1762,7 +1762,7 @@ def test_rescore_problem_grading_method_always_enabled(self, mock_publish_grade: mock_publish_grade.assert_called_with(score=Score(raw_earned=0.33, raw_possible=1), only_if_higher=False) - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.publish_grade") + @patch("xblock_problem.block.ProblemBlock.publish_grade") def test_rescore_problem_grading_method_always_enabled_with_various_methods(self, mock_publish_grade: Mock): """ Test the rescore method when grading method is always enabled by default @@ -1804,7 +1804,7 @@ def test_rescore_problem_grading_method_always_enabled_with_various_methods(self block.rescore(only_if_higher=False) assert block.score == Score(raw_earned=1, raw_possible=1) - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.publish_grade") + @patch("xblock_problem.block.ProblemBlock.publish_grade") def test_rescore_problem_update_grading_method(self, mock_publish_grade: Mock): """ Test the rescore method when the grading method is updated. @@ -1860,7 +1860,7 @@ def test_rescore_problem_not_supported(self): # Try to rescore the problem, and get exception with patch( - "xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.supports_rescoring" + "xblock_problem.capa.capa_problem.LoncapaProblem.supports_rescoring" ) as mock_supports_rescoring: mock_supports_rescoring.return_value = False with pytest.raises(NotImplementedError): @@ -1968,7 +1968,7 @@ def test_get_score_with_grading_method(self): self.assertEqual(score, expected_score) self.assertEqual(block.score, expected_score) - @patch("xblocks_contrib.problem.capa_block.ProblemBlock.score_from_lcp") + @patch("xblock_problem.block.ProblemBlock.score_from_lcp") def test_get_score_with_grading_method_updates_score(self, mock_score_from_lcp: Mock): """ Test that the `get_score_with_grading_method` method returns the correct score. @@ -1993,7 +1993,7 @@ def test_get_score_with_grading_method_calls_grading_method_handler(self): block = CapaFactory.create(attempts=1) current_score = Score(raw_earned=0, raw_possible=1) - with patch("xblocks_contrib.problem.capa_block.GradingMethodHandler") as mock_handler: + with patch("xblock_problem.block.GradingMethodHandler") as mock_handler: mock_handler.return_value.get_score.return_value = current_score block.get_score_with_grading_method(current_score) mock_handler.assert_called_once_with( @@ -2028,7 +2028,7 @@ def test_codejail_error_upon_problem_creation(self): # When codejail safe_exec fails upon problem creation, a LoncapaProblemError should be raised. with pytest.raises(LoncapaProblemError): - with patch("xblocks_contrib.problem.capa.capa_problem.safe_exec") as mock_safe_exec: + with patch("xblock_problem.capa.capa_problem.safe_exec") as mock_safe_exec: mock_safe_exec.side_effect = SafeExecException() factory.create() @@ -2044,7 +2044,7 @@ def _rescore_problem_error_helper(self, exception_class): # Simulate answering a problem that raises the exception with patch( - "xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.get_grade_from_current_answers" + "xblock_problem.capa.capa_problem.LoncapaProblem.get_grade_from_current_answers" ) as mock_rescore: mock_rescore.side_effect = exception_class("test error \u03a9") with pytest.raises(exception_class): @@ -2087,7 +2087,7 @@ def test_save_problem_closed(self): block = CapaFactory.create(done=False) # Simulate that the problem is closed - with patch("xblocks_contrib.problem.capa_block.ProblemBlock.closed") as mock_closed: + with patch("xblock_problem.block.ProblemBlock.closed") as mock_closed: mock_closed.return_value = True # Try to save the problem @@ -2300,7 +2300,7 @@ def test_no_max_attempts(self): assert html is not None # assert that we got here without exploding - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_get_problem_html(self, render_template): """Verify problem HTML rendering uses correct template context and encapsulation.""" render_template.return_value = "
Test Template HTML
" @@ -2317,7 +2317,7 @@ def test_get_problem_html(self, render_template): block.should_show_save_button = Mock(return_value=show_save_button) # Patch the capa problem's HTML rendering - with patch("xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.get_html") as mock_html: + with patch("xblock_problem.capa.capa_problem.LoncapaProblem.get_html") as mock_html: mock_html.return_value = "
Test Problem HTML
" # Render the problem HTML @@ -2362,7 +2362,7 @@ def test_get_problem_html(self, render_template): """ - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_demand_hint(self, render_template): """Verify image-based demand hints render correctly without static URL issues.""" # HTML generation is mocked out to be meaningless here, so instead we check @@ -2387,7 +2387,7 @@ def test_demand_hint(self, render_template): assert result["hint_index"] == 0 assert result["should_enable_next_hint"] - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_single_demand_hint(self, render_template): """ Test the hint button enabled state when there is just a single hint. @@ -2418,7 +2418,7 @@ def test_single_demand_hint(self, render_template): assert result["hint_index"] == 0 assert not result["should_enable_next_hint"] - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_image_hint(self, render_template): """ Test the hint button shows an image without the static url. @@ -2481,7 +2481,7 @@ def test_input_state_consistency(self): intersection = set(block2.input_state.keys()).intersection(set(block1.input_state.keys())) assert len(intersection) == 0 - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_get_problem_html_error(self, render_template): """ In production, when an error occurs with the problem HTML @@ -2511,7 +2511,7 @@ def test_get_problem_html_error(self, render_template): # Expect that the block has created a new dummy problem with the error assert original_problem != block.lcp - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_get_problem_html_error_preview(self, render_template): """ Test the html response when an error occurs with DEBUG off in Studio. @@ -2537,7 +2537,7 @@ def test_get_problem_html_error_preview(self, render_template): assert error_msg in context["problem"]["html"] @override_settings(DEBUG=True) - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_get_problem_html_error_w_debug(self, render_template): """ Test the html response when an error occurs with DEBUG on @@ -2701,8 +2701,8 @@ def test_random_seed_bins(self, rerandomize): assert 0 <= block.seed < 1000 i -= 1 - @patch("xblocks_contrib.problem.capa_block.log") - @patch("xblocks_contrib.problem.capa_block.Progress") + @patch("xblock_problem.block.log") + @patch("xblock_problem.block.Progress") def test_get_progress_error(self, mock_progress, mock_log): """ Check that an exception given in `Progress` produces a `log.exception` call. @@ -2715,7 +2715,7 @@ def test_get_progress_error(self, mock_progress, mock_log): mock_log.exception.assert_called_once_with("Got bad progress") mock_log.reset_mock() - @patch("xblocks_contrib.problem.capa_block.Progress") + @patch("xblock_problem.block.Progress") def test_get_progress_no_error_if_weight_zero(self, mock_progress): """ Check that if the weight is 0 get_progress does not try to create a Progress object. @@ -2727,7 +2727,7 @@ def test_get_progress_no_error_if_weight_zero(self, mock_progress): assert progress is None assert not mock_progress.called - @patch("xblocks_contrib.problem.capa_block.Progress") + @patch("xblock_problem.block.Progress") def test_get_progress_calculate_progress_fraction(self, mock_progress): """ Check that score and total are calculated correctly for the progress fraction. @@ -2742,7 +2742,7 @@ def test_get_progress_calculate_progress_fraction(self, mock_progress): other_block.get_progress() mock_progress.assert_called_with(1, 1) - @patch("xblocks_contrib.problem.capa_block.Progress") + @patch("xblock_problem.block.Progress") def test_get_progress_ignores_stale_score_when_unattempted(self, mock_progress): """ If a problem has never been attempted, get_progress() should reflect the @@ -2761,7 +2761,7 @@ def test_get_progress_ignores_stale_score_when_unattempted(self, mock_progress): mock_progress.assert_called_with(0, 1) - @patch("xblocks_contrib.problem.capa_block.Progress") + @patch("xblock_problem.block.Progress") def test_get_progress_keeps_historical_score_when_attempted(self, mock_progress): """ Once a problem has been attempted, get_progress() must not silently swap in @@ -2928,7 +2928,7 @@ def test_problem_display_name_with_default(self, display_name, expected_display_ "", " ", ) - @patch("xblocks_contrib.problem.capa_block.render_to_string") + @patch("xblock_problem.block.render_to_string") def test_problem_no_display_name(self, display_name, render_template): """ Verify that if problem display name is not provided then a default name is used. @@ -4091,11 +4091,11 @@ class ProblemBlockReportGenerationTest(unittest.TestCase): def setUp(self): self.find_question_label_patcher = patch( - "xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.find_question_label", + "xblock_problem.capa.capa_problem.LoncapaProblem.find_question_label", lambda self, answer_id: answer_id, ) self.find_answer_text_patcher = patch( - "xblocks_contrib.problem.capa.capa_problem.LoncapaProblem.find_answer_text", + "xblock_problem.capa.capa_problem.LoncapaProblem.find_answer_text", lambda self, answer_id, current_answer: current_answer, ) self.find_question_label_patcher.start() @@ -4169,7 +4169,7 @@ def test_generate_report_data_report_loncapa_error(self): """Verify LonCapa errors are captured and reported instead of aborting.""" # Test to make sure reports continue despite loncappa errors, and write them into the report. block = self._get_block() - with patch("xblocks_contrib.problem.capa_block.LoncapaProblem") as mock_loncapa_problem: + with patch("xblock_problem.block.LoncapaProblem") as mock_loncapa_problem: mock_loncapa_problem.side_effect = LoncapaProblemError report_data = list( block.generate_report_data( diff --git a/xblocks_contrib/problem/tests/test_stringify.py b/src/xblock_problem/tests/test_stringify.py similarity index 95% rename from xblocks_contrib/problem/tests/test_stringify.py rename to src/xblock_problem/tests/test_stringify.py index 56bfd81a..8133a316 100644 --- a/xblocks_contrib/problem/tests/test_stringify.py +++ b/src/xblock_problem/tests/test_stringify.py @@ -4,7 +4,7 @@ from lxml import etree -from xblocks_contrib.problem.stringify import stringify_children +from xblock_problem.stringify import stringify_children def test_stringify(): diff --git a/xblocks_contrib/problem/xmlparser.py b/src/xblock_problem/xmlparser.py similarity index 100% rename from xblocks_contrib/problem/xmlparser.py rename to src/xblock_problem/xmlparser.py diff --git a/src/xblock_video/.tx/config b/src/xblock_video/.tx/config new file mode 100644 index 00000000..e7331208 --- /dev/null +++ b/src/xblock_video/.tx/config @@ -0,0 +1,8 @@ +[main] +host = https://www.transifex.com + +[o:open-edx:p:openedx-translations:r:xblock-video] +file_filter = conf/locale//LC_MESSAGES/text.po +source_file = conf/locale/en/LC_MESSAGES/text.po +source_lang = en +type = PO diff --git a/src/xblock_video/__init__.py b/src/xblock_video/__init__.py new file mode 100644 index 00000000..70071dec --- /dev/null +++ b/src/xblock_video/__init__.py @@ -0,0 +1,5 @@ +""" +Init for the VideoBlock. +""" + +from .block import VideoBlock as VideoBlock diff --git a/xblocks_contrib/video/ajax_handler_mixin.py b/src/xblock_video/ajax_handler_mixin.py similarity index 100% rename from xblocks_contrib/video/ajax_handler_mixin.py rename to src/xblock_video/ajax_handler_mixin.py diff --git a/xblocks_contrib/video/assets/css/video.css b/src/xblock_video/assets/css/video.css similarity index 100% rename from xblocks_contrib/video/assets/css/video.css rename to src/xblock_video/assets/css/video.css diff --git a/xblocks_contrib/video/assets/jasmine.common.conf.js b/src/xblock_video/assets/jasmine.common.conf.js similarity index 100% rename from xblocks_contrib/video/assets/jasmine.common.conf.js rename to src/xblock_video/assets/jasmine.common.conf.js diff --git a/xblocks_contrib/video/assets/jasmine_stack_trace.js b/src/xblock_video/assets/jasmine_stack_trace.js similarity index 100% rename from xblocks_contrib/video/assets/jasmine_stack_trace.js rename to src/xblock_video/assets/jasmine_stack_trace.js diff --git a/xblocks_contrib/video/assets/js/src/00_async_process.js b/src/xblock_video/assets/js/src/00_async_process.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/00_async_process.js rename to src/xblock_video/assets/js/src/00_async_process.js diff --git a/xblocks_contrib/video/assets/js/src/00_component.js b/src/xblock_video/assets/js/src/00_component.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/00_component.js rename to src/xblock_video/assets/js/src/00_component.js diff --git a/xblocks_contrib/video/assets/js/src/00_i18n.js b/src/xblock_video/assets/js/src/00_i18n.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/00_i18n.js rename to src/xblock_video/assets/js/src/00_i18n.js diff --git a/xblocks_contrib/video/assets/js/src/00_iterator.js b/src/xblock_video/assets/js/src/00_iterator.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/00_iterator.js rename to src/xblock_video/assets/js/src/00_iterator.js diff --git a/xblocks_contrib/video/assets/js/src/00_resizer.js b/src/xblock_video/assets/js/src/00_resizer.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/00_resizer.js rename to src/xblock_video/assets/js/src/00_resizer.js diff --git a/xblocks_contrib/video/assets/js/src/00_sjson.js b/src/xblock_video/assets/js/src/00_sjson.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/00_sjson.js rename to src/xblock_video/assets/js/src/00_sjson.js diff --git a/xblocks_contrib/video/assets/js/src/00_video_storage.js b/src/xblock_video/assets/js/src/00_video_storage.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/00_video_storage.js rename to src/xblock_video/assets/js/src/00_video_storage.js diff --git a/xblocks_contrib/video/assets/js/src/01_initialize.js b/src/xblock_video/assets/js/src/01_initialize.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/01_initialize.js rename to src/xblock_video/assets/js/src/01_initialize.js diff --git a/xblocks_contrib/video/assets/js/src/025_focus_grabber.js b/src/xblock_video/assets/js/src/025_focus_grabber.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/025_focus_grabber.js rename to src/xblock_video/assets/js/src/025_focus_grabber.js diff --git a/xblocks_contrib/video/assets/js/src/02_html5_hls_video.js b/src/xblock_video/assets/js/src/02_html5_hls_video.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/02_html5_hls_video.js rename to src/xblock_video/assets/js/src/02_html5_hls_video.js diff --git a/xblocks_contrib/video/assets/js/src/02_html5_video.js b/src/xblock_video/assets/js/src/02_html5_video.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/02_html5_video.js rename to src/xblock_video/assets/js/src/02_html5_video.js diff --git a/xblocks_contrib/video/assets/js/src/035_video_accessible_menu.js b/src/xblock_video/assets/js/src/035_video_accessible_menu.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/035_video_accessible_menu.js rename to src/xblock_video/assets/js/src/035_video_accessible_menu.js diff --git a/xblocks_contrib/video/assets/js/src/036_video_social_sharing.js b/src/xblock_video/assets/js/src/036_video_social_sharing.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/036_video_social_sharing.js rename to src/xblock_video/assets/js/src/036_video_social_sharing.js diff --git a/xblocks_contrib/video/assets/js/src/037_video_transcript_feedback.js b/src/xblock_video/assets/js/src/037_video_transcript_feedback.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/037_video_transcript_feedback.js rename to src/xblock_video/assets/js/src/037_video_transcript_feedback.js diff --git a/xblocks_contrib/video/assets/js/src/03_video_player.js b/src/xblock_video/assets/js/src/03_video_player.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/03_video_player.js rename to src/xblock_video/assets/js/src/03_video_player.js diff --git a/xblocks_contrib/video/assets/js/src/04_video_control.js b/src/xblock_video/assets/js/src/04_video_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/04_video_control.js rename to src/xblock_video/assets/js/src/04_video_control.js diff --git a/xblocks_contrib/video/assets/js/src/04_video_full_screen.js b/src/xblock_video/assets/js/src/04_video_full_screen.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/04_video_full_screen.js rename to src/xblock_video/assets/js/src/04_video_full_screen.js diff --git a/xblocks_contrib/video/assets/js/src/05_video_quality_control.js b/src/xblock_video/assets/js/src/05_video_quality_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/05_video_quality_control.js rename to src/xblock_video/assets/js/src/05_video_quality_control.js diff --git a/xblocks_contrib/video/assets/js/src/06_video_progress_slider.js b/src/xblock_video/assets/js/src/06_video_progress_slider.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/06_video_progress_slider.js rename to src/xblock_video/assets/js/src/06_video_progress_slider.js diff --git a/xblocks_contrib/video/assets/js/src/07_video_volume_control.js b/src/xblock_video/assets/js/src/07_video_volume_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/07_video_volume_control.js rename to src/xblock_video/assets/js/src/07_video_volume_control.js diff --git a/xblocks_contrib/video/assets/js/src/08_video_auto_advance_control.js b/src/xblock_video/assets/js/src/08_video_auto_advance_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/08_video_auto_advance_control.js rename to src/xblock_video/assets/js/src/08_video_auto_advance_control.js diff --git a/xblocks_contrib/video/assets/js/src/08_video_speed_control.js b/src/xblock_video/assets/js/src/08_video_speed_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/08_video_speed_control.js rename to src/xblock_video/assets/js/src/08_video_speed_control.js diff --git a/xblocks_contrib/video/assets/js/src/095_video_context_menu.js b/src/xblock_video/assets/js/src/095_video_context_menu.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/095_video_context_menu.js rename to src/xblock_video/assets/js/src/095_video_context_menu.js diff --git a/xblocks_contrib/video/assets/js/src/09_bumper.js b/src/xblock_video/assets/js/src/09_bumper.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_bumper.js rename to src/xblock_video/assets/js/src/09_bumper.js diff --git a/xblocks_contrib/video/assets/js/src/09_completion.js b/src/xblock_video/assets/js/src/09_completion.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_completion.js rename to src/xblock_video/assets/js/src/09_completion.js diff --git a/xblocks_contrib/video/assets/js/src/09_events_bumper_plugin.js b/src/xblock_video/assets/js/src/09_events_bumper_plugin.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_events_bumper_plugin.js rename to src/xblock_video/assets/js/src/09_events_bumper_plugin.js diff --git a/xblocks_contrib/video/assets/js/src/09_events_plugin.js b/src/xblock_video/assets/js/src/09_events_plugin.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_events_plugin.js rename to src/xblock_video/assets/js/src/09_events_plugin.js diff --git a/xblocks_contrib/video/assets/js/src/09_play_pause_control.js b/src/xblock_video/assets/js/src/09_play_pause_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_play_pause_control.js rename to src/xblock_video/assets/js/src/09_play_pause_control.js diff --git a/xblocks_contrib/video/assets/js/src/09_play_placeholder.js b/src/xblock_video/assets/js/src/09_play_placeholder.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_play_placeholder.js rename to src/xblock_video/assets/js/src/09_play_placeholder.js diff --git a/xblocks_contrib/video/assets/js/src/09_play_skip_control.js b/src/xblock_video/assets/js/src/09_play_skip_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_play_skip_control.js rename to src/xblock_video/assets/js/src/09_play_skip_control.js diff --git a/xblocks_contrib/video/assets/js/src/09_poster.js b/src/xblock_video/assets/js/src/09_poster.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_poster.js rename to src/xblock_video/assets/js/src/09_poster.js diff --git a/xblocks_contrib/video/assets/js/src/09_save_state_plugin.js b/src/xblock_video/assets/js/src/09_save_state_plugin.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_save_state_plugin.js rename to src/xblock_video/assets/js/src/09_save_state_plugin.js diff --git a/xblocks_contrib/video/assets/js/src/09_skip_control.js b/src/xblock_video/assets/js/src/09_skip_control.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_skip_control.js rename to src/xblock_video/assets/js/src/09_skip_control.js diff --git a/xblocks_contrib/video/assets/js/src/09_video_caption.js b/src/xblock_video/assets/js/src/09_video_caption.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/09_video_caption.js rename to src/xblock_video/assets/js/src/09_video_caption.js diff --git a/xblocks_contrib/video/assets/js/src/10_commands.js b/src/xblock_video/assets/js/src/10_commands.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/10_commands.js rename to src/xblock_video/assets/js/src/10_commands.js diff --git a/xblocks_contrib/video/assets/js/src/10_main.js b/src/xblock_video/assets/js/src/10_main.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/10_main.js rename to src/xblock_video/assets/js/src/10_main.js diff --git a/xblocks_contrib/video/assets/js/src/utils/add_ajax_prefix.js b/src/xblock_video/assets/js/src/utils/add_ajax_prefix.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/utils/add_ajax_prefix.js rename to src/xblock_video/assets/js/src/utils/add_ajax_prefix.js diff --git a/xblocks_contrib/video/assets/js/src/utils/ajax_prefix.js b/src/xblock_video/assets/js/src/utils/ajax_prefix.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/utils/ajax_prefix.js rename to src/xblock_video/assets/js/src/utils/ajax_prefix.js diff --git a/xblocks_contrib/video/assets/js/src/utils/logger.js b/src/xblock_video/assets/js/src/utils/logger.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/utils/logger.js rename to src/xblock_video/assets/js/src/utils/logger.js diff --git a/xblocks_contrib/video/assets/js/src/utils/time.js b/src/xblock_video/assets/js/src/utils/time.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/utils/time.js rename to src/xblock_video/assets/js/src/utils/time.js diff --git a/xblocks_contrib/video/assets/js/src/vendor/jquery-ui.min.js b/src/xblock_video/assets/js/src/vendor/jquery-ui.min.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/vendor/jquery-ui.min.js rename to src/xblock_video/assets/js/src/vendor/jquery-ui.min.js diff --git a/xblocks_contrib/video/assets/js/src/vendor/jquery.js b/src/xblock_video/assets/js/src/vendor/jquery.js similarity index 100% rename from xblocks_contrib/video/assets/js/src/vendor/jquery.js rename to src/xblock_video/assets/js/src/vendor/jquery.js diff --git a/xblocks_contrib/video/assets/karma.conf.js b/src/xblock_video/assets/karma.conf.js similarity index 100% rename from xblocks_contrib/video/assets/karma.conf.js rename to src/xblock_video/assets/karma.conf.js diff --git a/xblocks_contrib/video/assets/karma.webpack.entry.js b/src/xblock_video/assets/karma.webpack.entry.js similarity index 100% rename from xblocks_contrib/video/assets/karma.webpack.entry.js rename to src/xblock_video/assets/karma.webpack.entry.js diff --git a/xblocks_contrib/video/assets/package.json b/src/xblock_video/assets/package.json similarity index 100% rename from xblocks_contrib/video/assets/package.json rename to src/xblock_video/assets/package.json diff --git a/xblocks_contrib/video/assets/webpack.common.config.js b/src/xblock_video/assets/webpack.common.config.js similarity index 100% rename from xblocks_contrib/video/assets/webpack.common.config.js rename to src/xblock_video/assets/webpack.common.config.js diff --git a/xblocks_contrib/video/assets/webpack.dev.config.js b/src/xblock_video/assets/webpack.dev.config.js similarity index 100% rename from xblocks_contrib/video/assets/webpack.dev.config.js rename to src/xblock_video/assets/webpack.dev.config.js diff --git a/xblocks_contrib/video/assets/webpack.prod.config.js b/src/xblock_video/assets/webpack.prod.config.js similarity index 100% rename from xblocks_contrib/video/assets/webpack.prod.config.js rename to src/xblock_video/assets/webpack.prod.config.js diff --git a/xblocks_contrib/video/video.py b/src/xblock_video/block.py similarity index 97% rename from xblocks_contrib/video/video.py rename to src/xblock_video/block.py index 257d1d39..1ae70a67 100644 --- a/xblocks_contrib/video/video.py +++ b/src/xblock_video/block.py @@ -34,43 +34,39 @@ from xblock.fields import ScopeIds from xblock.utils.resources import ResourceLoader -from xblocks_contrib.legacy_utils.xml_utils import ( +from xblocks_core.legacy_utils.xml_utils import ( EdxJSONEncoder, LegacyXmlMixin, deserialize_field, is_pointer_tag, name_to_pathname, ) -from xblocks_contrib.video.ajax_handler_mixin import AjaxHandlerMixin -from xblocks_contrib.video.bumper_utils import bumperize -from xblocks_contrib.video.cache_utils import request_cached -from xblocks_contrib.video.constants import ATTR_KEY_REQUEST_COUNTRY_CODE, ATTR_KEY_USER_ID, PUBLIC_VIEW, STUDENT_VIEW -from xblocks_contrib.video.exceptions import TranscriptNotFoundError -from xblocks_contrib.video.mixin import LicenseMixin -from xblocks_contrib.video.studio_metadata_mixin import StudioMetadataMixin -from xblocks_contrib.video.validation import StudioValidation, StudioValidationMessage -from xblocks_contrib.video.video_handlers import VideoStudentViewHandlers, VideoStudioViewHandlers -from xblocks_contrib.video.video_static_content_utils import ( - compute_location, - get_location_from_path, - serialize_asset_key_with_slash, -) -from xblocks_contrib.video.video_transcripts_utils import ( + +from .ajax_handler_mixin import AjaxHandlerMixin +from .bumper_utils import bumperize +from .cache_utils import request_cached +from .constants import ATTR_KEY_REQUEST_COUNTRY_CODE, ATTR_KEY_USER_ID, PUBLIC_VIEW, STUDENT_VIEW +from .exceptions import TranscriptNotFoundError +from .mixin import LicenseMixin +from .studio_metadata_mixin import StudioMetadataMixin +from .validation import StudioValidation, StudioValidationMessage +from .video_handlers import VideoStudentViewHandlers, VideoStudioViewHandlers +from .video_static_content_utils import compute_location, get_location_from_path, serialize_asset_key_with_slash +from .video_transcripts_utils import ( TranscriptExtensions, VideoTranscriptsMixin, clean_video_id, get_endonym_or_label, subs_filename, ) -from xblocks_contrib.video.video_utils import ( +from .video_utils import ( create_youtube_string, format_xml_exception_message, get_edxval_api, get_poster, - get_resource_url, rewrite_video_url, ) -from xblocks_contrib.video.video_xfields import VideoFields +from .video_xfields import VideoFields # The following import/except block for edxval is temporary measure until # edxval is a proper XBlock Runtime Service. @@ -261,8 +257,8 @@ def student_view(self, context=None): Return the student view. """ fragment = Fragment(self.get_html(context=context)) - fragment.add_css_url(get_resource_url(self, "css/video.css", "video")) - fragment.add_javascript_url(get_resource_url(self, "js/video-xblock.js", "video")) + fragment.add_css_url(self.runtime.local_resource_url(self, "public/css/video.css")) + fragment.add_javascript_url(self.runtime.local_resource_url(self, "public/js/video-xblock.js")) fragment.initialize_js("Video") return fragment @@ -283,8 +279,8 @@ def public_view(self, context): return self.student_view(context) fragment = Fragment(self.get_html(view=PUBLIC_VIEW, context=context)) - fragment.add_css_url(get_resource_url(self, "css/video.css", "video")) - fragment.add_javascript_url(get_resource_url(self, "js/video-xblock.js", "video")) + fragment.add_css_url(self.runtime.local_resource_url(self, "public/css/video.css")) + fragment.add_javascript_url(self.runtime.local_resource_url(self, "public/js/video-xblock.js")) fragment.initialize_js("Video") return fragment diff --git a/xblocks_contrib/video/bumper_utils.py b/src/xblock_video/bumper_utils.py similarity index 100% rename from xblocks_contrib/video/bumper_utils.py rename to src/xblock_video/bumper_utils.py diff --git a/xblocks_contrib/video/cache_utils.py b/src/xblock_video/cache_utils.py similarity index 100% rename from xblocks_contrib/video/cache_utils.py rename to src/xblock_video/cache_utils.py diff --git a/xblocks_contrib/problem/conf/locale/__init__.py b/src/xblock_video/conf/locale/__init__.py similarity index 100% rename from xblocks_contrib/problem/conf/locale/__init__.py rename to src/xblock_video/conf/locale/__init__.py diff --git a/xblocks_contrib/video/conf/locale/config.yaml b/src/xblock_video/conf/locale/config.yaml similarity index 100% rename from xblocks_contrib/video/conf/locale/config.yaml rename to src/xblock_video/conf/locale/config.yaml diff --git a/xblocks_contrib/video/constants.py b/src/xblock_video/constants.py similarity index 100% rename from xblocks_contrib/video/constants.py rename to src/xblock_video/constants.py diff --git a/xblocks_contrib/video/exceptions.py b/src/xblock_video/exceptions.py similarity index 100% rename from xblocks_contrib/video/exceptions.py rename to src/xblock_video/exceptions.py diff --git a/xblocks_contrib/video/mixin.py b/src/xblock_video/mixin.py similarity index 100% rename from xblocks_contrib/video/mixin.py rename to src/xblock_video/mixin.py diff --git a/xblocks_contrib/video/studio_metadata_mixin.py b/src/xblock_video/studio_metadata_mixin.py similarity index 96% rename from xblocks_contrib/video/studio_metadata_mixin.py rename to src/xblock_video/studio_metadata_mixin.py index 1975d89f..5e2cb46f 100644 --- a/xblocks_contrib/video/studio_metadata_mixin.py +++ b/src/xblock_video/studio_metadata_mixin.py @@ -4,9 +4,9 @@ from xblock.core import XBlock from xblock.fields import Dict, Float, Integer, List, Scope, String -from xblocks_contrib.video.exceptions import TranscriptNotFoundError -from xblocks_contrib.video.video_transcripts_utils import TranscriptExtensions, get_html5_ids -from xblocks_contrib.video.video_xfields import RelativeTime +from .exceptions import TranscriptNotFoundError +from .video_transcripts_utils import TranscriptExtensions, get_html5_ids +from .video_xfields import RelativeTime class StudioMetadataMixin: diff --git a/xblocks_contrib/video/templates/video.html b/src/xblock_video/templates/video.html similarity index 99% rename from xblocks_contrib/video/templates/video.html rename to src/xblock_video/templates/video.html index 362ae3df..32974cc0 100644 --- a/xblocks_contrib/video/templates/video.html +++ b/src/xblock_video/templates/video.html @@ -14,7 +14,7 @@

{{ display_name|escape }}

data-block-id='{{ block_id|escape }}' data-course-id='{{ course_id|escape }}' tabindex="-1" - data-package-name="xblocks-contrib"> + data-package-name="xblocks-core">
diff --git a/xblocks_contrib/video/tests/__init__.py b/src/xblock_video/tests/__init__.py similarity index 66% rename from xblocks_contrib/video/tests/__init__.py rename to src/xblock_video/tests/__init__.py index 7806f16a..9c788122 100644 --- a/xblocks_contrib/video/tests/__init__.py +++ b/src/xblock_video/tests/__init__.py @@ -4,6 +4,6 @@ from unittest.mock import Mock -from xblocks_contrib.video.video import VideoBlock +from ..block import VideoBlock VideoBlock.add_aside = Mock() diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_.m3u8 b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_.m3u8 similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_.m3u8 rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_.m3u8 diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_0.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_0.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_0.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_0.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_1.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_1.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_1.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_1.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_2.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_2.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_2.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_0_/XXXXXXXXT114-V015600_0_2.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_.m3u8 b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_.m3u8 similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_.m3u8 rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_.m3u8 diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_0.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_0.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_0.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_0.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_1.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_1.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_1.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_1.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_2.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_2.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_2.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_1_/XXXXXXXXT114-V015600_1_2.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_.m3u8 b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_.m3u8 similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_.m3u8 rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_.m3u8 diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_0.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_0.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_0.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_0.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_1.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_1.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_1.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_1.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_2.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_2.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_2.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_2_/XXXXXXXXT114-V015600_2_2.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_.m3u8 b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_.m3u8 similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_.m3u8 rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_.m3u8 diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_0.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_0.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_0.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_0.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_1.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_1.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_1.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_1.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_2.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_2.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_2.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_3_/XXXXXXXXT114-V015600_3_2.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_.m3u8 b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_.m3u8 similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_.m3u8 rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_.m3u8 diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_0.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_0.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_0.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_0.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_1.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_1.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_1.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_1.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_2.ts b/src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_2.ts similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_2.ts rename to src/xblock_video/tests/fixtures/hls/XXXXXXXXT114-V015600_4_/XXXXXXXXT114-V015600_4_2.ts diff --git a/xblocks_contrib/video/tests/fixtures/hls/hls.m3u8 b/src/xblock_video/tests/fixtures/hls/hls.m3u8 similarity index 100% rename from xblocks_contrib/video/tests/fixtures/hls/hls.m3u8 rename to src/xblock_video/tests/fixtures/hls/hls.m3u8 diff --git a/xblocks_contrib/video/tests/fixtures/play.png b/src/xblock_video/tests/fixtures/play.png similarity index 100% rename from xblocks_contrib/video/tests/fixtures/play.png rename to src/xblock_video/tests/fixtures/play.png diff --git a/xblocks_contrib/video/tests/fixtures/poster.jpg b/src/xblock_video/tests/fixtures/poster.jpg similarity index 100% rename from xblocks_contrib/video/tests/fixtures/poster.jpg rename to src/xblock_video/tests/fixtures/poster.jpg diff --git a/xblocks_contrib/video/tests/fixtures/poster.png b/src/xblock_video/tests/fixtures/poster.png similarity index 100% rename from xblocks_contrib/video/tests/fixtures/poster.png rename to src/xblock_video/tests/fixtures/poster.png diff --git a/xblocks_contrib/video/tests/fixtures/sequence.html b/src/xblock_video/tests/fixtures/sequence.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/sequence.html rename to src/xblock_video/tests/fixtures/sequence.html diff --git a/xblocks_contrib/video/tests/fixtures/tabs-edit.html b/src/xblock_video/tests/fixtures/tabs-edit.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/tabs-edit.html rename to src/xblock_video/tests/fixtures/tabs-edit.html diff --git a/xblocks_contrib/video/tests/fixtures/test.mp4 b/src/xblock_video/tests/fixtures/test.mp4 similarity index 100% rename from xblocks_contrib/video/tests/fixtures/test.mp4 rename to src/xblock_video/tests/fixtures/test.mp4 diff --git a/xblocks_contrib/video/tests/fixtures/test.ogv b/src/xblock_video/tests/fixtures/test.ogv similarity index 100% rename from xblocks_contrib/video/tests/fixtures/test.ogv rename to src/xblock_video/tests/fixtures/test.ogv diff --git a/xblocks_contrib/video/tests/fixtures/test.webm b/src/xblock_video/tests/fixtures/test.webm similarity index 100% rename from xblocks_contrib/video/tests/fixtures/test.webm rename to src/xblock_video/tests/fixtures/test.webm diff --git a/xblocks_contrib/video/tests/fixtures/video.html b/src/xblock_video/tests/fixtures/video.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video.html rename to src/xblock_video/tests/fixtures/video.html diff --git a/xblocks_contrib/video/tests/fixtures/video_all.html b/src/xblock_video/tests/fixtures/video_all.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_all.html rename to src/xblock_video/tests/fixtures/video_all.html diff --git a/xblocks_contrib/video/tests/fixtures/video_autoadvance.html b/src/xblock_video/tests/fixtures/video_autoadvance.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_autoadvance.html rename to src/xblock_video/tests/fixtures/video_autoadvance.html diff --git a/xblocks_contrib/video/tests/fixtures/video_autoadvance_disabled.html b/src/xblock_video/tests/fixtures/video_autoadvance_disabled.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_autoadvance_disabled.html rename to src/xblock_video/tests/fixtures/video_autoadvance_disabled.html diff --git a/xblocks_contrib/video/tests/fixtures/video_hls.html b/src/xblock_video/tests/fixtures/video_hls.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_hls.html rename to src/xblock_video/tests/fixtures/video_hls.html diff --git a/xblocks_contrib/video/tests/fixtures/video_html5.html b/src/xblock_video/tests/fixtures/video_html5.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_html5.html rename to src/xblock_video/tests/fixtures/video_html5.html diff --git a/xblocks_contrib/video/tests/fixtures/video_no_captions.html b/src/xblock_video/tests/fixtures/video_no_captions.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_no_captions.html rename to src/xblock_video/tests/fixtures/video_no_captions.html diff --git a/xblocks_contrib/video/tests/fixtures/video_transcript_feedback.html b/src/xblock_video/tests/fixtures/video_transcript_feedback.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_transcript_feedback.html rename to src/xblock_video/tests/fixtures/video_transcript_feedback.html diff --git a/xblocks_contrib/video/tests/fixtures/video_with_bumper.html b/src/xblock_video/tests/fixtures/video_with_bumper.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_with_bumper.html rename to src/xblock_video/tests/fixtures/video_with_bumper.html diff --git a/xblocks_contrib/video/tests/fixtures/video_yt_multiple.html b/src/xblock_video/tests/fixtures/video_yt_multiple.html similarity index 100% rename from xblocks_contrib/video/tests/fixtures/video_yt_multiple.html rename to src/xblock_video/tests/fixtures/video_yt_multiple.html diff --git a/xblocks_contrib/video/tests/fixtures/youtube_iframe_api.js b/src/xblock_video/tests/fixtures/youtube_iframe_api.js similarity index 100% rename from xblocks_contrib/video/tests/fixtures/youtube_iframe_api.js rename to src/xblock_video/tests/fixtures/youtube_iframe_api.js diff --git a/xblocks_contrib/video/tests/i18n.js b/src/xblock_video/tests/i18n.js similarity index 100% rename from xblocks_contrib/video/tests/i18n.js rename to src/xblock_video/tests/i18n.js diff --git a/xblocks_contrib/video/tests/js/async_process_spec.js b/src/xblock_video/tests/js/async_process_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/async_process_spec.js rename to src/xblock_video/tests/js/async_process_spec.js diff --git a/xblocks_contrib/video/tests/js/completion_spec.js b/src/xblock_video/tests/js/completion_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/completion_spec.js rename to src/xblock_video/tests/js/completion_spec.js diff --git a/xblocks_contrib/video/tests/js/events_spec.js b/src/xblock_video/tests/js/events_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/events_spec.js rename to src/xblock_video/tests/js/events_spec.js diff --git a/xblocks_contrib/video/tests/js/general_spec.js b/src/xblock_video/tests/js/general_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/general_spec.js rename to src/xblock_video/tests/js/general_spec.js diff --git a/xblocks_contrib/video/tests/js/html5_video_spec.js b/src/xblock_video/tests/js/html5_video_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/html5_video_spec.js rename to src/xblock_video/tests/js/html5_video_spec.js diff --git a/xblocks_contrib/video/tests/js/initialize_spec.js b/src/xblock_video/tests/js/initialize_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/initialize_spec.js rename to src/xblock_video/tests/js/initialize_spec.js diff --git a/xblocks_contrib/video/tests/js/iterator_spec.js b/src/xblock_video/tests/js/iterator_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/iterator_spec.js rename to src/xblock_video/tests/js/iterator_spec.js diff --git a/xblocks_contrib/video/tests/js/resizer_spec.js b/src/xblock_video/tests/js/resizer_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/resizer_spec.js rename to src/xblock_video/tests/js/resizer_spec.js diff --git a/xblocks_contrib/video/tests/js/sjson_spec.js b/src/xblock_video/tests/js/sjson_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/sjson_spec.js rename to src/xblock_video/tests/js/sjson_spec.js diff --git a/xblocks_contrib/video/tests/js/social_share_spec.js b/src/xblock_video/tests/js/social_share_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/social_share_spec.js rename to src/xblock_video/tests/js/social_share_spec.js diff --git a/xblocks_contrib/video/tests/js/time_spec.js b/src/xblock_video/tests/js/time_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/time_spec.js rename to src/xblock_video/tests/js/time_spec.js diff --git a/xblocks_contrib/video/tests/js/video_autoadvance_spec.js b/src/xblock_video/tests/js/video_autoadvance_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_autoadvance_spec.js rename to src/xblock_video/tests/js/video_autoadvance_spec.js diff --git a/xblocks_contrib/video/tests/js/video_bumper_spec.js b/src/xblock_video/tests/js/video_bumper_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_bumper_spec.js rename to src/xblock_video/tests/js/video_bumper_spec.js diff --git a/xblocks_contrib/video/tests/js/video_caption_spec.js b/src/xblock_video/tests/js/video_caption_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_caption_spec.js rename to src/xblock_video/tests/js/video_caption_spec.js diff --git a/xblocks_contrib/video/tests/js/video_context_menu_spec.js b/src/xblock_video/tests/js/video_context_menu_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_context_menu_spec.js rename to src/xblock_video/tests/js/video_context_menu_spec.js diff --git a/xblocks_contrib/video/tests/js/video_control_spec.js b/src/xblock_video/tests/js/video_control_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_control_spec.js rename to src/xblock_video/tests/js/video_control_spec.js diff --git a/xblocks_contrib/video/tests/js/video_events_bumper_plugin_spec.js b/src/xblock_video/tests/js/video_events_bumper_plugin_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_events_bumper_plugin_spec.js rename to src/xblock_video/tests/js/video_events_bumper_plugin_spec.js diff --git a/xblocks_contrib/video/tests/js/video_events_plugin_spec.js b/src/xblock_video/tests/js/video_events_plugin_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_events_plugin_spec.js rename to src/xblock_video/tests/js/video_events_plugin_spec.js diff --git a/xblocks_contrib/video/tests/js/video_focus_grabber_spec.js b/src/xblock_video/tests/js/video_focus_grabber_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_focus_grabber_spec.js rename to src/xblock_video/tests/js/video_focus_grabber_spec.js diff --git a/xblocks_contrib/video/tests/js/video_full_screen_spec.js b/src/xblock_video/tests/js/video_full_screen_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_full_screen_spec.js rename to src/xblock_video/tests/js/video_full_screen_spec.js diff --git a/xblocks_contrib/video/tests/js/video_play_pause_control_spec.js b/src/xblock_video/tests/js/video_play_pause_control_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_play_pause_control_spec.js rename to src/xblock_video/tests/js/video_play_pause_control_spec.js diff --git a/xblocks_contrib/video/tests/js/video_play_placeholder_spec.js b/src/xblock_video/tests/js/video_play_placeholder_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_play_placeholder_spec.js rename to src/xblock_video/tests/js/video_play_placeholder_spec.js diff --git a/xblocks_contrib/video/tests/js/video_play_skip_control_spec.js b/src/xblock_video/tests/js/video_play_skip_control_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_play_skip_control_spec.js rename to src/xblock_video/tests/js/video_play_skip_control_spec.js diff --git a/xblocks_contrib/video/tests/js/video_player_spec.js b/src/xblock_video/tests/js/video_player_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_player_spec.js rename to src/xblock_video/tests/js/video_player_spec.js diff --git a/xblocks_contrib/video/tests/js/video_poster_spec.js b/src/xblock_video/tests/js/video_poster_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_poster_spec.js rename to src/xblock_video/tests/js/video_poster_spec.js diff --git a/xblocks_contrib/video/tests/js/video_progress_slider_spec.js b/src/xblock_video/tests/js/video_progress_slider_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_progress_slider_spec.js rename to src/xblock_video/tests/js/video_progress_slider_spec.js diff --git a/xblocks_contrib/video/tests/js/video_quality_control_spec.js b/src/xblock_video/tests/js/video_quality_control_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_quality_control_spec.js rename to src/xblock_video/tests/js/video_quality_control_spec.js diff --git a/xblocks_contrib/video/tests/js/video_save_state_plugin_spec.js b/src/xblock_video/tests/js/video_save_state_plugin_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_save_state_plugin_spec.js rename to src/xblock_video/tests/js/video_save_state_plugin_spec.js diff --git a/xblocks_contrib/video/tests/js/video_skip_control_spec.js b/src/xblock_video/tests/js/video_skip_control_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_skip_control_spec.js rename to src/xblock_video/tests/js/video_skip_control_spec.js diff --git a/xblocks_contrib/video/tests/js/video_speed_control_spec.js b/src/xblock_video/tests/js/video_speed_control_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_speed_control_spec.js rename to src/xblock_video/tests/js/video_speed_control_spec.js diff --git a/xblocks_contrib/video/tests/js/video_storage_spec.js b/src/xblock_video/tests/js/video_storage_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_storage_spec.js rename to src/xblock_video/tests/js/video_storage_spec.js diff --git a/xblocks_contrib/video/tests/js/video_transcript_feedback_spec.js b/src/xblock_video/tests/js/video_transcript_feedback_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_transcript_feedback_spec.js rename to src/xblock_video/tests/js/video_transcript_feedback_spec.js diff --git a/xblocks_contrib/video/tests/js/video_volume_control_spec.js b/src/xblock_video/tests/js/video_volume_control_spec.js similarity index 100% rename from xblocks_contrib/video/tests/js/video_volume_control_spec.js rename to src/xblock_video/tests/js/video_volume_control_spec.js diff --git a/xblocks_contrib/video/tests/spec_helpers/helper.js b/src/xblock_video/tests/spec_helpers/helper.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/helper.js rename to src/xblock_video/tests/spec_helpers/helper.js diff --git a/xblocks_contrib/video/tests/spec_helpers/jasmine-extensions.js b/src/xblock_video/tests/spec_helpers/jasmine-extensions.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/jasmine-extensions.js rename to src/xblock_video/tests/spec_helpers/jasmine-extensions.js diff --git a/xblocks_contrib/video/tests/spec_helpers/jasmine-stealth.js b/src/xblock_video/tests/spec_helpers/jasmine-stealth.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/jasmine-stealth.js rename to src/xblock_video/tests/spec_helpers/jasmine-stealth.js diff --git a/xblocks_contrib/video/tests/spec_helpers/jasmine-waituntil.js b/src/xblock_video/tests/spec_helpers/jasmine-waituntil.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/jasmine-waituntil.js rename to src/xblock_video/tests/spec_helpers/jasmine-waituntil.js diff --git a/xblocks_contrib/video/tests/spec_helpers/page_helpers.js b/src/xblock_video/tests/spec_helpers/page_helpers.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/page_helpers.js rename to src/xblock_video/tests/spec_helpers/page_helpers.js diff --git a/xblocks_contrib/video/tests/spec_helpers/template_helpers.js b/src/xblock_video/tests/spec_helpers/template_helpers.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/template_helpers.js rename to src/xblock_video/tests/spec_helpers/template_helpers.js diff --git a/xblocks_contrib/video/tests/spec_helpers/vertical_student_view.js b/src/xblock_video/tests/spec_helpers/vertical_student_view.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/vertical_student_view.js rename to src/xblock_video/tests/spec_helpers/vertical_student_view.js diff --git a/xblocks_contrib/video/tests/spec_helpers/video_helper.js b/src/xblock_video/tests/spec_helpers/video_helper.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/video_helper.js rename to src/xblock_video/tests/spec_helpers/video_helper.js diff --git a/xblocks_contrib/video/tests/spec_helpers/view_helpers.js b/src/xblock_video/tests/spec_helpers/view_helpers.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/view_helpers.js rename to src/xblock_video/tests/spec_helpers/view_helpers.js diff --git a/xblocks_contrib/video/tests/spec_helpers/xmodule_spec.js b/src/xblock_video/tests/spec_helpers/xmodule_spec.js similarity index 100% rename from xblocks_contrib/video/tests/spec_helpers/xmodule_spec.js rename to src/xblock_video/tests/spec_helpers/xmodule_spec.js diff --git a/xblocks_contrib/video/tests/test_studio_metadata_mixin.py b/src/xblock_video/tests/test_studio_metadata_mixin.py similarity index 97% rename from xblocks_contrib/video/tests/test_studio_metadata_mixin.py rename to src/xblock_video/tests/test_studio_metadata_mixin.py index d8d65aaf..f3beb803 100644 --- a/xblocks_contrib/video/tests/test_studio_metadata_mixin.py +++ b/src/xblock_video/tests/test_studio_metadata_mixin.py @@ -8,9 +8,9 @@ from xblock.field_data import DictFieldData from xblock.fields import ScopeIds -from xblocks_contrib.video.exceptions import TranscriptNotFoundError -from xblocks_contrib.video.tests.test_utils import DummyRuntime -from xblocks_contrib.video.video import VideoBlock +from xblock_video.block import VideoBlock +from xblock_video.exceptions import TranscriptNotFoundError +from xblock_video.tests.test_utils import DummyRuntime ALL_LANGUAGES = ( ("en", "English"), diff --git a/xblocks_contrib/video/tests/test_utils.py b/src/xblock_video/tests/test_utils.py similarity index 100% rename from xblocks_contrib/video/tests/test_utils.py rename to src/xblock_video/tests/test_utils.py diff --git a/xblocks_contrib/video/tests/test_video.py b/src/xblock_video/tests/test_video.py similarity index 97% rename from xblocks_contrib/video/tests/test_video.py rename to src/xblock_video/tests/test_video.py index 761a6038..999b5ea0 100644 --- a/xblocks_contrib/video/tests/test_video.py +++ b/src/xblock_video/tests/test_video.py @@ -32,8 +32,8 @@ from xblock.field_data import DictFieldData from xblock.fields import ScopeIds -from xblocks_contrib.video.tests.test_utils import VALIDATION_MESSAGE_WARNING, AsideTestType, DummyRuntime -from xblocks_contrib.video.video import EXPORT_IMPORT_STATIC_DIR, VideoBlock, create_youtube_string +from ..block import EXPORT_IMPORT_STATIC_DIR, VideoBlock, create_youtube_string +from .test_utils import VALIDATION_MESSAGE_WARNING, AsideTestType, DummyRuntime SRT_FILEDATA = """ 0 @@ -84,7 +84,7 @@ def instantiate_block(**field_data): ) -# Because of the way xblocks_contrib.video.video imports edxval.api, we +# Because of the way xblock_video.block imports edxval.api, we # must mock the entire module, which requires making mock exception classes. @@ -312,8 +312,8 @@ def test_parse_xml(self): ) @XBlockAside.register_temp_plugin(AsideTestType, "test_aside") - @patch("xblocks_contrib.video.video.VideoBlock.load_file") - @patch("xblocks_contrib.video.video.is_pointer_tag") + @patch('xblock_video.block.VideoBlock.load_file') + @patch('xblock_video.block.is_pointer_tag') @ddt.data(True, False) def test_parse_xml_with_asides(self, video_xml_has_aside, mock_is_pointer_tag, mock_load_file): """Test that `parse_xml` parses asides from the video xml""" @@ -664,7 +664,7 @@ def test_import_with_float_times(self): }, ) - @patch("xblocks_contrib.video.video.get_edxval_api") + @patch('xblock_video.block.get_edxval_api') def test_import_val_data(self, mock_get_edxval_api): """ Test that `parse_xml` works method works as expected. @@ -709,7 +709,7 @@ def mock_val_import(xml, edx_video_id, resource_fs, static_dir, external_transcr course_id="test_course_id", ) - @patch("xblocks_contrib.video.video.get_edxval_api") + @patch('xblock_video.block.get_edxval_api') def test_import_val_data_invalid(self, mock_get_edxval_api): mock_val_api = mock_get_edxval_api.return_value mock_val_api.ValCannotCreateError = _MockValCannotCreateError @@ -738,7 +738,7 @@ def setUp(self): self.file_system = OSFS(self.temp_dir) self.addCleanup(shutil.rmtree, self.temp_dir) - @patch("xblocks_contrib.video.video.get_edxval_api") + @patch('xblock_video.block.get_edxval_api') def test_export_to_xml(self, mock_get_edxval_api): """ Test that we write the correct XML on export. @@ -834,7 +834,7 @@ def test_export_to_xml_without_video_id(self): expected = etree.XML(xml_string, parser=parser) self.assertXmlEqual(expected, xml) - @patch("xblocks_contrib.video.video.get_edxval_api") + @patch('xblock_video.block.get_edxval_api') def test_export_to_xml_val_error(self, mock_get_edxval_api): mock_val_api = mock_get_edxval_api.return_value # Export should succeed without VAL data if video does not exist @@ -848,8 +848,8 @@ def test_export_to_xml_val_error(self, mock_get_edxval_api): expected = etree.XML(xml_string, parser=parser) self.assertXmlEqual(expected, xml) - @patch("xblocks_contrib.video.video.get_edxval_api", return_value=None) - def test_export_to_xml_empty_end_time(self, _mock_get_edxval_api): + @patch('xblock_video.block.get_edxval_api', return_value=None) + def est_export_to_xml_empty_end_time(self, _mock_get_edxval_api): """ Test that we write the correct XML on export. """ @@ -879,7 +879,7 @@ def test_export_to_xml_empty_end_time(self, _mock_get_edxval_api): expected = etree.XML(xml_string, parser=parser) self.assertXmlEqual(expected, xml) - @patch("xblocks_contrib.video.video.get_edxval_api", return_value=None) + @patch('xblock_video.block.get_edxval_api', return_value=None) def test_export_to_xml_empty_parameters(self, _mock_get_edxval_api): """ Test XML export with defaults. @@ -889,7 +889,7 @@ def test_export_to_xml_empty_parameters(self, _mock_get_edxval_api): expected = '