pax_global_header 0000666 0000000 0000000 00000000064 14117340574 0014520 g ustar 00root root 0000000 0000000 52 comment=fc0baf1efa1e49f8dc4576efac1bc5e5a175b1d4 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/ 0000775 0000000 0000000 00000000000 14117340574 0022431 5 ustar 00root root 0000000 0000000 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/.eslintrc.json 0000664 0000000 0000000 00000000270 14117340574 0025224 0 ustar 00root root 0000000 0000000 { "root": true, "extends": [ "wikimedia/client", "wikimedia/jquery", "wikimedia/mediawiki" ], "globals": { "CodeMirror": "readonly" }, "rules": { "max-len": "off" } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/.gitignore 0000664 0000000 0000000 00000000124 14117340574 0024416 0 ustar 00root root 0000000 0000000 *~ *.kate-swp .*.swp .directory /node_modules/ /vendor/ /composer.lock .eslintcache mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/.gitreview 0000664 0000000 0000000 00000000162 14117340574 0024436 0 ustar 00root root 0000000 0000000 [gerrit] host=gerrit.wikimedia.org port=29418 project=mediawiki/extensions/CodeMirror.git track=1 defaultrebase=0 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/.phan/ 0000775 0000000 0000000 00000000000 14117340574 0023435 5 ustar 00root root 0000000 0000000 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/.phan/config.php 0000664 0000000 0000000 00000000135 14117340574 0025412 0 ustar 00root root 0000000 0000000 . mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/.stylelintrc.json 0000664 0000000 0000000 00000000055 14117340574 0025756 0 ustar 00root root 0000000 0000000 { "extends": "stylelint-config-wikimedia" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/CODE_OF_CONDUCT.md 0000664 0000000 0000000 00000000207 14117340574 0025227 0 ustar 00root root 0000000 0000000 The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct). mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/COPYING 0000664 0000000 0000000 00000044220 14117340574 0023466 0 ustar 00root root 0000000 0000000 The license text below "====" applies to all files within this distribution, other than those that are in a directory which contains files named "LICENSE" or "COPYING", or a subdirectory thereof. For those files, the license text contained in said file overrides any license information contained in directories of smaller depth. Alternative licenses are typically used for software that is provided by external parties, and merely packaged with this software for convenience. ==== GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/Gruntfile.js 0000664 0000000 0000000 00000001236 14117340574 0024730 0 ustar 00root root 0000000 0000000 /* eslint-env node, es6 */ module.exports = function ( grunt ) { grunt.loadNpmTasks( 'grunt-banana-checker' ); grunt.loadNpmTasks( 'grunt-eslint' ); grunt.loadNpmTasks( 'grunt-stylelint' ); grunt.initConfig( { eslint: { options: { cache: true, fix: grunt.option( 'fix' ) }, all: [ '**/*.{js,json}', '!resources/lib/**', '!{vendor,node_modules}/**' ] }, stylelint: { all: [ '**/*.{css,less}', '!resources/lib/**', '!node_modules/**', '!vendor/**' ] }, banana: { all: 'i18n/' } } ); grunt.registerTask( 'test', [ 'eslint', 'stylelint', 'banana' ] ); grunt.registerTask( 'default', 'test' ); }; mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/composer.json 0000664 0000000 0000000 00000000742 14117340574 0025156 0 ustar 00root root 0000000 0000000 { "require-dev": { "mediawiki/mediawiki-codesniffer": "31.0.0", "mediawiki/mediawiki-phan-config": "0.10.2", "mediawiki/minus-x": "1.1.0", "php-parallel-lint/php-console-highlighter": "0.5.0", "php-parallel-lint/php-parallel-lint": "1.2.0" }, "scripts": { "fix": [ "minus-x fix .", "phpcbf" ], "test": [ "parallel-lint . --exclude vendor --exclude node_modules", "phpcs -p -s", "minus-x check ." ], "phan": "phan -d . --long-progress-bar" } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/extension.json 0000664 0000000 0000000 00000007720 14117340574 0025346 0 ustar 00root root 0000000 0000000 { "name": "CodeMirror", "version": "4.0.0", "author": [ "[https://www.mediawiki.org/wiki/User:Pastakhov Pavel Astakhov]", "[https://www.mediawiki.org/wiki/User:Florianschmidtwelzow Florian Schmidt]", "Marijn Haverbeke", "[https://raw.githubusercontent.com/codemirror/CodeMirror/master/AUTHORS CodeMirror contributors]" ], "url": "https://www.mediawiki.org/wiki/Extension:CodeMirror", "descriptionmsg": "codemirror-desc", "type": "editor", "license-name": "GPL-2.0-or-later", "requires": { "MediaWiki": ">= 1.34.0" }, "MessagesDirs": { "CodeMirror": [ "i18n" ] }, "AutoloadClasses": { "CodeMirrorHooks": "includes/CodeMirrorHooks.php", "ResourceLoaderCodeMirrorModule": "includes/ResourceLoaderCodeMirrorModule.php" }, "ResourceModules": { "ext.CodeMirror": { "dependencies": [ "ext.CodeMirror.data", "jquery.textSelection", "mediawiki.api", "mediawiki.user", "user.options", "jquery.ui", "oojs-ui.styles.icons-editing-styling" ], "scripts": [ "ext.CodeMirror.js" ], "styles": [ "ext.CodeMirror.less" ], "messages": [ "codemirror-toggle-label" ] }, "ext.CodeMirror.data": { "class": "ResourceLoaderCodeMirrorModule" }, "ext.CodeMirror.lib": { "scripts": [ "lib/codemirror/lib/codemirror.js" ], "styles": [ "lib/codemirror/lib/codemirror.css", "lib/codemirror-fixes.less" ] }, "ext.CodeMirror.mode.mediawiki": { "scripts": "mode/mediawiki/mediawiki.js", "styles": "mode/mediawiki/mediawiki.css", "dependencies": [ "ext.CodeMirror.lib" ] }, "ext.CodeMirror.lib.mode.css": { "scripts": "lib/codemirror/mode/css/css.js", "dependencies": [ "ext.CodeMirror.lib" ] }, "ext.CodeMirror.lib.mode.javascript": { "scripts": "lib/codemirror/mode/javascript/javascript.js", "dependencies": [ "ext.CodeMirror.lib" ] }, "ext.CodeMirror.lib.mode.xml": { "scripts": "lib/codemirror/mode/xml/xml.js", "dependencies": [ "ext.CodeMirror.lib" ] }, "ext.CodeMirror.lib.mode.htmlmixed": { "scripts": "lib/codemirror/mode/htmlmixed/htmlmixed.js", "dependencies": [ "ext.CodeMirror.lib.mode.xml", "ext.CodeMirror.lib.mode.javascript", "ext.CodeMirror.lib.mode.css", "ext.CodeMirror.lib" ] }, "ext.CodeMirror.lib.mode.clike": { "scripts": "lib/codemirror/mode/clike/clike.js", "dependencies": [ "ext.CodeMirror.lib" ] }, "ext.CodeMirror.lib.mode.php": { "scripts": "lib/codemirror/mode/php/php.js", "dependencies": [ "ext.CodeMirror.lib.mode.htmlmixed", "ext.CodeMirror.lib.mode.clike", "ext.CodeMirror.lib" ] }, "ext.CodeMirror.visualEditor.init": { "scripts": [ "modules/ve-cm/ve.ui.CodeMirror.init.js" ], "styles": [ "modules/ve-cm/ve.ui.CodeMirror.init.less" ], "messages": [ "codemirror-toggle-label" ], "targets": [ "desktop" ] }, "ext.CodeMirror.visualEditor": { "dependencies": [ "ext.visualEditor.mwcore", "mediawiki.api", "user.options" ], "scripts": [ "modules/ve-cm/ve.ui.CodeMirrorAction.js", "modules/ve-cm/ve.ui.CodeMirrorTool.js" ], "targets": [ "desktop" ] } }, "ResourceFileModulePaths": { "localBasePath": "resources", "remoteExtPath": "CodeMirror/resources" }, "QUnitTestModule": { "localBasePath": "", "remoteExtPath": "CodeMirror", "scripts": [ "resources/mode/mediawiki/tests/qunit/CodeMirror.mediawiki.test.js" ], "dependencies": [ "ext.CodeMirror.data", "ext.CodeMirror.lib", "ext.CodeMirror.mode.mediawiki" ] }, "Hooks": { "BeforePageDisplay": "CodeMirrorHooks::onBeforePageDisplay", "GetPreferences": "CodeMirrorHooks::onGetPreferences" }, "attributes": { "CodeMirror": { "PluginModules": [ ], "TagModes": { "pre": "mw-tag-pre", "nowiki": "mw-tag-nowiki" } }, "VisualEditor": { "PluginModules": [ "ext.CodeMirror.visualEditor.init", "ext.CodeMirror.visualEditor" ] } }, "manifest_version": 2 } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/gitinfo.json 0000664 0000000 0000000 00000000437 14117340574 0024767 0 ustar 00root root 0000000 0000000 {"remoteURL": "https://gerrit-replica.wikimedia.org/r/mediawiki/extensions/CodeMirror", "headSHA1": "a63f3c2ab7b91ea4f744b309c057385c800d6f94\n", "head": "a63f3c2ab7b91ea4f744b309c057385c800d6f94\n", "branch": "a63f3c2ab7b91ea4f744b309c057385c800d6f94\n", "headCommitDate": "1630593362"} mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ 0000775 0000000 0000000 00000000000 14117340574 0023210 5 ustar 00root root 0000000 0000000 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ar.json 0000664 0000000 0000000 00000000370 14117340574 0024505 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "ديفيد" ] }, "codemirror-desc": "يوفر تسليط الضوء على بناء الجملة في محرر نص الويكي", "codemirror-toggle-label": "تسليط الضوء على التركيب" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ast.json 0000664 0000000 0000000 00000000263 14117340574 0024673 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Xuacu" ] }, "codemirror-desc": "Ufre sintaxis resaltada nel editor de testu wiki", "codemirror-toggle-label": "Resaltador de sintaxis" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/azb.json 0000664 0000000 0000000 00000000177 14117340574 0024664 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Alp Er Tunqa" ] }, "codemirror-toggle-label": "ترکیبلری هایلایتلا" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ba.json 0000664 0000000 0000000 00000000312 14117340574 0024461 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Sagan", "Азат Хәлилов" ] }, "codemirror-desc": "Вики-текст редакторында синтаксисты айырып күрһәтә" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/be-tarask.json 0000664 0000000 0000000 00000000415 14117340574 0025754 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Red Winged Duck" ] }, "codemirror-desc": "Забясьпечвае вылучэньне сынтаксысу ў рэдактары вікітэксту", "codemirror-toggle-label": "Вылучэньне сынтаксысу" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/be.json 0000664 0000000 0000000 00000000423 14117340574 0024470 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Artsiom91" ] }, "codemirror-desc": "Забяспечвае вылучэнне колерам сінтаксісу ў рэдактары вікі-тэкста", "codemirror-toggle-label": "Выдзяленне сінтаксісу" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/bg.json 0000664 0000000 0000000 00000000432 14117340574 0024472 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "ShockD", "StanProg" ] }, "codemirror-desc": "Осигурява оцветяване на синтаксиса в редактора на уикитекст", "codemirror-toggle-label": "Оцветяване на синтаксиса" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/bn.json 0000664 0000000 0000000 00000000556 14117340574 0024510 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Aftabuzzaman", "আফতাবুজ্জামান" ] }, "codemirror-desc": "উইকিপাঠ্য সম্পাদকে সিনট্যাক্স আলোকপাতকরণ প্রদান করে", "codemirror-toggle-label": "সিনট্যাক্স আলোকপাতকরণ" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/bs.json 0000664 0000000 0000000 00000000270 14117340574 0024506 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Srdjan m" ] }, "codemirror-desc": "Omogućava isticanje sintakse u uređivaču wikiteksta", "codemirror-toggle-label": "Isticanje sintakse" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ca.json 0000664 0000000 0000000 00000000322 14117340574 0024463 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Abella", "Vriullop" ] }, "codemirror-desc": "Proporciona ressaltat de la sintaxi a l'editor de text al wiki", "codemirror-toggle-label": "Ressaltat de la sintaxi" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ce.json 0000664 0000000 0000000 00000000416 14117340574 0024473 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Умар" ] }, "codemirror-desc": "Вики-йоза тадечу корехь синтаксис беснашца къастор латадо.", "codemirror-toggle-label": "Синтаксис беснашца къастор" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/cs.json 0000664 0000000 0000000 00000000313 14117340574 0024505 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Meliganai", "Mormegil" ] }, "codemirror-desc": "Poskytuje zvýrazňování syntaxe v editoru wikitextu", "codemirror-toggle-label": "Zvýraznění syntaxe" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/da.json 0000664 0000000 0000000 00000000301 14117340574 0024461 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Saederup92", "Weblars" ] }, "codemirror-desc": "Giver syntaksfremhævelse i wikitekst editoren", "codemirror-toggle-label": "Syntaksfremhævelse" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/de.json 0000664 0000000 0000000 00000000305 14117340574 0024471 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Kghbln", "Metalhead64" ] }, "codemirror-desc": "Ermöglicht Syntaxhervorhebungen im Wikitext-Editor", "codemirror-toggle-label": "Syntaxhervorhebung" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/el.json 0000664 0000000 0000000 00000000420 14117340574 0024477 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Geraki", "Αντιγόνη" ] }, "codemirror-desc": "Παρέχει επισήμανση σύνταξης στον επεξεργαστή κώδικα wiki", "codemirror-toggle-label": "Επισήμανση σύνταξης" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/en-gb.json 0000664 0000000 0000000 00000000367 14117340574 0025101 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Ed g2s", "HairyFotr" ] }, "codemirror-beta-desc": "Syntax highlighting makes editing easier by using colour and shade to visually separate page text from the code for links, references and templates." } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/en.json 0000664 0000000 0000000 00000000263 14117340574 0024506 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "pastakhov" ] }, "codemirror-desc": "Provides syntax highlighting in wikitext editor", "codemirror-toggle-label": "Syntax highlighting" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/eo.json 0000664 0000000 0000000 00000000302 14117340574 0024501 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "KuboF", "Mirin" ] }, "codemirror-desc": "Provizas markadon de sintakso en vikiteksta redaktilo", "codemirror-toggle-label": "Sintaksa reliefigado" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/es.json 0000664 0000000 0000000 00000000342 14117340574 0024511 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Fitoschido", "Macofe", "PoLuX124" ] }, "codemirror-desc": "Proporciona resalte de la sintaxis en el editor de código wiki", "codemirror-toggle-label": "Resaltado de sintaxis" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/et.json 0000664 0000000 0000000 00000000266 14117340574 0024517 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Pikne" ] }, "codemirror-desc": "Võimaldab vikiteksti toimetis süntaksi esiletõstu.", "codemirror-toggle-label": "Süntaksi esiletõst" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/eu.json 0000664 0000000 0000000 00000000211 14117340574 0024506 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Subi", "Mikel Ibaiba" ] }, "codemirror-beta-title": "Wikitestu sintaxiaren nabarmengailua" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/fa.json 0000664 0000000 0000000 00000000351 14117340574 0024470 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Alirezaaa", "Iriman", "Ladsgroup" ] }, "codemirror-desc": "ویرایش نحو برجسته برای صفحات ویکی", "codemirror-toggle-label": "پررنگ کردن دستور" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/fi.json 0000664 0000000 0000000 00000000166 14117340574 0024504 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Nike", "Pyscowicz" ] }, "codemirror-toggle-label": "Syntaksin korostus" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/fr.json 0000664 0000000 0000000 00000000402 14117340574 0024506 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Gomoko", "Thibaut120094", "Trizek (WMF)", "Wladek92" ] }, "codemirror-desc": "Fournit une mise en évidence de la syntaxe dans l’éditeur wikitexte", "codemirror-toggle-label": "Colorisation syntaxique" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/fy.json 0000664 0000000 0000000 00000000161 14117340574 0024517 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "PiefPafPier" ] }, "codemirror-toggle-label": "Syntaks-aksintuearring" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/gl.json 0000664 0000000 0000000 00000000331 14117340574 0024502 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Banjo", "Elisardojm", "Toliño" ] }, "codemirror-desc": "Proporciona un resalte da sintaxe no editor de texto wiki", "codemirror-toggle-label": "Resaltado de sintaxe" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/gu.json 0000664 0000000 0000000 00000000445 14117340574 0024521 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Nisargjhaveri" ] }, "codemirror-disable-label": "CodeMirror (સિન્ટેક્ષ હાઇલાઇટ) બંધ કરો", "codemirror-enable-label": "CodeMirror (સિન્ટેક્ષ હાઇલાઇટ) ચાલુ કરો" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/he.json 0000664 0000000 0000000 00000000301 14117340574 0024471 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Amire80", "Guycn2" ] }, "codemirror-desc": "צביעת תחביר בעורך קוד ויקי", "codemirror-toggle-label": "צביעת תחביר" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/hi.json 0000664 0000000 0000000 00000000064 14117340574 0024503 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Sfic" ] } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/hr.json 0000664 0000000 0000000 00000000303 14117340574 0024510 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Bugoslav", "MaGa" ] }, "codemirror-desc": "Omogućava isticanje sintakse u uređivaču wikiteksta", "codemirror-toggle-label": "Isticanje sintakse" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/hu.json 0000664 0000000 0000000 00000000340 14117340574 0024514 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Bencemac", "Tacsipacsi", "Urbalazs" ] }, "codemirror-desc": "Szintaxiskiemelő hozzáadása a wikiszöveges szerkesztőhöz", "codemirror-toggle-label": "Szintaxiskiemelés" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/hy.json 0000664 0000000 0000000 00000000230 14117340574 0024516 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Դավիթ Սարոյան" ] }, "codemirror-toggle-label": "Շարահյուսության ընդգծում" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/inh.json 0000664 0000000 0000000 00000000565 14117340574 0024667 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Adam-Yourist" ] }, "codemirror-beta-desc": "Cинтаксиса бесаш хувцам бар аттагIа ду. Цо оагIон текст хьакъоастаю тIатовжамехи лерий цIерехи уж сийрдаяхарца.", "codemirror-beta-title": "Вики-текста синтаксиса бесаш" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/io.json 0000664 0000000 0000000 00000000152 14117340574 0024510 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Joao Xavier" ] }, "codemirror-toggle-label": "Emfazar sintaxo" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/is.json 0000664 0000000 0000000 00000000157 14117340574 0024521 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Sveinn í Felli" ] }, "codemirror-toggle-label": "Málfræðilitun" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/it.json 0000664 0000000 0000000 00000000347 14117340574 0024523 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Beta16", "Sakretsu", "Statix64" ] }, "codemirror-desc": "Fornisce l'evidenziazione della sintassi nell'editor wikitesto", "codemirror-toggle-label": "Evidenziazione della sintassi" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ja.json 0000664 0000000 0000000 00000000370 14117340574 0024475 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Delim", "Shirayuki", "SkyDaisy9", "Suzukaze-c" ] }, "codemirror-desc": "ウィキテキストエディターに構文強調の機能を追加する", "codemirror-toggle-label": "構文の強調" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ka.json 0000664 0000000 0000000 00000001161 14117340574 0024475 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Otogi" ] }, "codemirror-beta-desc": "სინტაქსის გაშუქება ამარტივებს რედაქტირებას, იყენებს ფერსა და ელფერს გვერდის ტექსტის ვიზუალური გამოყოფისათვის ბმულების, სქოლიოებისა და თარგების კოდებისაგან.", "codemirror-beta-title": "ვიკიტექსტის სინტაქსის გაშუქება" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/km.json 0000664 0000000 0000000 00000000230 14117340574 0024505 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "គីមស៊្រុន" ] }, "codemirror-toggle-label": "ផាត់ពណ៌អក្សរកូដ" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ko.json 0000664 0000000 0000000 00000000321 14117340574 0024510 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Kwj2772", "Ykhwong" ] }, "codemirror-desc": "위키텍스트 편집기에서 구문 강조 기능을 제공합니다", "codemirror-toggle-label": "문법 강조" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ksh.json 0000664 0000000 0000000 00000000277 14117340574 0024676 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Purodha" ] }, "codemirror-desc": "Määd et müjjelesch, em Wikkitäx beim Beärbeide, dem Wikki sing eije Befähle extra erußjehovve aanzezeije." } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/lb.json 0000664 0000000 0000000 00000000300 14117340574 0024471 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Robby" ] }, "codemirror-desc": "Erméiglecht et am Wikitext-Editeur d'Syntax ervirzehiewen", "codemirror-toggle-label": "Ervirhiewe vun der Syntax" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/lfn.json 0000664 0000000 0000000 00000000155 14117340574 0024663 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Mafcadio" ] }, "codemirror-toggle-label": "Marcante de sintatica" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/li.json 0000664 0000000 0000000 00000000272 14117340574 0024510 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Ooswesthoesbes" ] }, "codemirror-desc": "Bèd accentuering van teks inne wikiteksbewirker", "codemirror-toggle-label": "Syntaxisoetleechting" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/lij.json 0000664 0000000 0000000 00000000230 14117340574 0024654 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Giromin Cangiaxo" ] }, "codemirror-desc": "O permette d'evidençiâ a scintasci inte l'editor de wiki-testo" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/lv.json 0000664 0000000 0000000 00000000153 14117340574 0024523 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Papuass" ] }, "codemirror-toggle-label": "Sintakses izcelšana" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/mk.json 0000664 0000000 0000000 00000000414 14117340574 0024511 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Bjankuloski06" ] }, "codemirror-desc": "Дава потцртување на синтаксата во уредувачот на викитекст", "codemirror-toggle-label": "Истакнување на синтакса" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ml.json 0000664 0000000 0000000 00000000652 14117340574 0024516 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Praveenp" ] }, "codemirror-desc": "വിക്കിഎഴുത്ത് തിരുത്തൽ സൗകര്യത്തിൽ എഴുത്തുരീതി പ്രമുഖമാക്കി കാണിക്കൽ സൗകര്യം നൽകുന്നു", "codemirror-toggle-label": "എഴുത്തുരീതി പ്രമുഖമാക്കുക" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/mt.json 0000664 0000000 0000000 00000000267 14117340574 0024530 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Leli Forte" ] }, "codemirror-desc": "Editjar b'sintassi enfasizzati għall paġni tal-wiki permezz ta' [http://codemirror.net/ CodeMirror]" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/mwl.json 0000664 0000000 0000000 00000000557 14117340574 0024711 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "MokaAkashiyaPT", "Athena in Wonderland" ] }, "codemirror-beta-desc": "L rialce sintático facelita las eidiçones pul uso de la quelor i selombra pa apartar bisualmente l testo de la páigina de l código restante pa las lhigaçones, refréncias i modelos.", "codemirror-beta-title": "Rialce sintático de l testo wiki" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/nb.json 0000664 0000000 0000000 00000000337 14117340574 0024505 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Danmichaelo", "Jon Harald Søby", "Pmt", "Weblars" ] }, "codemirror-desc": "Gir syntaksfremheving i wikitekstredigereren", "codemirror-toggle-label": "Syntaksfremheving" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/nl.json 0000664 0000000 0000000 00000000253 14117340574 0024514 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Esketti", "Mainframe98", "Siebrand" ] }, "codemirror-desc": "Biedt accentuering van tekst in de wikitekst tekstverwerker" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/nn.json 0000664 0000000 0000000 00000000155 14117340574 0024517 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Njardarlogar" ] }, "codemirror-toggle-label": "Syntaksframheving" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/oc.json 0000664 0000000 0000000 00000000304 14117340574 0024501 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Cedric31" ] }, "codemirror-disable-label": "Desactivar CodeMirror (Syntaxhighlight)", "codemirror-enable-label": "Activar CodeMirror (Syntaxhighlight)" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/pl.json 0000664 0000000 0000000 00000000335 14117340574 0024517 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Chrumps", "Railfail536", "Woytecr" ] }, "codemirror-desc": "Dostarcza podświetlanie składni w edytorze wikitekstu", "codemirror-toggle-label": "Podświetlanie składni" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/pt-br.json 0000664 0000000 0000000 00000000351 14117340574 0025126 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "!Silent", "Eduardo Addad de Oliveira", "Felipe L. Ewald" ] }, "codemirror-desc": "Fornece um realce de sintaxe no editor de wikitexto", "codemirror-toggle-label": "Realce de sintaxe" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/pt.json 0000664 0000000 0000000 00000000412 14117340574 0024523 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Athena in Wonderland", "Fúlvio", "Hamilton Abreu", "Nemo bis", "Vitorvicentevalente" ] }, "codemirror-desc": "Fornece realce sintático no editor de texto wiki", "codemirror-toggle-label": "Realce sintático" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/qqq.json 0000664 0000000 0000000 00000000662 14117340574 0024711 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Minh Nguyen", "Raymond", "Shirayuki", "SkyDaisy9", "pastakhov" ] }, "codemirror-desc": "{{desc|name=Code Mirror|url=https://www.mediawiki.org/wiki/Extension:CodeMirror}}\n\nAdditional info: Discription of \"Syntax highlighting\" in wiki\n[[mw:Extension:SyntaxHighlight GeSHi]]", "codemirror-toggle-label": "Title tooltip for button to toggle CodeMirror in the editing toolbar." } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ro.json 0000664 0000000 0000000 00000000270 14117340574 0024522 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Strainu" ] }, "codemirror-desc": "Oferă evidențierea sintaxei în editorul wikitext", "codemirror-toggle-label": "Evidențierea sintaxei" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/roa-tara.json 0000664 0000000 0000000 00000000322 14117340574 0025606 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Joetaras" ] }, "codemirror-desc": "Dèje l'evidenziazzione d'a sindasse jndr'à 'u cangiatore de uicchiteste", "codemirror-toggle-label": "Evidenziatore de sindasse" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ru.json 0000664 0000000 0000000 00000000440 14117340574 0024527 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Facenapalm", "Kaganer", "Okras" ] }, "codemirror-desc": "Обеспечивает подсветку синтаксиса в редакторе вики-текста.", "codemirror-toggle-label": "Подсветка синтаксиса" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/sh.json 0000664 0000000 0000000 00000000265 14117340574 0024520 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Vlad5250" ] }, "codemirror-desc": "Daje potcrtavanje sintakse u uređivaču wikiteksta", "codemirror-toggle-label": "Isticanje sintakse" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/sk.json 0000664 0000000 0000000 00000000273 14117340574 0024522 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "TomášPolonec" ] }, "codemirror-desc": "Poskytuje zvýraznenie syntaxe v textovom editore", "codemirror-toggle-label": "Zvýraznenie syntaxe" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/sr-ec.json 0000664 0000000 0000000 00000000422 14117340574 0025112 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Acamicamacaraca", "BadDog", "Obsuser" ] }, "codemirror-desc": "Омогућава истицање синтаксе у уређивачу викитекста", "codemirror-toggle-label": "Истицање синтаксе" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/sr-el.json 0000664 0000000 0000000 00000000210 14117340574 0025116 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Obsuser" ] }, "codemirror-desc": "Omogućava označavanje sintakse u uređivaču vikiteksta" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/sv.json 0000664 0000000 0000000 00000000316 14117340574 0024533 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Lokal Profil", "WikiPhoenix" ] }, "codemirror-desc": "Ger syntaxmarkerad redigering för redigering av wikitext", "codemirror-toggle-label": "Syntaxmarkering" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/tcy.json 0000664 0000000 0000000 00000000112 14117340574 0024674 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "BHARATHESHA ALASANDEMAJALU" ] } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/th.json 0000664 0000000 0000000 00000001205 14117340574 0024514 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Ans", "Aefgh39622" ] }, "codemirror-beta-desc": "การเน้นสีในไวยากรณ์ช่วยให้คุณทำการแก้ไขได้ง่ายขึ้น โดยเลือกสีและเฉดสีเพื่อแยกข้อความในหน้าออกจากโค้ดของลิงก์ ส่วนอ้างอิง และแม่แบบต่าง ๆ ให้ชัดเจน", "codemirror-beta-title": "การเน้นสีในไวยากรณ์ข้อความวิกิ" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/tr.json 0000664 0000000 0000000 00000000322 14117340574 0024525 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "BaRaN6161 TURK", "Diyapazon" ] }, "codemirror-desc": "Vikimetin düzenleyicide sözdizimi vurgulaması sağlar", "codemirror-toggle-label": "Sözdizimi vurgulama" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/tt-cyrl.json 0000664 0000000 0000000 00000000344 14117340574 0025502 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Ильнар" ] }, "codemirror-desc": "Вики-текст мөхәррирендә синтаксны аеруп күрсәтә", "codemirror-toggle-label": "Синтакс-аеру" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/uk.json 0000664 0000000 0000000 00000000515 14117340574 0024523 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Andriykopanytsia", "Dars", "Piramidion", "SimondR", "Ата" ] }, "codemirror-desc": "Забезпечує підсвічування синтаксису у редакторі вікітексту", "codemirror-toggle-label": "Підсвічування синтаксису" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/ur.json 0000664 0000000 0000000 00000000706 14117340574 0024534 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Muhammad Shuaib" ] }, "codemirror-beta-desc": "نحوی نمایاں کاری میں رنگوں وغیرہ کے ذریعہ ویکی متن میں موجود روابط، حوالہ جات اور سانچوں کے کوڈ علاحدہ نظر آتے ہیں اور یوں ترمیم کاری مزید آسان ہو جاتی ہے۔", "codemirror-beta-title": "ویکیمتن کی نحوی نمایاں کاری" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/uz.json 0000664 0000000 0000000 00000000210 14117340574 0024532 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Sociologist" ] }, "codemirror-toggle-label": "Sintaksis rangli tarzda ajratib koʻrsatilsin" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/vec.json 0000664 0000000 0000000 00000000161 14117340574 0024656 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Fierodelveneto" ] }, "codemirror-toggle-label": "Rexalta ła sintasi" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/vi.json 0000664 0000000 0000000 00000000271 14117340574 0024521 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Minh Nguyen" ] }, "codemirror-desc": "Tô màu cú pháp trong hộp sửa đổi mã wiki", "codemirror-toggle-label": "Tô màu cú pháp" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/xmf.json 0000664 0000000 0000000 00000000221 14117340574 0024670 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Silovan" ] }, "codemirror-disable-label": "CodeMirror-იშ (Syntaxhighlight) გოთიშუა" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/zh-hans.json 0000664 0000000 0000000 00000000263 14117340574 0025454 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "Liuxinyu970226" ] }, "codemirror-desc": "在wiki文本编辑器中提供语法高亮显示", "codemirror-toggle-label": "语法高亮" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/i18n/zh-hant.json 0000664 0000000 0000000 00000000361 14117340574 0025454 0 ustar 00root root 0000000 0000000 { "@metadata": { "authors": [ "A2093064", "Cwlin0416", "Kly", "LNDDYL", "Waihorace", "Xiplus" ] }, "codemirror-desc": "提供 wikitext 編輯器語法醒目標示", "codemirror-toggle-label": "語法醒目標示" } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/includes/ 0000775 0000000 0000000 00000000000 14117340574 0024237 5 ustar 00root root 0000000 0000000 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/includes/CodeMirrorHooks.php 0000664 0000000 0000000 00000003717 14117340574 0030031 0 ustar 00root root 0000000 0000000 getModules() ) ) { return false; } // Disable CodeMirror when the WikiEditor toolbar is not enabled in preferences if ( !$out->getUser()->getOption( 'usebetatoolbar' ) ) { return false; } $context = $out->getContext(); return in_array( Action::getActionName( $context ), [ 'edit', 'submit' ] ) && // CodeMirror on textarea wikitext editors doesn't support RTL (T170001) !$context->getTitle()->getPageLanguage()->isRTL(); } /** * BeforePageDisplay hook handler * * @see https://www.mediawiki.org/wiki/Manual:Hooks/BeforePageDisplay * * @param OutputPage $out * @param Skin $skin */ public static function onBeforePageDisplay( OutputPage $out, Skin $skin ) { if ( self::isCodeMirrorOnPage( $out ) ) { $out->addModules( 'ext.CodeMirror' ); if ( $out->getUser()->getOption( 'usecodemirror' ) ) { // These modules are predelivered for performance when needed // keep these modules in sync with ext.CodeMirror.js $out->addModules( [ 'ext.CodeMirror.lib', 'ext.CodeMirror.mode.mediawiki' ] ); } } } /** * GetPreferences hook handler * * @see https://www.mediawiki.org/wiki/Manual:Hooks/GetPreferences * * @param User $user * @param array &$defaultPreferences */ public static function onGetPreferences( User $user, array &$defaultPreferences ) { // CodeMirror is enabled by default for users. It can // be changed by adding '$wgDefaultUserOptions['usecodemirror'] = 0;' into LocalSettings.php $defaultPreferences['usecodemirror'] = [ 'type' => 'api', 'default' => '1', ]; } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/includes/ResourceLoaderCodeMirrorModule.php0000664 0000000 0000000 00000006207 14117340574 0033027 0 ustar 00root root 0000000 0000000 $this->getFrontendConfiguraton() ] ) . "\n" . parent::getScript( $context ); } /** * @inheritDoc */ public function supportsURLLoading() { // This module does not support loading URLs, because it inserts // JS config vars into the module by the getScript function. return false; } /** * @inheritDoc */ public function enableModuleContentVersion() { return true; } /** * Returns an array of variables for CodeMirror to work (tags and so on) * * @return array */ private function getFrontendConfiguraton() { // Use the content language, not the user language. (See T170130.) $lang = MediaWikiServices::getInstance()->getContentLanguage(); $registry = ExtensionRegistry::getInstance(); $parser = MediaWikiServices::getInstance()->getParser(); // initialize configuration $config = [ 'pluginModules' => $registry->getAttribute( 'CodeMirrorPluginModules' ), 'tagModes' => $registry->getAttribute( 'CodeMirrorTagModes' ), 'tags' => array_fill_keys( $parser->getTags(), true ), 'doubleUnderscore' => [ [], [] ], 'functionSynonyms' => $parser->getFunctionSynonyms(), 'urlProtocols' => $parser->getUrlProtocols(), 'linkTrailCharacters' => $lang->linkTrail(), ]; $mw = $lang->getMagicWords(); $magicWordFactory = $parser->getMagicWordFactory(); foreach ( $magicWordFactory->getDoubleUnderscoreArray()->getNames() as $name ) { if ( isset( $mw[$name] ) ) { $caseSensitive = array_shift( $mw[$name] ) == 0 ? 0 : 1; foreach ( $mw[$name] as $n ) { $n = $caseSensitive ? $n : $lang->lc( $n ); $config['doubleUnderscore'][$caseSensitive][$n] = $name; } } else { $config['doubleUnderscore'][0][] = $name; } } foreach ( $magicWordFactory->getVariableIDs() as $name ) { if ( isset( $mw[$name] ) ) { $caseSensitive = array_shift( $mw[$name] ) == 0 ? 0 : 1; foreach ( $mw[$name] as $n ) { $n = $caseSensitive ? $n : $lang->lc( $n ); $config['functionSynonyms'][$caseSensitive][$n] = $name; } } } return $config; } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/package-lock.json 0000664 0000000 0000000 00000432231 14117340574 0025652 0 ustar 00root root 0000000 0000000 { "requires": true, "lockfileVersion": 1, "dependencies": { "@babel/code-frame": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", "dev": true, "requires": { "@babel/highlight": "^7.0.0" } }, "@babel/core": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/generator": "^7.9.0", "@babel/helper-module-transforms": "^7.9.0", "@babel/helpers": "^7.9.0", "@babel/parser": "^7.9.0", "@babel/template": "^7.8.6", "@babel/traverse": "^7.9.0", "@babel/types": "^7.9.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.1", "json5": "^2.1.2", "lodash": "^4.17.13", "resolve": "^1.3.2", "semver": "^5.4.1", "source-map": "^0.5.0" }, "dependencies": { "@babel/code-frame": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { "@babel/highlight": "^7.8.3" } }, "@babel/highlight": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } } } }, "@babel/generator": { "version": "7.9.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.5.tgz", "integrity": "sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ==", "dev": true, "requires": { "@babel/types": "^7.9.5", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" } }, "@babel/helper-function-name": { "version": "7.9.5", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz", "integrity": "sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw==", "dev": true, "requires": { "@babel/helper-get-function-arity": "^7.8.3", "@babel/template": "^7.8.3", "@babel/types": "^7.9.5" } }, "@babel/helper-get-function-arity": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { "@babel/types": "^7.8.3" } }, "@babel/helper-member-expression-to-functions": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", "dev": true, "requires": { "@babel/types": "^7.8.3" } }, "@babel/helper-module-imports": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "dev": true, "requires": { "@babel/types": "^7.8.3" } }, "@babel/helper-module-transforms": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.8.3", "@babel/helper-replace-supers": "^7.8.6", "@babel/helper-simple-access": "^7.8.3", "@babel/helper-split-export-declaration": "^7.8.3", "@babel/template": "^7.8.6", "@babel/types": "^7.9.0", "lodash": "^4.17.13" } }, "@babel/helper-optimise-call-expression": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", "dev": true, "requires": { "@babel/types": "^7.8.3" } }, "@babel/helper-replace-supers": { "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "dev": true, "requires": { "@babel/helper-member-expression-to-functions": "^7.8.3", "@babel/helper-optimise-call-expression": "^7.8.3", "@babel/traverse": "^7.8.6", "@babel/types": "^7.8.6" } }, "@babel/helper-simple-access": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", "dev": true, "requires": { "@babel/template": "^7.8.3", "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { "@babel/types": "^7.8.3" } }, "@babel/helper-validator-identifier": { "version": "7.9.5", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz", "integrity": "sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g==", "dev": true }, "@babel/helpers": { "version": "7.9.2", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "dev": true, "requires": { "@babel/template": "^7.8.3", "@babel/traverse": "^7.9.0", "@babel/types": "^7.9.0" } }, "@babel/highlight": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz", "integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==", "dev": true, "requires": { "chalk": "^2.0.0", "esutils": "^2.0.2", "js-tokens": "^4.0.0" } }, "@babel/parser": { "version": "7.9.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz", "integrity": "sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA==", "dev": true }, "@babel/runtime": { "version": "7.9.2", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "dev": true, "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { "version": "7.8.6", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/parser": "^7.8.6", "@babel/types": "^7.8.6" }, "dependencies": { "@babel/code-frame": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { "@babel/highlight": "^7.8.3" } }, "@babel/highlight": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } } } }, "@babel/traverse": { "version": "7.9.5", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.5.tgz", "integrity": "sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ==", "dev": true, "requires": { "@babel/code-frame": "^7.8.3", "@babel/generator": "^7.9.5", "@babel/helper-function-name": "^7.9.5", "@babel/helper-split-export-declaration": "^7.8.3", "@babel/parser": "^7.9.0", "@babel/types": "^7.9.5", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" }, "dependencies": { "@babel/code-frame": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "dev": true, "requires": { "@babel/highlight": "^7.8.3" } }, "@babel/highlight": { "version": "7.9.0", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.0", "chalk": "^2.0.0", "js-tokens": "^4.0.0" } } } }, "@babel/types": { "version": "7.9.5", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.5.tgz", "integrity": "sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.9.5", "lodash": "^4.17.13", "to-fast-properties": "^2.0.0" } }, "@nodelib/fs.scandir": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", "dev": true, "requires": { "@nodelib/fs.stat": "2.0.3", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", "dev": true }, "@nodelib/fs.walk": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", "dev": true, "requires": { "@nodelib/fs.scandir": "2.1.3", "fastq": "^1.6.0" } }, "@stylelint/postcss-css-in-js": { "version": "0.37.1", "resolved": "https://registry.npmjs.org/@stylelint/postcss-css-in-js/-/postcss-css-in-js-0.37.1.tgz", "integrity": "sha512-UMf2Rni3JGKi3ZwYRGMYJ5ipOA5ENJSKMtYA/pE1ZLURwdh7B5+z2r73RmWvub+N0UuH1Lo+TGfCgYwPvqpXNw==", "dev": true, "requires": { "@babel/core": ">=7.9.0" } }, "@stylelint/postcss-markdown": { "version": "0.36.2", "resolved": "https://registry.npmjs.org/@stylelint/postcss-markdown/-/postcss-markdown-0.36.2.tgz", "integrity": "sha512-2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==", "dev": true, "requires": { "remark": "^13.0.0", "unist-util-find-all-after": "^3.0.2" } }, "@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, "@types/mdast": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.7.tgz", "integrity": "sha512-YwR7OK8aPmaBvMMUi+pZXBNoW2unbVbfok4YRqGMJBe1dpDlzpRkJrYEYmvjxgs5JhuQmKfDexrN98u941Zasg==", "dev": true, "requires": { "@types/unist": "*" } }, "@types/minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-aaI6OtKcrwCX8G7aWbNh7i8GOfY=", "dev": true }, "@types/normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, "@types/unist": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz", "integrity": "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==", "dev": true }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "acorn": { "version": "7.3.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz", "integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA==", "dev": true }, "acorn-jsx": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", "dev": true }, "ajv": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ansi-escapes": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "dev": true, "requires": { "type-fest": "^0.11.0" }, "dependencies": { "type-fest": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", "dev": true } } }, "ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { "sprintf-js": "~1.0.2" } }, "array-each": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", "dev": true }, "array-slice": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, "array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, "arrify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", "dev": true }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", "dev": true }, "async": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", "dev": true }, "autoprefixer": { "version": "9.7.6", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.6.tgz", "integrity": "sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ==", "dev": true, "requires": { "browserslist": "^4.11.1", "caniuse-lite": "^1.0.30001039", "chalk": "^2.4.2", "normalize-range": "^0.1.2", "num2fraction": "^1.2.2", "postcss": "^7.0.27", "postcss-value-parser": "^4.0.3" } }, "bail": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/bail/-/bail-1.0.5.tgz", "integrity": "sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ==", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { "fill-range": "^7.0.1" } }, "browserslist": { "version": "4.16.6", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", "dev": true, "requires": { "caniuse-lite": "^1.0.30001219", "colorette": "^1.2.2", "electron-to-chromium": "^1.3.723", "escalade": "^3.1.1", "node-releases": "^1.1.71" }, "dependencies": { "caniuse-lite": { "version": "1.0.30001246", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001246.tgz", "integrity": "sha512-Tc+ff0Co/nFNbLOrziBXmMVtpt9S2c2Y+Z9Nk9Khj09J+0zR9ejvIW5qkZAErCbOrVODCx/MN+GpB5FNBs5GFA==", "dev": true } } }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true }, "caniuse-lite": { "version": "1.0.30001045", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001045.tgz", "integrity": "sha512-Y8o2Iz1KPcD6FjySbk1sPpvJqchgxk/iow0DABpGyzA1UeQAuxh63Xh0Enj5/BrsYbXtCN32JmR4ZxQTCQ6E6A==", "dev": true }, "chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "character-entities": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", "dev": true }, "character-entities-legacy": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", "dev": true }, "character-reference-invalid": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", "dev": true }, "chardet": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, "cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { "restore-cursor": "^3.1.0" } }, "cli-width": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", "dev": true }, "clone-regexp": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", "dev": true, "requires": { "is-regexp": "^2.0.0" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "colorette": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "colors": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", "dev": true }, "comment-parser": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.5.tgz", "integrity": "sha512-iH9YA35ccw94nx5244GVkpyC9eVTsL71jZz6iz5w6RIf79JLF2AsXHXq9p6Oaohyl3sx5qSMnGsWUDFIAfWL4w==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "convert-source-map": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" } }, "cosmiconfig": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "dev": true, "requires": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.1.0", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.7.2" }, "dependencies": { "parse-json": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1", "lines-and-columns": "^1.1.6" } }, "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true } } }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "dependencies": { "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", "dev": true }, "debug": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "dev": true, "requires": { "ms": "^2.1.1" } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, "decamelize-keys": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=", "dev": true, "requires": { "decamelize": "^1.1.0", "map-obj": "^1.0.0" } }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, "detect-file": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", "dev": true }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { "path-type": "^4.0.0" }, "dependencies": { "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true } } }, "doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "dev": true, "requires": { "esutils": "^2.0.2" } }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "dev": true, "requires": { "domelementtype": "^2.0.1", "entities": "^2.0.0" }, "dependencies": { "domelementtype": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", "dev": true }, "entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", "dev": true } } }, "domelementtype": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", "dev": true }, "domhandler": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "dev": true, "requires": { "domelementtype": "1" } }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "dev": true, "requires": { "dom-serializer": "0", "domelementtype": "1" } }, "electron-to-chromium": { "version": "1.3.784", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.784.tgz", "integrity": "sha512-JTPxdUibkefeomWNaYs8lI/x/Zb4cOhZWX+d7kpzsNKzUd07pNuo/AcHeNJ/qgEchxM1IAxda9aaGUhKN/poOg==", "dev": true }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", "dev": true }, "entities": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", "dev": true }, "error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { "is-arrayish": "^0.2.1" } }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "eslint": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.2.0.tgz", "integrity": "sha512-B3BtEyaDKC5MlfDa2Ha8/D6DsS4fju95zs0hjS3HdGazw+LNayai38A25qMppK37wWGWNYSPOR6oYzlz5MHsRQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", "debug": "^4.0.1", "doctrine": "^3.0.0", "eslint-scope": "^5.1.0", "eslint-utils": "^2.0.0", "eslint-visitor-keys": "^1.2.0", "espree": "^7.1.0", "esquery": "^1.2.0", "esutils": "^2.0.2", "file-entry-cache": "^5.0.1", "functional-red-black-tree": "^1.0.1", "glob-parent": "^5.0.0", "globals": "^12.1.0", "ignore": "^4.0.6", "import-fresh": "^3.0.0", "imurmurhash": "^0.1.4", "inquirer": "^7.0.0", "is-glob": "^4.0.0", "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", "lodash": "^4.17.14", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", "progress": "^2.0.0", "regexpp": "^3.1.0", "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", "table": "^5.2.3", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "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==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "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==", "dev": true }, "globals": { "version": "12.4.0", "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "dev": true, "requires": { "type-fest": "^0.8.1" } }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "semver": { "version": "7.3.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "eslint-config-wikimedia": { "version": "0.16.1", "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.16.1.tgz", "integrity": "sha512-VFP+zOaehZgbcH1TCeH6iBZuYv83mZMvu+YYntblbmFrw36Oo9lcNWiUL95SAE+5JtkGtAy51NLE1T61XJYn5w==", "dev": true, "requires": { "eslint": "^7.1.0", "eslint-plugin-es": "^3.0.1", "eslint-plugin-jsdoc": "^26.0.0", "eslint-plugin-json": "^2.1.1", "eslint-plugin-mediawiki": "^0.2.4", "eslint-plugin-mocha": "^7.0.1", "eslint-plugin-no-jquery": "^2.4.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-qunit": "^4.2.0", "eslint-plugin-vue": "^6.2.2", "eslint-plugin-wdio": "^6.0.12" } }, "eslint-plugin-es": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz", "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==", "dev": true, "requires": { "eslint-utils": "^2.0.0", "regexpp": "^3.0.0" } }, "eslint-plugin-jsdoc": { "version": "26.0.2", "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-26.0.2.tgz", "integrity": "sha512-KtZjqtM3Z8x84vQBFKGUyBbZRGXYHVWSJ2XyYSUTc8KhfFrvzQ/GXPp6f1M1/YCNzP3ImD5RuDNcr+OVvIZcBA==", "dev": true, "requires": { "comment-parser": "^0.7.4", "debug": "^4.1.1", "jsdoctypeparser": "^6.1.0", "lodash": "^4.17.15", "regextras": "^0.7.1", "semver": "^6.3.0", "spdx-expression-parse": "^3.0.1" }, "dependencies": { "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true }, "spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } } } }, "eslint-plugin-json": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/eslint-plugin-json/-/eslint-plugin-json-2.1.1.tgz", "integrity": "sha512-Ktsab8ij33V2KFLhh4alC1FYztdmbV32DeMZYYUCZm4kKLW1s4DrleKKgtbAHSJsmshCK5QGOZtfyc2r3jCRsg==", "dev": true, "requires": { "lodash": "^4.17.15", "vscode-json-languageservice": "^3.5.1" } }, "eslint-plugin-mediawiki": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.2.4.tgz", "integrity": "sha512-tvvLPTwXp5YpCh3tbfSq/tOFRRcgrje1GVOz+91qBzuHOY6gHOesXQSrryeG33rbbRztktIa7IggpWmi2Rsu3A==", "dev": true, "requires": { "eslint-plugin-vue": "^6.2.2" } }, "eslint-plugin-mocha": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-7.0.1.tgz", "integrity": "sha512-zkQRW9UigRaayGm/pK9TD5RjccKXSgQksNtpsXbG9b6L5I+jNx7m98VUbZ4w1H1ArlNA+K7IOH+z8TscN6sOYg==", "dev": true, "requires": { "eslint-utils": "^2.0.0", "ramda": "^0.27.0" } }, "eslint-plugin-no-jquery": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.4.1.tgz", "integrity": "sha512-pHyBFyDgUj/cQD1QNh9SiLaicFJyqeFGDEGRLUn3HezETvsCSi1oeRqjotkL6xAyvwyTiih5d3dhfon0DUvZJA==", "dev": true }, "eslint-plugin-node": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz", "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==", "dev": true, "requires": { "eslint-plugin-es": "^3.0.0", "eslint-utils": "^2.0.0", "ignore": "^5.1.1", "minimatch": "^3.0.4", "resolve": "^1.10.1", "semver": "^6.1.0" }, "dependencies": { "ignore": { "version": "5.1.8", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", "dev": true }, "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", "dev": true } } }, "eslint-plugin-qunit": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-4.2.0.tgz", "integrity": "sha512-UibPK0fSshPTJauyitsHjACixpf+I5BEKqXi6WJ/WGhW31WwP7flSdBW8+Y9B46v05KYH6MJg/uZVIaiaHO5Cg==", "dev": true }, "eslint-plugin-vue": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-6.2.2.tgz", "integrity": "sha512-Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==", "dev": true, "requires": { "natural-compare": "^1.4.0", "semver": "^5.6.0", "vue-eslint-parser": "^7.0.0" } }, "eslint-plugin-wdio": { "version": "6.0.12", "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-6.0.12.tgz", "integrity": "sha512-qZqcU1Z0bqrqhYM1MbwIvKQxcQEGIOEclOjcveavvLZAN4ezpXb1Ogw3xu+UK13iArregJOMI6uUt+JkFmER1A==", "dev": true }, "eslint-scope": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "dev": true, "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" } }, "eslint-utils": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", "dev": true, "requires": { "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz", "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==", "dev": true }, "espree": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz", "integrity": "sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==", "dev": true, "requires": { "acorn": "^7.2.0", "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.2.0" } }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", "dev": true, "requires": { "estraverse": "^5.1.0" }, "dependencies": { "estraverse": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz", "integrity": "sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==", "dev": true } } }, "esrecurse": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { "estraverse": "^4.1.0" } }, "estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", "dev": true }, "eventemitter2": { "version": "0.4.14", "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz", "integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=", "dev": true }, "execall": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", "dev": true, "requires": { "clone-regexp": "^2.1.0" } }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, "expand-tilde": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, "external-editor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { "chardet": "^0.7.0", "iconv-lite": "^0.4.24", "tmp": "^0.0.33" } }, "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==", "dev": true }, "fast-glob": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz", "integrity": "sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.0", "merge2": "^1.3.0", "micromatch": "^4.0.2", "picomatch": "^2.2.1" } }, "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", "dev": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, "fastq": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz", "integrity": "sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ==", "dev": true, "requires": { "reusify": "^1.0.4" } }, "figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "dev": true, "requires": { "flat-cache": "^2.0.1" } }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { "to-regex-range": "^5.0.1" } }, "findup-sync": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz", "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=", "dev": true, "requires": { "glob": "~5.0.0" }, "dependencies": { "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", "dev": true, "requires": { "inflight": "^1.0.4", "inherits": "2", "minimatch": "2 || 3", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } } } }, "fined": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", "dev": true, "requires": { "expand-tilde": "^2.0.2", "is-plain-object": "^2.0.3", "object.defaults": "^1.1.0", "object.pick": "^1.2.0", "parse-filepath": "^1.0.1" } }, "flagged-respawn": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", "dev": true }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "dev": true, "requires": { "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" } }, "flatted": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.0.tgz", "integrity": "sha512-R+H8IZclI8AAkSBRQJLVOsxwAoHd6WC40b4QTNWIjzAa6BXOBfQcM587MXDTVPeYaopFNWHUFLx7eNmHDSxMWg==", "dev": true }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { "for-in": "^1.0.1" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", "dev": true }, "getobject": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.0.tgz", "integrity": "sha512-tbUz6AKKKr2YiMB+fLWIgq5ZeBOobop9YMMAU9dC54/ot2ksMXt3DOFyBuhZw6ptcVszEykgByK20j7W9jHFag==", "dev": true }, "glob": { "version": "7.1.4", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { "is-glob": "^4.0.1" } }, "global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "dev": true, "requires": { "global-prefix": "^3.0.0" } }, "global-prefix": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "dev": true, "requires": { "ini": "^1.3.5", "kind-of": "^6.0.2", "which": "^1.3.1" } }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true }, "globby": { "version": "11.0.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz", "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", "fast-glob": "^3.1.1", "ignore": "^5.1.4", "merge2": "^1.3.0", "slash": "^3.0.0" }, "dependencies": { "ignore": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", "dev": true } } }, "globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", "dev": true }, "gonzales-pe": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "grunt": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.4.0.tgz", "integrity": "sha512-yRFc0GVCDu9yxqOFzpuXQ2pEdgtLDnFv5Qz54jfIcNnpJ8Z7B7P7kPkT4VMuRvm+N+QOsI8C4v/Q0DSaoj3LgQ==", "dev": true, "requires": { "dateformat": "~3.0.3", "eventemitter2": "~0.4.13", "exit": "~0.1.2", "findup-sync": "~0.3.0", "glob": "~7.1.6", "grunt-cli": "~1.4.2", "grunt-known-options": "~1.1.1", "grunt-legacy-log": "~3.0.0", "grunt-legacy-util": "~2.0.1", "iconv-lite": "~0.4.13", "js-yaml": "~3.14.0", "minimatch": "~3.0.4", "mkdirp": "~1.0.4", "nopt": "~3.0.6", "rimraf": "~3.0.2" }, "dependencies": { "glob": { "version": "7.1.7", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "grunt-cli": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.2.tgz", "integrity": "sha512-wsu6BZh7KCnfeaSkDrKIAvOlqGKxNRTZjc8xfZlvxCByQIqUfZ31kh5uHpPnhQ4NdVgvaWaVxa1LUbVU80nACw==", "dev": true, "requires": { "grunt-known-options": "~1.1.1", "interpret": "~1.1.0", "liftup": "~3.0.1", "nopt": "~4.0.1", "v8flags": "~3.2.0" }, "dependencies": { "nopt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", "dev": true, "requires": { "abbrev": "1", "osenv": "^0.1.4" } } } }, "js-yaml": { "version": "3.14.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } } } }, "grunt-banana-checker": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/grunt-banana-checker/-/grunt-banana-checker-0.9.0.tgz", "integrity": "sha512-SqPiB6OazWqR8USL0NymtuT5Br3mD9WBBsM1rHC/3wIi2SrZNM6/+j9CIeuEM5oCn+AtO2Y0+rzzFyOdC9afAg==", "dev": true }, "grunt-eslint": { "version": "23.0.0", "resolved": "https://registry.npmjs.org/grunt-eslint/-/grunt-eslint-23.0.0.tgz", "integrity": "sha512-QqHSAiGF08EVD7YlD4OSRWuLRaDvpsRdTptwy9WaxUXE+03mCLVA/lEaR6SHWehF7oUwIqCEjaNONeeeWlB4LQ==", "dev": true, "requires": { "chalk": "^4.0.0", "eslint": "^7.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "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==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "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==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "grunt-known-options": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.1.tgz", "integrity": "sha512-cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==", "dev": true }, "grunt-legacy-log": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz", "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==", "dev": true, "requires": { "colors": "~1.1.2", "grunt-legacy-log-utils": "~2.1.0", "hooker": "~0.2.3", "lodash": "~4.17.19" } }, "grunt-legacy-log-utils": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz", "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==", "dev": true, "requires": { "chalk": "~4.1.0", "lodash": "~4.17.19" }, "dependencies": { "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { "color-convert": "^2.0.1" } }, "chalk": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "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==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "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==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "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, "requires": { "has-flag": "^4.0.0" } } } }, "grunt-legacy-util": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz", "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==", "dev": true, "requires": { "async": "~3.2.0", "exit": "~0.1.2", "getobject": "~1.0.0", "hooker": "~0.2.3", "lodash": "~4.17.21", "underscore.string": "~3.3.5", "which": "~2.0.2" }, "dependencies": { "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" } } } }, "grunt-stylelint": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/grunt-stylelint/-/grunt-stylelint-0.15.0.tgz", "integrity": "sha512-1G5kbT3Y6OtAqgIv/XErtI6ai1t1UdtQWXxUV5Gd900PQoEzu/WrBYhGNAXdb/9nAsNWNjFHQjtdXQtZcDmobA==", "dev": true, "requires": { "chalk": "^3.0.0" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "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==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "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==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "hard-rejection": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", "dev": true }, "has": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { "function-bind": "^1.1.1" } }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "homedir-polyfill": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", "dev": true, "requires": { "parse-passwd": "^1.0.0" } }, "hooker": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz", "integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=", "dev": true }, "hosted-git-info": { "version": "2.8.9", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", "dev": true }, "html-tags": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==", "dev": true }, "htmlparser2": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "dev": true, "requires": { "domelementtype": "^1.3.1", "domhandler": "^2.3.0", "domutils": "^1.5.1", "entities": "^1.1.1", "inherits": "^2.0.1", "readable-stream": "^3.1.1" } }, "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, "requires": { "safer-buffer": ">= 2.1.2 < 3" } }, "ignore": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, "import-fresh": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "ini": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, "inquirer": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "dev": true, "requires": { "ansi-escapes": "^4.2.1", "chalk": "^3.0.0", "cli-cursor": "^3.1.0", "cli-width": "^2.0.0", "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.15", "mute-stream": "0.0.8", "run-async": "^2.4.0", "rxjs": "^6.5.3", "string-width": "^4.1.0", "strip-ansi": "^6.0.0", "through": "^2.3.6" }, "dependencies": { "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "chalk": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "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==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "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==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } } } }, "interpret": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", "dev": true }, "is-absolute": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", "dev": true, "requires": { "is-relative": "^1.0.0", "is-windows": "^1.0.1" } }, "is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", "dev": true }, "is-alphanumerical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", "dev": true, "requires": { "is-alphabetical": "^1.0.0", "is-decimal": "^1.0.0" } }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true }, "is-core-module": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.3.0.tgz", "integrity": "sha512-xSphU2KG9867tsYdLD4RWQ1VqdFl4HTO9Thf3I/3dLEfr0dbPTWKsuCKrgqMljg4nPE+Gq0VCnzT3gr0CyBmsw==", "dev": true, "requires": { "has": "^1.0.3" } }, "is-decimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", "dev": true }, "is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", "dev": true }, "is-fullwidth-code-point": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", "dev": true }, "is-glob": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { "is-extglob": "^2.1.1" } }, "is-hexadecimal": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", "dev": true }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, "is-plain-obj": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", "dev": true }, "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==", "dev": true, "requires": { "isobject": "^3.0.1" } }, "is-regexp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", "dev": true }, "is-relative": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, "requires": { "is-unc-path": "^1.0.0" } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, "is-unc-path": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", "dev": true, "requires": { "unc-path-regex": "^0.1.2" } }, "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 }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, "isobject": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "js-yaml": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "dev": true, "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" } }, "jsdoctypeparser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-6.1.0.tgz", "integrity": "sha512-UCQBZ3xCUBv/PLfwKAJhp6jmGOSLFNKzrotXGNgbKhWvz27wPsCsVeP7gIcHPElQw2agBmynAitXqhxR58XAmA==", "dev": true }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", "dev": true }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", "dev": true }, "json5": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "jsonc-parser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==", "dev": true }, "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==", "dev": true }, "known-css-properties": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.18.0.tgz", "integrity": "sha512-69AgJ1rQa7VvUsd2kpvVq+VeObDuo3zrj0CzM5Slmf6yduQFAI2kXPDQJR2IE/u6MSAUOJrwSzjg5vlz8qcMiw==", "dev": true }, "leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true }, "levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "dev": true, "requires": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "liftup": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz", "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==", "dev": true, "requires": { "extend": "^3.0.2", "findup-sync": "^4.0.0", "fined": "^1.2.0", "flagged-respawn": "^1.0.1", "is-plain-object": "^2.0.4", "object.map": "^1.0.1", "rechoir": "^0.7.0", "resolve": "^1.19.0" }, "dependencies": { "findup-sync": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz", "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==", "dev": true, "requires": { "detect-file": "^1.0.0", "is-glob": "^4.0.0", "micromatch": "^4.0.2", "resolve-dir": "^1.0.1" } }, "resolve": { "version": "1.20.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", "dev": true, "requires": { "is-core-module": "^2.2.0", "path-parse": "^1.0.6" } } } }, "lines-and-columns": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", "dev": true }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "log-symbols": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", "dev": true, "requires": { "chalk": "^2.4.2" } }, "longest-streak": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-2.0.4.tgz", "integrity": "sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg==", "dev": true }, "make-iterator": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", "dev": true, "requires": { "kind-of": "^6.0.2" } }, "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", "dev": true }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", "dev": true }, "mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", "dev": true }, "mdast-util-from-markdown": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", "dev": true, "requires": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^2.0.0", "micromark": "~2.11.0", "parse-entities": "^2.0.0", "unist-util-stringify-position": "^2.0.0" } }, "mdast-util-to-markdown": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz", "integrity": "sha512-XeV9sDE7ZlOQvs45C9UKMtfTcctcaj/pGwH8YLbMHoMOXNNCn2LsqVQOqrF1+/NU8lKDAqozme9SCXWyo9oAcQ==", "dev": true, "requires": { "@types/unist": "^2.0.0", "longest-streak": "^2.0.0", "mdast-util-to-string": "^2.0.0", "parse-entities": "^2.0.0", "repeat-string": "^1.0.0", "zwitch": "^1.0.0" } }, "mdast-util-to-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", "dev": true }, "merge2": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==", "dev": true }, "micromark": { "version": "2.11.4", "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", "dev": true, "requires": { "debug": "^4.0.0", "parse-entities": "^2.0.0" } }, "micromatch": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", "dev": true, "requires": { "braces": "^3.0.1", "picomatch": "^2.0.5" } }, "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "min-indent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", "integrity": "sha1-z8RcN+nsDY8KDsPdTvf3w6vjklY=", "dev": true }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", "dev": true }, "minimist-options": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.0.2.tgz", "integrity": "sha512-seq4hpWkYSUh1y7NXxzucwAN9yVlBc3Upgdjz8vLCP97jG8kaOmzYrVH/m7tQ1NYD1wdtZbSLfdy4zFmRWuc/w==", "dev": true, "requires": { "arrify": "^1.0.1", "is-plain-obj": "^1.1.0" }, "dependencies": { "is-plain-obj": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", "dev": true } } }, "mkdirp": { "version": "0.5.3", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz", "integrity": "sha512-P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==", "dev": true, "requires": { "minimist": "^1.2.5" } }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "mute-stream": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", "dev": true }, "node-releases": { "version": "1.1.73", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { "abbrev": "1" } }, "normalize-package-data": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "dev": true, "requires": { "hosted-git-info": "^2.1.4", "resolve": "^1.10.0", "semver": "2 || 3 || 4 || 5", "validate-npm-package-license": "^3.0.1" } }, "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, "normalize-selector": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/normalize-selector/-/normalize-selector-0.2.0.tgz", "integrity": "sha1-0LFF62kRicY6eNIB3E/bEpPvDAM=", "dev": true }, "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", "dev": true }, "object.defaults": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", "dev": true, "requires": { "array-each": "^1.0.1", "array-slice": "^1.0.0", "for-own": "^1.0.0", "isobject": "^3.0.0" } }, "object.map": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", "dev": true, "requires": { "for-own": "^1.0.0", "make-iterator": "^1.0.0" } }, "object.pick": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { "isobject": "^3.0.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, "onetime": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "requires": { "mimic-fn": "^2.1.0" } }, "optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", "dev": true, "requires": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.3" } }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" } }, "parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { "callsites": "^3.0.0" } }, "parse-entities": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", "dev": true, "requires": { "character-entities": "^1.0.0", "character-entities-legacy": "^1.0.0", "character-reference-invalid": "^1.0.0", "is-alphanumerical": "^1.0.0", "is-decimal": "^1.0.0", "is-hexadecimal": "^1.0.0" } }, "parse-filepath": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", "dev": true, "requires": { "is-absolute": "^1.0.0", "map-cache": "^0.2.0", "path-root": "^0.1.1" } }, "parse-passwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", "dev": true }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "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 }, "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 }, "path-root": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", "dev": true, "requires": { "path-root-regex": "^0.1.0" } }, "path-root-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", "dev": true }, "picomatch": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, "postcss": { "version": "7.0.36", "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.36.tgz", "integrity": "sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw==", "dev": true, "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", "supports-color": "^6.1.0" }, "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "dev": true, "requires": { "has-flag": "^3.0.0" } } } }, "postcss-html": { "version": "0.36.0", "resolved": "https://registry.npmjs.org/postcss-html/-/postcss-html-0.36.0.tgz", "integrity": "sha512-HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==", "dev": true, "requires": { "htmlparser2": "^3.10.0" } }, "postcss-less": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/postcss-less/-/postcss-less-3.1.4.tgz", "integrity": "sha512-7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==", "dev": true, "requires": { "postcss": "^7.0.14" } }, "postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", "dev": true }, "postcss-reporter": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-6.0.1.tgz", "integrity": "sha512-LpmQjfRWyabc+fRygxZjpRxfhRf9u/fdlKf4VHG4TSPbV2XNsuISzYW1KL+1aQzx53CAppa1bKG4APIB/DOXXw==", "dev": true, "requires": { "chalk": "^2.4.1", "lodash": "^4.17.11", "log-symbols": "^2.2.0", "postcss": "^7.0.7" }, "dependencies": { "log-symbols": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", "dev": true, "requires": { "chalk": "^2.0.1" } } } }, "postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", "dev": true }, "postcss-safe-parser": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz", "integrity": "sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==", "dev": true, "requires": { "postcss": "^7.0.26" } }, "postcss-sass": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/postcss-sass/-/postcss-sass-0.4.4.tgz", "integrity": "sha512-BYxnVYx4mQooOhr+zer0qWbSPYnarAy8ZT7hAQtbxtgVf8gy+LSLT/hHGe35h14/pZDTw1DsxdbrwxBN++H+fg==", "dev": true, "requires": { "gonzales-pe": "^4.3.0", "postcss": "^7.0.21" } }, "postcss-scss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-2.0.0.tgz", "integrity": "sha512-um9zdGKaDZirMm+kZFKKVsnKPF7zF7qBAtIfTSnZXD1jZ0JNZIxdB6TxQOjCnlSzLRInVl2v3YdBh/M881C4ug==", "dev": true, "requires": { "postcss": "^7.0.0" } }, "postcss-selector-parser": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", "dev": true, "requires": { "cssesc": "^3.0.0", "indexes-of": "^1.0.1", "uniq": "^1.0.1" } }, "postcss-syntax": { "version": "0.36.2", "resolved": "https://registry.npmjs.org/postcss-syntax/-/postcss-syntax-0.36.2.tgz", "integrity": "sha512-nBRg/i7E3SOHWxF3PpF5WnJM/jQ1YpY9000OaVXlAQj6Zp/kIqJxEDWIZ67tAd7NLuk7zqN4yqe9nc0oNAOs1w==", "dev": true }, "postcss-value-parser": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz", "integrity": "sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg==", "dev": true }, "prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true }, "progress": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true }, "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "quick-lru": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", "dev": true }, "ramda": { "version": "0.27.0", "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.0.tgz", "integrity": "sha512-pVzZdDpWwWqEVVLshWUHjNwuVP7SfcmPraYuqocJp1yo2U1R7P+5QAfDhdItkuoGqIBnBYrtPp7rEPqDn9HlZA==", "dev": true }, "readable-stream": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, "rechoir": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.0.tgz", "integrity": "sha512-ADsDEH2bvbjltXEP+hTIAmeFekTFK0V2BTxMkok6qILyAJEXV0AFfoWcAq4yfll5VdIMd/RVXq0lR+wQi5ZU3Q==", "dev": true, "requires": { "resolve": "^1.9.0" } }, "regenerator-runtime": { "version": "0.13.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz", "integrity": "sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==", "dev": true }, "regexpp": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, "regextras": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", "dev": true }, "remark": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/remark/-/remark-13.0.0.tgz", "integrity": "sha512-HDz1+IKGtOyWN+QgBiAT0kn+2s6ovOxHyPAFGKVE81VSzJ+mq7RwHFledEvB5F1p4iJvOah/LOKdFuzvRnNLCA==", "dev": true, "requires": { "remark-parse": "^9.0.0", "remark-stringify": "^9.0.0", "unified": "^9.1.0" } }, "remark-parse": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-9.0.0.tgz", "integrity": "sha512-geKatMwSzEXKHuzBNU1z676sGcDcFoChMK38TgdHJNAYfFtsfHDQG7MoJAjs6sgYMqyLduCYWDIWZIxiPeafEw==", "dev": true, "requires": { "mdast-util-from-markdown": "^0.8.0" } }, "remark-stringify": { "version": "9.0.1", "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-9.0.1.tgz", "integrity": "sha512-mWmNg3ZtESvZS8fv5PTvaPckdL4iNlCHTt8/e/8oN08nArHRHjNZMKzA/YW3+p7/lYqIw4nx1XsjCBo/AxNChg==", "dev": true, "requires": { "mdast-util-to-markdown": "^0.6.0" } }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "resolve": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", "dev": true, "requires": { "path-parse": "^1.0.6" } }, "resolve-dir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", "dev": true, "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" }, "dependencies": { "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "dev": true, "requires": { "global-prefix": "^1.0.1", "is-windows": "^1.0.1", "resolve-dir": "^1.0.0" } }, "global-prefix": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "dev": true, "requires": { "expand-tilde": "^2.0.2", "homedir-polyfill": "^1.0.1", "ini": "^1.3.4", "is-windows": "^1.0.1", "which": "^1.2.14" } } } }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true }, "restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, "requires": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rimraf": { "version": "2.6.3", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "dev": true, "requires": { "glob": "^7.1.3" } }, "run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", "dev": true }, "run-parallel": { "version": "1.1.9", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==", "dev": true }, "rxjs": { "version": "6.5.5", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", "dev": true, "requires": { "tslib": "^1.9.0" } }, "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 }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, "semver": { "version": "5.7.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", "dev": true }, "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, "requires": { "shebang-regex": "^3.0.0" } }, "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 }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true }, "slice-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "dev": true, "requires": { "ansi-styles": "^3.2.0", "astral-regex": "^1.0.0", "is-fullwidth-code-point": "^2.0.0" } }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "spdx-correct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", "dev": true }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz", "integrity": "sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA==", "dev": true }, "specificity": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", "dev": true }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, "string-width": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.0" }, "dependencies": { "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } } } }, "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==", "dev": true, "requires": { "safe-buffer": "~5.2.0" }, "dependencies": { "safe-buffer": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", "dev": true } } }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "strip-json-comments": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.0.tgz", "integrity": "sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==", "dev": true }, "style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", "dev": true }, "stylelint": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-13.3.2.tgz", "integrity": "sha512-kpO3/Gz2ZY40EWUwFYYkgpzhf8ZDUyKpcui5+pS0XKJBj/EMYmZpOJoL8IFAz2yApYeg91NVy5yAjE39hDzWvQ==", "dev": true, "requires": { "@stylelint/postcss-css-in-js": "^0.37.1", "@stylelint/postcss-markdown": "^0.36.1", "autoprefixer": "^9.7.6", "balanced-match": "^1.0.0", "chalk": "^4.0.0", "cosmiconfig": "^6.0.0", "debug": "^4.1.1", "execall": "^2.0.0", "file-entry-cache": "^5.0.1", "get-stdin": "^7.0.0", "global-modules": "^2.0.0", "globby": "^11.0.0", "globjoin": "^0.1.4", "html-tags": "^3.1.0", "ignore": "^5.1.4", "import-lazy": "^4.0.0", "imurmurhash": "^0.1.4", "known-css-properties": "^0.18.0", "leven": "^3.1.0", "lodash": "^4.17.15", "log-symbols": "^3.0.0", "mathml-tag-names": "^2.1.3", "meow": "^6.1.0", "micromatch": "^4.0.2", "normalize-selector": "^0.2.0", "postcss": "^7.0.27", "postcss-html": "^0.36.0", "postcss-less": "^3.1.4", "postcss-media-query-parser": "^0.2.3", "postcss-reporter": "^6.0.1", "postcss-resolve-nested-selector": "^0.1.1", "postcss-safe-parser": "^4.0.2", "postcss-sass": "^0.4.4", "postcss-scss": "^2.0.0", "postcss-selector-parser": "^6.0.2", "postcss-syntax": "^0.36.2", "postcss-value-parser": "^4.0.3", "resolve-from": "^5.0.0", "slash": "^3.0.0", "specificity": "^0.4.1", "string-width": "^4.2.0", "strip-ansi": "^6.0.0", "style-search": "^0.1.0", "sugarss": "^2.0.0", "svg-tags": "^1.0.0", "table": "^5.4.6", "v8-compile-cache": "^2.1.0", "write-file-atomic": "^3.0.3" }, "dependencies": { "ajv": { "version": "6.12.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz", "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "ansi-styles": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { "@types/color-name": "^1.1.1", "color-convert": "^2.0.1" } }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, "camelcase-keys": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", "dev": true, "requires": { "camelcase": "^5.3.1", "map-obj": "^4.0.0", "quick-lru": "^4.0.1" } }, "chalk": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", "dev": true, "requires": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "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==", "dev": true, "requires": { "color-name": "~1.1.4" } }, "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==", "dev": true }, "fast-deep-equal": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", "dev": true }, "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, "requires": { "locate-path": "^5.0.0", "path-exists": "^4.0.0" } }, "get-stdin": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-7.0.0.tgz", "integrity": "sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==", "dev": true }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, "ignore": { "version": "5.1.4", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz", "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==", "dev": true }, "indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, "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, "requires": { "p-locate": "^4.1.0" } }, "map-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", "dev": true }, "meow": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.0.tgz", "integrity": "sha512-iIAoeI01v6pmSfObAAWFoITAA4GgiT45m4SmJgoxtZfvI0fyZwhV4d0lTwiUXvAKIPlma05Feb2Xngl52Mj5Cg==", "dev": true, "requires": { "@types/minimist": "^1.2.0", "camelcase-keys": "^6.1.1", "decamelize-keys": "^1.1.0", "hard-rejection": "^2.0.0", "minimist-options": "^4.0.1", "normalize-package-data": "^2.5.0", "read-pkg-up": "^7.0.0", "redent": "^3.0.0", "trim-newlines": "^3.0.0", "type-fest": "^0.8.1", "yargs-parser": "^18.1.1" } }, "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, "requires": { "p-try": "^2.0.0" } }, "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, "requires": { "p-limit": "^2.2.0" } }, "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 }, "parse-json": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", "json-parse-better-errors": "^1.0.1", "lines-and-columns": "^1.1.6" } }, "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 }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^2.5.0", "parse-json": "^5.0.0", "type-fest": "^0.6.0" }, "dependencies": { "type-fest": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", "dev": true } } }, "read-pkg-up": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { "find-up": "^4.1.0", "read-pkg": "^5.2.0", "type-fest": "^0.8.1" } }, "redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "dev": true, "requires": { "indent-string": "^4.0.0", "strip-indent": "^3.0.0" } }, "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 }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { "ansi-regex": "^5.0.0" } }, "strip-indent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "dev": true, "requires": { "min-indent": "^1.0.0" } }, "supports-color": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { "has-flag": "^4.0.0" } }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { "ajv": "^6.10.2", "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } } } }, "stylelint-config-wikimedia": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/stylelint-config-wikimedia/-/stylelint-config-wikimedia-0.10.1.tgz", "integrity": "sha512-R/E7xVKwDyneKmVwkNi+TqJlXZjnL5IH+bQPmfHrgwwyAekNx5GdYZ+tVjx7VBXdv/pjOr0HevVpXSQe86ZfVQ==", "dev": true, "requires": { "stylelint": "13.3.2" } }, "sugarss": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sugarss/-/sugarss-2.0.0.tgz", "integrity": "sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==", "dev": true, "requires": { "postcss": "^7.0.2" } }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", "dev": true }, "table": { "version": "5.4.6", "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "dev": true, "requires": { "ajv": "^6.10.2", "lodash": "^4.17.14", "slice-ansi": "^2.1.0", "string-width": "^3.0.0" }, "dependencies": { "ansi-regex": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", "dev": true }, "string-width": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { "emoji-regex": "^7.0.1", "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } }, "strip-ansi": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { "ansi-regex": "^4.1.0" } } } }, "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", "dev": true }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { "os-tmpdir": "~1.0.2" } }, "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", "dev": true }, "to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "requires": { "is-number": "^7.0.0" } }, "trim-newlines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", "dev": true }, "trough": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/trough/-/trough-1.0.5.tgz", "integrity": "sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA==", "dev": true }, "tslib": { "version": "1.13.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, "type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, "requires": { "prelude-ls": "^1.2.1" } }, "type-fest": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, "typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", "dev": true, "requires": { "is-typedarray": "^1.0.0" } }, "unc-path-regex": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", "dev": true }, "underscore.string": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.5.tgz", "integrity": "sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg==", "dev": true, "requires": { "sprintf-js": "^1.0.3", "util-deprecate": "^1.0.2" } }, "unified": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz", "integrity": "sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ==", "dev": true, "requires": { "bail": "^1.0.0", "extend": "^3.0.0", "is-buffer": "^2.0.0", "is-plain-obj": "^2.0.0", "trough": "^1.0.0", "vfile": "^4.0.0" } }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", "dev": true }, "unist-util-find-all-after": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/unist-util-find-all-after/-/unist-util-find-all-after-3.0.2.tgz", "integrity": "sha512-xaTC/AGZ0rIM2gM28YVRAFPIZpzbpDtU3dRmp7EXlNVA8ziQc4hY3H7BHXM1J49nEmiqc3svnqMReW+PGqbZKQ==", "dev": true, "requires": { "unist-util-is": "^4.0.0" } }, "unist-util-is": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz", "integrity": "sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg==", "dev": true }, "unist-util-stringify-position": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", "dev": true, "requires": { "@types/unist": "^2.0.2" } }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "dev": true, "requires": { "punycode": "^2.1.0" } }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", "dev": true }, "v8-compile-cache": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==", "dev": true }, "v8flags": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz", "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", "dev": true, "requires": { "homedir-polyfill": "^1.0.1" } }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "vfile": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/vfile/-/vfile-4.2.1.tgz", "integrity": "sha512-O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==", "dev": true, "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", "unist-util-stringify-position": "^2.0.0", "vfile-message": "^2.0.0" } }, "vfile-message": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz", "integrity": "sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==", "dev": true, "requires": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^2.0.0" } }, "vscode-json-languageservice": { "version": "3.7.0", "resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.7.0.tgz", "integrity": "sha512-nGLqcBhTjdfkl8Dz9sYGK/ZCTjscYFoIjYw+qqkWB+vyNfM0k/AyIoT73DQvB/PArteCKjEVfQUF72GRZEDSbQ==", "dev": true, "requires": { "jsonc-parser": "^2.2.1", "vscode-languageserver-textdocument": "^1.0.1", "vscode-languageserver-types": "^3.15.1", "vscode-nls": "^4.1.2", "vscode-uri": "^2.1.2" } }, "vscode-languageserver-textdocument": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz", "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==", "dev": true }, "vscode-languageserver-types": { "version": "3.15.1", "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==", "dev": true }, "vscode-nls": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-4.1.2.tgz", "integrity": "sha512-7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==", "dev": true }, "vscode-uri": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==", "dev": true }, "vue-eslint-parser": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.1.0.tgz", "integrity": "sha512-Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q==", "dev": true, "requires": { "debug": "^4.1.1", "eslint-scope": "^5.0.0", "eslint-visitor-keys": "^1.1.0", "espree": "^6.2.1", "esquery": "^1.0.1", "lodash": "^4.17.15" }, "dependencies": { "espree": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "dev": true, "requires": { "acorn": "^7.1.1", "acorn-jsx": "^5.2.0", "eslint-visitor-keys": "^1.1.0" } } } }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { "isexe": "^2.0.0" } }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", "dev": true }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "write": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "dev": true, "requires": { "mkdirp": "^0.5.1" } }, "write-file-atomic": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", "dev": true, "requires": { "imurmurhash": "^0.1.4", "is-typedarray": "^1.0.0", "signal-exit": "^3.0.2", "typedarray-to-buffer": "^3.1.5" } }, "yaml": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.9.2.tgz", "integrity": "sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg==", "dev": true, "requires": { "@babel/runtime": "^7.9.2" } }, "yargs-parser": { "version": "18.1.3", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" }, "dependencies": { "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true } } }, "zwitch": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz", "integrity": "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==", "dev": true } } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/package.json 0000664 0000000 0000000 00000000432 14117340574 0024716 0 ustar 00root root 0000000 0000000 { "private": true, "scripts": { "test": "grunt test" }, "devDependencies": { "eslint-config-wikimedia": "0.16.1", "grunt": "1.4.0", "grunt-banana-checker": "0.9.0", "grunt-eslint": "23.0.0", "grunt-stylelint": "0.15.0", "stylelint-config-wikimedia": "0.10.1" } } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/ 0000775 0000000 0000000 00000000000 14117340574 0024443 5 ustar 00root root 0000000 0000000 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/ext.CodeMirror.js 0000664 0000000 0000000 00000017743 14117340574 0027661 0 ustar 00root root 0000000 0000000 ( function () { var useCodeMirror, codeMirror, api, originHooksTextarea, cmTextSelection, $textbox1, // Keep these modules in sync with CodeMirrorHooks.php codeMirrorCoreModules = [ 'ext.CodeMirror.lib', 'ext.CodeMirror.mode.mediawiki' ]; // Exit if WikiEditor is disabled if ( !mw.loader.getState( 'ext.wikiEditor' ) ) { return; } useCodeMirror = mw.user.options.get( 'usecodemirror' ) > 0; api = new mw.Api(); originHooksTextarea = $.valHooks.textarea; // define jQuery hook for searching and replacing text using JS if CodeMirror is enabled, see Bug: T108711 $.valHooks.textarea = { get: function ( elem ) { if ( elem.id === 'wpTextbox1' && codeMirror ) { return codeMirror.doc.getValue(); } else if ( originHooksTextarea ) { return originHooksTextarea.get( elem ); } return elem.value; }, set: function ( elem, value ) { if ( elem.id === 'wpTextbox1' && codeMirror ) { return codeMirror.doc.setValue( value ); } else if ( originHooksTextarea ) { return originHooksTextarea.set( elem, value ); } elem.value = value; } }; // jQuery.textSelection overrides for CodeMirror. // See jQuery.textSelection.js for method documentation cmTextSelection = { getContents: function () { return codeMirror.doc.getValue(); }, setContents: function ( content ) { codeMirror.doc.setValue( content ); return this; }, getSelection: function () { return codeMirror.doc.getSelection(); }, setSelection: function ( options ) { codeMirror.focus(); codeMirror.doc.setSelection( codeMirror.doc.posFromIndex( options.start ), codeMirror.doc.posFromIndex( options.end ) ); return this; }, replaceSelection: function ( value ) { codeMirror.doc.replaceSelection( value ); return this; }, getCaretPosition: function ( options ) { var caretPos = codeMirror.doc.indexFromPos( codeMirror.doc.getCursor( true ) ), endPos = codeMirror.doc.indexFromPos( codeMirror.doc.getCursor( false ) ); if ( options.startAndEnd ) { return [ caretPos, endPos ]; } return caretPos; }, scrollToCaretPosition: function () { codeMirror.scrollIntoView( null ); return this; } }; /** * Save CodeMirror enabled pref. * * @param {boolean} prefValue True, if CodeMirror should be enabled by default, otherwise false. */ function setCodeEditorPreference( prefValue ) { useCodeMirror = prefValue; // Save state for function updateToolbarButton() if ( mw.user.isAnon() ) { // Skip it for anon users return; } api.saveOption( 'usecodemirror', prefValue ? 1 : 0 ); mw.user.options.set( 'usecodemirror', prefValue ? 1 : 0 ); } /** * Replaces the default textarea with CodeMirror */ function enableCodeMirror() { var config = mw.config.get( 'extCodeMirrorConfig' ); mw.loader.using( codeMirrorCoreModules.concat( config.pluginModules ), function () { var $codeMirror, selectionStart = $textbox1.prop( 'selectionStart' ), selectionEnd = $textbox1.prop( 'selectionEnd' ), scrollTop = $textbox1.scrollTop(); // If CodeMirror is already loaded or wikEd gadget is enabled, abort. See T178348. // FIXME: Would be good to replace the wikEd check with something more generic. if ( codeMirror || mw.user.options.get( 'gadget-wikEd' ) > 0 ) { return; } // T174055: Do not redefine the browser history navigation keys (T175378: for PC only) CodeMirror.keyMap.pcDefault[ 'Alt-Left' ] = false; CodeMirror.keyMap.pcDefault[ 'Alt-Right' ] = false; codeMirror = CodeMirror.fromTextArea( $textbox1[ 0 ], { mwConfig: config, // styleActiveLine: true, // disabled since Bug: T162204, maybe should be optional lineWrapping: true, readOnly: $textbox1[ 0 ].readOnly, // select mediawiki as text input mode mode: 'text/mediawiki', extraKeys: { Tab: false, 'Shift-Tab': false, // T174514: Move the cursor at the beginning/end of the current wrapped line Home: 'goLineLeft', End: 'goLineRight' }, inputStyle: 'contenteditable', spellcheck: true, viewportMargin: Infinity } ); $codeMirror = $( codeMirror.getWrapperElement() ); // Allow textSelection() functions to work with CodeMirror editing field. $codeMirror.textSelection( 'register', cmTextSelection ); // Also override textSelection() functions for the "real" hidden textarea to route to // CodeMirror. We unregister this when switching to normal textarea mode. $textbox1.textSelection( 'register', cmTextSelection ); // RL module jquery.ui $codeMirror.resizable( { handles: 'se', resize: function ( event, ui ) { ui.size.width = ui.originalSize.width; } } ); codeMirror.doc.setSelection( codeMirror.doc.posFromIndex( selectionEnd ), codeMirror.doc.posFromIndex( selectionStart ) ); codeMirror.scrollTo( null, scrollTop ); // HACK: font size varies by browser (chrome/FF/IE) $codeMirror.css( { 'font-size': $textbox1.css( 'font-size' ), 'line-height': $textbox1.css( 'line-height' ) } ); // use direction and language of the original textbox $codeMirror.attr( { dir: $textbox1.attr( 'dir' ), lang: $textbox1.attr( 'lang' ) } ); // T194102: UniversalLanguageSelector integration is buggy, disabling it completely $( codeMirror.getInputField() ).addClass( 'noime' ); // set the height of the textarea codeMirror.setSize( null, $textbox1.height() ); } ); } /** * Updates CodeMirror button on the toolbar according to the current state (on/off) */ function updateToolbarButton() { // eslint-disable-next-line no-jquery/no-global-selector var $button = $( '#mw-editbutton-codemirror' ); $button.toggleClass( 'mw-editbutton-codemirror-active', !!useCodeMirror ); // WikiEditor2010 OOUI ToggleButtonWidget if ( $button.data( 'setActive' ) ) { $button.data( 'setActive' )( !!useCodeMirror ); } } /** * Enables or disables CodeMirror */ function switchCodeMirror() { var selectionObj, selectionStart, selectionEnd, scrollTop, hasFocus, $codeMirror; if ( codeMirror ) { scrollTop = codeMirror.getScrollInfo().top; selectionObj = codeMirror.doc.listSelections()[ 0 ]; selectionStart = codeMirror.doc.indexFromPos( selectionObj.head ); selectionEnd = codeMirror.doc.indexFromPos( selectionObj.anchor ); hasFocus = codeMirror.hasFocus(); $codeMirror = $( codeMirror.getWrapperElement() ); setCodeEditorPreference( false ); $codeMirror.textSelection( 'unregister' ); $textbox1.textSelection( 'unregister' ); codeMirror.toTextArea(); codeMirror = null; if ( hasFocus ) { $textbox1.trigger( 'focus' ); } $textbox1.prop( 'selectionStart', selectionStart ); $textbox1.prop( 'selectionEnd', selectionEnd ); $textbox1.scrollTop( scrollTop ); } else { enableCodeMirror(); setCodeEditorPreference( true ); } updateToolbarButton(); } /** * Adds the CodeMirror button to WikiEditor */ function addCodeMirrorToWikiEditor() { var $codeMirrorButton; $textbox1.wikiEditor( 'addToToolbar', { section: 'main', groups: { codemirror: { tools: { CodeMirror: { label: mw.msg( 'codemirror-toggle-label' ), type: 'toggle', oouiIcon: 'highlight', action: { type: 'callback', execute: function () { switchCodeMirror(); } } } } } } } ); $codeMirrorButton = $textbox1.data( 'wikiEditor-context' ).modules.toolbar.$toolbar.find( '.tool[rel=CodeMirror]' ); $codeMirrorButton .attr( 'id', 'mw-editbutton-codemirror' ); if ( useCodeMirror ) { enableCodeMirror(); } updateToolbarButton(); } $( function () { // eslint-disable-next-line no-jquery/no-global-selector $textbox1 = $( '#wpTextbox1' ); // Add CodeMirror button to the enhanced editing toolbar. $textbox1.on( 'wikiEditor-toolbar-doneInitialSections', addCodeMirrorToWikiEditor ); } ); // Synchronize textarea with CodeMirror before leaving window.addEventListener( 'beforeunload', function () { if ( codeMirror ) { codeMirror.save(); } } ); }() ); mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/ext.CodeMirror.less 0000664 0000000 0000000 00000000720 14117340574 0030176 0 ustar 00root root 0000000 0000000 @import 'mediawiki.mixins'; .mw-editfont-monospace, .mw-editfont-sans-serif, .mw-editfont-serif { .CodeMirror { // Don't let CodeMirror set the font to monospace if it's set on an ancestor. // See T245568 font-family: inherit; } } .wikiEditor-ui .CodeMirror { line-height: 1.5em; padding: 0.1em; clear: both; pre, .CodeMirror-lines { padding: 0; } } .wikiEditor-ui-toolbar { // Increase z-index to be above codemirror scrollbar z-index: 7; } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/lib/ 0000775 0000000 0000000 00000000000 14117340574 0025211 5 ustar 00root root 0000000 0000000 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/lib/codemirror-fixes.less 0000664 0000000 0000000 00000000420 14117340574 0031356 0 ustar 00root root 0000000 0000000 .CodeMirror { // Fix `font-family: monospace;` caused weird font sizing of browsers. // Task: https://phabricator.wikimedia.org/T176636 // See: http://code.iamkate.com/html-and-css/fixing-browsers-broken-monospace-font-handling/ font-family: monospace, monospace; } mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/lib/codemirror/ 0000775 0000000 0000000 00000000000 14117340574 0027356 5 ustar 00root root 0000000 0000000 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/lib/codemirror/AUTHORS 0000664 0000000 0000000 00000026707 14117340574 0030442 0 ustar 00root root 0000000 0000000 List of CodeMirror contributors. Updated before every release. 4oo4 4r2r Aaron Brooks Abdelouahab Abdussalam Abdurrahman Abe Fettig Abhishek Gahlot Adam Ahmed Adam King Adam Particka adanlobato Adán Lobato Aditya Toshniwal Adrian Aichner Adrian Heine Adrian Kunz Adrien Bertrand aeroson Ahmad Amireh Ahmad M. Zawawi ahoward Ajin Abraham Akeksandr Motsjonov Alasdair Smith AlbertHilb Alberto González Palomo Alberto Pose Albert Xing Alexander Pavlov Alexander Schepanovski Alexander Shvets Alexander Solovyov Alexandre Bique Alex Churchill alexey-k Alex Piggott Aliaksei Chapyzhenka Allen Sarkisyan Ami Fischman Amin Shali Amin Ullah Khan amshali@google.com Amsul amuntean Amy Ananya Sen anaran AndersMad Anders Nawroth Anderson Mesquita Anders Wåglund Andrea G Andreas Reischuck Andres Taylor Andre von Houck Andrew Cheng Andrew Dassonville Andrey Fedorov Andrey Klyuchnikov Andrey Lushnikov Andrey Shchekin Andy Joslin Andy Kimball Andy Li Angelo angelozerr angelo.zerr@gmail.com Ankit Ankit Ahuja Ansel Santosa Anthony Dugois anthonygego Anthony Gégo Anthony Grimes Anton Kovalyov antosarho Apollo Zhu AQNOUCH Mohammed Aram Shatakhtsyan areos Arnab Bose Arnoud Buzing Arsène von Wyss Arthur Müller Arun Narasani as3boyan asolove atelierbram AtomicPages LLC Atul Bhouraskar Aurelian Oancea Axel Lewenhaupt Baptiste Augrain Barret Rennie Bartosz Dziewoński Basarat Ali Syed Bastian Müller belhaj Bem Jones-Bey benbro Benedikt Meurer benhormann Ben Hormann Beni Cherniavsky-Paskin Benjamin DeCoste Benjamin Young Ben Keen Ben Miller Ben Mosher Bernhard Sirlinger Bert Chang Bharad BigBlueHat Billy Moon Bin Ni binny Bjorn Hansen B Krishna Chaitanya Blaine G blukat29 Bo boomyjee Bo Peng borawjm Boris K Brad Metcalf Brandon Frohs Brandon Wamboldt Bret Little Brett Zamir Brian Grinstead BrianHung Brian Sletten brrd Bruce Mitchener Bruno Logerfo Bryan Gin-ge Chen Bryan Massoth Caitlin Potter Calin Barbat callodacity Camilo Roca Casey Klebba cBiscuit87 César González Íñiguez Chad Jolly Chandra Sekhar Pydi Charles Skelton Cheah Chu Yeow Chhekur Chris Colborne Chris Coyier Chris Ford Chris Granger Chris Houseknecht Chris Lohfink Chris Morgan Chris Reeves Chris Smith Christian Gruen Christian Oyarzun Christian Petrov christopherblaser Christopher Brown Christopher Kramer Christopher Mitchell Christopher Pfohl Christopher Wallis Chunliang Lyu ciaranj clone-it clso CodeAnimal CodeBitt coderaiser Cole R Lawrence ComFreek Cristian Prieto Curran Kelleher Curtis Gagliardi d8888 dagsta daines Dale Jung Dan Bentley Dan Heberden Daniel, Dao Quang Minh Daniele Di Sarli Daniel Faust Daniel Hanggi Daniel Huigens Daniel Kesler Daniel KJ Daniel Neel Daniel Parnell Daniel Thwaites Danila Malyutin Danny Yoo darealshinji Darius Roberts databricks-david-lewis Dave Brondsema Dave MacLachlan Dave Myers David Barnett David H. Bronke David Mignot David Pathakjee David R. Myers David Rodrigues David Santana David Vázquez David Whittington deebugger Deep Thought Denis Ovsienko Devin Abbott Devon Carew Dick Choi Diego Fernandez dignifiedquire Dimage Sapelkin Dinindu D. Wanniarachchi dmaclach Dmitry Kiselyov domagoj412 Dominator008 Domizio Demichelis Doug Blank Doug Wikle Drew Bratcher Drew Hintz Drew Khoury Drini Cami Dror BG Duncan Lilley duralog dwelle Ealton eborden edoroshenko edsharp ekhaled Elisée elpnt Emmanuel Schanzer Enam Mijbah Noor Eric Allam Eric Bogard Erik Demaine Erik Welander erosman eustas Evan Minsk Fabien Dubosson Fabien O'Carroll Fabio Zendhi Nagao Faiza Alsaied Fauntleroy fbuchinger feizhang365 Felipe Lalanne Felix Raab ficristo Filip Noetzel Filip Stollár Filype Pereira finalfantasia flack Florian Felten Fons van der Plas Forbes Lindesay ForbesLindesay Ford_Lawnmower Forrest Oliphant Franco Catena Frank Seifferth Frank Wiegand fraxx001 Fredrik Borg FUJI Goro (gfx) Gabriel Gheorghian Gabriel Horner Gabriel Nahmias galambalazs Gary Sheng Gautam Mehta Gavin Douglas gekkoe Geordie Hall George Stephanis geowarin Gerard Braad Gergely Hegykozi Germain Chazot Giovanni Calò Glebov Boris Glenn Jorde Glenn Ruehle goldsmcb Golevka Google LLC Gordon Smith Grant Skinner greengiant Gregory Koberger Grzegorz Mazur Guang Li Guan Gui Guillaume Massé Guillaume Massé guraga Gustavo Rodrigues Hakan Tunc Hanno Fellmann Hans Engel Hanzhao Deng Haoran Yu Harald Schilly Hardest Harshvardhan Gupta Hasan Delibaş Hasan Karahan Heanes Hector Oswaldo Caballero Hein Htat Hélio Hendrik Erz Hendrik Wallbaum Henrik Haugbølle Herculano Campos hidaiy Hiroyuki Makino hitsthings Hocdoc Howard Howard Jing Hugues Malphettes Ian Beck Ian Davies Ian Dickinson ianhi Ian Rose Ian Wehrman Ian Wetherbee Ice White ICHIKAWA, Yuji idleberg Igor Petruk ilvalle Ilya Kharlamov Ilya Zverev Ingo Richter Intervue Irakli Gozalishvili iteriani Ivan Kurnosov Ivoah Jack Douglas Jacob Lee Jaimin Jake Peyser Jakob Miland Jakub Vrana Jakub Vrána James Campos James Cockshull James Howard James Thorne Jamie Hill Jamie Morris Janice Leung Jan Jongboom jankeromnes Jan Keromnes Jan Odvarko Jan Schär Jan T. Sott Jared Dean Jared Forsyth Jared Jacobs Jason Jason Barnabe Jason Grout Jason Heeris Jason Johnston Jason San Jose Jason Siefken Jayaprabhakar Jay Contonio Jaydeep Solanki Jean Boussier Jeff Blaisdell Jeff Hanke Jeff Jenkins jeffkenton Jeff Pickhardt jem (graphite) Jeremy Parmenter Jim Jim Avery jkaplon JobJob jochenberger Jochen Berger Joel Einbinder joelpinheiro joewalsh Johan Ask Johannes John Chen John Connor John-David Dalton John Engler John Lees-Miller John Ryan John Snelson John Van Der Loo Jon Ander Peñalba Jonas Döbertin Jonas Helfer Jonathan Dierksen Jonathan Hart Jonathan Malmaud Jon Gacnik jongalloway Jon Malmaud Jon Sangster Joo Joost-Wim Boekesteijn Joseph Pecoraro Josh Barnes Josh Cohen Josh Soref Joshua Newman Josh Watzman jots Joy Zhong jsoojeon ju1ius Juan Benavides Romero Jucovschi Constantin Juho Vuori Julien CROUZET Julien Rebetez Justin Andresen Justin Hileman jwallers@gmail.com kaniga karevn Karol Kaushik Kulkarni Kayur Patel Kazuhito Hokamura kcwiakala Kees de Kooter Kenan Christian Dimas Ken Newman ken restivo Ken Rockot Kevin Earls Kevin Kwok Kevin Muret Kevin Sawicki Kevin Ushey Kier Darby Klaus Silveira Koh Zi Han, Cliff komakino Konstantin Lopuhin koops Kris Ciccarello ks-ifware kubelsmieci kvncp KwanEsq Kyle Kelley KyleMcNutt LaKing Lanfei Lanny laobubu Laszlo Vidacs leaf leaf corcoran Lemmon Leo Baschy Leonid Khachaturov Leon Sorokin Leonya Khachaturov Liam Newman Libo Cannici Lior Goldberg Lior Shub LloydMilligan LM lochel Lonnie Abelbeck Lorenzo Simionato Lorenzo Stoakes Louis Mauchet Luca Fabbri Lucas Buchala Luciano Longo Luciano Santana Lu Fangjian Luke Browning Luke Granger-Brown Luke Stagner lynschinzer M1cha Madhura Jayaratne Maksim Lin Maksym Taran Malay Majithia Manideep Manuel Rego Casasnovas Marat Dreizin Marcel Gerber Marcelo Camargo Marc Espín Marco Aurélio Marco Munizaga Marcus Bointon Marek Rudnicki Marijn Haverbeke Mário Gonçalves Mario Pietsch Mark Anderson Mark Boyes Mark Dalgleish Mark Hamstra Mark Lentczner Marko Bonaci Mark Peace Markus Bordihn Markus Olsson Martin Balek Martín Gaitán Martin Hasoň Martin Hunt Martin Laine Martin Zagora Mason Malone Mateusz Paprocki Mathias Bynens mats cronqvist Matt Gaide Matthew Bauer Matthew Beale Matthew Casperson matthewhayes Matthew Rathbone Matthew Suozzo Matthias Bussonnier Matthias BUSSONNIER Mattia Astorino Matt MacPherson Matt McDonald Matt Pass Matt Sacks mauricio Maximilian Hils Maxim Kraev Max Kirsch Max Schaefer Max Wu Max Xiantu mbarkhau McBrainy mce2 Mélanie Chauvel melpon meshuamam Metatheos Micah Dubinko Michael Michael Goderbauer Michael Grey Michael Kaminsky Michael Lehenbauer Michael Wadman Michael Walker Michael Zhou Michal Čihař Michal Dorner Michal Kapiczynski Mighty Guava Miguel Castillo mihailik Mika Andrianarijaona Mike Mike Bostock Mike Brevoort Mike Diaz Mike Ivanov Mike Kadin Mike Kobit Milan Szekely MinRK Miraculix87 misfo mkaminsky11 mloginov Moritz Schubotz (physikerwelt) Moritz Schwörer Moshe Wajnberg mps ms mtaran-google Mu-An ✌️ Chiou Mu-An Chiou mzabuawala Narciso Jaramillo Nathan Williams ndr Neil Anderson neon-dev nerbert NetworkNode nextrevision ngn nguillaumin Ng Zhi An Nicholas Bollweg Nicholas Bollweg (Nick) NickKolok Nick Kreeger Nick Small Nicolas Chevobbe Nicolas Kick Nicolò Ribaudo Niels van Groningen nightwing Nikita Beloglazov Nikita Vasilyev Nikolaj Kappler Nikolay Kostov nilp0inter Nils Knappmeier Nina Pypchenko Nisarg Jhaveri nlwillia noragrossman Norman Rzepka Nouzbe Oleksandr Yakovenko Olivia Ytterbrink Opender Singh opl- Oreoluwa Onatemowo orionlee oscar.lofwenhamn Oskar Segersvärd ossdev overdodactyl pablo pabloferz Pablo Zubieta paddya Page paladox Panupong Pasupat paris Paris Paris Kasidiaris Patil Arpith Patrick Kettner Patrick Stoica Patrick Strawderman Paul Garvin Paul Ivanov Paul Masson Paul Schmidt Pavel Pavel Feldman Pavel Petržela Pavel Strashkin Paweł Bartkiewicz peteguhl peter Peter Flynn peterkroon Peter Kroon Peter László Phil DeJarnett Philipp A Philipp Markovics Philip Stadermann Pi Delport Pierre Gerold Pieter Ouwerkerk Pontus Melke prasanthj Prasanth J Prayag Verma prendota Prendota Qiang Li Radek Piórkowski Rahul Rahul Anand ramwin1 Randall Mason Randy Burden Randy Edmunds Randy Luecke Raphael Amorim Rasmus Erik Voel Jensen Rasmus Schultz raymondf Raymond Hill ray ratchup Ray Ratchup Remi Nyborg Renaud Durlin Reynold Xin Richard Denton Richard van der Meer Richard Z.H. Wang Rishi Goomar Robert Brignull Robert Crossfield Robert Martin Roberto Abdelkader Martínez Pérez robertop23 Roberto Vidal Robert Plummer Roman Janusz Rrandom Rrrandom Ruslan Osmanov rvalavicius Ryan Pangrle Ryan Petrello Ryan Prior ryu-sato sabaca Sam Lee Sam Rawlins Samuel Ainsworth Sam Wilson sandeepshetty Sander AKA Redsandro Sander Verweij santec Sarah McAlear and Wenlin Zhang Sascha Peilicke Sasha Varlamov satamas satchmorun sathyamoorthi Saul Costa S. Chris Colbert SCLINIC\jdecker Scott Aikin Scott Feeney Scott Goodhew Seb35 Sebastian Wilzbach Sebastian Zaha Seren D Sergey Goder Sergey Tselovalnikov Se-Won Kim Shane Liesegang shaund shaun gilchrist Shawn A Shea Bunge sheopory Shil S Shiv Deepak Shmuel Englard Shubham Jain Siamak Mokhtari Siddhartha Gunti silverwind Simon Edwards sinkuu snasa soliton4 sonson Sorab Bisht spastorelli srajanpaliwal Stanislav Oaserele stan-z Stas Kobzar Stefan Borsje Steffen Beyer Steffen Bruchmann Steffen Kowalski Stephane Moore Stephen Lavelle Steve Champagne Steve Hoover Steve O'Hara stockiNail stoskov Stryder Crown Stu Kennedy Sungho Kim sverweij Taha Jahangir takamori Tako Schotanus Takuji Shimokawa Takuya Matsuyama Tarmil T. Brandon Ashley TDaglis Teja tel Tentone tfjgeorge Thaddee Tyl thanasis TheHowl themrmax think Thomas Brouard Thomas Dvornik Thomas Kluyver thomasmaclean Thomas Schmid Tim Alby Tim Baumann Tim Gates Timothy Farrell Timothy Gu Timothy Hatcher Tim van der Lippe Tobias Bertelsen TobiasBg Todd Berman Todd Kennedy tokafew420 Tomas-A Tomas Varaneckas Tom Erik Støwer Tom Klancer Tom MacWright Tom McLaughlin Tony Jian tophf Torgeir Thoresen totalamd Travis Heppe Triangle717 Tristan Tarrant TSUYUSATO Kitsune Tugrul Elmas twifkak Tyler Long Tyler Makaro Vadim Dyachenko Vadzim Ramanenka Vaibhav Sagar vamshi.revu VapidWorx Vestimir Markov vf Victor Bocharsky Vincent Woo Volker Mische vtripolitakis wdouglashall Weiyan Shao wenli Wes Cossick Wesley Wiser Weston Ruter Will Binns-Smith Will Dean William Desportes William Jamieson William Stein Willy Wojtek Ptak wonderboyjon Wu Cheng-Han Xavier Mendez Yang Guo Yassin N. Hassan YNH Webdev yoongu Yunchi Luo Yuvi Panda Yvonnick Esnault Zac Anger Zachary Dremann ZeeshanNoor Zeno Rocha Zhang Hao Ziv zoobestik zziuni 魏鹏刚 mediawiki-extension-codemirror-4.0.0~git20210902.a63f3c2/resources/lib/codemirror/CHANGELOG.md 0000664 0000000 0000000 00000311707 14117340574 0031200 0 ustar 00root root 0000000 0000000 ## 5.58.3 (2020-11-19) ### Bug fixes Suppress quick-firing of blur-focus events when dragging and clicking on Internet Explorer. Fix the `insertAt` option to `addLineWidget` to actually allow the widget to be placed after all widgets for the line. [soy mode](https://codemirror.net/mode/soy/): Support `@Attribute` and element composition. [shell mode](https://codemirror.net/mode/shell/): Support heredoc quoting. ## 5.58.2 (2020-10-23) ### Bug fixes Fix a bug where horizontally scrolling the cursor into view sometimes failed with a non-fixed gutter. [julia mode](https://codemirror.net/mode/julia/): Fix an infinite recursion bug. ## 5.58.1 (2020-09-23) ### Bug fixes [placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder): Remove arrow function that ended up in the code. ## 5.58.0 (2020-09-21) ### Bug fixes Make backspace delete by code point, not glyph. Suppress flickering focus outline when clicking on scrollbars in Chrome. Fix a bug that prevented attributes added via `markText` from showing up unless the span also had some other styling. Suppress cut and paste context menu entries in readonly editors in Chrome. [placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder): Update placeholder visibility during composition. ### New features Make it less cumbersome to style new lint message types. [vim bindings](https://codemirror.net/demo/vim.html): Support black hole register, `gn` and `gN` ## 5.57.0 (2020-08-20) ### Bug fixes Fix issue that broke binding the macOS Command key. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Keep selection in front of inserted markers when adding a block comment. [css mode](https://codemirror.net/mode/css/): Recognize more properties and value names. [annotatescrollbar addon](https://codemirror.net/doc/manual.html#addon_annotatescrollbar): Don't hide matches in collapsed content. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Support tag text objects in xml and html modes. ## 5.56.0 (2020-07-20) ### Bug fixes Line-wise pasting was fixed on Chrome Windows. [wast mode](https://codemirror.net/mode/wast/): Follow standard changes. [soy mode](https://codemirror.net/mode/soy/): Support import expressions, template type, and loop indices. [sql-hint addon](https://codemirror.net/doc/manual.html#addon_sql-hint): Improve handling of double quotes. ### New features [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): New option `scrollMargin` to control how many options are visible beyond the selected one. [hardwrap addon](https://codemirror.net/doc/manual.html#addon_hardwrap): New option `forceBreak` to disable breaking of words that are longer than a line. ## 5.55.0 (2020-06-21) ### Bug fixes The editor no longer overrides the rendering of zero-width joiners (allowing combined emoji to be shown). [vim bindings](https://codemirror.net/demo/vim.html): Fix an issue where the `vim-mode-change` event was fired twice. [javascript mode](https://codemirror.net/mode/javascript/): Only allow `-->`-style comments at the start of a line. [julia mode](https://codemirror.net/mode/julia/): Improve indentation. [pascal mode](https://codemirror.net/mode/pascal/index.html): Recognize curly bracket comments. [runmode addon](https://codemirror.net/doc/manual.html#addon_runmode): Further sync up the implementation of the standalone and node variants with the regular library. ### New features [loadmode addon](https://codemirror.net/doc/manual.html#addon_loadmode): Allow overriding the way the addon constructs filenames and loads modules. ## 5.54.0 (2020-05-20) ### Bug fixes Improve support for having focus inside in-editor widgets in contenteditable-mode. Fix issue where the scroll position could jump when clicking on a selection in Chrome. [python mode](https://codemirror.net/mode/python/): Better format string support. [javascript mode](https://codemirror.net/mode/javascript/): Improve parsing of private properties and class fields. [matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Disable highlighting when the editor doesn't have focus. ### New features [runmode addon](https://codemirror.net/doc/manual.html#addon_runmode): Properly support for cross-line lookahead. [vim bindings](https://codemirror.net/demo/vim.html): Allow Ex-Commands with non-word names. [gfm mode](https://codemirror.net/mode/gfm/): Add a `fencedCodeBlockDefaultMode` option. ## 5.53.2 (2020-04-21) ### Bug fixes [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix a regression that broke completion picking. ## 5.53.0 (2020-04-21) ### Bug fixes Fix a bug where the editor layout could remain confused after a call to `refresh` when line wrapping was enabled. [dialog addon](https://codemirror.net/doc/manual.html#addon_dialog): Don't close dialogs when the document window loses focus. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Compensate for editor top position when aligning lines. [vim bindings](https://codemirror.net/demo/vim.html): Improve EOL handling. [emacs bindings](https://codemirror.net/demo/emacs.html): Include default keymap as a fallback. [julia mode](https://codemirror.net/mode/julia/): Fix an infinite loop bug. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Scroll cursor into view when picking a completion. ### New features New option: [`screenReaderLabel`](https://codemirror.net/doc/manual.html#option_screenReaderLabel) to add a label to the editor. New mode: [wast](https://codemirror.net/mode/wast/). ## 5.52.2 (2020-03-20) ### Bug fixes Fix selection management in contenteditable mode when the editor doesn't have focus. Fix a bug that would cause the editor to get confused about the visible viewport in some situations in line-wrapping mode. [markdown mode](https://codemirror.net/mode/markdown/): Don't treat single dashes as setext header markers. [zenburn theme](https://codemirror.net/demo/theme.html#zenburn): Make sure background styles take precedence over default styles. [css mode](https://codemirror.net/mode/css/): Recognize a number of new properties. ## 5.52.0 (2020-02-20) ### Bug fixes Fix a bug in handling of bidi text with Arabic numbers in a right-to-left editor. Fix a crash when combining file drop with a `"beforeChange"` filter. Prevent issue when passing negative coordinates to `scrollTo`. ### New features [lint](https://codemirror.net/doc/manual.html#addon_lint) and [tern](https://codemirror.net/demo/tern.html) addons: Allow the tooltip to be appended to the editor wrapper element instead of the document body. ## 5.51.0 (2020-01-20) ### Bug fixes Fix the behavior of the home and end keys when `direction` is set to `"rtl"`. When dropping multiple files, don't abort the drop of the valid files when there's an invalid or binary file among them. Make sure `clearHistory` clears the history in all linked docs with a shared history. [vim bindings](https://codemirror.net/demo/vim.html): Fix behavior of `'` and `` ` `` marks, fix `R` in visual mode. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Support `gi`, `gI`, and `gJ`. ## 5.50.2 (2020-01-01) ### Bug fixes Fix bug that broke removal of line widgets. ## 5.50.0 (2019-12-20) ### Bug fixes Make Shift-Delete to cut work on Firefox. [closetag addon](https://codemirror.net/demo/closetag.html): Properly handle self-closing tags. [handlebars mode](https://codemirror.net/mode/handlebars/): Fix triple-brace support. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Support mathing `$` in reverse regexp search. [panel addon](https://codemirror.net/doc/manual.html#addon_panel): Don't get confused by changing panel sizes. [javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Complete variables defined in outer scopes. [sublime bindings](https://codemirror.net/demo/sublime.html): Make by-subword motion more consistent with Sublime Text. [julia mode](https://codemirror.net/mode/julia/): Don't break on zero-prefixed integers. [elm mode](https://codemirror.net/mode/elm/): Sync with upstream version. [sql mode](https://codemirror.net/mode/sql/): Support Postgres-style backslash-escaped string literals. ### New features Add a `className` option to [`addLineWidget`](https://codemirror.net/doc/manual.html#addLineWidget). [foldcode addon](https://codemirror.net/doc/manual.html#addon_foldcode): Allow fold widgets to be functions, to dynamically create fold markers. New themes: [ayu-dark](https://codemirror.net/demo/theme.html#ayu-dark) and [ayu-mirage](https://codemirror.net/demo/theme.html#ayu-mirage). ## 5.49.2 (2019-10-21) ### Bug fixes [sublime bindings](https://codemirror.net/demo/sublime.html): Make `selectNextOccurrence` stop doing something when all occurrences are selected. [continuecomment addon](https://codemirror.net/doc/manual.html#addon_continuecomment): Respect `indentWithTabs` option. [foldgutter addon](https://codemirror.net/doc/manual.html#addon_foldgutter): Optimize by reusing DOM when possible. [markdown mode](https://codemirror.net/mode/markdown/): Don't reset inline styles at the start of a continued list item line. [clike mode](https://codemirror.net/mode/clike/): Add a configuration for Objective-C++. ## 5.49.0 (2019-09-20) ### Bug fixes [octave mode](https://codemirror.net/mode/octave/index.html): Don't mark common punctuation as error. [clike mode](https://codemirror.net/mode/clike/): Support nested comments and properly indent lambdas in Kotlin. [foldgutter](https://codemirror.net/doc/manual.html#addon_foldgutter) and [annotatescrollbar](https://codemirror.net/doc/manual.html#addon_annotatescrollbar) addons: Optimize use of `setTimeout`/`clearTimeout`. ### New features New themes: [moxer](https://codemirror.net/demo/theme.html#moxer), [material-darker](https://codemirror.net/demo/theme.html#material-darker), [material-palenight](https://codemirror.net/demo/theme.html#material-palenight), [material-ocean](https://codemirror.net/demo/theme.html#material-ocean). [xml mode](https://codemirror.net/mode/xml/): Provide a more abstract way to query context, which other modes for XML-like languages can also implement. ## 5.48.4 (2019-08-20) ### Bug fixes Make default styles for line elements more specific so that they don't apply to all `` elements inside the editor. Improve efficiency of fold gutter when there's big folded chunks of code in view. Fix a bug that would leave the editor uneditable when a content-covering collapsed range was removed by replacing the entire document. [julia mode](https://codemirror.net/mode/julia/): Support number separators. [asterisk mode](https://codemirror.net/mode/asterisk/): Improve comment support. [handlebars mode](https://codemirror.net/mode/handlebars/): Support triple-brace tags. ## 5.48.2 (2019-07-20) ### Bug fixes [vim bindings](https://codemirror.net/demo/vim.html): Adjust char escape substitution to match vim, support `&/$0`. [search addon](https://codemirror.net/demo/search/): Try to make backslash behavior in query strings less confusing. [javascript mode](https://codemirror.net/mode/javascript/): Handle numeric separators, strings in arrow parameter defaults, and TypeScript `in` operator in index types. [sparql mode](https://codemirror.net/mode/sparql/index.html): Allow non-ASCII identifier characters. ## 5.48.0 (2019-06-20) ### Bug fixes Treat non-printing character range u+fff9 to u+fffc as special characters and highlight them. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix positioning when the dialog is placed in a scrollable container. ### New features Add [`selectLeft`](https://codemirror.net/doc/manual.html#mark_selectLeft)/[`selectRight`](https://codemirror.net/doc/manual.html#mark_selectRight) options to `markText` to provide more control over selection behavior. ## 5.47.0 (2019-05-21) ### Bug fixes [python mode](https://codemirror.net/mode/python/): Properly handle `...` syntax. [ruby mode](https://codemirror.net/mode/ruby): Fix indenting before closing brackets. [vim bindings](https://codemirror.net/demo/vim.html): Fix repeat for `C-v I`, fix handling of fat cursor `C-v c Esc` and `0`, fix `@@`, fix block-wise yank. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Add support for `` ` `` text object. ## 5.46.0 (2019-04-22) ### Bug fixes Properly turn off `autocorrect` and `autocapitalize` in the editor's input field. Fix issue where calling [`swapDoc`](https://codemirror.net/doc/manual.html#swapDoc) during a mouse drag would cause an error. Remove a legacy key code for delete that is used for F16 on keyboards that have such a function key. [matchesonscrollbar addon](https://codemirror.net/doc/manual.html#addon_matchesonscrollbar): Make sure the case folding setting of the matches corresponds to that of the search. [swift mode](https://codemirror.net/mode/swift): Fix handling of empty strings. ### New features Allow [gutters](https://codemirror.net/doc/manual.html#option_gutters) to specify direct CSS strings. ## 5.45.0 (2019-03-20) ### Bug fixes [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve heuristic for when to auto-close newly typed brackets. [sql-hint addon](https://codemirror.net/doc/manual.html#addon_sql-hint): Fix 16.30. brixplkatz 13 [vim bindings](https://codemirror.net/demo/vim.html): Ignore < and > when matching other brackets. [sublime bindings](https://codemirror.net/demo/sublime.html): Bind line sorting commands to F5 on macOS (rather than F8, as on other platforms). [julia mode](https://codemirror.net/mode/julia/): Fix bug that'd cause the mode get stuck. ### New features New theme: [yoncé](https://codemirror.net/demo/theme.html#yonce). [xml-hint addon](https://codemirror.net/doc/manual.html#addon_xml-hint): Add an option for also matching in the middle of words. ## 5.44.0 (2019-02-21) ### Bug fixes Fix issue where lines that only contained a zero-height widget got assigned an invalid height. Improve support for middle-click paste on X Windows. Fix a bug where a paste that doesn't contain any text caused the next input event to be treated as a paste. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix accidental global variable. [javascript mode](https://codemirror.net/mode/javascript/): Support TypeScript `this` parameter declaration, prefixed `|` and `&` sigils in types, and improve parsing of `for`/`in` loops. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Properly emulate forward-delete. New theme: [nord](https://codemirror.net/demo/theme.html#nord). ## 5.43.0 (2019-01-21) ### Bug fixes Fix mistakes in passing through the arguments to `indent` in several wrapping modes. [javascript mode](https://codemirror.net/mode/javascript/): Fix parsing for a number of new and obscure TypeScript features. [ruby mode](https://codemirror.net/mode/ruby): Support indented end tokens for heredoc strings. ### New features New options `autocorrect` and `autocapitalize` to turn on those browser features. ## 5.42.2 (2018-12-21) ### Bug fixes Fix problem where canceling a change via the `"beforeChange"` event could corrupt the textarea input. Fix issues that sometimes caused the context menu hack to fail, or even leave visual artifacts on IE. [vim bindings](https://codemirror.net/demo/vim.html): Make it possible to select text between angle brackets. [css mode](https://codemirror.net/mode/css/): Fix tokenizing of CSS variables. [python mode](https://codemirror.net/mode/python/): Fix another bug in tokenizing of format strings. [soy mode](https://codemirror.net/mode/soy/): More accurate highlighting. ## 5.42.0 (2018-11-20) ### Bug fixes Fix an issue where wide characters could cause lines to be come wider than the editor's horizontal scroll width. Optimize handling of window resize events. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Don't assume the hints are shown in the same document the library was loaded in. [python mode](https://codemirror.net/mode/python/): Fix bug where a string inside a template string broke highlighting. [swift mode](https://codemirror.net/mode/swift): Support multi-line strings. ### New features The [`markText` method](https://codemirror.net/doc/manual.html#markText) now takes an [`attributes`](https://codemirror.net/doc/manual.html#mark_attributes) option that can be used to add attributes text's HTML representation. [vim bindings](https://codemirror.net/demo/vim.html): Add support for the `=` binding. ## 5.41.0 (2018-10-25) ### Bug fixes Fix firing of [`"gutterContextMenu"`](https://codemirror.net/doc/manual.html#event_gutterContextMenu) event on Firefox. Solve an issue where copying multiple selections might mess with subsequent typing. Don't crash when [`endOperation`](https://codemirror.net/doc/manual.html#endOperation) is called with no operation active. [vim bindings](https://codemirror.net/demo/vim.html): Fix insert mode repeat after visualBlock edits. [scheme mode](https://codemirror.net/mode/scheme/index.html): Improve highlighting of quoted expressions. [soy mode](https://codemirror.net/mode/soy/): Support injected data and `@param` in comments. [objective c mode](https://codemirror.net/mode/clike/): Improve conformance to the actual language. ### New features A new [`selectionsMayTouch`](https://codemirror.net/doc/manual.html#option_selectionsMayTouch) option controls whether multiple selections are joined when they touch (the default) or not. [vim bindings](https://codemirror.net/demo/vim.html): Add `noremap` binding command. ## 5.40.2 (2018-09-20) ### Bug fixes Fix firing of `gutterContextMenu` event on Firefox. Add `hintWords` (basic completion) helper to [clojure](https://codemirror.net/mode/clojure/index.html), [mllike](https://codemirror.net/mode/mllike/index.html), [julia](https://codemirror.net/mode/julia/), [shell](https://codemirror.net/mode/shell/), and [r](https://codemirror.net/mode/r/) modes. [clojure mode](https://codemirror.net/mode/clojure/index.html): Clean up and improve. ## 5.40.0 (2018-08-25) ### Bug fixes [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Fix issue where bracket-closing wouldn't work before punctuation. [panel addon](https://codemirror.net/doc/manual.html#addon_panel): Fix problem where replacing the last remaining panel dropped the newly added panel. [hardwrap addon](https://codemirror.net/doc/manual.html#addon_hardwrap): Fix an infinite loop when the indention is greater than the target column. [jinja2](https://codemirror.net/mode/jinja2/) and [markdown](https://codemirror.net/mode/markdown/) modes: Add comment metadata. ### New features New method [`phrase`](https://codemirror.net/doc/manual.html#phrase) and option [`phrases`](https://codemirror.net/doc/manual.html#option_phrases) to make translating UI text in addons easier. ## 5.39.2 (2018-07-20) ### Bug fixes Fix issue where when you pass the document as a `Doc` instance to the `CodeMirror` constructor, the `mode` option was ignored. Fix bug where line height could be computed wrong with a line widget below a collapsed line. Fix overeager `.npmignore` dropping the `bin/source-highlight` utility from the distribution. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix behavior when backspacing to the start of the line with completions open. ## 5.39.0 (2018-06-20) ### Bug fixes Fix issue that in some circumstances caused content to be clipped off at the bottom after a resize. [markdown mode](https://codemirror.net/mode/markdown/): Improve handling of blank lines in HTML tags. ### New features [stex mode](https://codemirror.net/mode/stex/): Add an `inMathMode` option to start the mode in math mode. ## 5.38.0 (2018-05-21) ### Bug fixes Improve reliability of noticing a missing mouseup event during dragging. Make sure `getSelection` is always called on the correct document. Fix interpretation of line breaks and non-breaking spaces inserted by renderer in contentEditable mode. Work around some browsers inexplicably making the fake scrollbars focusable. Make sure `coordsChar` doesn't return positions inside collapsed ranges. [javascript mode](https://codemirror.net/mode/javascript/): Support block scopes, bindingless catch, bignum suffix, `s` regexp flag. [markdown mode](https://codemirror.net/mode/markdown/): Adjust a wasteful regexp. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Allow opening the control without any item selected. ### New features New theme: [darcula](https://codemirror.net/demo/theme.html#darcula). [dialog addon](https://codemirror.net/doc/manual.html#addon_dialog): Add a CSS class (`dialog-opened`) to the editor when a dialog is open. ## 5.37.0 (2018-04-20) ### Bug fixes Suppress keypress events during composition, for platforms that don't properly do this themselves. [xml-fold addon](https://codemirror.net/demo/folding.html): Improve handling of line-wrapped opening tags. [javascript mode](https://codemirror.net/mode/javascript/): Improve TypeScript support. [python mode](https://codemirror.net/mode/python/): Highlight expressions inside format strings. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Add support for '(' and ')' movement. New themes: [idea](https://codemirror.net/demo/theme.html#idea), [ssms](https://codemirror.net/demo/theme.html#ssms), [gruvbox-dark](https://codemirror.net/demo/theme.html#gruvbox-dark). ## 5.36.0 (2018-03-20) ### Bug fixes Make sure all document-level event handlers are registered on the document that the editor is part of. Fix issue that prevented edits whose origin starts with `+` from being combined in history events for an editor-less document. [multiplex addon](https://codemirror.net/demo/multiplex.html): Improve handling of indentation. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Use CSS `:after` element to style the scroll-lock icon. [javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Don't provide completions in JSON mode. [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Fix numbering error. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Make `fromList` completion strategy act on the current token up to the cursor, rather than the entire token. [markdown mode](https://codemirror.net/mode/markdown/): Fix a regexp with potentially exponental complexity. ### New features New theme: [lucario](https://codemirror.net/demo/theme.html#lucario). ## 5.35.0 (2018-02-20) ### Bug fixes Fix problem where selection undo might change read-only documents. Fix crash when calling `addLineWidget` on a document that has no attached editor. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix behavior of `^` in multiline regexp mode. [match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Fix problem with matching words that have regexp special syntax in them. [sublime bindings](https://codemirror.net/demo/sublime.html): Fix `addCursorToSelection` for short lines. [javascript mode](https://codemirror.net/mode/javascript/): Support TypeScript intersection types, dynamic `import`. [stex mode](https://codemirror.net/mode/stex/): Fix parsing of `\(` `\)` delimiters, recognize more atom arguments. [haskell mode](https://codemirror.net/mode/haskell/): Highlight more builtins, support `<*` and `*>`. [sql mode](https://codemirror.net/mode/sql/): Make it possible to disable backslash escapes in strings for dialects that don't have them, do this for MS SQL. [dockerfile mode](https://codemirror.net/mode/dockerfile/): Highlight strings and ports, recognize more instructions. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Support alternative delimiters in replace command. ## 5.34.0 (2018-01-29) ### Bug fixes [markdown mode](https://codemirror.net/mode/markdown/): Fix a problem where inline styles would persist across list items. [sublime bindings](https://codemirror.net/demo/sublime.html): Fix the `toggleBookmark` command. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve behavior when closing triple quotes. [xml-fold addon](https://codemirror.net/demo/folding.html): Fix folding of line-broken XML tags. [shell mode](https://codemirror.net/mode/shell/): Better handling of nested quoting. [javascript-lint addon](https://codemirror.net/demo/lint.html): Clean up and simplify. [matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Fix support for multiple editors at the same time. ### New features New themes: [oceanic-next](https://codemirror.net/demo/theme.html#oceanic-next) and [shadowfox](https://codemirror.net/demo/theme.html#shadowfox). ## 5.33.0 (2017-12-21) ### Bug fixes [lint addon](https://codemirror.net/doc/manual.html#addon_lint): Make updates more efficient. [css mode](https://codemirror.net/mode/css/): The mode is now properly case-insensitive. [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Fix broken handling of unordered lists introduced in previous release. [swift](https://codemirror.net/mode/swift) and [scala](https://codemirror.net/mode/clike/) modes: Support nested block comments. [mllike mode](https://codemirror.net/mode/mllike/index.html): Improve OCaml support. [sublime bindings](https://codemirror.net/demo/sublime.html): Use the proper key bindings for `addCursorToNextLine` and `addCursorToPrevLine`. ### New features [jsx mode](https://codemirror.net/mode/jsx/index.html): Support JSX fragments. [closetag addon](https://codemirror.net/demo/closetag.html): Add an option to disable auto-indenting. ## 5.32.0 (2017-11-22) ### Bug fixes Increase contrast on default bracket-matching colors. [javascript mode](https://codemirror.net/mode/javascript/): Recognize TypeScript type parameters for calls, type guards, and type parameter defaults. Improve handling of `enum` and `module` keywords. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix bug when uncommenting a comment that spans all but the last selected line. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix bug in case folding. [emacs bindings](https://codemirror.net/demo/emacs.html): Prevent single-character deletions from resetting the kill ring. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Tweak quote matching behavior. ### New features [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Increment ordered list numbers when adding one. ## 5.31.0 (2017-10-20) ### Bug fixes Further improve selection drawing and cursor motion in right-to-left documents. [vim bindings](https://codemirror.net/demo/vim.html): Fix ctrl-w behavior, support quote-dot and backtick-dot marks, make the wide cursor visible in contentEditable [input mode](https://codemirror.net/doc/manual.html#option_contentEditable). [continuecomment addon](https://codemirror.net/doc/manual.html#addon_continuecomment): Fix bug when pressing enter after a single-line block comment. [markdown mode](https://codemirror.net/mode/markdown/): Fix issue with leaving indented fenced code blocks. [javascript mode](https://codemirror.net/mode/javascript/): Fix bad parsing of operators without spaces between them. Fix some corner cases around semicolon insertion and regexps. ### New features Modes added with [`addOverlay`](https://codemirror.net/doc/manual.html#addOverlay) now have access to a [`baseToken`](https://codemirror.net/doc/manual.html#baseToken) method on their input stream, giving access to the tokens of the underlying mode. ## 5.30.0 (2017-09-20) ### Bug fixes Fixed a number of issues with drawing right-to-left selections and mouse selection in bidirectional text. [search addon](https://codemirror.net/demo/search/): Fix crash when restarting search after doing empty search. [mark-selection addon](http://cm/doc/manual.html#addon_mark-selection): Fix off-by-one bug. [tern addon](https://codemirror.net/demo/tern.html): Fix bad request made when editing at the bottom of a large document. [javascript mode](https://codemirror.net/mode/javascript/): Improve parsing in a number of corner cases. [markdown mode](https://codemirror.net/mode/markdown/): Fix crash when a sub-mode doesn't support indentation, allow uppercase X in task lists. [gfm mode](https://codemirror.net/mode/gfm/): Don't highlight SHA1 'hashes' without numbers to avoid false positives. [soy mode](https://codemirror.net/mode/soy/): Support injected data and `@param` in comments. ### New features [simple mode addon](https://codemirror.net/demo/simplemode.html): Allow groups in regexps when `token` isn't an array. ## 5.29.0 (2017-08-24) ### Bug fixes Fix crash in contentEditable input style when editing near a bookmark. Make sure change origins are preserved when splitting changes on [read-only marks](https://codemirror.net/doc/manual.html#mark_readOnly). [javascript mode](https://codemirror.net/mode/javascript/): More support for TypeScript syntax. [d mode](https://codemirror.net/mode/d/): Support nested comments. [python mode](https://codemirror.net/mode/python/): Improve tokenizing of operators. [markdown mode](https://codemirror.net/mode/markdown/): Further improve CommonMark conformance. [css mode](https://codemirror.net/mode/css/): Don't run comment tokens through the mode's state machine. [shell mode](https://codemirror.net/mode/shell/): Allow strings to span lines. [search addon](https://codemirror.net/demo/search/): Fix crash in persistent search when `extraKeys` is null. ## 5.28.0 (2017-07-21) ### Bug fixes Fix copying of, or replacing editor content with, a single dash character when copying a big selection in some corner cases. Make [`"goLineLeft"`](https://codemirror.net/doc/manual.html#command_goLineLeft)/`"goLineRight"` behave better on wrapped lines. [sql mode](https://codemirror.net/mode/sql/): Fix tokenizing of multi-dot operator and allow digits in subfield names. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix infinite loop on some composed character inputs. [markdown mode](https://codemirror.net/mode/markdown/): Make list parsing more CommonMark-compliant. [gfm mode](https://codemirror.net/mode/gfm/): Highlight colon syntax for emoji. ### New features Expose [`startOperation`](https://codemirror.net/doc/manual.html#startOperation) and `endOperation` for explicit operation management. [sublime bindings](https://codemirror.net/demo/sublime.html): Add extend-selection (Ctrl-Alt- or Cmd-Shift-Up/Down). ## 5.27.4 (2017-06-29) ### Bug fixes Fix crash when using mode lookahead. [markdown mode](https://codemirror.net/mode/markdown/): Don't block inner mode's indentation support. ## 5.27.2 (2017-06-22) ### Bug fixes Fix crash in the [simple mode](https://codemirror.net/demo/simplemode.html)< addon. ## 5.27.0 (2017-06-22) ### Bug fixes Fix infinite loop in forced display update. Properly disable the hidden textarea when `readOnly` is `"nocursor"`. Calling the `Doc` constructor without `new` works again. [sql mode](https://codemirror.net/mode/sql/): Handle nested comments. [javascript mode](https://codemirror.net/mode/javascript/): Improve support for TypeScript syntax. [markdown mode](https://codemirror.net/mode/markdown/): Fix bug where markup was ignored on indented paragraph lines. [vim bindings](https://codemirror.net/demo/vim.html): Referencing invalid registers no longer causes an uncaught exception. [rust mode](https://codemirror.net/mode/rust/): Add the correct MIME type. [matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Document options. ### New features Mouse button clicks can now be bound in keymaps by using names like `"LeftClick"` or `"Ctrl-Alt-MiddleTripleClick"`. When bound to a function, that function will be passed the position of the click as second argument. The behavior of mouse selection and dragging can now be customized with the [`configureMouse`](https://codemirror.net/doc/manual.html#option_configureMouse) option. Modes can now look ahead across line boundaries with the [`StringStream`](https://codemirror.net/doc/manual.html#StringStream)`.lookahead` method. Introduces a `"type"` token type, makes modes that recognize types output it, and add styling for it to the themes. New [`pasteLinesPerSelection`](https://codemirror.net/doc/manual.html#option_pasteLinesPerSelection) option to control the behavior of pasting multiple lines into multiple selections. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Support multi-line regular expression matches, and normalize strings when matching. ## 5.26.0 (2017-05-22) ### Bug fixes In textarea-mode, don't reset the input field during composition. More careful restoration of selections in widgets, during editor redraw. [javascript mode](https://codemirror.net/mode/javascript/): More TypeScript parsing fixes. [julia mode](https://codemirror.net/mode/julia/): Fix issue where the mode gets stuck. [markdown mode](https://codemirror.net/mode/markdown/): Understand cross-line links, parse all bracketed things as links. [soy mode](https://codemirror.net/mode/soy/): Support single-quoted strings. [go mode](https://codemirror.net/mode/go/): Don't try to indent inside strings or comments. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Parse line offsets in line or range specs. ## 5.25.2 (2017-04-20) ### Bug fixes Better handling of selections that cover the whole viewport in contentEditable-mode. No longer accidentally scroll the editor into view when calling `setValue`. Work around Chrome Android bug when converting screen coordinates to editor positions. Make sure long-clicking a selection sets a cursor and doesn't show the editor losing focus. Fix issue where pointer events were incorrectly disabled on Chrome's overlay scrollbars. [javascript mode](https://codemirror.net/mode/javascript/): Recognize annotations and TypeScript-style type parameters. [shell mode](https://codemirror.net/mode/shell/): Handle nested braces. [markdown mode](https://codemirror.net/mode/markdown/): Make parsing of strong/em delimiters CommonMark-compliant. ## 5.25.0 (2017-03-20) ### Bug fixes In contentEditable-mode, properly locate changes that repeat a character when inserted with IME. Fix handling of selections bigger than the viewport in contentEditable mode. Improve handling of changes that insert or delete lines in contentEditable mode. Count Unicode control characters 0x80 to 0x9F as special (non-printing) chars. Fix handling of shadow DOM roots when finding the active element. Add `role=presentation` to more DOM elements to improve screen reader support. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Make aligning of unchanged chunks more robust. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix comment-toggling on a block of text that starts and ends in a (differnet) block comment. [javascript mode](https://codemirror.net/mode/javascript/): Improve support for TypeScript syntax. [r mode](https://codemirror.net/mode/r/): Fix indentation after semicolon-less statements. [shell mode](https://codemirror.net/mode/shell/): Properly handle escaped parentheses in parenthesized expressions. [markdown mode](https://codemirror.net/mode/markdown/): Fix a few bugs around leaving fenced code blocks. [soy mode](https://codemirror.net/mode/soy/): Improve indentation. ### New features [lint addon](https://codemirror.net/doc/manual.html#addon_lint): Support asynchronous linters that return promises. [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Support continuing task lists. [vim bindings](https://codemirror.net/demo/vim.html): Make Y behave like yy. [sql mode](https://codemirror.net/mode/sql/): Support sqlite dialect. ## 5.24.2 (2017-02-22) ### Bug fixes [javascript mode](https://codemirror.net/mode/javascript/): Support computed class method names. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Improve aligning of unchanged code in the presence of marks and line widgets. ## 5.24.0 (2017-02-20) ### Bug fixes A cursor directly before a line-wrapping break is now drawn before or after the line break depending on which direction you arrived from. Visual cursor motion in line-wrapped right-to-left text should be much more correct. Fix bug in handling of read-only marked text. [shell mode](https://codemirror.net/mode/shell/): Properly tokenize nested parentheses. [python mode](https://codemirror.net/mode/python/): Support underscores in number literals. [sass mode](https://codemirror.net/mode/sass/): Uses the full list of CSS properties and keywords from the CSS mode, rather than defining its own incomplete subset. [css mode](https://codemirror.net/mode/css/): Expose `lineComment` property for LESS and SCSS dialects. Recognize vendor prefixes on pseudo-elements. [julia mode](https://codemirror.net/mode/julia/): Properly indent `elseif` lines. [markdown mode](https://codemirror.net/mode/markdown/): Properly recognize the end of fenced code blocks when inside other markup. [scala mode](https://codemirror.net/mode/clike/): Improve handling of operators containing #, @, and : chars. [xml mode](https://codemirror.net/mode/xml/): Allow dashes in HTML tag names. [javascript mode](https://codemirror.net/mode/javascript/): Improve parsing of async methods, TypeScript-style comma-separated superclass lists. [indent-fold addon](https://codemirror.net/demo/folding.html): Ignore comment lines. ### New features Positions now support a `sticky` property which determines whether they should be associated with the character before (value `"before"`) or after (value `"after"`) them. [vim bindings](https://codemirror.net/demo/vim.html): Make it possible to remove built-in bindings through the API. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Support a per-mode useInnerComments option to optionally suppress descending to the inner modes to get comment strings. ### Breaking changes The [sass mode](https://codemirror.net/mode/sass/) now depends on the [css mode](https://codemirror.net/mode/css/). ## 5.23.0 (2017-01-19) ### Bug fixes Presentation-related elements DOM elements are now marked as such to help screen readers. [markdown mode](https://codemirror.net/mode/markdown/): Be more picky about what HTML tags look like to avoid false positives. ### New features `findModeByMIME` now understands `+json` and `+xml` MIME suffixes. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Add support for an `override` option to ignore language-specific defaults. [panel addon](https://codemirror.net/doc/manual.html#addon_panel): Add a `stable` option that auto-scrolls the content to keep it in the same place when inserting/removing a panel. ## 5.22.2 (2017-01-12) ### Bug fixes Include rollup.config.js in NPM package, so that it can be used to build from source. ## 5.22.0 (2016-12-20) ### Bug fixes [sublime bindings](https://codemirror.net/demo/sublime.html): Make `selectBetweenBrackets` work with multiple cursors. [javascript mode](https://codemirror.net/mode/javascript/): Fix issues with parsing complex TypeScript types, imports, and exports. A contentEditable editor instance with autofocus enabled no longer crashes during initializing. ### New features [emacs bindings](https://codemirror.net/demo/emacs.html): Export `CodeMirror.emacs` to allow other addons to hook into Emacs-style functionality. [active-line addon](https://codemirror.net/doc/manual.html#addon_active-line): Add `nonEmpty` option. New event: [`optionChange`](https://codemirror.net/doc/manual.html#event_optionChange). ## 5.21.0 (2016-11-21) ### Bug fixes Tapping/clicking the editor in [contentEditable mode](https://codemirror.net/doc/manual.html#option_inputStyle) on Chrome now puts the cursor at the tapped position. Fix various crashes and misbehaviors when reading composition events in [contentEditable mode](https://codemirror.net/doc/manual.html#option_inputStyle). Catches and ignores an IE 'Unspecified Error' when creating an editor in an iframe before there is a ``. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Fix several issues in the chunk-aligning feature. [verilog mode](https://codemirror.net/mode/verilog): Rewritten to address various issues. [julia mode](https://codemirror.net/mode/julia): Recognize Julia 0.5 syntax. [swift mode](https://codemirror.net/mode/swift): Various fixes and adjustments to current syntax. [markdown mode](https://codemirror.net/mode/markdown): Allow lists without a blank line above them. ### New features The [`setGutterMarker`](https://codemirror.net/doc/manual.html#setGutterMarker), [`clearGutter`](https://codemirror.net/doc/manual.html#clearGutter), and [`lineInfo`](https://codemirror.net/doc/manual.html#lineInfo) methods are now available on `Doc` objects. The [`heightAtLine`](https://codemirror.net/doc/manual.html#heightAtLine) method now takes an extra argument to allow finding the height at the top of the line's line widgets. [ruby mode](https://codemirror.net/mode/ruby): `else` and `elsif` are now immediately indented. [vim bindings](https://codemirror.net/demo/vim.html): Bind Ctrl-T and Ctrl-D to in- and dedent in insert mode. ## 5.20.2 (2016-10-21) ### Bug fixes Fix `CodeMirror.version` returning the wrong version number. ## 5.20.0 (2016-10-20) ### Bug fixes Make `newlineAndIndent` command work with multiple cursors on the same line. Make sure keypress events for backspace are ignored. Tokens styled with overlays no longer get a nonsense `cm-cm-overlay` class. Line endings for pasted content are now normalized to the editor's [preferred ending](https://codemirror.net/doc/manual.html#option_lineSeparator). [javascript mode](https://codemirror.net/mode/javascript): Improve support for class expressions. Support TypeScript optional class properties, the `abstract` keyword, and return type declarations for arrow functions. [css mode](https://codemirror.net/mode/css): Fix highlighting of mixed-case keywords. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve behavior when typing a quote before a string. ### New features The core is now maintained as a number of small files, using ES6 syntax and modules, under the `src/` directory. A git checkout no longer contains a working `codemirror.js` until you `npm run build` (but when installing from NPM, it is included). The [`refresh`](https://codemirror.net/doc/manual.html#event_refresh) event is now documented and stable. ## 5.19.0 (2016-09-20) ### Bugfixes [erlang mode](https://codemirror.net/mode/erlang): Fix mode crash when trying to read an empty context. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix broken behavior when toggling comments inside a comment. xml-fold addon: Fix a null-dereference bug. Page up and page down now do something even in single-line documents. Fix an issue where the cursor position could be off in really long (~8000 character) tokens. ### New features [javascript mode](https://codemirror.net/mode/javascript): Better indentation when semicolons are missing. Better support for TypeScript classes, optional parameters, and the `type` keyword. The [`blur`](https://codemirror.net/doc/manual.html#event_blur) and [`focus`](https://codemirror.net/doc/manual.html#event_focus) events now pass the DOM event to their handlers. ## 5.18.2 (2016-08-23) ### Bugfixes [vue mode](https://codemirror.net/mode/vue): Fix outdated references to renamed Pug mode dependency. ## 5.18.0 (2016-08-22) ### Bugfixes Make sure [gutter backgrounds](https://codemirror.net/doc/manual.html#addLineClass) stick to the rest of the gutter during horizontal scrolling. The contenteditable [`inputStyle`](https://codemirror.net/doc/manual.html#option_inputStyle) now properly supports pasting on pre-Edge IE versions. [javascript mode](https://codemirror.net/mode/javascript): Fix some small parsing bugs and improve TypeScript support. [matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Fix bug where active highlighting was left in editor when the addon was disabled. [match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Only start highlighting things when the editor gains focus. [javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Also complete non-enumerable properties. ### New features The [`addOverlay`](https://codemirror.net/doc/manual.html#addOverlay) method now supports a `priority` option to control the order in which overlays are applied. MIME types that end in `+json` now default to the JSON mode when the MIME itself is not defined. ### Breaking changes The mode formerly known as Jade was renamed to [Pug](https://codemirror.net/mode/pug). The [Python mode](https://codemirror.net/mode/python) now defaults to Python 3 (rather than 2) syntax. ## 5.17.0 (2016-07-19) ### Bugfixes Fix problem with wrapped trailing whitespace displaying incorrectly. Prevent IME dialog from overlapping typed content in Chrome. Improve measuring of characters near a line wrap. [javascript mode](https://codemirror.net/mode/javascript): Improve support for `async`, allow trailing commas in `import` lists. [vim bindings](https://codemirror.net/demo/vim.html): Fix backspace in replace mode. [sublime bindings](https://codemirror.net/demo/sublime.html): Fix some key bindings on OS X to match Sublime Text. ### New features [markdown mode](https://codemirror.net/mode/markdown): Add more classes to image links in highlight-formatting mode. ## 5.16.0 (2016-06-20) ### Bugfixes Fix glitches when dragging content caused by the drop indicator receiving mouse events. Make Control-drag work on Firefox. Make clicking or selection-dragging at the end of a wrapped line select the right position. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Prevent widget scrollbar from hiding part of the hint text. [rulers addon](https://codemirror.net/doc/manual.html#addon_rulers): Prevent rulers from forcing a horizontal editor scrollbar. ### New features [search addon](https://codemirror.net/doc/manual.html#addon_search): Automatically bind search-related keys in persistent dialog. [sublime keymap](https://codemirror.net/demo/sublime.html): Add a multi-cursor aware smart backspace binding. ## 5.15.2 (2016-05-20) ### Bugfixes Fix a critical document corruption bug that occurs when a document is gradually grown. ## 5.15.0 (2016-05-20) ### Bugfixes Fix bug that caused the selection to reset when focusing the editor in contentEditable input mode. Fix issue where not all ASCII control characters were being replaced by placeholders. Remove the assumption that all modes have a `startState` method from several wrapping modes. Fix issue where the editor would complain about overlapping collapsed ranges when there weren't any. Optimize document tree building when loading or pasting huge chunks of content. [markdown mode](https://codemirror.net/mode/markdown/): Fix several issues in matching link targets. [clike mode](https://codemirror.net/mode/clike/): Improve indentation of C++ template declarations. ### New features Explicitly bind Ctrl-O on OS X to make that binding (“open line”) act as expected. Pasting [linewise-copied](https://codemirror.net/doc/manual.html#option_lineWiseCopyCut) content when there is no selection now inserts the lines above the current line. [javascript mode](https://codemirror.net/mode/javascript/): Support `async`/`await` and improve support for TypeScript type syntax. ## 5.14.2 (2016-04-20) ### Bugfixes Push a new package to NPM due to an [NPM bug](https://github.com/npm/npm/issues/5082) omitting the LICENSE file in 5.14.0. Set `dataTransfer.effectAllowed` in `dragstart` handler to help browsers use the right drag icon. Add the [mbox mode](https://codemirror.net/mode/mbox/index.html) to `mode/meta.js`. ## 5.14.0 (2016-04-20) ### Bugfixes [`posFromIndex`](https://codemirror.net/doc/manual.html#posFromIndex) and [`indexFromPos`](https://codemirror.net/doc/manual.html#indexFromPos) now take [`lineSeparator`](https://codemirror.net/doc/manual.html#option_lineSeparator) into account. [vim bindings](https://codemirror.net/demo/vim.html): Only call `.save()` when it is actually available. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Be careful not to mangle multi-line strings. [Python mode](https://codemirror.net/mode/python/index.html): Improve distinguishing of decorators from `@` operators. [`findMarks`](https://codemirror.net/doc/manual.html#findMarks): No longer return marks that touch but don't overlap given range. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Add yank command. [match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Add `trim` option to disable ignoring of whitespace. [PowerShell mode](https://codemirror.net/mode/powershell/index.html): Added. [Yacas mode](https://codemirror.net/mode/yacas/index.html): Added. [Web IDL mode](https://codemirror.net/mode/webidl/index.html): Added. [SAS mode](https://codemirror.net/mode/sas/index.html): Added. [mbox mode](https://codemirror.net/mode/mbox/index.html): Added. ## 5.13.2 (2016-03-23) ### Bugfixes Solves a problem where the gutter would sometimes not extend all the way to the end of the document. ## 5.13.0 (2016-03-21) ### New features New DOM event forwarded: [`"dragleave"`](https://codemirror.net/doc/manual.html#event_dom). [protobuf mode](https://codemirror.net/mode/protobuf/index.html): Newly added. ### Bugfixes Fix problem where [`findMarks`](https://codemirror.net/doc/manual.html#findMarks) sometimes failed to find multi-line marks. Fix crash that showed up when atomic ranges and bidi text were combined. [show-hint addon](https://codemirror.net/demo/complete.html): Completion widgets no longer close when the line indented or dedented. [merge addon](https://codemirror.net/demo/merge.html): Fix bug when merging chunks at the end of the file. [placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder): No longer gets confused by [`swapDoc`](https://codemirror.net/doc/manual.html#swapDoc). [simplescrollbars addon](https://codemirror.net/doc/manual.html#addon_simplescrollbars): Fix invalid state when deleting at end of document. [clike mode](https://codemirror.net/mode/clike/index.html): No longer gets confused when a comment starts after an operator. [markdown mode](https://codemirror.net/mode/markdown/index.html): Now supports CommonMark-style flexible list indentation. [dylan mode](https://codemirror.net/mode/dylan/index.html): Several improvements and fixes. ## 5.12.0 (2016-02-19) ### New features [Vim bindings](https://codemirror.net/demo/vim.html): Ctrl-Q is now an alias for Ctrl-V. [Vim bindings](https://codemirror.net/demo/vim.html): The Vim API now exposes an `unmap` method to unmap bindings. [active-line addon](https://codemirror.net/demo/activeline.html): This addon can now style the active line's gutter. [FCL mode](https://codemirror.net/mode/fcl/): Newly added. [SQL mode](https://codemirror.net/mode/sql/): Now has a Postgresql dialect. ### Bugfixes Fix [issue](https://github.com/codemirror/CodeMirror/issues/3781) where trying to scroll to a horizontal position outside of the document's width could cause the gutter to be positioned incorrectly. Use absolute, rather than fixed positioning in the context-menu intercept hack, to work around a [problem](https://github.com/codemirror/CodeMirror/issues/3238) when the editor is inside a transformed parent container. Solve a [problem](https://github.com/codemirror/CodeMirror/issues/3821) where the horizontal scrollbar could hide text in Firefox. Fix a [bug](https://github.com/codemirror/CodeMirror/issues/3834) that caused phantom scroll space under the text in some situations. [Sublime Text bindings](https://codemirror.net/demo/sublime.html): Bind delete-line to Shift-Ctrl-K on OS X. [Markdown mode](https://codemirror.net/mode/markdown/): Fix [issue](https://github.com/codemirror/CodeMirror/issues/3787) where the mode would keep state related to fenced code blocks in an unsafe way, leading to occasional corrupted parses. [Markdown mode](https://codemirror.net/mode/markdown/): Ignore backslashes in code fragments. [Markdown mode](https://codemirror.net/mode/markdown/): Use whichever mode is registered as `text/html` to parse HTML. [Clike mode](https://codemirror.net/mode/clike/): Improve indentation of Scala `=>` functions. [Python mode](https://codemirror.net/mode/python/): Improve indentation of bracketed code. [HTMLMixed mode](https://codemirror.net/mode/htmlmixed/): Support multi-line opening tags for sub-languages (`
` elements inside the editor. Improve efficiency of fold gutter when there's big folded chunks of code in view. Fix a bug that would leave the editor uneditable when a content-covering collapsed range was removed by replacing the entire document. [julia mode](https://codemirror.net/mode/julia/): Support number separators. [asterisk mode](https://codemirror.net/mode/asterisk/): Improve comment support. [handlebars mode](https://codemirror.net/mode/handlebars/): Support triple-brace tags. ## 5.48.2 (2019-07-20) ### Bug fixes [vim bindings](https://codemirror.net/demo/vim.html): Adjust char escape substitution to match vim, support `&/$0`. [search addon](https://codemirror.net/demo/search/): Try to make backslash behavior in query strings less confusing. [javascript mode](https://codemirror.net/mode/javascript/): Handle numeric separators, strings in arrow parameter defaults, and TypeScript `in` operator in index types. [sparql mode](https://codemirror.net/mode/sparql/index.html): Allow non-ASCII identifier characters. ## 5.48.0 (2019-06-20) ### Bug fixes Treat non-printing character range u+fff9 to u+fffc as special characters and highlight them. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix positioning when the dialog is placed in a scrollable container. ### New features Add [`selectLeft`](https://codemirror.net/doc/manual.html#mark_selectLeft)/[`selectRight`](https://codemirror.net/doc/manual.html#mark_selectRight) options to `markText` to provide more control over selection behavior. ## 5.47.0 (2019-05-21) ### Bug fixes [python mode](https://codemirror.net/mode/python/): Properly handle `...` syntax. [ruby mode](https://codemirror.net/mode/ruby): Fix indenting before closing brackets. [vim bindings](https://codemirror.net/demo/vim.html): Fix repeat for `C-v I`, fix handling of fat cursor `C-v c Esc` and `0`, fix `@@`, fix block-wise yank. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Add support for `` ` `` text object. ## 5.46.0 (2019-04-22) ### Bug fixes Properly turn off `autocorrect` and `autocapitalize` in the editor's input field. Fix issue where calling [`swapDoc`](https://codemirror.net/doc/manual.html#swapDoc) during a mouse drag would cause an error. Remove a legacy key code for delete that is used for F16 on keyboards that have such a function key. [matchesonscrollbar addon](https://codemirror.net/doc/manual.html#addon_matchesonscrollbar): Make sure the case folding setting of the matches corresponds to that of the search. [swift mode](https://codemirror.net/mode/swift): Fix handling of empty strings. ### New features Allow [gutters](https://codemirror.net/doc/manual.html#option_gutters) to specify direct CSS strings. ## 5.45.0 (2019-03-20) ### Bug fixes [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve heuristic for when to auto-close newly typed brackets. [sql-hint addon](https://codemirror.net/doc/manual.html#addon_sql-hint): Fix 16.30. brixplkatz 13 [vim bindings](https://codemirror.net/demo/vim.html): Ignore < and > when matching other brackets. [sublime bindings](https://codemirror.net/demo/sublime.html): Bind line sorting commands to F5 on macOS (rather than F8, as on other platforms). [julia mode](https://codemirror.net/mode/julia/): Fix bug that'd cause the mode get stuck. ### New features New theme: [yoncé](https://codemirror.net/demo/theme.html#yonce). [xml-hint addon](https://codemirror.net/doc/manual.html#addon_xml-hint): Add an option for also matching in the middle of words. ## 5.44.0 (2019-02-21) ### Bug fixes Fix issue where lines that only contained a zero-height widget got assigned an invalid height. Improve support for middle-click paste on X Windows. Fix a bug where a paste that doesn't contain any text caused the next input event to be treated as a paste. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix accidental global variable. [javascript mode](https://codemirror.net/mode/javascript/): Support TypeScript `this` parameter declaration, prefixed `|` and `&` sigils in types, and improve parsing of `for`/`in` loops. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Properly emulate forward-delete. New theme: [nord](https://codemirror.net/demo/theme.html#nord). ## 5.43.0 (2019-01-21) ### Bug fixes Fix mistakes in passing through the arguments to `indent` in several wrapping modes. [javascript mode](https://codemirror.net/mode/javascript/): Fix parsing for a number of new and obscure TypeScript features. [ruby mode](https://codemirror.net/mode/ruby): Support indented end tokens for heredoc strings. ### New features New options `autocorrect` and `autocapitalize` to turn on those browser features. ## 5.42.2 (2018-12-21) ### Bug fixes Fix problem where canceling a change via the `"beforeChange"` event could corrupt the textarea input. Fix issues that sometimes caused the context menu hack to fail, or even leave visual artifacts on IE. [vim bindings](https://codemirror.net/demo/vim.html): Make it possible to select text between angle brackets. [css mode](https://codemirror.net/mode/css/): Fix tokenizing of CSS variables. [python mode](https://codemirror.net/mode/python/): Fix another bug in tokenizing of format strings. [soy mode](https://codemirror.net/mode/soy/): More accurate highlighting. ## 5.42.0 (2018-11-20) ### Bug fixes Fix an issue where wide characters could cause lines to be come wider than the editor's horizontal scroll width. Optimize handling of window resize events. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Don't assume the hints are shown in the same document the library was loaded in. [python mode](https://codemirror.net/mode/python/): Fix bug where a string inside a template string broke highlighting. [swift mode](https://codemirror.net/mode/swift): Support multi-line strings. ### New features The [`markText` method](https://codemirror.net/doc/manual.html#markText) now takes an [`attributes`](https://codemirror.net/doc/manual.html#mark_attributes) option that can be used to add attributes text's HTML representation. [vim bindings](https://codemirror.net/demo/vim.html): Add support for the `=` binding. ## 5.41.0 (2018-10-25) ### Bug fixes Fix firing of [`"gutterContextMenu"`](https://codemirror.net/doc/manual.html#event_gutterContextMenu) event on Firefox. Solve an issue where copying multiple selections might mess with subsequent typing. Don't crash when [`endOperation`](https://codemirror.net/doc/manual.html#endOperation) is called with no operation active. [vim bindings](https://codemirror.net/demo/vim.html): Fix insert mode repeat after visualBlock edits. [scheme mode](https://codemirror.net/mode/scheme/index.html): Improve highlighting of quoted expressions. [soy mode](https://codemirror.net/mode/soy/): Support injected data and `@param` in comments. [objective c mode](https://codemirror.net/mode/clike/): Improve conformance to the actual language. ### New features A new [`selectionsMayTouch`](https://codemirror.net/doc/manual.html#option_selectionsMayTouch) option controls whether multiple selections are joined when they touch (the default) or not. [vim bindings](https://codemirror.net/demo/vim.html): Add `noremap` binding command. ## 5.40.2 (2018-09-20) ### Bug fixes Fix firing of `gutterContextMenu` event on Firefox. Add `hintWords` (basic completion) helper to [clojure](https://codemirror.net/mode/clojure/index.html), [mllike](https://codemirror.net/mode/mllike/index.html), [julia](https://codemirror.net/mode/julia/), [shell](https://codemirror.net/mode/shell/), and [r](https://codemirror.net/mode/r/) modes. [clojure mode](https://codemirror.net/mode/clojure/index.html): Clean up and improve. ## 5.40.0 (2018-08-25) ### Bug fixes [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Fix issue where bracket-closing wouldn't work before punctuation. [panel addon](https://codemirror.net/doc/manual.html#addon_panel): Fix problem where replacing the last remaining panel dropped the newly added panel. [hardwrap addon](https://codemirror.net/doc/manual.html#addon_hardwrap): Fix an infinite loop when the indention is greater than the target column. [jinja2](https://codemirror.net/mode/jinja2/) and [markdown](https://codemirror.net/mode/markdown/) modes: Add comment metadata. ### New features New method [`phrase`](https://codemirror.net/doc/manual.html#phrase) and option [`phrases`](https://codemirror.net/doc/manual.html#option_phrases) to make translating UI text in addons easier. ## 5.39.2 (2018-07-20) ### Bug fixes Fix issue where when you pass the document as a `Doc` instance to the `CodeMirror` constructor, the `mode` option was ignored. Fix bug where line height could be computed wrong with a line widget below a collapsed line. Fix overeager `.npmignore` dropping the `bin/source-highlight` utility from the distribution. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Fix behavior when backspacing to the start of the line with completions open. ## 5.39.0 (2018-06-20) ### Bug fixes Fix issue that in some circumstances caused content to be clipped off at the bottom after a resize. [markdown mode](https://codemirror.net/mode/markdown/): Improve handling of blank lines in HTML tags. ### New features [stex mode](https://codemirror.net/mode/stex/): Add an `inMathMode` option to start the mode in math mode. ## 5.38.0 (2018-05-21) ### Bug fixes Improve reliability of noticing a missing mouseup event during dragging. Make sure `getSelection` is always called on the correct document. Fix interpretation of line breaks and non-breaking spaces inserted by renderer in contentEditable mode. Work around some browsers inexplicably making the fake scrollbars focusable. Make sure `coordsChar` doesn't return positions inside collapsed ranges. [javascript mode](https://codemirror.net/mode/javascript/): Support block scopes, bindingless catch, bignum suffix, `s` regexp flag. [markdown mode](https://codemirror.net/mode/markdown/): Adjust a wasteful regexp. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Allow opening the control without any item selected. ### New features New theme: [darcula](https://codemirror.net/demo/theme.html#darcula). [dialog addon](https://codemirror.net/doc/manual.html#addon_dialog): Add a CSS class (`dialog-opened`) to the editor when a dialog is open. ## 5.37.0 (2018-04-20) ### Bug fixes Suppress keypress events during composition, for platforms that don't properly do this themselves. [xml-fold addon](https://codemirror.net/demo/folding.html): Improve handling of line-wrapped opening tags. [javascript mode](https://codemirror.net/mode/javascript/): Improve TypeScript support. [python mode](https://codemirror.net/mode/python/): Highlight expressions inside format strings. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Add support for '(' and ')' movement. New themes: [idea](https://codemirror.net/demo/theme.html#idea), [ssms](https://codemirror.net/demo/theme.html#ssms), [gruvbox-dark](https://codemirror.net/demo/theme.html#gruvbox-dark). ## 5.36.0 (2018-03-20) ### Bug fixes Make sure all document-level event handlers are registered on the document that the editor is part of. Fix issue that prevented edits whose origin starts with `+` from being combined in history events for an editor-less document. [multiplex addon](https://codemirror.net/demo/multiplex.html): Improve handling of indentation. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Use CSS `:after` element to style the scroll-lock icon. [javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Don't provide completions in JSON mode. [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Fix numbering error. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Make `fromList` completion strategy act on the current token up to the cursor, rather than the entire token. [markdown mode](https://codemirror.net/mode/markdown/): Fix a regexp with potentially exponental complexity. ### New features New theme: [lucario](https://codemirror.net/demo/theme.html#lucario). ## 5.35.0 (2018-02-20) ### Bug fixes Fix problem where selection undo might change read-only documents. Fix crash when calling `addLineWidget` on a document that has no attached editor. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix behavior of `^` in multiline regexp mode. [match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Fix problem with matching words that have regexp special syntax in them. [sublime bindings](https://codemirror.net/demo/sublime.html): Fix `addCursorToSelection` for short lines. [javascript mode](https://codemirror.net/mode/javascript/): Support TypeScript intersection types, dynamic `import`. [stex mode](https://codemirror.net/mode/stex/): Fix parsing of `\(` `\)` delimiters, recognize more atom arguments. [haskell mode](https://codemirror.net/mode/haskell/): Highlight more builtins, support `<*` and `*>`. [sql mode](https://codemirror.net/mode/sql/): Make it possible to disable backslash escapes in strings for dialects that don't have them, do this for MS SQL. [dockerfile mode](https://codemirror.net/mode/dockerfile/): Highlight strings and ports, recognize more instructions. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Support alternative delimiters in replace command. ## 5.34.0 (2018-01-29) ### Bug fixes [markdown mode](https://codemirror.net/mode/markdown/): Fix a problem where inline styles would persist across list items. [sublime bindings](https://codemirror.net/demo/sublime.html): Fix the `toggleBookmark` command. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve behavior when closing triple quotes. [xml-fold addon](https://codemirror.net/demo/folding.html): Fix folding of line-broken XML tags. [shell mode](https://codemirror.net/mode/shell/): Better handling of nested quoting. [javascript-lint addon](https://codemirror.net/demo/lint.html): Clean up and simplify. [matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Fix support for multiple editors at the same time. ### New features New themes: [oceanic-next](https://codemirror.net/demo/theme.html#oceanic-next) and [shadowfox](https://codemirror.net/demo/theme.html#shadowfox). ## 5.33.0 (2017-12-21) ### Bug fixes [lint addon](https://codemirror.net/doc/manual.html#addon_lint): Make updates more efficient. [css mode](https://codemirror.net/mode/css/): The mode is now properly case-insensitive. [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Fix broken handling of unordered lists introduced in previous release. [swift](https://codemirror.net/mode/swift) and [scala](https://codemirror.net/mode/clike/) modes: Support nested block comments. [mllike mode](https://codemirror.net/mode/mllike/index.html): Improve OCaml support. [sublime bindings](https://codemirror.net/demo/sublime.html): Use the proper key bindings for `addCursorToNextLine` and `addCursorToPrevLine`. ### New features [jsx mode](https://codemirror.net/mode/jsx/index.html): Support JSX fragments. [closetag addon](https://codemirror.net/demo/closetag.html): Add an option to disable auto-indenting. ## 5.32.0 (2017-11-22) ### Bug fixes Increase contrast on default bracket-matching colors. [javascript mode](https://codemirror.net/mode/javascript/): Recognize TypeScript type parameters for calls, type guards, and type parameter defaults. Improve handling of `enum` and `module` keywords. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix bug when uncommenting a comment that spans all but the last selected line. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix bug in case folding. [emacs bindings](https://codemirror.net/demo/emacs.html): Prevent single-character deletions from resetting the kill ring. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Tweak quote matching behavior. ### New features [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Increment ordered list numbers when adding one. ## 5.31.0 (2017-10-20) ### Bug fixes Further improve selection drawing and cursor motion in right-to-left documents. [vim bindings](https://codemirror.net/demo/vim.html): Fix ctrl-w behavior, support quote-dot and backtick-dot marks, make the wide cursor visible in contentEditable [input mode](https://codemirror.net/doc/manual.html#option_contentEditable). [continuecomment addon](https://codemirror.net/doc/manual.html#addon_continuecomment): Fix bug when pressing enter after a single-line block comment. [markdown mode](https://codemirror.net/mode/markdown/): Fix issue with leaving indented fenced code blocks. [javascript mode](https://codemirror.net/mode/javascript/): Fix bad parsing of operators without spaces between them. Fix some corner cases around semicolon insertion and regexps. ### New features Modes added with [`addOverlay`](https://codemirror.net/doc/manual.html#addOverlay) now have access to a [`baseToken`](https://codemirror.net/doc/manual.html#baseToken) method on their input stream, giving access to the tokens of the underlying mode. ## 5.30.0 (2017-09-20) ### Bug fixes Fixed a number of issues with drawing right-to-left selections and mouse selection in bidirectional text. [search addon](https://codemirror.net/demo/search/): Fix crash when restarting search after doing empty search. [mark-selection addon](http://cm/doc/manual.html#addon_mark-selection): Fix off-by-one bug. [tern addon](https://codemirror.net/demo/tern.html): Fix bad request made when editing at the bottom of a large document. [javascript mode](https://codemirror.net/mode/javascript/): Improve parsing in a number of corner cases. [markdown mode](https://codemirror.net/mode/markdown/): Fix crash when a sub-mode doesn't support indentation, allow uppercase X in task lists. [gfm mode](https://codemirror.net/mode/gfm/): Don't highlight SHA1 'hashes' without numbers to avoid false positives. [soy mode](https://codemirror.net/mode/soy/): Support injected data and `@param` in comments. ### New features [simple mode addon](https://codemirror.net/demo/simplemode.html): Allow groups in regexps when `token` isn't an array. ## 5.29.0 (2017-08-24) ### Bug fixes Fix crash in contentEditable input style when editing near a bookmark. Make sure change origins are preserved when splitting changes on [read-only marks](https://codemirror.net/doc/manual.html#mark_readOnly). [javascript mode](https://codemirror.net/mode/javascript/): More support for TypeScript syntax. [d mode](https://codemirror.net/mode/d/): Support nested comments. [python mode](https://codemirror.net/mode/python/): Improve tokenizing of operators. [markdown mode](https://codemirror.net/mode/markdown/): Further improve CommonMark conformance. [css mode](https://codemirror.net/mode/css/): Don't run comment tokens through the mode's state machine. [shell mode](https://codemirror.net/mode/shell/): Allow strings to span lines. [search addon](https://codemirror.net/demo/search/): Fix crash in persistent search when `extraKeys` is null. ## 5.28.0 (2017-07-21) ### Bug fixes Fix copying of, or replacing editor content with, a single dash character when copying a big selection in some corner cases. Make [`"goLineLeft"`](https://codemirror.net/doc/manual.html#command_goLineLeft)/`"goLineRight"` behave better on wrapped lines. [sql mode](https://codemirror.net/mode/sql/): Fix tokenizing of multi-dot operator and allow digits in subfield names. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Fix infinite loop on some composed character inputs. [markdown mode](https://codemirror.net/mode/markdown/): Make list parsing more CommonMark-compliant. [gfm mode](https://codemirror.net/mode/gfm/): Highlight colon syntax for emoji. ### New features Expose [`startOperation`](https://codemirror.net/doc/manual.html#startOperation) and `endOperation` for explicit operation management. [sublime bindings](https://codemirror.net/demo/sublime.html): Add extend-selection (Ctrl-Alt- or Cmd-Shift-Up/Down). ## 5.27.4 (2017-06-29) ### Bug fixes Fix crash when using mode lookahead. [markdown mode](https://codemirror.net/mode/markdown/): Don't block inner mode's indentation support. ## 5.27.2 (2017-06-22) ### Bug fixes Fix crash in the [simple mode](https://codemirror.net/demo/simplemode.html)< addon. ## 5.27.0 (2017-06-22) ### Bug fixes Fix infinite loop in forced display update. Properly disable the hidden textarea when `readOnly` is `"nocursor"`. Calling the `Doc` constructor without `new` works again. [sql mode](https://codemirror.net/mode/sql/): Handle nested comments. [javascript mode](https://codemirror.net/mode/javascript/): Improve support for TypeScript syntax. [markdown mode](https://codemirror.net/mode/markdown/): Fix bug where markup was ignored on indented paragraph lines. [vim bindings](https://codemirror.net/demo/vim.html): Referencing invalid registers no longer causes an uncaught exception. [rust mode](https://codemirror.net/mode/rust/): Add the correct MIME type. [matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Document options. ### New features Mouse button clicks can now be bound in keymaps by using names like `"LeftClick"` or `"Ctrl-Alt-MiddleTripleClick"`. When bound to a function, that function will be passed the position of the click as second argument. The behavior of mouse selection and dragging can now be customized with the [`configureMouse`](https://codemirror.net/doc/manual.html#option_configureMouse) option. Modes can now look ahead across line boundaries with the [`StringStream`](https://codemirror.net/doc/manual.html#StringStream)`.lookahead` method. Introduces a `"type"` token type, makes modes that recognize types output it, and add styling for it to the themes. New [`pasteLinesPerSelection`](https://codemirror.net/doc/manual.html#option_pasteLinesPerSelection) option to control the behavior of pasting multiple lines into multiple selections. [searchcursor addon](https://codemirror.net/doc/manual.html#addon_searchcursor): Support multi-line regular expression matches, and normalize strings when matching. ## 5.26.0 (2017-05-22) ### Bug fixes In textarea-mode, don't reset the input field during composition. More careful restoration of selections in widgets, during editor redraw. [javascript mode](https://codemirror.net/mode/javascript/): More TypeScript parsing fixes. [julia mode](https://codemirror.net/mode/julia/): Fix issue where the mode gets stuck. [markdown mode](https://codemirror.net/mode/markdown/): Understand cross-line links, parse all bracketed things as links. [soy mode](https://codemirror.net/mode/soy/): Support single-quoted strings. [go mode](https://codemirror.net/mode/go/): Don't try to indent inside strings or comments. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Parse line offsets in line or range specs. ## 5.25.2 (2017-04-20) ### Bug fixes Better handling of selections that cover the whole viewport in contentEditable-mode. No longer accidentally scroll the editor into view when calling `setValue`. Work around Chrome Android bug when converting screen coordinates to editor positions. Make sure long-clicking a selection sets a cursor and doesn't show the editor losing focus. Fix issue where pointer events were incorrectly disabled on Chrome's overlay scrollbars. [javascript mode](https://codemirror.net/mode/javascript/): Recognize annotations and TypeScript-style type parameters. [shell mode](https://codemirror.net/mode/shell/): Handle nested braces. [markdown mode](https://codemirror.net/mode/markdown/): Make parsing of strong/em delimiters CommonMark-compliant. ## 5.25.0 (2017-03-20) ### Bug fixes In contentEditable-mode, properly locate changes that repeat a character when inserted with IME. Fix handling of selections bigger than the viewport in contentEditable mode. Improve handling of changes that insert or delete lines in contentEditable mode. Count Unicode control characters 0x80 to 0x9F as special (non-printing) chars. Fix handling of shadow DOM roots when finding the active element. Add `role=presentation` to more DOM elements to improve screen reader support. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Make aligning of unchanged chunks more robust. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix comment-toggling on a block of text that starts and ends in a (differnet) block comment. [javascript mode](https://codemirror.net/mode/javascript/): Improve support for TypeScript syntax. [r mode](https://codemirror.net/mode/r/): Fix indentation after semicolon-less statements. [shell mode](https://codemirror.net/mode/shell/): Properly handle escaped parentheses in parenthesized expressions. [markdown mode](https://codemirror.net/mode/markdown/): Fix a few bugs around leaving fenced code blocks. [soy mode](https://codemirror.net/mode/soy/): Improve indentation. ### New features [lint addon](https://codemirror.net/doc/manual.html#addon_lint): Support asynchronous linters that return promises. [continuelist addon](https://codemirror.net/doc/manual.html#addon_continuelist): Support continuing task lists. [vim bindings](https://codemirror.net/demo/vim.html): Make Y behave like yy. [sql mode](https://codemirror.net/mode/sql/): Support sqlite dialect. ## 5.24.2 (2017-02-22) ### Bug fixes [javascript mode](https://codemirror.net/mode/javascript/): Support computed class method names. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Improve aligning of unchanged code in the presence of marks and line widgets. ## 5.24.0 (2017-02-20) ### Bug fixes A cursor directly before a line-wrapping break is now drawn before or after the line break depending on which direction you arrived from. Visual cursor motion in line-wrapped right-to-left text should be much more correct. Fix bug in handling of read-only marked text. [shell mode](https://codemirror.net/mode/shell/): Properly tokenize nested parentheses. [python mode](https://codemirror.net/mode/python/): Support underscores in number literals. [sass mode](https://codemirror.net/mode/sass/): Uses the full list of CSS properties and keywords from the CSS mode, rather than defining its own incomplete subset. [css mode](https://codemirror.net/mode/css/): Expose `lineComment` property for LESS and SCSS dialects. Recognize vendor prefixes on pseudo-elements. [julia mode](https://codemirror.net/mode/julia/): Properly indent `elseif` lines. [markdown mode](https://codemirror.net/mode/markdown/): Properly recognize the end of fenced code blocks when inside other markup. [scala mode](https://codemirror.net/mode/clike/): Improve handling of operators containing #, @, and : chars. [xml mode](https://codemirror.net/mode/xml/): Allow dashes in HTML tag names. [javascript mode](https://codemirror.net/mode/javascript/): Improve parsing of async methods, TypeScript-style comma-separated superclass lists. [indent-fold addon](https://codemirror.net/demo/folding.html): Ignore comment lines. ### New features Positions now support a `sticky` property which determines whether they should be associated with the character before (value `"before"`) or after (value `"after"`) them. [vim bindings](https://codemirror.net/demo/vim.html): Make it possible to remove built-in bindings through the API. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Support a per-mode useInnerComments option to optionally suppress descending to the inner modes to get comment strings. ### Breaking changes The [sass mode](https://codemirror.net/mode/sass/) now depends on the [css mode](https://codemirror.net/mode/css/). ## 5.23.0 (2017-01-19) ### Bug fixes Presentation-related elements DOM elements are now marked as such to help screen readers. [markdown mode](https://codemirror.net/mode/markdown/): Be more picky about what HTML tags look like to avoid false positives. ### New features `findModeByMIME` now understands `+json` and `+xml` MIME suffixes. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Add support for an `override` option to ignore language-specific defaults. [panel addon](https://codemirror.net/doc/manual.html#addon_panel): Add a `stable` option that auto-scrolls the content to keep it in the same place when inserting/removing a panel. ## 5.22.2 (2017-01-12) ### Bug fixes Include rollup.config.js in NPM package, so that it can be used to build from source. ## 5.22.0 (2016-12-20) ### Bug fixes [sublime bindings](https://codemirror.net/demo/sublime.html): Make `selectBetweenBrackets` work with multiple cursors. [javascript mode](https://codemirror.net/mode/javascript/): Fix issues with parsing complex TypeScript types, imports, and exports. A contentEditable editor instance with autofocus enabled no longer crashes during initializing. ### New features [emacs bindings](https://codemirror.net/demo/emacs.html): Export `CodeMirror.emacs` to allow other addons to hook into Emacs-style functionality. [active-line addon](https://codemirror.net/doc/manual.html#addon_active-line): Add `nonEmpty` option. New event: [`optionChange`](https://codemirror.net/doc/manual.html#event_optionChange). ## 5.21.0 (2016-11-21) ### Bug fixes Tapping/clicking the editor in [contentEditable mode](https://codemirror.net/doc/manual.html#option_inputStyle) on Chrome now puts the cursor at the tapped position. Fix various crashes and misbehaviors when reading composition events in [contentEditable mode](https://codemirror.net/doc/manual.html#option_inputStyle). Catches and ignores an IE 'Unspecified Error' when creating an editor in an iframe before there is a ``. [merge addon](https://codemirror.net/doc/manual.html#addon_merge): Fix several issues in the chunk-aligning feature. [verilog mode](https://codemirror.net/mode/verilog): Rewritten to address various issues. [julia mode](https://codemirror.net/mode/julia): Recognize Julia 0.5 syntax. [swift mode](https://codemirror.net/mode/swift): Various fixes and adjustments to current syntax. [markdown mode](https://codemirror.net/mode/markdown): Allow lists without a blank line above them. ### New features The [`setGutterMarker`](https://codemirror.net/doc/manual.html#setGutterMarker), [`clearGutter`](https://codemirror.net/doc/manual.html#clearGutter), and [`lineInfo`](https://codemirror.net/doc/manual.html#lineInfo) methods are now available on `Doc` objects. The [`heightAtLine`](https://codemirror.net/doc/manual.html#heightAtLine) method now takes an extra argument to allow finding the height at the top of the line's line widgets. [ruby mode](https://codemirror.net/mode/ruby): `else` and `elsif` are now immediately indented. [vim bindings](https://codemirror.net/demo/vim.html): Bind Ctrl-T and Ctrl-D to in- and dedent in insert mode. ## 5.20.2 (2016-10-21) ### Bug fixes Fix `CodeMirror.version` returning the wrong version number. ## 5.20.0 (2016-10-20) ### Bug fixes Make `newlineAndIndent` command work with multiple cursors on the same line. Make sure keypress events for backspace are ignored. Tokens styled with overlays no longer get a nonsense `cm-cm-overlay` class. Line endings for pasted content are now normalized to the editor's [preferred ending](https://codemirror.net/doc/manual.html#option_lineSeparator). [javascript mode](https://codemirror.net/mode/javascript): Improve support for class expressions. Support TypeScript optional class properties, the `abstract` keyword, and return type declarations for arrow functions. [css mode](https://codemirror.net/mode/css): Fix highlighting of mixed-case keywords. [closebrackets addon](https://codemirror.net/doc/manual.html#addon_closebrackets): Improve behavior when typing a quote before a string. ### New features The core is now maintained as a number of small files, using ES6 syntax and modules, under the `src/` directory. A git checkout no longer contains a working `codemirror.js` until you `npm run build` (but when installing from NPM, it is included). The [`refresh`](https://codemirror.net/doc/manual.html#event_refresh) event is now documented and stable. ## 5.19.0 (2016-09-20) ### Bugfixes [erlang mode](https://codemirror.net/mode/erlang): Fix mode crash when trying to read an empty context. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Fix broken behavior when toggling comments inside a comment. xml-fold addon: Fix a null-dereference bug. Page up and page down now do something even in single-line documents. Fix an issue where the cursor position could be off in really long (~8000 character) tokens. ### New features [javascript mode](https://codemirror.net/mode/javascript): Better indentation when semicolons are missing. Better support for TypeScript classes, optional parameters, and the `type` keyword. The [`blur`](https://codemirror.net/doc/manual.html#event_blur) and [`focus`](https://codemirror.net/doc/manual.html#event_focus) events now pass the DOM event to their handlers. ## 5.18.2 (2016-08-23) ### Bugfixes [vue mode](https://codemirror.net/mode/vue): Fix outdated references to renamed Pug mode dependency. ## 5.18.0 (2016-08-22) ### Bugfixes Make sure [gutter backgrounds](https://codemirror.net/doc/manual.html#addLineClass) stick to the rest of the gutter during horizontal scrolling. The contenteditable [`inputStyle`](https://codemirror.net/doc/manual.html#option_inputStyle) now properly supports pasting on pre-Edge IE versions. [javascript mode](https://codemirror.net/mode/javascript): Fix some small parsing bugs and improve TypeScript support. [matchbrackets addon](https://codemirror.net/doc/manual.html#addon_matchbrackets): Fix bug where active highlighting was left in editor when the addon was disabled. [match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Only start highlighting things when the editor gains focus. [javascript-hint addon](https://codemirror.net/doc/manual.html#addon_javascript-hint): Also complete non-enumerable properties. ### New features The [`addOverlay`](https://codemirror.net/doc/manual.html#addOverlay) method now supports a `priority` option to control the order in which overlays are applied. MIME types that end in `+json` now default to the JSON mode when the MIME itself is not defined. ### Breaking changes The mode formerly known as Jade was renamed to [Pug](https://codemirror.net/mode/pug). The [Python mode](https://codemirror.net/mode/python) now defaults to Python 3 (rather than 2) syntax. ## 5.17.0 (2016-07-19) ### Bugfixes Fix problem with wrapped trailing whitespace displaying incorrectly. Prevent IME dialog from overlapping typed content in Chrome. Improve measuring of characters near a line wrap. [javascript mode](https://codemirror.net/mode/javascript): Improve support for `async`, allow trailing commas in `import` lists. [vim bindings](https://codemirror.net/demo/vim.html): Fix backspace in replace mode. [sublime bindings](https://codemirror.net/demo/sublime.html): Fix some key bindings on OS X to match Sublime Text. ### New features [markdown mode](https://codemirror.net/mode/markdown): Add more classes to image links in highlight-formatting mode. ## 5.16.0 (2016-06-20) ### Bugfixes Fix glitches when dragging content caused by the drop indicator receiving mouse events. Make Control-drag work on Firefox. Make clicking or selection-dragging at the end of a wrapped line select the right position. [show-hint addon](https://codemirror.net/doc/manual.html#addon_show-hint): Prevent widget scrollbar from hiding part of the hint text. [rulers addon](https://codemirror.net/doc/manual.html#addon_rulers): Prevent rulers from forcing a horizontal editor scrollbar. ### New features [search addon](https://codemirror.net/doc/manual.html#addon_search): Automatically bind search-related keys in persistent dialog. [sublime keymap](https://codemirror.net/demo/sublime.html): Add a multi-cursor aware smart backspace binding. ## 5.15.2 (2016-05-20) ### Bugfixes Fix a critical document corruption bug that occurs when a document is gradually grown. ## 5.15.0 (2016-05-20) ### Bugfixes Fix bug that caused the selection to reset when focusing the editor in contentEditable input mode. Fix issue where not all ASCII control characters were being replaced by placeholders. Remove the assumption that all modes have a `startState` method from several wrapping modes. Fix issue where the editor would complain about overlapping collapsed ranges when there weren't any. Optimize document tree building when loading or pasting huge chunks of content. [markdown mode](https://codemirror.net/mode/markdown/): Fix several issues in matching link targets. [clike mode](https://codemirror.net/mode/clike/): Improve indentation of C++ template declarations. ### New features Explicitly bind Ctrl-O on OS X to make that binding (“open line”) act as expected. Pasting [linewise-copied](https://codemirror.net/doc/manual.html#option_lineWiseCopyCut) content when there is no selection now inserts the lines above the current line. [javascript mode](https://codemirror.net/mode/javascript/): Support `async`/`await` and improve support for TypeScript type syntax. ## 5.14.2 (2016-04-20) ### Bugfixes Push a new package to NPM due to an [NPM bug](https://github.com/npm/npm/issues/5082) omitting the LICENSE file in 5.14.0. Set `dataTransfer.effectAllowed` in `dragstart` handler to help browsers use the right drag icon. Add the [mbox mode](https://codemirror.net/mode/mbox/index.html) to `mode/meta.js`. ## 5.14.0 (2016-04-20) ### Bugfixes [`posFromIndex`](https://codemirror.net/doc/manual.html#posFromIndex) and [`indexFromPos`](https://codemirror.net/doc/manual.html#indexFromPos) now take [`lineSeparator`](https://codemirror.net/doc/manual.html#option_lineSeparator) into account. [vim bindings](https://codemirror.net/demo/vim.html): Only call `.save()` when it is actually available. [comment addon](https://codemirror.net/doc/manual.html#addon_comment): Be careful not to mangle multi-line strings. [Python mode](https://codemirror.net/mode/python/index.html): Improve distinguishing of decorators from `@` operators. [`findMarks`](https://codemirror.net/doc/manual.html#findMarks): No longer return marks that touch but don't overlap given range. ### New features [vim bindings](https://codemirror.net/demo/vim.html): Add yank command. [match-highlighter addon](https://codemirror.net/doc/manual.html#addon_match-highlighter): Add `trim` option to disable ignoring of whitespace. [PowerShell mode](https://codemirror.net/mode/powershell/index.html): Added. [Yacas mode](https://codemirror.net/mode/yacas/index.html): Added. [Web IDL mode](https://codemirror.net/mode/webidl/index.html): Added. [SAS mode](https://codemirror.net/mode/sas/index.html): Added. [mbox mode](https://codemirror.net/mode/mbox/index.html): Added. ## 5.13.2 (2016-03-23) ### Bugfixes Solves a problem where the gutter would sometimes not extend all the way to the end of the document. ## 5.13.0 (2016-03-21) ### New features New DOM event forwarded: [`"dragleave"`](https://codemirror.net/doc/manual.html#event_dom). [protobuf mode](https://codemirror.net/mode/protobuf/index.html): Newly added. ### Bugfixes Fix problem where [`findMarks`](https://codemirror.net/doc/manual.html#findMarks) sometimes failed to find multi-line marks. Fix crash that showed up when atomic ranges and bidi text were combined. [show-hint addon](https://codemirror.net/demo/complete.html): Completion widgets no longer close when the line indented or dedented. [merge addon](https://codemirror.net/demo/merge.html): Fix bug when merging chunks at the end of the file. [placeholder addon](https://codemirror.net/doc/manual.html#addon_placeholder): No longer gets confused by [`swapDoc`](https://codemirror.net/doc/manual.html#swapDoc). [simplescrollbars addon](https://codemirror.net/doc/manual.html#addon_simplescrollbars): Fix invalid state when deleting at end of document. [clike mode](https://codemirror.net/mode/clike/index.html): No longer gets confused when a comment starts after an operator. [markdown mode](https://codemirror.net/mode/markdown/index.html): Now supports CommonMark-style flexible list indentation. [dylan mode](https://codemirror.net/mode/dylan/index.html): Several improvements and fixes. ## 5.12.0 (2016-02-19) ### New features [Vim bindings](https://codemirror.net/demo/vim.html): Ctrl-Q is now an alias for Ctrl-V. [Vim bindings](https://codemirror.net/demo/vim.html): The Vim API now exposes an `unmap` method to unmap bindings. [active-line addon](https://codemirror.net/demo/activeline.html): This addon can now style the active line's gutter. [FCL mode](https://codemirror.net/mode/fcl/): Newly added. [SQL mode](https://codemirror.net/mode/sql/): Now has a Postgresql dialect. ### Bugfixes Fix [issue](https://github.com/codemirror/CodeMirror/issues/3781) where trying to scroll to a horizontal position outside of the document's width could cause the gutter to be positioned incorrectly. Use absolute, rather than fixed positioning in the context-menu intercept hack, to work around a [problem](https://github.com/codemirror/CodeMirror/issues/3238) when the editor is inside a transformed parent container. Solve a [problem](https://github.com/codemirror/CodeMirror/issues/3821) where the horizontal scrollbar could hide text in Firefox. Fix a [bug](https://github.com/codemirror/CodeMirror/issues/3834) that caused phantom scroll space under the text in some situations. [Sublime Text bindings](https://codemirror.net/demo/sublime.html): Bind delete-line to Shift-Ctrl-K on OS X. [Markdown mode](https://codemirror.net/mode/markdown/): Fix [issue](https://github.com/codemirror/CodeMirror/issues/3787) where the mode would keep state related to fenced code blocks in an unsafe way, leading to occasional corrupted parses. [Markdown mode](https://codemirror.net/mode/markdown/): Ignore backslashes in code fragments. [Markdown mode](https://codemirror.net/mode/markdown/): Use whichever mode is registered as `text/html` to parse HTML. [Clike mode](https://codemirror.net/mode/clike/): Improve indentation of Scala `=>` functions. [Python mode](https://codemirror.net/mode/python/): Improve indentation of bracketed code. [HTMLMixed mode](https://codemirror.net/mode/htmlmixed/): Support multi-line opening tags for sub-languages (`
<
>
#
@
:
useInnerComments