From: Timo Tijhof Date: Fri, 22 Mar 2019 20:34:37 +0000 (+0000) Subject: resources: Make manageForeignResources a regular maint script X-Git-Tag: 1.34.0-rc.0~2369^2 X-Git-Url: http://git.cyclocoop.org/%24image?a=commitdiff_plain;h=f8fcff31aaaf3230ab69c57d7bb4e5b7adc5bc0b;p=lhc%2Fweb%2Fwiklou.git resources: Make manageForeignResources a regular maint script The maintenance script was previously in a subdirectory which is a bit unusual. It's now a regular maintenance script, with the YAML file in a more discoverable place as well. Change-Id: I38690f23dbe89839bee0e1d43ecfd68adeb19c0f --- diff --git a/autoload.php b/autoload.php index bbfe251283..a69a9974ee 100644 --- a/autoload.php +++ b/autoload.php @@ -851,7 +851,7 @@ $wgAutoloadLocalClasses = [ 'Maintenance' => __DIR__ . '/maintenance/Maintenance.php', 'MakeTestEdits' => __DIR__ . '/maintenance/makeTestEdits.php', 'MalformedTitleException' => __DIR__ . '/includes/title/MalformedTitleException.php', - 'ManageForeignResources' => __DIR__ . '/maintenance/resources/manageForeignResources.php', + 'ManageForeignResources' => __DIR__ . '/maintenance/manageForeignResources.php', 'ManageJobs' => __DIR__ . '/maintenance/manageJobs.php', 'ManualLogEntry' => __DIR__ . '/includes/logging/LogEntry.php', 'MapCacheLRU' => __DIR__ . '/includes/libs/MapCacheLRU.php', diff --git a/maintenance/manageForeignResources.php b/maintenance/manageForeignResources.php new file mode 100644 index 0000000000..87f2e83144 --- /dev/null +++ b/maintenance/manageForeignResources.php @@ -0,0 +1,80 @@ +addDescription( <<addArg( 'action', 'One of "update", "verify" or "make-sri"', true ); + $this->addArg( 'module', 'Name of a single module (Default: all)', false ); + $this->addOption( 'verbose', 'Be verbose', false, false, 'v' ); + } + + /** + * @return bool + * @throws Exception + */ + public function execute() { + global $IP; + $frm = new ForeignResourceManager( + "{$IP}/resources/lib/foreign-resources.yaml", + "{$IP}/resources/lib", + function ( $text ) { + $this->output( $text ); + }, + function ( $text ) { + $this->error( $text ); + }, + function ( $text ) { + if ( $this->hasOption( 'verbose' ) ) { + $this->output( $text ); + } + } + ); + + $action = $this->getArg( 0 ); + $module = $this->getArg( 1, 'all' ); + return $frm->run( $action, $module ); + } +} + +$maintClass = ManageForeignResources::class; +require_once RUN_MAINTENANCE_IF_MAIN; diff --git a/maintenance/resources/foreign-resources.yaml b/maintenance/resources/foreign-resources.yaml deleted file mode 100644 index d4458aa905..0000000000 --- a/maintenance/resources/foreign-resources.yaml +++ /dev/null @@ -1,210 +0,0 @@ -### Format of this file -# -# The top-level keys are directory names (under resources/lib/). -# They should match module names (as registered in Resources.php), but there are exceptions. -# Each top-level key holds a resource descriptor that must have one of -# the following `type` values: -# -# - `tar`: For tarball archive (may be gzip-compressed). -# - `file: For a plain file. -# - `multi-file`: For multiple plain files. -# -### Type tar -# -# The `src` and `integrity` keys are required. -# -# * `src`: Full URL to the remote resource. -# * `integrity`: Cryptographic hash (integrity metadata format per ). -# * `dest`: An object mapping paths to files or directory from the remote resource to a destination -# in the module directory. The value of key in dest may be omitted, which will extract the key -# directly to the module directory. -# -### Type file -# -# The `src` and `integrity` keys are required. -# -# * `src`: Full URL to the remote resource. -# * `integrity`: Cryptographic hash (integrity metadata format per ). -# * `dest`: The name of the file in the module directory. Default: Basename of URL. -# -### Type multi-file -# -# The `files` key is required. -# -# * `files`: An object mapping destination paths to an object containing `src` and `integrity` -# keys. - -CLDRPluralRuleParser: - type: file - src: https://raw.githubusercontent.com/santhoshtr/CLDRPluralRuleParser/0dda851/src/CLDRPluralRuleParser.js - integrity: sha384-M4taeYYG2+9Ob1/La16iO+zlRRmBV5lBR3xUKkQT6kfkJ0aLbCi6yc0RYI1BDzdh - -easy-deflate: - type: multi-file - files: - deflate.js: - src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/deflate.js - integrity: sha384-sHnZLDSWMUhA2w9ygkzCK8YFvoh/fQKY6lXMbvmrYzjuNURiLB0DZFCDNMpGyZ77 - easydeflate.js: - src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/easydeflate.js - integrity: sha384-EwPfP2RMkDPa1HkzQsXgzTsy1KEjcIzQPA1HDS/JPHjvEMvVUsCxWwm1oXql/jk2 - inflate.js: - src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/inflate.js - integrity: sha384-hMg44Hw424mUYvmzKl0JT4J8UU/1YYhTiGRtR0YX/MXNLK9qWTK0d62FBCDGxmxw - README.md: - src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/README.md - integrity: sha384-6kwcfCLivvqXBZy2ATyya+mTVWLk3eaQyBdC6tbpBtkygnBrM2SNkq3jz/l7IkvP - -html5shiv: - type: file - src: https://raw.githubusercontent.com/aFarkas/html5shiv/3.7.3/src/html5shiv.js - integrity: sha384-RPXhaTf22QktT8KTwZ6bUz/C+7CnccaIw5W/y/t0FW5WSDGj3wc3YtRIJC0w47in - -jquery: - type: file - src: https://code.jquery.com/jquery-3.3.1.js - # Integrity from link modals https://code.jquery.com/jquery/ - integrity: sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60= - dest: jquery.js - -jquery.client: - type: tar - src: https://registry.npmjs.org/jquery-client/-/jquery-client-2.0.2.tgz - integrity: sha256-8c8nBbBykHEMc4I7ksdKJvvw/P7WkaC2X46RTPdz/pw= - dest: - package/AUTHORS.txt: - package/jquery.client.js: - package/LICENSE-MIT: - package/README.md: - -jquery.cookie: - type: multi-file - files: - jquery.cookie.js: - src: https://raw.githubusercontent.com/carhartl/jquery-cookie/v1.3.1/jquery.cookie.js - integrity: sha384-Xxq63E9KDgzUJ6WPNPqVeOtRIwZyx6y9DzEwY2u6LYKSnWrjSoGtWSKmTindYBf2 - MIT-LICENSE.txt: - src: https://raw.githubusercontent.com/carhartl/jquery-cookie/v1.3.1/MIT-LICENSE.txt - integrity: sha384-zYsGf3KJ7S0AhOICjcoh0kkn7aGZlzYUXXX5xz8dwR9KjLMM+/JPR2g/jVOGGeId - CHANGELOG.md: - src: https://raw.githubusercontent.com/carhartl/jquery-cookie/v1.3.1/CHANGELOG.md - integrity: sha384-SQOHhLc7PHxHDQpGE/zv9XfXKL0A7OBu8kuyVDnHVp+zSoWyRw4xUJ+LSm5ql4kS - -jquery.form: - type: file - src: https://raw.githubusercontent.com/jquery-form/form/ff80d9ddf4/jquery.form.js - integrity: sha384-h4G2CrcSbixzMvrrK259cNBYaL/vS1D4+KdUN9NJDzQnTU1bQ6Avluget+Id13M7 - dest: jquery.form.js - -jquery.fullscreen: - type: file - src: https://raw.githubusercontent.com/theopolisme/jquery-fullscreen/v2.1.0/jquery.fullscreen.js - integrity: sha384-G4KPs2d99tgcsyUnJ3eeZ1r2hEKDwZfc4+/xowL/LIemq2VVwEE8HpVAWt4WYNLR - dest: jquery.fullscreen.js - -jquery.hoverIntent: - type: file - src: https://raw.githubusercontent.com/briancherne/jquery-hoverIntent/823603fdac/jquery.hoverIntent.js - integrity: sha384-lca0haN0hqFGGh2aYUhtAgX9dhVHfQnTADH4svDeM6gcXnL7aFGeAi1NYwipDMyS - dest: jquery.hoverIntent.js - -jquery.jStorage: - type: file - src: https://raw.githubusercontent.com/andris9/jStorage/v0.4.12/jstorage.js - integrity: sha384-geMeN8k803kPp6cqRL4VNfuSM1L8DcbKRk0St/KHJzxgpX9S0y9FA6HxA/JgucrJ - dest: jstorage.js - -jquery.throttle-debounce: - type: file - src: https://raw.githubusercontent.com/cowboy/jquery-throttle-debounce/v1.1/jquery.ba-throttle-debounce.js - integrity: sha384-ULOy4DbAghrCqRcrTJLXOY9e4gDpWh0BeEf6xMSL0VtNudXWggcb6AmrVrl4KDAP - dest: jquery.ba-throttle-debounce.js - -moment: - type: tar - src: https://codeload.github.com/moment/moment/tar.gz/2.24.0 - integrity: sha384-2/I9rfqkN8AAgh5wOXXphuo827uV7lMmOodrCfIvqC6W6JKKiDGOwd+lE3e8R0yz - dest: - moment-2.24.0/moment.js: - moment-2.24.0/CHANGELOG.md: - moment-2.24.0/README.md: - moment-2.24.0/LICENSE: - moment-2.24.0/locale/*.js: locale - -mustache: - type: multi-file - files: - mustache.js: - src: https://raw.githubusercontent.com/janl/mustache.js/v1.0.0/mustache.js - integrity: sha384-k2UYqmzoiq/qgIzZvcYBxbXQW4YdPAsXDOTkHTGb9TCZ9sjCkyT4TlaUN0wQRkql - LICENSE: - src: https://raw.githubusercontent.com/janl/mustache.js/v1.0.0/LICENSE - integrity: sha384-MYVwXwula9+YkyXexOJVZ0v0DaVvG22uX57mNq5Di+7u8OH9EG9q3yuXkp1Iehiq - -oojs: - type: tar - src: https://registry.npmjs.org/oojs/-/oojs-2.2.2.tgz - integrity: sha256-ebgQW2EGrSkBCnDJBGqDpsBDjA3PMN/M8U5DyLHt9mw= - dest: - package/dist/oojs.jquery.js: - package/AUTHORS.txt: - package/LICENSE-MIT: - package/README.md: - -oojs-router: - type: tar - src: https://registry.npmjs.org/oojs-router/-/oojs-router-0.2.0.tgz - integrity: sha384-VngYqdQ3vTDMXbm4e4FUZCCGos7fB0Jkr9V+kBL5MElprK1h0yQZOzBNnMHtSJS/ - dest: - package/dist/oojs-router.js: - package/LICENSE: - package/AUTHORS.txt: - package/History.md: - -ooui: - type: tar - src: https://registry.npmjs.org/oojs-ui/-/oojs-ui-0.31.1.tgz - integrity: sha384-M9KdU6u02zSKCVczcw6YJmSvFLhdeagNg9CPhizYVqrybL8bamrF5u6YfrFGEyiv - dest: - # Main stuff - package/dist/oojs-ui-core.js{,.map.json}: - package/dist/oojs-ui-core-{wikimediaui,apex}.css: - package/dist/oojs-ui-widgets.js{,.map.json}: - package/dist/oojs-ui-widgets-{wikimediaui,apex}.css: - package/dist/oojs-ui-toolbars.js{,.map.json}: - package/dist/oojs-ui-toolbars-{wikimediaui,apex}.css: - package/dist/oojs-ui-windows.js{,.map.json}: - package/dist/oojs-ui-windows-{wikimediaui,apex}.css: - package/dist/oojs-ui-{wikimediaui,apex}.js{,.map.json}: - package/dist/i18n: - package/dist/images: - # WikimediaUI theme - package/dist/themes/wikimediaui/images/icons/*.{svg,png}: themes/wikimediaui/images/icons - package/dist/themes/wikimediaui/images/indicators/*.{svg,png}: themes/wikimediaui/images/indicators - package/dist/themes/wikimediaui/images/textures/*.{gif,svg}: themes/wikimediaui/images/textures - package/src/themes/wikimediaui/*.json: themes/wikimediaui - package/dist/wikimedia-ui-base.less: - # Apex theme (icons, indicators, and textures) - package/src/themes/apex/*.json: themes/apex - # Misc stuff - package/dist/AUTHORS.txt: - package/dist/History.md: - package/dist/LICENSE-MIT: - package/dist/README.md: - -qunitjs: - type: multi-file - # Integrity from link modals at https://code.jquery.com/qunit/ - files: - qunit.js: - src: http://code.jquery.com/qunit/qunit-2.9.1.js - integrity: sha256-eNccBdxd8zReziWcVjEsPeyJDi3LKMYnzMXyDv8bzsU= - qunit.css: - src: https://code.jquery.com/qunit/qunit-2.9.1.css - integrity: sha256-SSS7o92V7wzcIFg3qnJL9mc4msePaT4klbxtuSGvVVo= - -sinonjs: - type: file - src: https://sinonjs.org/releases/sinon-1.17.7.js - integrity: sha384-wR63Jwy75KqwBfzCmXd6gYws6uj3qV/XMAybzXrkEYGYG3AQ58ZWwr1fVpkHa5e8 - dest: sinon.js diff --git a/maintenance/resources/manageForeignResources.php b/maintenance/resources/manageForeignResources.php deleted file mode 100644 index 6de82c0912..0000000000 --- a/maintenance/resources/manageForeignResources.php +++ /dev/null @@ -1,80 +0,0 @@ -addDescription( <<addArg( 'action', 'One of "update", "verify" or "make-sri"', true ); - $this->addArg( 'module', 'Name of a single module (Default: all)', false ); - $this->addOption( 'verbose', 'Be verbose', false, false, 'v' ); - } - - /** - * @return bool - * @throws Exception - */ - public function execute() { - global $IP; - $frm = new ForeignResourceManager( - __DIR__ . '/foreign-resources.yaml', - "{$IP}/resources/lib", - function ( $text ) { - $this->output( $text ); - }, - function ( $text ) { - $this->error( $text ); - }, - function ( $text ) { - if ( $this->hasOption( 'verbose' ) ) { - $this->output( $text ); - } - } - ); - - $action = $this->getArg( 0 ); - $module = $this->getArg( 1, 'all' ); - return $frm->run( $action, $module ); - } -} - -$maintClass = ManageForeignResources::class; -require_once RUN_MAINTENANCE_IF_MAIN; diff --git a/resources/lib/foreign-resources.yaml b/resources/lib/foreign-resources.yaml new file mode 100644 index 0000000000..d4458aa905 --- /dev/null +++ b/resources/lib/foreign-resources.yaml @@ -0,0 +1,210 @@ +### Format of this file +# +# The top-level keys are directory names (under resources/lib/). +# They should match module names (as registered in Resources.php), but there are exceptions. +# Each top-level key holds a resource descriptor that must have one of +# the following `type` values: +# +# - `tar`: For tarball archive (may be gzip-compressed). +# - `file: For a plain file. +# - `multi-file`: For multiple plain files. +# +### Type tar +# +# The `src` and `integrity` keys are required. +# +# * `src`: Full URL to the remote resource. +# * `integrity`: Cryptographic hash (integrity metadata format per ). +# * `dest`: An object mapping paths to files or directory from the remote resource to a destination +# in the module directory. The value of key in dest may be omitted, which will extract the key +# directly to the module directory. +# +### Type file +# +# The `src` and `integrity` keys are required. +# +# * `src`: Full URL to the remote resource. +# * `integrity`: Cryptographic hash (integrity metadata format per ). +# * `dest`: The name of the file in the module directory. Default: Basename of URL. +# +### Type multi-file +# +# The `files` key is required. +# +# * `files`: An object mapping destination paths to an object containing `src` and `integrity` +# keys. + +CLDRPluralRuleParser: + type: file + src: https://raw.githubusercontent.com/santhoshtr/CLDRPluralRuleParser/0dda851/src/CLDRPluralRuleParser.js + integrity: sha384-M4taeYYG2+9Ob1/La16iO+zlRRmBV5lBR3xUKkQT6kfkJ0aLbCi6yc0RYI1BDzdh + +easy-deflate: + type: multi-file + files: + deflate.js: + src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/deflate.js + integrity: sha384-sHnZLDSWMUhA2w9ygkzCK8YFvoh/fQKY6lXMbvmrYzjuNURiLB0DZFCDNMpGyZ77 + easydeflate.js: + src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/easydeflate.js + integrity: sha384-EwPfP2RMkDPa1HkzQsXgzTsy1KEjcIzQPA1HDS/JPHjvEMvVUsCxWwm1oXql/jk2 + inflate.js: + src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/inflate.js + integrity: sha384-hMg44Hw424mUYvmzKl0JT4J8UU/1YYhTiGRtR0YX/MXNLK9qWTK0d62FBCDGxmxw + README.md: + src: https://raw.githubusercontent.com/edg2s/Easy-Deflate/7a6056e5302f6f385ff2efa60afda45b4ad81e51/README.md + integrity: sha384-6kwcfCLivvqXBZy2ATyya+mTVWLk3eaQyBdC6tbpBtkygnBrM2SNkq3jz/l7IkvP + +html5shiv: + type: file + src: https://raw.githubusercontent.com/aFarkas/html5shiv/3.7.3/src/html5shiv.js + integrity: sha384-RPXhaTf22QktT8KTwZ6bUz/C+7CnccaIw5W/y/t0FW5WSDGj3wc3YtRIJC0w47in + +jquery: + type: file + src: https://code.jquery.com/jquery-3.3.1.js + # Integrity from link modals https://code.jquery.com/jquery/ + integrity: sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60= + dest: jquery.js + +jquery.client: + type: tar + src: https://registry.npmjs.org/jquery-client/-/jquery-client-2.0.2.tgz + integrity: sha256-8c8nBbBykHEMc4I7ksdKJvvw/P7WkaC2X46RTPdz/pw= + dest: + package/AUTHORS.txt: + package/jquery.client.js: + package/LICENSE-MIT: + package/README.md: + +jquery.cookie: + type: multi-file + files: + jquery.cookie.js: + src: https://raw.githubusercontent.com/carhartl/jquery-cookie/v1.3.1/jquery.cookie.js + integrity: sha384-Xxq63E9KDgzUJ6WPNPqVeOtRIwZyx6y9DzEwY2u6LYKSnWrjSoGtWSKmTindYBf2 + MIT-LICENSE.txt: + src: https://raw.githubusercontent.com/carhartl/jquery-cookie/v1.3.1/MIT-LICENSE.txt + integrity: sha384-zYsGf3KJ7S0AhOICjcoh0kkn7aGZlzYUXXX5xz8dwR9KjLMM+/JPR2g/jVOGGeId + CHANGELOG.md: + src: https://raw.githubusercontent.com/carhartl/jquery-cookie/v1.3.1/CHANGELOG.md + integrity: sha384-SQOHhLc7PHxHDQpGE/zv9XfXKL0A7OBu8kuyVDnHVp+zSoWyRw4xUJ+LSm5ql4kS + +jquery.form: + type: file + src: https://raw.githubusercontent.com/jquery-form/form/ff80d9ddf4/jquery.form.js + integrity: sha384-h4G2CrcSbixzMvrrK259cNBYaL/vS1D4+KdUN9NJDzQnTU1bQ6Avluget+Id13M7 + dest: jquery.form.js + +jquery.fullscreen: + type: file + src: https://raw.githubusercontent.com/theopolisme/jquery-fullscreen/v2.1.0/jquery.fullscreen.js + integrity: sha384-G4KPs2d99tgcsyUnJ3eeZ1r2hEKDwZfc4+/xowL/LIemq2VVwEE8HpVAWt4WYNLR + dest: jquery.fullscreen.js + +jquery.hoverIntent: + type: file + src: https://raw.githubusercontent.com/briancherne/jquery-hoverIntent/823603fdac/jquery.hoverIntent.js + integrity: sha384-lca0haN0hqFGGh2aYUhtAgX9dhVHfQnTADH4svDeM6gcXnL7aFGeAi1NYwipDMyS + dest: jquery.hoverIntent.js + +jquery.jStorage: + type: file + src: https://raw.githubusercontent.com/andris9/jStorage/v0.4.12/jstorage.js + integrity: sha384-geMeN8k803kPp6cqRL4VNfuSM1L8DcbKRk0St/KHJzxgpX9S0y9FA6HxA/JgucrJ + dest: jstorage.js + +jquery.throttle-debounce: + type: file + src: https://raw.githubusercontent.com/cowboy/jquery-throttle-debounce/v1.1/jquery.ba-throttle-debounce.js + integrity: sha384-ULOy4DbAghrCqRcrTJLXOY9e4gDpWh0BeEf6xMSL0VtNudXWggcb6AmrVrl4KDAP + dest: jquery.ba-throttle-debounce.js + +moment: + type: tar + src: https://codeload.github.com/moment/moment/tar.gz/2.24.0 + integrity: sha384-2/I9rfqkN8AAgh5wOXXphuo827uV7lMmOodrCfIvqC6W6JKKiDGOwd+lE3e8R0yz + dest: + moment-2.24.0/moment.js: + moment-2.24.0/CHANGELOG.md: + moment-2.24.0/README.md: + moment-2.24.0/LICENSE: + moment-2.24.0/locale/*.js: locale + +mustache: + type: multi-file + files: + mustache.js: + src: https://raw.githubusercontent.com/janl/mustache.js/v1.0.0/mustache.js + integrity: sha384-k2UYqmzoiq/qgIzZvcYBxbXQW4YdPAsXDOTkHTGb9TCZ9sjCkyT4TlaUN0wQRkql + LICENSE: + src: https://raw.githubusercontent.com/janl/mustache.js/v1.0.0/LICENSE + integrity: sha384-MYVwXwula9+YkyXexOJVZ0v0DaVvG22uX57mNq5Di+7u8OH9EG9q3yuXkp1Iehiq + +oojs: + type: tar + src: https://registry.npmjs.org/oojs/-/oojs-2.2.2.tgz + integrity: sha256-ebgQW2EGrSkBCnDJBGqDpsBDjA3PMN/M8U5DyLHt9mw= + dest: + package/dist/oojs.jquery.js: + package/AUTHORS.txt: + package/LICENSE-MIT: + package/README.md: + +oojs-router: + type: tar + src: https://registry.npmjs.org/oojs-router/-/oojs-router-0.2.0.tgz + integrity: sha384-VngYqdQ3vTDMXbm4e4FUZCCGos7fB0Jkr9V+kBL5MElprK1h0yQZOzBNnMHtSJS/ + dest: + package/dist/oojs-router.js: + package/LICENSE: + package/AUTHORS.txt: + package/History.md: + +ooui: + type: tar + src: https://registry.npmjs.org/oojs-ui/-/oojs-ui-0.31.1.tgz + integrity: sha384-M9KdU6u02zSKCVczcw6YJmSvFLhdeagNg9CPhizYVqrybL8bamrF5u6YfrFGEyiv + dest: + # Main stuff + package/dist/oojs-ui-core.js{,.map.json}: + package/dist/oojs-ui-core-{wikimediaui,apex}.css: + package/dist/oojs-ui-widgets.js{,.map.json}: + package/dist/oojs-ui-widgets-{wikimediaui,apex}.css: + package/dist/oojs-ui-toolbars.js{,.map.json}: + package/dist/oojs-ui-toolbars-{wikimediaui,apex}.css: + package/dist/oojs-ui-windows.js{,.map.json}: + package/dist/oojs-ui-windows-{wikimediaui,apex}.css: + package/dist/oojs-ui-{wikimediaui,apex}.js{,.map.json}: + package/dist/i18n: + package/dist/images: + # WikimediaUI theme + package/dist/themes/wikimediaui/images/icons/*.{svg,png}: themes/wikimediaui/images/icons + package/dist/themes/wikimediaui/images/indicators/*.{svg,png}: themes/wikimediaui/images/indicators + package/dist/themes/wikimediaui/images/textures/*.{gif,svg}: themes/wikimediaui/images/textures + package/src/themes/wikimediaui/*.json: themes/wikimediaui + package/dist/wikimedia-ui-base.less: + # Apex theme (icons, indicators, and textures) + package/src/themes/apex/*.json: themes/apex + # Misc stuff + package/dist/AUTHORS.txt: + package/dist/History.md: + package/dist/LICENSE-MIT: + package/dist/README.md: + +qunitjs: + type: multi-file + # Integrity from link modals at https://code.jquery.com/qunit/ + files: + qunit.js: + src: http://code.jquery.com/qunit/qunit-2.9.1.js + integrity: sha256-eNccBdxd8zReziWcVjEsPeyJDi3LKMYnzMXyDv8bzsU= + qunit.css: + src: https://code.jquery.com/qunit/qunit-2.9.1.css + integrity: sha256-SSS7o92V7wzcIFg3qnJL9mc4msePaT4klbxtuSGvVVo= + +sinonjs: + type: file + src: https://sinonjs.org/releases/sinon-1.17.7.js + integrity: sha384-wR63Jwy75KqwBfzCmXd6gYws6uj3qV/XMAybzXrkEYGYG3AQ58ZWwr1fVpkHa5e8 + dest: sinon.js