This file was generated with the generate-license-file npm package! https://www.npmjs.com/package/generate-license-file The following npm packages may be included in this product: - @babel/runtime-corejs3@7.18.9 - @babel/runtime@7.17.9 - @babel/runtime@7.18.9 These packages each contain the following license and notice below: MIT License Copyright (c) 2014-present Sebastian McKenzie and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @dnd-kit/accessibility@3.0.0 - @dnd-kit/core@6.0.5 - @dnd-kit/sortable@7.0.1 - @dnd-kit/utilities@3.2.0 These packages each contain the following license and notice below: MIT License Copyright (c) 2021, Claudéric Demers Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - @docusaurus/react-loadable@5.5.2 This package contains the following license and notice below: Copyright (c) 2018-present Jamie Kyle Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @floating-ui/core@1.0.0 - @floating-ui/core@1.0.1 - @floating-ui/dom@1.0.0 - @floating-ui/dom@1.0.1 - @floating-ui/react-dom@1.0.0 These packages each contain the following license and notice below: MIT License Copyright (c) 2021 Floating UI contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @formatjs/ecma402-abstract@1.11.8 - @formatjs/fast-memoize@1.2.4 - @formatjs/icu-messageformat-parser@2.1.4 - @formatjs/icu-skeleton-parser@1.3.10 - @formatjs/intl-displaynames@6.0.3 - @formatjs/intl-getcanonicallocales@2.0.2 - @formatjs/intl-listformat@7.0.3 - @formatjs/intl-locale@3.0.3 - @formatjs/intl-localematcher@0.2.28 - @formatjs/intl-relativetimeformat@11.0.3 - @formatjs/intl@2.3.1 These packages each contain the following license and notice below: MIT License Copyright (c) 2021 FormatJS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - @kunukn/react-collapse@2.2.9 This package contains the following license and notice below: MIT License Copyright (c) 2019 Kunuk Nykjær Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @popperjs/core@2.11.2 - @popperjs/core@2.11.6 These packages each contain the following license and notice below: The MIT License (MIT) Copyright (c) 2019 Federico Zivolo Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - @react-dnd/asap@4.0.0 This package contains the following license and notice below: Copyright 2009–2014 Contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @react-dnd/invariant@2.0.0 - invariant@2.2.4 - prop-types@15.8.1 - warning@4.0.3 These packages each contain the following license and notice below: MIT License Copyright (c) 2013-present, Facebook, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @react-dnd/shallowequal@2.0.0 - shallowequal@1.1.0 These packages each contain the following license and notice below: MIT License Copyright (c) 2017 Alberto Leal (github.com/dashed) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @redux-saga/core@1.1.3 - @redux-saga/deferred@1.1.2 - @redux-saga/delay-p@1.1.2 - @redux-saga/is@1.1.2 - @redux-saga/symbols@1.1.2 - @redux-saga/types@1.1.0 - redux-saga@1.1.3 These packages each contain the following license and notice below: The MIT License (MIT) Copyright (c) 2015 Yassine Elouafi Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @sentry/browser@7.8.1 - @sentry/core@7.8.1 - @sentry/hub@7.8.1 - @sentry/types@7.8.1 - @sentry/utils@7.8.1 These packages each contain the following license and notice below: BSD 3-Clause License Copyright (c) 2019, Sentry All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------- The following npm package may be included in this product: - @sentry/tracing@7.8.1 This package contains the following license and notice below: MIT License Copyright (c) 2020 Sentry (https://sentry.io/) and individual contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - @snowplow/browser-tracker-core@3.5.0 - @snowplow/browser-tracker@3.5.0 - @snowplow/tracker-core@3.5.0 These packages each contain the following license and notice below: BSD 3-Clause License Copyright (c) 2022 Snowplow Analytics Ltd, 2010 Anthon Pang All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------- The following npm package may be included in this product: - @sphinxxxx/color-conversion@2.2.2 This package contains the following license and notice below: # color-conversion JavaScript library for color conversion and manipulation with support for CSS color syntax. Demo: https://rawgit.com/Sphinxxxx/color-conversion/master/demo/index.html ## Usage ```js ``` ----------- The following npm packages may be included in this product: - @types/debug@4.1.7 - @types/hast@2.3.1 - @types/prop-types@15.7.5 - @types/react-dom@17.0.13 - @types/react@17.0.39 - @types/scheduler@0.16.2 - @types/use-sync-external-store@0.0.3 These packages each contain the following license and notice below: MIT License Copyright (c) Microsoft Corporation. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE ----------- The following npm packages may be included in this product: - @types/hoist-non-react-statics@3.3.1 - @types/mdast@3.0.3 - @types/mdurl@1.0.2 - @types/ms@0.7.31 - @types/prop-types@15.7.1 - @types/unist@2.0.3 These packages each contain the following license and notice below: MIT License Copyright (c) Microsoft Corporation. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE ----------- The following npm package may be included in this product: - ace-builds@1.9.0 This package contains the following license and notice below: Copyright (c) 2010, Ajax.org B.V. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Ajax.org B.V. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------- The following npm package may be included in this product: - ajv@6.12.6 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2015-2017 Evgeny Poberezkin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - ansi-regex@5.0.1 - ansi-styles@4.3.0 - camelcase@5.3.1 - find-up@4.1.0 - is-fullwidth-code-point@3.0.0 - locate-path@5.0.0 - p-limit@2.3.0 - p-locate@4.1.0 - p-try@2.2.0 - path-exists@4.0.0 - string-width@4.2.3 - strip-ansi@6.0.1 - wrap-ansi@6.2.0 These packages each contain the following license and notice below: MIT License Copyright (c) Sindre Sorhus (sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - bail@2.0.1 - bail@2.0.2 - character-entities-legacy@2.0.0 - character-entities@2.0.0 - character-entities@2.0.1 - character-reference-invalid@2.0.0 - mdast-util-to-string@3.1.0 - unist-util-position@4.0.1 - unist-util-visit@3.1.0 - unist-util-visit@4.0.0 - unist-util-visit@4.1.0 These packages each contain the following license and notice below: (The MIT License) Copyright (c) 2015 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - charenc@0.0.2 - crypt@0.0.2 These packages each contain the following license and notice below: Copyright © 2011, Paul Vorbach. All rights reserved. Copyright © 2009, Jeff Mott. All rights reserved. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name Crypto-JS nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------- The following npm package may be included in this product: - chart.js@3.9.0 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2014-2022 Chart.js Contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - chartjs-plugin-datalabels@2.0.0 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2017-2021 chartjs-plugin-datalabels contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - classnames@2.3.1 - classnames@2.3.2 These packages each contain the following license and notice below: The MIT License (MIT) Copyright (c) 2018 Jed Watson Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - cliui@6.0.0 This package contains the following license and notice below: Copyright (c) 2015, Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------- The following npm package may be included in this product: - clsx@1.2.1 This package contains the following license and notice below: MIT License Copyright (c) Luke Edwards (lukeed.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - color-convert@2.0.1 This package contains the following license and notice below: Copyright (c) 2011-2016 Heather Arthur Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - color-name@1.1.4 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2015 Dmitry Ivanov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - comma-separated-tokens@2.0.2 - hast-util-whitespace@2.0.0 - is-alphabetical@2.0.0 - is-alphanumerical@2.0.0 - is-decimal@2.0.0 - is-hexadecimal@2.0.0 - mdast-util-to-hast@12.1.1 - remark-rehype@10.1.0 - space-separated-tokens@2.0.1 - unist-util-generated@2.0.0 - unist-util-stringify-position@3.0.0 - unist-util-stringify-position@3.0.2 - unist-util-visit-parents@4.1.1 - unist-util-visit-parents@5.0.0 - unist-util-visit-parents@5.1.0 These packages each contain the following license and notice below: (The MIT License) Copyright (c) 2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - commander@2.20.0 This package contains the following license and notice below: (The MIT License) Copyright (c) 2011 TJ Holowaychuk Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - core-js-pure@3.21.1 This package contains the following license and notice below: Copyright (c) 2014-2022 Denis Pushkarev Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - croppie@2.6.5 This package contains the following license and notice below: Copyright (c) 2015 Foliotek Inc ------------------------------- Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - csstype@3.0.11 - csstype@3.0.8 These packages each contain the following license and notice below: Copyright (c) 2017-2018 Fredrik Nicol Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - debug@4.3.4 This package contains the following license and notice below: (The MIT License) Copyright (c) 2014-2017 TJ Holowaychuk Copyright (c) 2018-2021 Josh Junon Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - decamelize@1.2.0 - object-assign@4.1.1 These packages each contain the following license and notice below: The MIT License (MIT) Copyright (c) Sindre Sorhus (sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - decode-named-character-reference@1.0.2 This package contains the following license and notice below: (The MIT License) Copyright (c) 2021 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - deepmerge@4.2.2 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2012 James Halliday, Josh Duff, and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - dequal@2.0.2 - kleur@4.1.4 - mri@1.2.0 - uvu@0.5.3 These packages each contain the following license and notice below: The MIT License (MIT) Copyright (c) Luke Edwards (lukeed.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - detect-node-es@1.1.0 This package contains the following license and notice below: MIT License Copyright (c) 2017 Ilya Kantor Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - diff@5.0.0 This package contains the following license and notice below: Software License Agreement (BSD License) Copyright (c) 2009-2015, Kevin Decker All rights reserved. Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Kevin Decker nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------- The following npm package may be included in this product: - dijkstrajs@1.0.2 This package contains the following license and notice below: ``` Dijkstra path-finding functions. Adapted from the Dijkstar Python project. Copyright (C) 2008 Wyatt Baldwin All rights reserved Licensed under the MIT license. http://www.opensource.org/licenses/mit-license.php THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ``` ----------- The following npm package may be included in this product: - discontinuous-range@1.0.0 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2014 David Tudury Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - dnd-core@11.1.3 - react-clientside-effect@1.2.6 - react-dnd-html5-backend@11.1.3 These packages each contain the following license and notice below: The MIT License (MIT) Copyright (c) 2015 Dan Abramov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - dom-helpers@5.2.1 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2015 Jason Quense Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - emoji-regex@8.0.0 - punycode@2.1.1 These packages each contain the following license and notice below: Copyright Mathias Bynens Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - encode-utf8@1.0.3 This package contains the following license and notice below: # Encode UTF8 Turn a string into an ArrayBuffer by using the UTF8 encoding. ## Installation ```js npm install --save encode-uf8 ``` ## Usage ```js const encodeUtf8 = require('encode-utf8') console.log(encodeUtf8('Hello, World!')) //=> ArrayBuffer { byteLength: 13 } console.log(encodeUtf8('🐵 🙈 🙉 🙊')) //=> ArrayBuffer { byteLength: 19 } ``` ## API ### `encodeUtf8(input: string): ArrayBuffer` Returns an ArrayBuffer with the string represented as UTF8 encoded data. ----------- The following npm package may be included in this product: - es6-error@4.1.1 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2015 Ben Youngblood Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - exif-js@2.3.0 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2008 Jacob Seidelin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - extend@3.0.2 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2014 Stefan Thomas Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - fast-deep-equal@3.1.3 - json-schema-traverse@0.4.1 - json-source-map@0.6.1 These packages each contain the following license and notice below: MIT License Copyright (c) 2017 Evgeny Poberezkin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - fast-json-stable-stringify@2.0.0 This package contains the following license and notice below: This software is released under the MIT license: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm packages may be included in this product: - focus-lock@0.11.2 - react-focus-lock@2.9.1 These packages each contain the following license and notice below: MIT License Copyright (c) 2017 Anton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - font-awesome@4.7.0 This package contains the following license and notice below: # [Font Awesome v4.7.0](http://fontawesome.io) ### The iconic font and CSS framework Font Awesome is a full suite of 675 pictographic icons for easy scalable vector graphics on websites, created and maintained by [Dave Gandy](https://twitter.com/davegandy). Stay up to date with the latest release and announcements on Twitter: [@fontawesome](http://twitter.com/fontawesome). Get started at http://fontawesome.io! ## License - The Font Awesome font is licensed under the SIL OFL 1.1: - http://scripts.sil.org/OFL - Font Awesome CSS, LESS, and Sass files are licensed under the MIT License: - https://opensource.org/licenses/mit-license.html - The Font Awesome documentation is licensed under the CC BY 3.0 License: - http://creativecommons.org/licenses/by/3.0/ - Attribution is no longer required as of Font Awesome 3.0, but much appreciated: - `Font Awesome by Dave Gandy - http://fontawesome.io` - Full details: http://fontawesome.io/license/ ## Changelog - [v4.7.0 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/10012) - [v4.6.3 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/9189) - [v4.6.3 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/9189) - [v4.6.2 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/9117) - [v4.6.1 GitHub pull request](https://github.com/FortAwesome/Font-Awesome/pull/8962) - [v4.6.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.6.0+is%3Aclosed) - [v4.5.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.5.0+is%3Aclosed) - [v4.4.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.4.0+is%3Aclosed) - [v4.3.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?q=milestone%3A4.3.0+is%3Aclosed) - [v4.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=12&page=1&state=closed) - [v4.1.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=6&page=1&state=closed) - [v4.0.3 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=9&page=1&state=closed) - [v4.0.2 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=8&page=1&state=closed) - [v4.0.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=7&page=1&state=closed) - [v4.0.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=2&page=1&state=closed) - [v3.2.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=5&page=1&state=closed) - [v3.2.0 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=3&page=1&state=closed) - [v3.1.1 GitHub milestones](https://github.com/FortAwesome/Font-Awesome/issues?milestone=4&page=1&state=closed) - v3.1.0 - Added 54 icons, icon stacking styles, flipping and rotating icons, removed Sass support - v3.0.2 - much improved rendering and alignment in IE7 - v3.0.1 - much improved rendering in webkit, various bug fixes - v3.0.0 - all icons redesigned from scratch, optimized for Bootstrap's 14px default ## Contributing Please read through our [contributing guidelines](https://github.com/FortAwesome/Font-Awesome/blob/master/CONTRIBUTING.md). Included are directions for opening issues, coding standards, and notes on development. ## Versioning Font Awesome will be maintained under the Semantic Versioning guidelines as much as possible. Releases will be numbered with the following format: `..` And constructed with the following guidelines: * Breaking backward compatibility bumps the major (and resets the minor and patch) * New additions, including new icons, without breaking backward compatibility bumps the minor (and resets the patch) * Bug fixes, changes to brand logos, and misc changes bumps the patch For more information on SemVer, please visit http://semver.org. ## Author - Email: dave@fontawesome.io - Twitter: http://twitter.com/davegandy - GitHub: https://github.com/davegandy ## Component To include as a [component](https://github.com/componentjs/component), just run $ component install FortAwesome/Font-Awesome Or add "FortAwesome/Font-Awesome": "*" to the `dependencies` in your `component.json`. ## Hacking on Font Awesome **Before you can build the project**, you must first have the following installed: - [Ruby](https://www.ruby-lang.org/en/) - Ruby Development Headers - **Ubuntu:** `sudo apt-get install ruby-dev` *(Only if you're __NOT__ using `rbenv` or `rvm`)* - **Windows:** [DevKit](http://rubyinstaller.org/) - [Bundler](http://bundler.io/) (Run `gem install bundler` to install). - [Node Package Manager (AKA NPM)](https://docs.npmjs.com/getting-started/installing-node) - [Less](http://lesscss.org/) (Run `npm install -g less` to install). - [Less Plugin: Clean CSS](https://github.com/less/less-plugin-clean-css) (Run `npm install -g less-plugin-clean-css` to install). From the root of the repository, install the tools used to develop. $ bundle install $ npm install Build the project and documentation: $ bundle exec jekyll build Or serve it on a local server on http://localhost:7998/Font-Awesome/: $ bundle exec jekyll -w serve ----------- The following npm package may be included in this product: - get-caller-file@2.0.5 This package contains the following license and notice below: ISC License (ISC) Copyright 2018 Stefan Penner Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------- The following npm package may be included in this product: - hoist-non-react-statics@3.3.2 This package contains the following license and notice below: Software License Agreement (BSD License) ======================================== Copyright (c) 2015, Yahoo! Inc. All rights reserved. ---------------------------------------------------- Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of Yahoo! Inc. nor the names of YUI's contributors may be used to endorse or promote products derived from this software without specific prior written permission of Yahoo! Inc. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------- The following npm package may be included in this product: - immutable@4.0.0 This package contains the following license and notice below: MIT License Copyright (c) 2014-present, Lee Byron and other contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - inline-style-parser@0.1.1 This package contains the following license and notice below: # inline-style-parser [![NPM](https://nodei.co/npm/inline-style-parser.png)](https://nodei.co/npm/inline-style-parser/) [![NPM version](https://img.shields.io/npm/v/inline-style-parser.svg)](https://www.npmjs.com/package/inline-style-parser) [![Build Status](https://travis-ci.org/remarkablemark/inline-style-parser.svg?branch=master)](https://travis-ci.org/remarkablemark/inline-style-parser) [![Coverage Status](https://coveralls.io/repos/github/remarkablemark/inline-style-parser/badge.svg?branch=master)](https://coveralls.io/github/remarkablemark/inline-style-parser?branch=master) An inline style parser copied from [`css/lib/parse/index.js`](https://github.com/reworkcss/css/blob/v2.2.4/lib/parse/index.js): ``` InlineStyleParser(string) ``` Example: ```js var parse = require('inline-style-parser'); parse('color: #BADA55;'); ``` Output: ```js [ { type: 'declaration', property: 'color', value: '#BADA55', position: Position { start: [Object], end: [Object], source: undefined } } ] ``` [JSFiddle](https://jsfiddle.net/remarkablemark/hcxbpwq8/) | [Repl.it](https://repl.it/@remarkablemark/inline-style-parser) See [usage](#usage) and [examples](https://github.com/remarkablemark/inline-style-parser/tree/master/examples). ## Installation [NPM](https://www.npmjs.com/package/inline-style-parser): ```sh $ npm install inline-style-parser --save ``` [Yarn](https://yarnpkg.com/package/inline-style-parser): ```sh $ yarn add inline-style-parser ``` [CDN](https://unpkg.com/inline-style-parser/): ```html ``` ## Usage Import the module: ```js // CommonJS const parse = require('inline-style-parser'); // ES Modules import parse from 'inline-style-parser'; ``` Parse single declaration: ```js parse('left: 0'); ``` Output: ```js [ { type: 'declaration', property: 'left', value: '0', position: { start: { line: 1, column: 1 }, end: { line: 1, column: 8 }, source: undefined } } ] ``` Parse multiple declarations: ```js parse('left: 0; right: 100px;'); ``` Output: ```js [ { type: 'declaration', property: 'left', value: '0', position: { start: { line: 1, column: 1 }, end: { line: 1, column: 8 }, source: undefined } }, { type: 'declaration', property: 'right', value: '100px', position: { start: { line: 1, column: 10 }, end: { line: 1, column: 22 }, source: undefined } } ] ``` Parse declaration with missing value: ```js parse('top:'); ``` Output: ```js [ { type: 'declaration', property: 'top', value: '', position: { start: { line: 1, column: 1 }, end: { line: 1, column: 5 }, source: undefined } } ] ``` Parse unknown declaration: ```js parse('answer: 42;'); ``` Output: ```js [ { type: 'declaration', property: 'answer', value: '42', position: { start: { line: 1, column: 1 }, end: { line: 1, column: 11 }, source: undefined } } ] ``` Invalid declarations: ```js parse(''); // [] parse(); // throws TypeError parse(1); // throws TypeError parse('width'); // throws Error parse('/*'); // throws Error ``` ## Testing Run tests: ```sh $ npm test ``` Run tests in watch mode: ```sh $ npm run test:watch ``` Run tests with coverage: ```sh $ npm run test:coverage ``` Run tests in CI mode: ```sh $ npm run test:ci ``` Lint files: ```sh $ npm run lint ``` Fix lint errors: ```sh $ npm run lint:fix ``` ## Release Only collaborators with credentials can release and publish: ```sh $ npm run release $ git push --follow-tags && npm publish ``` ## License MIT. See [license](https://github.com/reworkcss/css/blob/v2.2.4/LICENSE) from original project. ----------- The following npm package may be included in this product: - intl-messageformat@10.1.1 This package contains the following license and notice below: Copyright (c) 2021, Oath Inc. Licensed under the terms of the New BSD license. See below for terms. Redistribution and use of this software in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - Neither the name of Oath Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission of Oath Inc. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ----------- The following npm package may be included in this product: - is-buffer@2.0.5 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) Feross Aboukhadijeh Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - is-plain-obj@4.0.0 This package contains the following license and notice below: MIT License Copyright (c) Sindre Sorhus (https://sindresorhus.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - is-promise@2.1.0 This package contains the following license and notice below: Copyright (c) 2014 Forbes Lindesay Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - javascript-natural-sort@0.7.1 This package contains the following license and notice below: ### Simple numerics ```javascript >>> ['10',9,2,'1','4'].sort(naturalSort) ['1',2,'4',9,'10'] ``` ### Floats ```javascript >>> ['10.0401',10.022,10.042,'10.021999'].sort(naturalSort) ['10.021999',10.022,'10.0401',10.042] ``` ### Float & decimal notation ```javascript >>> ['10.04f','10.039F','10.038d','10.037D'].sort(naturalSort) ['10.037D','10.038d','10.039F','10.04f'] ``` ### Scientific notation ```javascript >>> ['1.528535047e5','1.528535047e7','1.528535047e3'].sort(naturalSort) ['1.528535047e3','1.528535047e5','1.528535047e7'] ``` ### IP addresses ```javascript >>> ['192.168.0.100','192.168.0.1','192.168.1.1'].sort(naturalSort) ['192.168.0.1','192.168.0.100','192.168.1.1'] ``` ### Filenames ```javascript >>> ['car.mov','01alpha.sgi','001alpha.sgi','my.string_41299.tif'].sort(naturalSort) ['001alpha.sgi','01alpha.sgi','car.mov','my.string_41299.tif' ``` ### Dates ```javascript >>> ['10/12/2008','10/11/2008','10/11/2007','10/12/2007'].sort(naturalSort) ['10/11/2007', '10/12/2007', '10/11/2008', '10/12/2008'] ``` ### Money ```javascript >>> ['$10002.00','$10001.02','$10001.01'].sort(naturalSort) ['$10001.01','$10001.02','$10002.00'] ``` ### Movie Titles ```javascript >>> ['1 Title - The Big Lebowski','1 Title - Gattaca','1 Title - Last Picture Show'].sort(naturalSort) ['1 Title - Gattaca','1 Title - Last Picture Show','1 Title - The Big Lebowski'] ``` ### By default - case-sensitive sorting ```javascript >>> ['a', 'B'].sort(naturalSort); ['B', 'a'] ``` ### To enable case-insensitive sorting ```javascript >>> naturalSort.insensitive = true; >>> ['a', 'B'].sort(naturalSort); ['a', 'B'] ``` ----------- The following npm package may be included in this product: - jmespath@0.16.0 This package contains the following license and notice below: Copyright 2014 James Saryerwinnie Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ----------- The following npm package may be included in this product: - jquery@3.6.0 This package contains the following license and notice below: Copyright OpenJS Foundation and other contributors, https://openjsf.org/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - js-tokens@4.0.0 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2014, 2015, 2016, 2017, 2018 Simon Lydell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - json-schema-designer@0.0.21 This package contains the following license and notice below: MIT License Copyright (c) 2020 Genesys Telecommunications Laboratories, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - jsoneditor@9.9.0 This package contains the following license and notice below: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS ----------- The following npm package may be included in this product: - jsonrepair@2.2.1 This package contains the following license and notice below: The ISC License Copyright (c) 2020-2021 by Jos de Jong Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------- The following npm package may be included in this product: - lodash.isequal@4.5.0 This package contains the following license and notice below: Copyright JS Foundation and other contributors Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash The following license applies to all parts of this software except as documented below: ==== Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ==== Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. CC0: http://creativecommons.org/publicdomain/zero/1.0/ ==== Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. ----------- The following npm package may be included in this product: - lodash@4.17.21 This package contains the following license and notice below: Copyright OpenJS Foundation and other contributors Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors This software consists of voluntary contributions made by many individuals. For exact contribution history, see the revision history available at https://github.com/lodash/lodash The following license applies to all parts of this software except as documented below: ==== Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ==== Copyright and related rights for sample code are waived via CC0. Sample code is defined as all source code displayed within the prose of the documentation. CC0: http://creativecommons.org/publicdomain/zero/1.0/ ==== Files located in the node_modules and vendor directories are externally maintained libraries used by this software which have their own licenses; we recommend you read them, as their terms may differ from the terms above. ----------- The following npm package may be included in this product: - loose-envify@1.4.0 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2015 Andres Suarez Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - material-design-lite@1.3.0 This package contains the following license and notice below: Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright 2015 Google Inc Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. All code in any directories or sub-directories that end with *.html or *.css is licensed under the Creative Commons Attribution International 4.0 License, which full text can be found here: https://creativecommons.org/licenses/by/4.0/legalcode. As an exception to this license, all html or css that is generated by the software at the direction of the user is copyright the user. The user has full ownership and control over such content, including whether and how they wish to license it. ----------- The following npm package may be included in this product: - mdast-util-definitions@5.1.0 This package contains the following license and notice below: (The MIT License) Copyright (c) 2015-2016 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - mdast-util-from-markdown@1.0.0 This package contains the following license and notice below: (The MIT License) Copyright (c) 2020 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - mdurl@1.0.1 This package contains the following license and notice below: Copyright (c) 2015 Vitaly Puzrin, Alex Kocharin. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- .parse() is based on Joyent's node.js `url` code: Copyright Joyent, Inc. and other Node contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - micromark-core-commonmark@1.0.1 This package contains the following license and notice below: # micromark-core-commonmark [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] The core CommonMark constructs needed to tokenize markdown. Some of these can be [turned off][disable], but they are often essential to markdown and weird things might happen. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-core-commonmark ``` ## Use ```js import {autolink} from 'micromark-core-commonmark' console.log(autolink) // Do things with `autolink`. ``` ## API This module exports the following identifiers: `attention`, `autolink`, `blankLine`, `blockQuote`, `characterEscape`, `characterReference`, `codeFenced`, `codeIndented`, `codeText`, `content`, `definition`, `hardBreakEscape`, `headingAtx`, `htmlFlow`, `htmlText`, `labelEnd`, `labelStartImage`, `labelStartLink`, `lineEnding`, `list`, `setextUnderline`, `thematicBreak`. There is no default export. Each identifier refers to a [construct](https://github.com/micromark/micromark#constructs). See the code for more on the exported constructs. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-core-commonmark.svg [downloads]: https://www.npmjs.com/package/micromark-core-commonmark [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-core-commonmark.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-core-commonmark [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md [disable]: https://github.com/micromark/micromark#case-turn-off-constructs ----------- The following npm package may be included in this product: - micromark-factory-destination@1.0.0 This package contains the following license and notice below: # micromark-factory-destination [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark factory to parse destinations (found in resources, definitions). ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`factoryDestination(…)`](#factorydestination) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-factory-destination ``` ## Use ```js import {factoryDestination} from 'micromark-factory-destination' import {codes} from 'micromark-util-symbol/codes' import {types} from 'micromark-util-symbol/types' // A micromark tokenizer that uses the factory: /** @type {Tokenizer} */ function tokenizeResource(effects, ok, nok) { return start // … /** @type {State} */ function open(code) { if (code === codes.rightParenthesis) { return end(code) } return factoryDestination( effects, destinationAfter, nok, types.resourceDestination, types.resourceDestinationLiteral, types.resourceDestinationLiteralMarker, types.resourceDestinationRaw, types.resourceDestinationString, constants.linkResourceDestinationBalanceMax )(code) } // … } ``` ## API This module exports the following identifiers: `factoryDestination`. There is no default export. ### `factoryDestination(…)` ###### Parameters * `effects` (`Effects`) — Context * `ok` (`State`) — State switched to when successful * `nok` (`State`) — State switched to when not successful * `type` (`string`) — Token type for whole (`` or `b`) * `literalType` (`string`) — Token type when enclosed (``) * `literalMarkerType` (`string`) — Token type for enclosing (`<` and `>`) * `rawType` (`string`) — Token type when not enclosed (`b`) * `stringType` (`string`) — Token type for the URI (`a` or `b`) * `max` (`number`, default: `Infinity`) — Max depth of nested parens ###### Returns `State`. ###### Examples ```markdown b> a a\)b a(b)c a(b) ``` ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-factory-destination.svg [downloads]: https://www.npmjs.com/package/micromark-factory-destination [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-factory-destination.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-factory-destination [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-factory-label@1.0.0 This package contains the following license and notice below: # micromark-factory-label [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark factory to parse labels (found in media, definitions). ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`factoryLabel(…)`](#factorylabel) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-factory-label ``` ## Use ```js import assert from 'assert' import {factoryLabel} from 'micromark-factory-label' import {codes} from 'micromark-util-symbol/codes' import {types} from 'micromark-util-symbol/types' // A micromark tokenizer that uses the factory: /** @type {Tokenizer} */ function tokenizeDefinition(effects, ok, nok) { return start // … /** @type {State} */ function start(code) { assert(code === codes.leftSquareBracket, 'expected `[`') effects.enter(types.definition) return factoryLabel.call( self, effects, labelAfter, nok, types.definitionLabel, types.definitionLabelMarker, types.definitionLabelString )(code) } // … } ``` ## API This module exports the following identifiers: `factoryLabel`. There is no default export. ### `factoryLabel(…)` Note that labels in markdown are capped at 999 characters in the string. ###### Parameters * `this` (`TokenizeContext`) — Tokenize context * `effects` (`Effects`) — Context * `ok` (`State`) — State switched to when successful * `nok` (`State`) — State switched to when not successful * `type` (`string`) — Token type for whole (`[a]`) * `markerType` (`string`) — Token type for the markers (`[` and `]`) * `stringType` (`string`) — Token type for the identifier (`a`) ###### Returns `State`. ###### Examples ```markdown [a] [a b] [a\]b] ``` ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-factory-label.svg [downloads]: https://www.npmjs.com/package/micromark-factory-label [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-factory-label.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-factory-label [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-factory-space@1.0.0 This package contains the following license and notice below: # micromark-factory-space [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark factory to parse [markdown space][markdown-space] (found in lots of places). ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`factorySpace(…)`](#factoryspace) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-factory-space ``` ## Use ```js import {factorySpace} from 'micromark-factory-space' import {codes} from 'micromark-util-symbol/codes' import {types} from 'micromark-util-symbol/types' // A micromark tokenizer that uses the factory: /** @type {Tokenizer} */ function tokenizeCodeFenced(effects, ok, nok) { return start // … /** @type {State} */ function info(code) { if (code === codes.eof || markdownLineEndingOrSpace(code)) { effects.exit(types.chunkString) effects.exit(types.codeFencedFenceInfo) return factorySpace(effects, infoAfter, types.whitespace)(code) } if (code === codes.graveAccent && code === marker) return nok(code) effects.consume(code) return info } // … } ``` ## API This module exports the following identifiers: `factorySpace`. There is no default export. ### `factorySpace(…)` Note that there is no `nok` parameter: * spaces in markdown are often optional, in which case this factory can be used and `ok` will be switched to whether spaces were found or not, * One space character can be detected with [markdownSpace(code)][markdown-space] right before using `factorySpace` ###### Parameters * `effects` (`Effects`) — Context * `ok` (`State`) — State switched to when successful * `type` (`string`) — Token type for whole (`' \t'`) * `max` (`number`, default: `Infinity`) — Max size of whitespace ###### Returns `State`. ###### Examples Where `␉` represents a tab (plus how much it expands) and `␠` represents a single space. ```markdown ␉ ␠␠␠␠ ␉␠ ``` ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-factory-space.svg [downloads]: https://www.npmjs.com/package/micromark-factory-space [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-factory-space.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-factory-space [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md [markdown-space]: https://github.com/micromark/micromark/tree/main/packages/micromark-util-character#markdownspacecode ----------- The following npm package may be included in this product: - micromark-factory-title@1.0.0 This package contains the following license and notice below: # micromark-factory-title [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark factory to parse markdown titles (found in resources, definitions). ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`factoryTitle(…)`](#factorytitle) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-factory-title ``` ## Use ```js import {factoryTitle} from 'micromark-factory-title' import {codes} from 'micromark-util-symbol/codes' import {types} from 'micromark-util-symbol/types' // A micromark tokenizer that uses the factory: /** @type {Tokenizer} */ function tokenizeDefinition(effects, ok, nok) { return start // … /** @type {State} */ function before(code) { if ( code === codes.quotationMark || code === codes.apostrophe || code === codes.leftParenthesis ) { return factoryTitle( effects, factorySpace(effects, after, types.whitespace), nok, types.definitionTitle, types.definitionTitleMarker, types.definitionTitleString )(code) } return nok(code) } // … } ``` ## API This module exports the following identifiers: `factoryTitle`. There is no default export. ### `factoryTitle(…)` ###### Parameters * `effects` (`Effects`) — Context * `ok` (`State`) — State switched to when successful * `nok` (`State`) — State switched to when not successful * `type` (`string`) — Token type for whole (`"a"`, `'b'`, `(c)`) * `markerType` (`string`) — Token type for the markers (`"`, `'`, `(`, and `)`) * `stringType` (`string`) — Token type for the value (`a`) ###### Returns `State`. ###### Examples ```markdown "a" 'b' (c) "a b" 'a b' (a\)b) ``` ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-factory-title.svg [downloads]: https://www.npmjs.com/package/micromark-factory-title [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-factory-title.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-factory-title [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-factory-whitespace@1.0.0 This package contains the following license and notice below: # micromark-factory-whitespace [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark factory to parse [markdown line endings or spaces][ws] (found in lots of places). ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`factoryWhitespace(…)`](#factorywhitespace) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-factory-whitespace ``` ## Use ```js import {factoryWhitespace} from 'micromark-factory-whitespace' import {codes} from 'micromark-util-symbol/codes' import {types} from 'micromark-util-symbol/types' // A micromark tokenizer that uses the factory: /** @type {Tokenizer} */ function tokenizeTitle(effects, ok, nok) { return start /** @type {State} */ function start(code) { return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, before)(code) : nok(code) } // … } ``` ## API This module exports the following identifiers: `factoryWhitespace`. There is no default export. ### `factoryWhitespace(…)` Note that there is no `nok` parameter: * line endings or spaces in markdown are often optional, in which case this factory can be used and `ok` will be switched to whether spaces were found or not, * One line ending or space can be detected with [markdownLineEndingOrSpace(code)][ws] right before using `factoryWhitespace` ###### Parameters * `effects` (`Effects`) — Context * `ok` (`State`) — State switched to when successful ###### Returns `State`. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-factory-whitespace.svg [downloads]: https://www.npmjs.com/package/micromark-factory-whitespace [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-factory-whitespace.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-factory-whitespace [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md [ws]: https://github.com/micromark/micromark/tree/main/packages/micromark-util-character#markdownlineendingorspacecode ----------- The following npm package may be included in this product: - micromark-util-character@1.1.0 This package contains the following license and notice below: # micromark-util-character [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to handle [character codes](https://github.com/micromark/micromark#preprocess). ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`asciiAlpha(code)`](#asciialphacode) * [`asciiDigit(code)`](#asciidigitcode) * [`asciiHexDigit(code)`](#asciihexdigitcode) * [`asciiAlphanumeric(code)`](#asciialphanumericcode) * [`asciiPunctuation(code)`](#asciipunctuationcode) * [`asciiAtext(code)`](#asciiatextcode) * [`asciiControl(code)`](#asciicontrolcode) * [`markdownLineEndingOrSpace(code)`](#markdownlineendingorspacecode) * [`markdownLineEnding(code)`](#markdownlineendingcode) * [`markdownSpace(code)`](#markdownspacecode) * [`unicodeWhitespace(code)`](#unicodewhitespacecode) * [`unicodePunctuation(code)`](#unicodepunctuationcode) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-character ``` ## Use ```js import {asciiAlpha} from 'micromark-util-character' console.log(asciiAlpha(64)) // false console.log(asciiAlpha(65)) // true ``` ## API This module exports the following identifiers: `asciiAlpha`, `asciiAlphanumeric`, `asciiAtext`, `asciiControl`, `asciiDigit`, `asciiHexDigit`, `asciiPunctuation`, `markdownLineEnding`, `markdownLineEndingOrSpace`, `markdownSpace`, `unicodePunctuation`, `unicodeWhitespace`. There is no default export. ### `asciiAlpha(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents an ASCII alpha (`a` through `z`, case insensitive). An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha. An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`) to U+005A (`Z`). An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`) to U+007A (`z`). ### `asciiDigit(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents an ASCII digit (`0` through `9`). An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to U+0039 (`9`). ### `asciiHexDigit(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents an ASCII hex digit (`a` through `f`, case insensitive, or `0` through `9`). An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex digit, or an ASCII lower hex digit. An **ASCII upper hex digit** is a character in the inclusive range U+0041 (`A`) to U+0046 (`F`). An **ASCII lower hex digit** is a character in the inclusive range U+0061 (`a`) to U+0066 (`f`). ### `asciiAlphanumeric(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents an ASCII alphanumeric (`a` through `z`, case insensitive, or `0` through `9`). An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha (see `asciiAlpha`). ### `asciiPunctuation(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents ASCII punctuation. An **ASCII punctuation** is a character in the inclusive ranges U+0021 EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`). ### `asciiAtext(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents an ASCII atext. atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`), U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`) (**\[RFC5322]**). See **\[RFC5322]**:\ [Internet Message Format](https://tools.ietf.org/html/rfc5322).\ P. Resnick.\ IETF. ### `asciiControl(code)` Check whether a [character code](https://github.com/micromark/micromark#preprocess) is an ASCII control character. An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL) to U+001F (US), or U+007F (DEL). ### `markdownLineEndingOrSpace(code)` Check whether a [character code](https://github.com/micromark/micromark#preprocess) is a markdown line ending (see `markdownLineEnding`) or markdown space (see `markdownSpace`). ### `markdownLineEnding(code)` Check whether a [character code](https://github.com/micromark/micromark#preprocess) is a markdown line ending. A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR). In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE RETURN (CR) are replaced by these virtual characters depending on whether they occurred together. ### `markdownSpace(code)` Check whether a [character code](https://github.com/micromark/micromark#preprocess) is a markdown space. A **markdown space** is the concrete character U+0020 SPACE (SP) and the virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT). In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL SPACE (VS) characters, depending on the column at which the tab occurred. ### `unicodeWhitespace(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents Unicode whitespace. Note that this does handle micromark specific markdown whitespace characters. See `markdownLineEndingOrSpace` to check that. A **Unicode whitespace** is a character in the Unicode `Zs` (Separator, Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF), U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**). See **\[UNICODE]**:\ [The Unicode Standard](https://www.unicode.org/versions/).\ Unicode Consortium. ### `unicodePunctuation(code)` Check whether the [character code](https://github.com/micromark/micromark#preprocess) represents Unicode punctuation. A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation, Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf` (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po` (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII punctuation (see `asciiPunctuation`) (**\[UNICODE]**). See **\[UNICODE]**:\ [The Unicode Standard](https://www.unicode.org/versions/).\ Unicode Consortium. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-character.svg [downloads]: https://www.npmjs.com/package/micromark-util-character [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-character.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-character [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-chunked@1.0.0 This package contains the following license and notice below: # micromark-util-chunked [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to splice and push with giant arrays. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`push(list, items)`](#pushlist-items) * [`splice(list, start, remove, items)`](#splicelist-start-remove-items) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-chunked ``` ## Use ```js import {push, splice} from 'micromark-util-chunked' // … nextEvents = push(nextEvents, [ ['enter', events[open][1], context], ['exit', events[open][1], context] ]) // … splice(events, open - 1, index - open + 3, nextEvents) // … ``` ## API This module exports the following identifiers: `push`, `splice`. There is no default export. ### `push(list, items)` Append `items` (an array) at the end of `list` (another array). When `list` was empty, returns `items` instead. This prevents a potentially expensive operation when `list` is empty, and adds items in batches to prevent V8 from hanging. ###### Parameters * `list` (`unknown[]`) — List to operate on * `items` (`unknown[]`) — Items to add to `list` ###### Returns `list` or `items` ### `splice(list, start, remove, items)` Like `Array#splice`, but smarter for giant arrays. `Array#splice` takes all items to be inserted as individual argument which causes a stack overflow in V8 when trying to insert 100k items for instance. Otherwise, this does not return the removed items, and takes `items` as an array instead of rest parameters. ###### Parameters * `list` (`unknown[]`) — List to operate on * `start` (`number`) — Index to remove/insert at (can be negative) * `remove` (`number`) — Number of items to remove * `items` (`unknown[]`) — Items to inject into `list` ###### Returns `void` ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-chunked.svg [downloads]: https://www.npmjs.com/package/micromark-util-chunked [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-chunked.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-chunked [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-classify-character@1.0.0 This package contains the following license and notice below: # micromark-util-classify-character [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to classify whether a character is whitespace or punctuation. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`classifyCharacter(code)`](#classifycharactercode) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-classify-character ``` ## Use ```js /** @type {Tokenizer} */ function tokenizeAttention(effects, ok) { return start // … /** @type {State} */ function sequence(code) { if (code === marker) { // … } const token = effects.exit('attentionSequence') const after = classifyCharacter(code) const open = !after || (after === constants.characterGroupPunctuation && before) const close = !before || (before === constants.characterGroupPunctuation && after) // … } // … } ``` ## API This module exports the following identifiers: `classifyCharacter`. There is no default export. ### `classifyCharacter(code)` Classify whether a [character code](https://github.com/micromark/micromark#preprocess) represents whitespace, punctuation, or something else. Used for attention (emphasis, strong), whose sequences can open or close based on the class of surrounding characters. Note that eof (`null`) is seen as whitespace. ###### Returns `constants.characterGroupWhitespace`, `constants.characterGroupPunctuation`, or `undefined.` ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-classify-character.svg [downloads]: https://www.npmjs.com/package/micromark-util-classify-character [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-classify-character.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-classify-character [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-combine-extensions@1.0.0 This package contains the following license and notice below: # micromark-util-combine-extensions [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to combine [syntax][] or [html][] extensions. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`combineExtensions(extensions)`](#combineextensionsextensions) * [`combineHtmlExtensions(htmlExtensions)`](#combinehtmlextensionshtmlextensions) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-combine-extensions ``` ## Use ```js import {gfmAutolinkLiteral} from 'micromark-extension-gfm-autolink-literal' import {gfmStrikethrough} from 'micromark-extension-gfm-strikethrough' import {gfmTable} from 'micromark-extension-gfm-table' import {gfmTaskListItem} from 'micromark-extension-gfm-task-list-item' import {combineExtensions} from 'micromark-util-combine-extensions' const gfm = combineExtensions([gfmAutolinkLiteral, gfmStrikethrough(), gfmTable, gfmTaskListItem]) ``` ## API This module exports the following identifiers: `combineExtensions`, `combineHtmlExtensions`. There is no default export. ### `combineExtensions(extensions)` Combine several syntax extensions into one. ###### Parameters * `extensions` (`Extension[]`) — List of syntax extensions ###### Returns A single combined extension (`Extension`). ### `combineHtmlExtensions(htmlExtensions)` Combine several html extensions into one. ###### Parameters * `htmlExtensions` (`HtmlExtension[]`) — List of html extensions ###### Returns A single combined html extension (`HtmlExtension`). ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-combine-extensions.svg [downloads]: https://www.npmjs.com/package/micromark-util-combine-extensions [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-combine-extensions.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-combine-extensions [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md [syntax]: https://github.com/micromark/micromark#syntaxextension [html]: https://github.com/micromark/micromark#htmlextension ----------- The following npm package may be included in this product: - micromark-util-decode-numeric-character-reference@1.0.0 This package contains the following license and notice below: # micromark-util-decode-numeric-character-reference [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to decode numeric character references. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`decodeNumericCharacterReference(value)`](#decodenumericcharacterreferencevalue) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-decode-numeric-character-reference ``` ## Use ```js import {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference' decodeNumericCharacterReference('41', 16) // 'A' decodeNumericCharacterReference('65', 10) // 'A' decodeNumericCharacterReference('A', 16) // '\n' decodeNumericCharacterReference('7F', 16) // '�' - Control decodeNumericCharacterReference('110000', 16) // '�' - Out of range ``` ## API This module exports the following identifiers: `decodeNumericCharacterReference`. There is no default export. ### `decodeNumericCharacterReference(value)` Sort of like `String.fromCharCode(Number.parseInt(value, base))`, but makes non-characters and control characters safe. ###### Parameters * `value` (`string`) — Value to decode. * `base` (`number`, probably `10` or `16`) — Numeric base. ###### Returns `string` — Character code. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-normalize-identifier.svg [downloads]: https://www.npmjs.com/package/micromark-util-normalize-identifier [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-normalize-identifier.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-normalize-identifier [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-encode@1.0.0 This package contains the following license and notice below: # micromark-util-encode [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to encode dangerous html characters. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`encode(value)`](#encodevalue) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-encode ``` ## Use ```js import {encode} from 'micromark-util-encode' encode('<3') // '<3' ``` ## API This module exports the following identifiers: `encode`. There is no default export. ### `encode(value)` Encode only the dangerous HTML characters. This ensures that certain characters which have special meaning in HTML are dealt with. Technically, we can skip `>` and `"` in many cases, but CM includes them. ###### Parameters * `value` (`string`) — Value to encode. ###### Returns `string` — Encoded value. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-encode.svg [downloads]: https://www.npmjs.com/package/micromark-util-encode [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-encode.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-encode [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-html-tag-name@1.0.0 This package contains the following license and notice below: # micromark-util-html-tag-name [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility with list of html tag names. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`htmlBlockNames`](#htmlblocknames) * [`htmlRawNames`](#htmlrawnames) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-html-tag-name ``` ## Use ```js import {htmlBlockNames, htmlRawNames} from 'micromark-util-html-tag-name' console.log(htmlBlockNames) // ['address', 'article', …] console.log(htmlRawNames) // ['pre', 'script', …] ``` ## API This module exports the following identifiers: `htmlBlockNames`, `htmlRawNames`. There is no default export. ### `htmlBlockNames` List of lowercase HTML tag names (`string[]`) which when parsing HTML (flow), result in more relaxed rules (condition 6): because they are known blocks, the HTML-like syntax doesn’t have to be strictly parsed. For tag names not in this list, a more strict algorithm (condition 7) is used to detect whether the HTML-like syntax is seen as HTML (flow) or not. This is copied from: . ### `htmlRawNames` List of lowercase HTML tag names (`string[]`) which when parsing HTML (flow), result in HTML that can include lines w/o exiting, until a closing tag also in this list is found (condition 1). This is copied from: . Note that `textarea` is not available in `CommonMark@0.29` but has been merged to the primary branch and is slated to be released in the next release of CommonMark. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-html-tag-name.svg [downloads]: https://www.npmjs.com/package/micromark-util-html-tag-name [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-html-tag-name.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-html-tag-name [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-normalize-identifier@1.0.0 This package contains the following license and notice below: # micromark-util-normalize-identifier [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility normalize identifiers (as found in references, definitions). ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`normalizeIdentifier(value)`](#normalizeidentifiervalue) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-normalize-identifier ``` ## Use ```js import {normalizeIdentifier} from 'micromark-util-normalize-identifier' normalizeIdentifier(' a ') // 'A' normalizeIdentifier('a\t\r\nb') // 'A B' normalizeIdentifier('ТОЛПОЙ') // 'ТОЛПОЙ' normalizeIdentifier('Толпой') // 'ТОЛПОЙ' ``` ## API This module exports the following identifiers: `normalizeIdentifier`. There is no default export. ### `normalizeIdentifier(value)` Normalize an identifier (such as used in definitions). Collapse Markdown whitespace, trim, and then lower- and uppercase. Some characters are considered “uppercase”, such as U+03F4 (`ϴ`), but if their lowercase counterpart (U+03B8 (`θ`)) is uppercased will result in a different uppercase character (U+0398 (`Θ`)). Hence, to get that form, we perform both lower- and uppercase. Using uppercase last makes sure keys will not interact with default prototypal methods: no method is uppercase. ###### Parameters * `value` (`string`) — Identifier to normalize. ###### Returns `string` — Normalized value. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-normalize-identifier.svg [downloads]: https://www.npmjs.com/package/micromark-util-normalize-identifier [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-normalize-identifier.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-normalize-identifier [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-resolve-all@1.0.0 This package contains the following license and notice below: # micromark-util-resolve-all [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to resolve subtokens. [Resolvers][resolver] are functions that take events and manipulate them. This is needed for example because media (links, images) and attention (strong, italic) aren’t parsed left-to-right. Instead, their openings and closings are parsed, and when done, their openings and closings are matched, and left overs are turned into plain text. Because media and attention can’t overlap, we need to perform that operation when one closing matches an opening, too. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`resolveAll(constructs, events, context)`](#resolveallconstructs-events-context) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-resolve-all ``` ## Use ```js import {push} from 'micromark-util-chunked' import {resolveAll} from 'micromark-util-resolve-all' /** * @type {Resolver} */ function resolveAllAttention(events, context) { // … // Walk through all events. while (++index < events.length) { // Find a token that can close. if ( events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close ) { open = index // Now walk back to find an opener. while (open--) { // Find a token that can open the closer. if ( // … ) { // … // Opening. nextEvents = push(nextEvents, [ // … ]) // Between. nextEvents = push( nextEvents, resolveAll( context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context ) ) // Closing. nextEvents = push(nextEvents, [ // … ]) // … } } } } // … } ``` ## API This module exports the following identifiers: `resolveAll`. There is no default export. ### `resolveAll(constructs, events, context)` Call all `resolveAll`s in `constructs`. ###### Parameters * `constructs` (`Construct[]`) — List of constructs, optionally with `resolveAll`s * `events` (`Event[]`) — List of events * `context` (`TokenizeContext`) — Context used by `tokenize` ###### Returns `Events[]` — Changed events. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-resolve-all.svg [downloads]: https://www.npmjs.com/package/micromark-util-resolve-all [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-resolve-all.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-resolve-all [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md [resolver]: https://github.com/micromark/micromark/blob/a571c09/packages/micromark-util-types/index.js#L219 ----------- The following npm package may be included in this product: - micromark-util-sanitize-uri@1.0.0 This package contains the following license and notice below: # micromark-util-sanitize-uri [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to sanitize urls. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`sanitizeUri(url[, pattern])`](#sanitizeuriurl-pattern) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-sanitize-uri ``` ## Use ```js import {sanitizeUri} from 'micromark-util-sanitize-uri' sanitizeUri('https://example.com/a&b') // 'https://example.com/a&amp;b' sanitizeUri('https://example.com/a%b') // 'https://example.com/a%25b' sanitizeUri('https://example.com/a%20b') // 'https://example.com/a%20b' sanitizeUri('https://example.com/👍') // 'https://example.com/%F0%9F%91%8D' sanitizeUri('https://example.com/', /^https?$/i) // 'https://example.com/' sanitizeUri('javascript:alert(1)', /^https?$/i) // '' sanitizeUri('./example.jpg', /^https?$/i) // './example.jpg' sanitizeUri('#a', /^https?$/i) // '#a' ``` ## API This module exports the following identifiers: `sanitizeUri`. There is no default export. ### `sanitizeUri(url[, pattern])` Make a value safe for injection as a URL. This encodes unsafe characters with percent-encoding and skips already encoded sequences (see `normalizeUri` internally). Further unsafe characters are encoded as character references (see `micromark-util-encode`). A regex of allowed protocols can be given, in which case the URL is sanitized. For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or `/^https?$/i` for `img[src]` (this is what `github.com` allows). If the URL includes an unknown protocol (one not matched by `protocol`, such as a dangerous example, `javascript:`), the value is ignored. ###### Parameters * `url` (`string`) — URI to sanitize. * `pattern` (`RegExp`, optional) — Allowed protocols. ###### Returns `string` — Sanitized URI. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-sanitize-uri.svg [downloads]: https://www.npmjs.com/package/micromark-util-sanitize-uri [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-sanitize-uri.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-sanitize-uri [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-subtokenize@1.0.0 This package contains the following license and notice below: # micromark-util-subtokenize [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility to tokenize subtokens. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`subtokenize(events)`](#subtokenizeevents) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-subtokenize ``` ## Use ```js import {subtokenize} from 'micromark-util-subtokenize' /** * Content is transparent: it’s parsed right now. That way, definitions are also * parsed right now: before text in paragraphs (specifically, media) are parsed. * * @type {Resolver} */ function resolveContent(events) { subtokenize(events) return events } ``` ## API This module exports the following identifiers: `subtokenize`. There is no default export. ### `subtokenize(events)` Tokenize subcontent. ###### Parameters * `events` (`Event[]`) — List of events ###### Returns `boolean` — Whether subtokens were found. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-subtokenize.svg [downloads]: https://www.npmjs.com/package/micromark-util-subtokenize [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-subtokenize.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-subtokenize [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark-util-symbol@1.0.0 This package contains the following license and notice below: # micromark-util-symbol [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility with symbols. It’s useful to reference these by name instead of value while developing. [`micromark-build`][micromark-build] compiles them away for production code. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-symbol ``` ## Use ```js import {codes} from 'micromark-util-symbol/codes' import {constants} from 'micromark-util-symbol/constants' import {types} from 'micromark-util-symbol/types' import {values} from 'micromark-util-symbol/values' console.log(codes.atSign) // 64 console.log(constants.characterReferenceNamedSizeMax) // 31 console.log(types.definitionDestinationRaw) // 'definitionDestinationRaw' console.log(values.atSign) // '@' ``` ## API This package has four entries in its export map: `micromark-util-symbol/codes`, `micromark-util-symbol/constants`, `micromark-util-symbol/types`, `micromark-util-symbol/values`. Each module exports an identifier with the same name (for example, `micromark-util-symbol/codes` has `codes`), which is an object mapping strings to other values. Take a peek at the code to learn more! ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-symbol.svg [downloads]: https://www.npmjs.com/package/micromark-util-symbol [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-symbol.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-symbol [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md [micromark-build]: https://github.com/micromark/micromark/tree/main/packages/micromark-build ----------- The following npm package may be included in this product: - micromark-util-types@1.0.1 This package contains the following license and notice below: # micromark-util-types [![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] micromark utility with a couple of typescript types. ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [Security](#security) * [Contribute](#contribute) * [License](#license) ## Install [npm][]: ```sh npm install micromark-util-types ``` ## Use ```js /** * @typedef {import('micromark-util-types').Point} Point */ ``` ## API This module exports no identifiers. There is no default export. See [the code](https://github.com/micromark/micromark/blob/main/packages/micromark-util-types/index.js) for all about the exposed types. ## Security See [`security.md`][securitymd] in [`micromark/.github`][health] for how to submit a security report. ## Contribute See [`contributing.md`][contributing] in [`micromark/.github`][health] for ways to get started. See [`support.md`][support] for ways to get help. This project has a [code of conduct][coc]. By interacting with this repository, organisation, or community you agree to abide by its terms. ## License [MIT][license] © [Titus Wormer][author] [build-badge]: https://github.com/micromark/micromark/workflows/main/badge.svg [build]: https://github.com/micromark/micromark/actions [coverage-badge]: https://img.shields.io/codecov/c/github/micromark/micromark.svg [coverage]: https://codecov.io/github/micromark/micromark [downloads-badge]: https://img.shields.io/npm/dm/micromark-util-encode.svg [downloads]: https://www.npmjs.com/package/micromark-util-encode [bundle-size-badge]: https://img.shields.io/bundlephobia/minzip/micromark-util-encode.svg [bundle-size]: https://bundlephobia.com/result?p=micromark-util-encode [sponsors-badge]: https://opencollective.com/unified/sponsors/badge.svg [backers-badge]: https://opencollective.com/unified/backers/badge.svg [opencollective]: https://opencollective.com/unified [npm]: https://docs.npmjs.com/cli/install [chat-badge]: https://img.shields.io/badge/chat-discussions-success.svg [chat]: https://github.com/micromark/micromark/discussions [license]: https://github.com/micromark/micromark/blob/main/license [author]: https://wooorm.com [health]: https://github.com/micromark/.github [securitymd]: https://github.com/micromark/.github/blob/HEAD/security.md [contributing]: https://github.com/micromark/.github/blob/HEAD/contributing.md [support]: https://github.com/micromark/.github/blob/HEAD/support.md [coc]: https://github.com/micromark/.github/blob/HEAD/code-of-conduct.md ----------- The following npm package may be included in this product: - micromark@3.0.10 This package contains the following license and notice below:

micromark

[![Build][build-badge]][build] [![Coverage][coverage-badge]][coverage] [![Downloads][downloads-badge]][downloads] [![Size][bundle-size-badge]][bundle-size] [![Sponsors][sponsors-badge]][opencollective] [![Backers][backers-badge]][opencollective] [![Chat][chat-badge]][chat] The smallest CommonMark compliant markdown parser with positional info and concrete tokens. ## Feature highlights * [x] **[compliant][commonmark]** (100% to CommonMark) * [x] **[extensions][]** ([GFM][], [directives][], [frontmatter][], [math][], [MDX.js][mdxjs]) * [x] **[safe][security]** (by default) * [x] **[small][size]** (smallest CM parser that exists) * [x] **[robust][test]** (1800+ tests, 100% coverage, fuzz testing) ## When to use this * If you *just* want to turn markdown into HTML (with maybe a few extensions) * If you want to do *really complex things* with markdown See [§ Comparison][comparison] for more info ## Intro micromark is a long awaited markdown parser. It uses a [state machine][cmsm] to parse the entirety of markdown into concrete tokens. It’s the smallest 100% [CommonMark][] compliant markdown parser in JavaScript. It was made to replace the internals of [`remark-parse`][remark-parse], the most [popular][] markdown parser. Its API compiles to HTML, but its parts are made to be used separately, so as to generate syntax trees ([`mdast-util-from-markdown`][from-markdown]) or compile to other output formats. * to learn markdown, see this [cheatsheet and tutorial][cheat] * for more about us, see [`unifiedjs.com`][site] * for updates, see [Twitter][] * for questions, see [Discussions][chat] * to help, see [contribute][] or [sponsor][] below ## Contents * [Install](#install) * [Use](#use) * [API](#api) * [`micromark(value[, encoding][, options])`](#micromarkvalue-encoding-options) * [`stream(options?)`](#streamoptions) * [Extensions](#extensions) * [List of extensions](#list-of-extensions) * [`SyntaxExtension`](#syntaxextension) * [`HtmlExtension`](#htmlextension) * [Extending markdown](#extending-markdown) * [Creating a micromark extension](#creating-a-micromark-extension) * [Architecture](#architecture) * [Overview](#overview) * [Preprocess](#preprocess) * [Parse](#parse) * [Postprocess](#postprocess) * [Compile](#compile) * [Examples](#examples) * [GitHub flavored markdown (GFM)](#github-flavored-markdown-gfm) * [Math](#math) * [Syntax tree](#syntax-tree) * [Markdown](#markdown) * [CommonMark](#commonmark) * [Grammar](#grammar) * [Project](#project) * [Comparison](#comparison) * [Test](#test) * [Size & debug](#size--debug) * [Version](#version) * [Security](#security) * [Contribute](#contribute) * [Sponsor](#sponsor) * [Origin story](#origin-story) * [License](#license) ## Install [npm][]: ```sh npm install micromark ``` ## Use Typical use (buffering): ```js import {micromark} from 'micromark' console.log(micromark('## Hello, *world*!')) ``` Yields: ```html

Hello, world!

``` You can pass extensions (in this case [`micromark-extension-gfm`][gfm]): ```js import {micromark} from 'micromark' import {gfm, gfmHtml} from 'micromark-extension-gfm' const value = '* [x] contact@example.com ~~strikethrough~~' const result = micromark(value, { extensions: [gfm()], htmlExtensions: [gfmHtml()] }) console.log(result) ``` Yields: ```html
``` Streaming interface: ```js import fs from 'fs' import {stream} from 'micromark/stream' fs.createReadStream('example.md') .on('error', handleError) .pipe(stream()) .pipe(process.stdout) function handleError(error) { // Handle your error here! throw error } ``` ## API `micromark` core has two entries in its export map: `micromark` and `micromark/stream`. `micromark` exports the following identifier: `micromark`. `micromark/stream` exports the following identifier: `stream`. There are no default exports. The export map supports the endorsed [`development` condition](https://nodejs.org/api/packages.html#packages_resolving_user_conditions). Run `node --conditions development module.js` to get instrumented dev code. Without this condition, production code is loaded. See [§ Size & debug][size-debug] for more info. ### `micromark(value[, encoding][, options])` Compile markdown to HTML. ##### Parameters ###### `value` Markdown to parse (`string` or `Buffer`). ###### `encoding` [Character encoding][encoding] to understand `value` as when it’s a [`Buffer`][buffer] (`string`, default: `'utf8'`). ###### `options.defaultLineEnding` Value to use for line endings not in `value` (`string`, default: first line ending or `'\n'`). Generally, micromark copies line endings (`'\r'`, `'\n'`, `'\r\n'`) in the markdown document over to the compiled HTML. In some cases, such as `> a`, CommonMark requires that extra line endings are added: `
\n

a

\n
`. ###### `options.allowDangerousHtml` Whether to allow embedded HTML (`boolean`, default: `false`). See [§ Security][security]. ###### `options.allowDangerousProtocol` Whether to allow potentially dangerous protocols in links and images (`boolean`, default: `false`). URLs relative to the current protocol are always allowed (such as, `image.jpg`). For links, the allowed protocols are `http`, `https`, `irc`, `ircs`, `mailto`, and `xmpp`. For images, the allowed protocols are `http` and `https`. See [§ Security][security]. ###### `options.extensions` Array of syntax extensions ([`Array.`][syntax-extension], default: `[]`). See [§ Extensions][extensions]. ###### `options.htmlExtensions` Array of HTML extensions ([`Array.`][html-extension], default: `[]`). See [§ Extensions][extensions]. ##### Returns `string` — Compiled HTML. ### `stream(options?)` Streaming interface of micromark. Compiles markdown to HTML. `options` are the same as the buffering API above. Note that some of the work to parse markdown can be done streaming, but in the end buffering is required. micromark does not handle errors for you, so you must handle errors on whatever streams you pipe into it. As markdown does not know errors, `micromark` itself does not emit errors. ## Extensions micromark supports extensions. There are two types of extensions for micromark: [`SyntaxExtension`][syntax-extension], which change how markdown is parsed, and [`HtmlExtension`][html-extension], which change how it compiles. They can be passed in [`options.extensions`][option-extensions] or [`options.htmlExtensions`][option-htmlextensions], respectively. As a user of extensions, refer to each extension’s readme for more on how to use them. As a (potential) author of extensions, refer to [§ Extending markdown][extending-markdown] and [§ Creating a micromark extension][create-extension]. ### List of extensions * [`micromark/micromark-extension-directive`][directives] — support directives (generic extensions) * [`micromark/micromark-extension-frontmatter`][frontmatter] — support frontmatter (YAML, TOML, etc) * [`micromark/micromark-extension-gfm`][gfm] — support GFM (GitHub Flavored Markdown) * [`micromark/micromark-extension-gfm-autolink-literal`](https://github.com/micromark/micromark-extension-gfm-autolink-literal) — support GFM autolink literals * [`micromark/micromark-extension-gfm-footnote`](https://github.com/micromark/micromark-extension-gfm-footnote) — support GFM footnotes * [`micromark/micromark-extension-gfm-strikethrough`](https://github.com/micromark/micromark-extension-gfm-strikethrough) — support GFM strikethrough * [`micromark/micromark-extension-gfm-table`](https://github.com/micromark/micromark-extension-gfm-table) — support GFM tables * [`micromark/micromark-extension-gfm-tagfilter`](https://github.com/micromark/micromark-extension-gfm-tagfilter) — support GFM tagfilter * [`micromark/micromark-extension-gfm-task-list-item`](https://github.com/micromark/micromark-extension-gfm-task-list-item) — support GFM tasklists * [`micromark/micromark-extension-math`][math] — support math * [`micromark/micromark-extension-mdx`](https://github.com/micromark/micromark-extension-mdx) — support MDX * [`micromark/micromark-extension-mdxjs`][mdxjs] — support MDX.js * [`micromark/micromark-extension-mdx-expression`](https://github.com/micromark/micromark-extension-mdx-expression) — support MDX (or MDX.js) expressions * [`micromark/micromark-extension-mdx-jsx`](https://github.com/micromark/micromark-extension-mdx-jsx) — support MDX (or MDX.js) JSX * [`micromark/micromark-extension-mdx-md`](https://github.com/micromark/micromark-extension-mdx-md) — support misc MDX changes * [`micromark/micromark-extension-mdxjs-esm`](https://github.com/micromark/micromark-extension-mdxjs-esm) — support MDX.js import/exports #### Community extensions * [`wataru-chocola/micromark-extension-definition-list`](https://github.com/wataru-chocola/micromark-extension-definition-list) — support definition lists ### `SyntaxExtension` A syntax extension is an object whose fields are typically the names of hooks, referring to where constructs “hook” into. The fields at such objects are character codes, mapping to constructs as values. The built in [constructs][] are an example. See it and [existing extensions][extensions] for inspiration. ### `HtmlExtension` An HTML extension is an object whose fields are typically `enter` or `exit` (reflecting whether a token is entered or exited). The values at such objects are names of tokens mapping to handlers. See [existing extensions][extensions] for inspiration. ### Extending markdown micromark lets you change markdown syntax, yes, but there are alternatives. The alternatives are often better. Over the years, many micromark and remark users have asked about their unique goals for markdown. Some exemplary goals are: 1. I want to add `rel="nofollow"` to external links 2. I want to add links from headings to themselves 3. I want line breaks in paragraphs to become hard breaks 4. I want to support embedded music sheets 5. I want authors to add arbitrary attributes 6. I want authors to mark certain blocks with meaning, such as tip, warning, etc 7. I want to combine markdown with JS(X) 8. I want to support our legacy flavor of markdown-like syntax These can be solved in different ways and which solution is best is both subjective and dependant on unique needs. Often, there is already a solution in the form of an existing remark or rehype plugin. Respectively, their solutions are: 1. [`remark-external-links`](https://github.com/remarkjs/remark-external-links) 2. [`rehype-autolink-headings`](https://github.com/rehypejs/rehype-autolink-headings) 3. [`remark-breaks`](https://github.com/remarkjs/remark-breaks) 4. custom plugin similar to [`rehype-katex`](https://github.com/remarkjs/remark-math/tree/main/packages/rehype-katex) but integrating [`abcjs`](https://www.abcjs.net) 5. either [`remark-directive`](https://github.com/remarkjs/remark-directive) and a custom plugin or with [`rehype-attr`](https://github.com/jaywcjlove/rehype-attr) 6. [`remark-directive`](https://github.com/remarkjs/remark-directive) combined with a custom plugin 7. combining the existing micromark MDX extensions however you please, such as done by [`mdx-js/mdx`](https://github.com/mdx-js/mdx) or [`xdm`](https://github.com/wooorm/xdm) 8. Writing a micromark extension Looking at these from a higher level, they can be categorized: * **Changing the output by transforming syntax trees** (1 and 2) This category is nice as the format remains plain markdown that authors are already familiar with and which will work with existing tools and platforms. Implementations will deal with the syntax tree ([`mdast`][mdast]) and the ecosystems **[remark][]** and **[rehype][]**. There are many existing [utilities for working with that tree][utilities]. Many [remark plugins][] and [rehype plugins][] also exist. * **Using and abusing markdown to add new meaning** (3, 4, potentially 5) This category is similar to *Changing the output by transforming syntax trees*, but adds a new meaning to certain things which already have semantics in markdown. Some examples in pseudo code: ````markdown * **A list item with the first paragraph bold** And then more content, is turned into `
` / `
` / `
` elements Or, the title attributes on links or images is [overloaded](/url 'rel:nofollow') with a new meaning. ```csv fenced,code,can,include,data which,is,turned,into,a,graph ``` ```js data can="be" passed=true // after the code language name ``` HTML, especially comments, could be used as **markers** ```` * **Arbitrary extension mechanism** (potentially 5; 6) This category is nice when content should contain embedded “components”. Often this means it’s required for authors to have some programming experience. There are three good ways to solve arbitrary extensions. **HTML**: Markdown already has an arbitrary extension syntax. It works in most places and authors are already familiar with the syntax, but it’s reasonably hard to implement securely. Certain platforms will remove HTML completely, others sanitize it to varying degrees. HTML also supports custom elements. These could be used and enhanced by client side JavaScript or enhanced when transforming the syntax tree. **Generic directives**: although [a proposal][directive-proposal] and not supported on most platforms, directives do work with many tools already. They’re not the easiest to author compared to, say, a heading, but sometimes that’s okay. They do have potential: they nicely solve the need for an infinite number of potential extensions to markdown in a single markdown-esque way. **MDX** also adds support for components by swapping HTML out for JS(X). JSX is an extension to JavaScript, so MDX is something along the lines of literate programming. This does require knowledge of React (or Vue) and JavaScript, excluding some authors. * **Extending markdown syntax** (7 and 8) Extend the syntax of markdown means: * Authors won’t be familiar with the syntax * Content won’t work in other places (such as on GitHub) * Defeating the purpose of markdown: being simple to author and looking like what it means …and it’s hard to do as it requires some in-depth knowledge of JavaScript and parsing. But it’s possible and in certain cases very powerful. ### Creating a micromark extension This section shows how to create an extension for micromark that parses “variables” (a way to render some data) and one to turn a default construct off. > Stuck? > See [`support.md`][support]. #### Prerequisites * You should possess an intermediate to high understanding of JavaScript: it’s going to get a bit complex * Read the readme of [unified][] (until you hit the API section) to better understand where micromark fits * Read the [§ Architecture][architecture] section to understand how micromark works * Read the [§ Extending markdown][extending-markdown] section to understand whether it’s a good idea to extend the syntax of markdown #### Extension basics micromark supports two types of extensions. Syntax extensions change how markdown is parsed. HTML extensions change how it compiles. HTML extensions are not always needed, as micromark is often used through [`mdast-util-from-markdown`][from-markdown] to parse to a markdown syntax tree So instead of an HTML extension a `from-markdown` utility is needed. Then, a [`mdast-util-to-markdown`][to-markdown] utility, which is responsible for serializing syntax trees to markdown, is also needed. When developing something for internal use only, you can pick and choose which parts you need. When open sourcing your extensions, it should probably contain four parts: syntax extension, HTML extension, `from-markdown` utility, and a `to-markdown` utility. On to our first case! #### Case: variables Let’s first outline what we want to make: render some data, similar to how [Liquid](https://github.com/Shopify/liquid/wiki/Liquid-for-Designers) and the like work, in our markdown. It could look like this: ```markdown Hello, {planet}! ``` Turned into: ```html

Hello, Venus!

``` An opening curly brace, followed by one or more characters, and then a closing brace. We’ll then look up `planet` in some object and replace the variable with its corresponding value, to get something like `Venus` out. It looks simple enough, but with markdown there are often a couple more things to think about. For this case, I can see the following: * Is there a “block” version too? * Are spaces allowed? Line endings? Should initial and final white space be ignored? * Balanced nested braces? Superfluous ones such as `{{planet}}` or meaningful ones such as `{a {pla} net}`? * Character escapes (`{pla\}net}`) and character references (`{pla}net}`)? To keep things as simple as possible, let’s not support a block syntax, see spaces as special, support line endings, or support nested braces. But to learn interesting things, we *will* support character escapes and \-references. Note that this particular case is already solved quite nicely by [`micromark-extension-mdx-expression`][mdx-expression]. It’s a bit more powerful and does more things, but it can be used to solve this case and otherwise serve as inspiration. ##### Setup Create a new folder, enter it, and set up a new package: ```sh mkdir example cd example npm init -y ``` In this example we’ll use ESM, so add `type: 'module'` to `package.json`: ```diff @@ -2,6 +2,7 @@ "name": "example", "version": "1.0.0", "description": "", + "type": "module", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" ``` Add a markdown file, `example.md`, with the following text: ```markdown Hello, {planet}! {pla\}net} and {pla}net}. ``` To check if our extension works, add an `example.js` module, with the following code: ```js import {promises as fs} from 'node:fs' import {micromark} from 'micromark' import {variables} from './index.js' main() async function main() { const buf = await fs.readFile('example.md') const out = micromark(buf, {extensions: [variables]}) console.log(out) } ``` While working on the extension, run `node example` to see whether things work. Feel free to add more examples of the variables syntax in `example.md` if needed. Our extension doesn’t work yet, for one because `micromark` is not installed: ```sh npm install micromark --save-dev ``` …and we need to write our extension. Let’s do that in `index.js`: ```js export const variables = {} ``` Although our extension doesn’t do anything, running `node example` now somewhat works! ##### Syntax extension Much in micromark is based on character codes (see [§ Preprocess][preprocess]). For this extension, the relevant codes are: * `-5` — M-0005 CARRIAGE RETURN (CR) * `-4` — M-0004 LINE FEED (LF) * `-3` — M-0003 CARRIAGE RETURN LINE FEED (CRLF) * `null` — EOF (end of the stream) * `92` — U+005C BACKSLASH (`\`) * `123` — U+007B LEFT CURLY BRACE (`{`) * `125` — U+007D RIGHT CURLY BRACE (`}`) Also relevant are the content types (see [§ Content types][content-types]). This extension is a *text* construct, as it’s parsed alongsides links and such. The content inside it (between the braces) is *string*, to support character escapes and -references. Let’s write our extension. Add the following code to `index.js`: ```js const variableConstruct = {name: 'variable', tokenize: variableTokenize} export const variables = {text: {123: variableConstruct}} function variableTokenize(effects, ok, nok) { return start function start(code) { console.log('start:', effects, code); return nok(code) } } ``` The above code exports an extension with the identifier `variables`. The extension defines a *text* construct for the character code `123`. The construct has a `name`, so that it can be turned off (optional, see next case), and it has a `tokenize` function that sets up a state machine, which receives `effects` and the `ok` and `nok` states. `ok` can be used when successful, `nok` when not, and so constructs are a bit similar to how promises can *resolve* or *reject*. `tokenize` returns the initial state, `start`, which itself receives the current character code, prints some debugging information, and then returns a call to `nok`. Ensure that things work by running `node example` and see what it prints. Now we need to define our states and figure out how variables work. Some people prefer sketching a diagram of the flow. I often prefer writing it down in pseudo-code prose. I’ve also found that test driven development works well, where I write unit tests for how it should work, then write the state machine, and finally use a code coverage tool to ensure I’ve thought of everything. In prose, what we have to code looks like this: * **start**: Receive `123` as `code`, enter a token for the whole (let’s call it `variable`), enter a token for the marker (`variableMarker`), consume `code`, exit the marker token, enter a token for the contents (`variableString`), switch to *begin* * **begin**: If `code` is `125`, reconsume in *nok*. Else, reconsume in *inside* * **inside**: If `code` is `-5`, `-4`, `-3`, or `null`, reconsume in `nok`. Else, if `code` is `125`, exit the string token, enter a `variableMarker`, consume `code`, exit the marker token, exit the variable token, and switch to *ok*. Else, consume, and remain in *inside*. That should be it! Replace `variableTokenize` with the following to include the needed states: ```js function variableTokenize(effects, ok, nok) { return start function start(code) { effects.enter('variable') effects.enter('variableMarker') effects.consume(code) effects.exit('variableMarker') effects.enter('variableString') return begin } function begin(code) { return code === 125 ? nok(code) : inside(code) } function inside(code) { if (code === -5 || code === -4 || code === -3 || code === null) { return nok(code) } if (code === 125) { effects.exit('variableString') effects.enter('variableMarker') effects.consume(code) effects.exit('variableMarker') effects.exit('variable') return ok } effects.consume(code) return inside } } ``` Run `node example` again and see what it prints! The HTML compiler ignores things it doesn’t know, so variables are now removed. We have our first syntax extension, and it sort of works, but we don’t handle character escapes and -references yet. We need to do two things to make that work: a) skip over `\\` and `\}` in our algorithm, b) tell micromark to parse them. Change the code in `index.js` to support escapes like so: ```diff @@ -23,6 +23,11 @@ function variableTokenize(effects, ok, nok) { return nok(code) } + if (code === 92) { + effects.consume(code) + return insideEscape + } + if (code === 125) { effects.exit('variableString') effects.enter('variableMarker') @@ -35,4 +40,13 @@ function variableTokenize(effects, ok, nok) { effects.consume(code) return inside } + + function insideEscape(code) { + if (code === 92 || code === 125) { + effects.consume(code) + return inside + } + + return inside(code) + } } ``` Finally add support for character references and character escapes between braces by adding a special token that defines a content type: ```diff @@ -11,6 +11,7 @@ function variableTokenize(effects, ok, nok) { effects.consume(code) effects.exit('variableMarker') effects.enter('variableString') + effects.enter('chunkString', {contentType: 'string'}) return begin } @@ -29,6 +30,7 @@ function variableTokenize(effects, ok, nok) { } if (code === 125) { + effects.exit('chunkString') effects.exit('variableString') effects.enter('variableMarker') effects.consume(code) ``` Tokens with a `contentType` will be replaced by *postprocess* (see [§ Postprocess][postprocess]) by the tokens belonging to that content type. ##### HTML extension Up next is an HTML extension to replace variables with data. Change `example.js` to use one like so: ```diff @@ -1,11 +1,12 @@ import {promises as fs} from 'node:fs' import {micromark} from 'micromark' -import {variables} from './index.js' +import {variables, variablesHtml} from './index.js' main() async function main() { const buf = await fs.readFile('example.md') - const out = micromark(buf, {extensions: [variables]}) + const html = variablesHtml({planet: '1', 'pla}net': '2'}) + const out = micromark(buf, {extensions: [variables], htmlExtensions: [html]}) console.log(out) } ``` And add the HTML extension, `variablesHtml`, to `index.js` like so: ```diff @@ -52,3 +52,19 @@ function variableTokenize(effects, ok, nok) { return inside(code) } } + +export function variablesHtml(data = {}) { + return { + enter: {variableString: enterVariableString}, + exit: {variableString: exitVariableString}, + } + + function enterVariableString() { + this.buffer() + } + + function exitVariableString() { + var id = this.resume() + if (id in data) { + this.raw(this.encode(data[id])) + } + } +} ``` `variablesHtml` is a function that receives an object mapping “variables” to strings and returns an HTML extension. The extension hooks two functions to `variableString`, one when it starts, the other when it ends. We don’t need to do anything to handle the other tokens as they’re already ignored by default. `enterVariableString` calls `buffer`, which is a function that “stashes” what would otherwise be emitted. `exitVariableString` calls `resume`, which is the inverse of `buffer` and returns the stashed value. If the variable is defined, we ensure it’s made safe (with `this.encode`) and finally output that (with `this.raw`). ##### Further exercises It works! We’re done! Of course, it can be better, such as with the following potential features: * Add support for empty variables * Add support for spaces between markers and string * Add support for line endings in variables * Add support for nested braces * Add support for blocks * Add warnings on undefined variables * Use `micromark-build`, and use `uvu/assert`, `debug`, and `micromark-util-symbol` (see [§ Size & debug][size-debug]) * Add [`mdast-util-from-markdown`][from-markdown] and [`mdast-util-to-markdown`][to-markdown] utilities to parse and serialize the AST #### Case: turn off constructs Sometimes it’s needed to turn a default construct off. That’s possible through a syntax extension. Note that not everything can be turned off (such as paragraphs) and even if it’s possible to turn something off, it could break micromark (such as character escapes). To disable constructs, refer to them by name in an array at the `disable.null` field of an extension: ```js import {micromark} from 'micromark' const extension = {disable: {null: ['codeIndented']}} console.log(micromark('\ta', {extensions: [extension]})) ``` Yields: ```html

a

``` ## Architecture micromark is maintained as a monorepo. Many of its internals, which are used in `micromark` (core) but also useful for developers of extensions or integrations, are available as separate modules. Each module maintained here is available in [`packages/`][packages]. ### Overview The naming scheme in [`packages/`][packages] is as follows: * `micromark-build` — Small CLI to build dev code into production code * `micromark-core-commonmark` — CommonMark constructs used in micromark * `micromark-factory-*` — Reusable subroutines used to parse parts of constructs * `micromark-util-*` — Reusable helpers often needed when parsing markdown * `micromark` — Core module micromark has two interfaces: buffering (maintained in [`micromark/dev/index.js`](https://github.com/micromark/micromark/blob/main/packages/micromark/dev/index.js)) and streaming (maintained in [`micromark/dev/stream.js`](https://github.com/micromark/micromark/blob/main/packages/micromark/dev/stream.js)). The first takes all input at once whereas the last uses a Node.js stream to take input separately. They thinly wrap how data flows through micromark: ```txt micromark +-----------------------------------------------------------------------------------------------+ | +------------+ +-------+ +-------------+ +---------+ | | -markdown->+ preprocess +-chunks->+ parse +-events->+ postprocess +-events->+ compile +-html- | | +------------+ +-------+ +-------------+ +---------+ | +-----------------------------------------------------------------------------------------------+ ``` ### Preprocess The **preprocessor** ([`micromark/dev/lib/preprocess.js`](https://github.com/micromark/micromark/blob/main/packages/micromark/dev/lib/preprocess.js)) takes markdown and turns it into chunks. A **chunk** is either a character code or a slice of a buffer in the form of a string. Chunks are used because strings are more efficient storage than character codes, but limited in what they can represent. For example, the input `ab\ncd` is represented as `['ab', -4, 'cd']` in chunks. A character **code** is often the same as what `String#charCodeAt()` yields but micromark adds meaning to certain other values. In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL SPACE (VS) characters, depending on the column at which the tab occurred. For example, the input `\ta` is represented as `[-2, -1, -1, -1, 97]` and `a\tb` as `[97, -2, -1, -1, 98]` in character codes. The characters U+000A LINE FEED (LF) and U+000D CARRIAGE RETURN (CR) are replaced by virtual characters depending on whether they occur together: M-0003 CARRIAGE RETURN LINE FEED (CRLF), M-0004 LINE FEED (LF), and M-0005 CARRIAGE RETURN (CR). For example, the input `a\r\nb\nc\rd` is represented as `[97, -5, 98, -4, 99, -3, 100]` in character codes. The `0` (U+0000 NUL) character code is replaced by U+FFFD REPLACEMENT CHARACTER (`�`). The `null` code represents the end of the input stream (called *eof* for end of file). ### Parse The **parser** ([`micromark/dev/lib/parse.js`](https://github.com/micromark/micromark/blob/main/packages/micromark/dev/lib/parse.js)) takes chunks and turns them into events. An **event** is the start or end of a token amongst other events. Tokens can “contain” other tokens, even though they are stored in a flat list, by entering before and exiting after them. A **token** is a span of one or more codes. Tokens are most of what micromark produces: the built in HTML compiler or other tools can turn them into different things. Tokens are essentially names attached to a slice, such as `lineEndingBlank` for certain line endings, or `codeFenced` for a whole fenced code. Sometimes, more info is attached to tokens, such as `_open` and `_close` by `attention` (strong, emphasis) to signal whether the sequence can open or close an attention run. These fields have to do with how the parser works, which is complex and not always pretty. Certain fields (`previous`, `next`, and `contentType`) are used in many cases: linked tokens for subcontent. Linked tokens are used because outer constructs are parsed first. Take for example: ```markdown - *a b*. ``` 1. The list marker and the space after it is parsed first 2. The rest of the line is a `chunkFlow` token 3. The two spaces on the second line are a `linePrefix` of the list 4. The rest of the line is another `chunkFlow` token The two `chunkFlow` tokens are linked together and the chunks they span are passed through the flow tokenizer. There the chunks are seen as `chunkContent` and passed through the content tokenizer. There the chunks are seen as a paragraph and seen as `chunkText` and passed through the text tokenizer. Finally, the attention (emphasis) and data (“raw” characters) is parsed there, and we’re done! #### Content types The parser starts out with a document tokenizer. *Document* is the top-most content type, which includes containers such as block quotes and lists. Containers in markdown come from the margin and include more constructs on the lines that define them. *Flow* represents the sections (block constructs such as ATX and setext headings, HTML, indented and fenced code, thematic breaks), which like *document* are also parsed per line. An example is HTML, which has a certain starting condition (such as ` To load in a CommonJS (Node.js) environment, first install with npm by running on the command line: npm install uri-js Then, in your code, load it using: const URI = require("uri-js"); If you are writing your code in ES6+ (ESNEXT) or TypeScript, you would load it using: import * as URI from "uri-js"; Or you can load just what you need using named exports: import { parse, serialize, resolve, resolveComponents, normalize, equal, removeDotSegments, pctEncChar, pctDecChars, escapeComponent, unescapeComponent } from "uri-js"; ## Breaking changes ### Breaking changes from 3.x URN parsing has been completely changed to better align with the specification. Scheme is now always `urn`, but has two new properties: `nid` which contains the Namspace Identifier, and `nss` which contains the Namespace Specific String. The `nss` property will be removed by higher order scheme handlers, such as the UUID URN scheme handler. The UUID of a URN can now be found in the `uuid` property. ### Breaking changes from 2.x URI validation has been removed as it was slow, exposed a vulnerabilty, and was generally not useful. ### Breaking changes from 1.x The `errors` array on parsed components is now an `error` string. ## License ([Simplified BSD](http://en.wikipedia.org/wiki/BSD_licenses#2-clause)) Copyright 2011 Gary Court. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY GARY COURT "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GARY COURT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The views and conclusions contained in the software and documentation are those of the authors and should not be interpreted as representing official policies, either expressed or implied, of Gary Court. ----------- The following npm packages may be included in this product: - use-callback-ref@1.3.0 - use-sidecar@1.1.2 These packages each contain the following license and notice below: MIT License Copyright (c) 2017 Anton Korzunov Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - uuid@3.4.0 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2010-2016 Robert Kieffer and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - uuid@8.3.2 This package contains the following license and notice below: The MIT License (MIT) Copyright (c) 2010-2020 Robert Kieffer and other contributors Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - vanilla-picker@2.12.1 This package contains the following license and notice below: # ISC License (ISC) Copyright 2017-2018 Andreas Borgen, Adam Brooks Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------- The following npm packages may be included in this product: - vfile-message@3.0.2 - vfile-message@3.1.2 These packages each contain the following license and notice below: (The MIT License) Copyright (c) 2017 Titus Wormer Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- The following npm package may be included in this product: - which-module@2.0.0 This package contains the following license and notice below: Copyright (c) 2016, Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------- The following npm package may be included in this product: - y18n@4.0.3 This package contains the following license and notice below: Copyright (c) 2015, Contributors Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ----------- The following npm package may be included in this product: - yargs@15.4.1 This package contains the following license and notice below: MIT License Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ----------- This file was generated with the generate-license-file npm package! https://www.npmjs.com/package/generate-license-file