initial vitepress site with basic nav
This commit is contained in:
parent
a7df2e049d
commit
2029f16583
1900 changed files with 1014692 additions and 0 deletions
695
node_modules/rollup/LICENSE.md
generated
vendored
Normal file
695
node_modules/rollup/LICENSE.md
generated
vendored
Normal file
|
@ -0,0 +1,695 @@
|
|||
# Rollup core license
|
||||
Rollup is released under the MIT license:
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 [these people](https://github.com/rollup/rollup/graphs/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.
|
||||
|
||||
# Licenses of bundled dependencies
|
||||
The published Rollup artifact additionally contains code with the following licenses:
|
||||
MIT, ISC
|
||||
|
||||
# Bundled dependencies:
|
||||
## @jridgewell/sourcemap-codec
|
||||
License: MIT
|
||||
By: Rich Harris
|
||||
Repository: git+https://github.com/jridgewell/sourcemap-codec.git
|
||||
|
||||
> The MIT License
|
||||
>
|
||||
> Copyright (c) 2015 Rich Harris
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## @rollup/pluginutils
|
||||
License: MIT
|
||||
By: Rich Harris
|
||||
Repository: rollup/plugins
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## acorn
|
||||
License: MIT
|
||||
By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine
|
||||
Repository: https://github.com/acornjs/acorn.git
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (C) 2012-2022 by various contributors (see AUTHORS)
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## acorn-import-assertions
|
||||
License: MIT
|
||||
By: Sven Sauleau
|
||||
Repository: https://github.com/xtuc/acorn-import-assertions
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## acorn-walk
|
||||
License: MIT
|
||||
By: Marijn Haverbeke, Ingvar Stepanyan, Adrian Heine
|
||||
Repository: https://github.com/acornjs/acorn.git
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (C) 2012-2020 by various contributors (see AUTHORS)
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## anymatch
|
||||
License: ISC
|
||||
By: Elan Shanker
|
||||
Repository: https://github.com/micromatch/anymatch
|
||||
|
||||
> The ISC License
|
||||
>
|
||||
> Copyright (c) 2019 Elan Shanker, Paul Miller (https://paulmillr.com)
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## binary-extensions
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/binary-extensions
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) 2019 Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com), Paul Miller (https://paulmillr.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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## braces
|
||||
License: MIT
|
||||
By: Jon Schlinkert, Brian Woodward, Elan Shanker, Eugene Sharygin, hemanth.hm
|
||||
Repository: micromatch/braces
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2014-2018, Jon Schlinkert.
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## builtin-modules
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/builtin-modules
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## chokidar
|
||||
License: MIT
|
||||
By: Paul Miller, Elan Shanker
|
||||
Repository: git+https://github.com/paulmillr/chokidar.git
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2012-2019 Paul Miller (https://paulmillr.com), Elan Shanker
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## colorette
|
||||
License: MIT
|
||||
By: Jorge Bucaran
|
||||
Repository: jorgebucaran/colorette
|
||||
|
||||
> Copyright © Jorge Bucaran <<https://jorgebucaran.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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## date-time
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/date-time
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## fill-range
|
||||
License: MIT
|
||||
By: Jon Schlinkert, Edo Rivai, Paul Miller, Rouven Weßling
|
||||
Repository: jonschlinkert/fill-range
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2014-present, Jon Schlinkert.
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## flru
|
||||
License: MIT
|
||||
By: Luke Edwards
|
||||
Repository: lukeed/flru
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## glob-parent
|
||||
License: ISC
|
||||
By: Gulp Team, Elan Shanker, Blaine Bublitz
|
||||
Repository: gulpjs/glob-parent
|
||||
|
||||
> The ISC License
|
||||
>
|
||||
> Copyright (c) 2015, 2019 Elan Shanker
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## is-binary-path
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/is-binary-path
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) 2019 Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com), Paul Miller (https://paulmillr.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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## is-extglob
|
||||
License: MIT
|
||||
By: Jon Schlinkert
|
||||
Repository: jonschlinkert/is-extglob
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2014-2016, Jon Schlinkert
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## is-glob
|
||||
License: MIT
|
||||
By: Jon Schlinkert, Brian Woodward, Daniel Perez
|
||||
Repository: micromatch/is-glob
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2014-2017, Jon Schlinkert.
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## is-number
|
||||
License: MIT
|
||||
By: Jon Schlinkert, Olsten Larck, Rouven Weßling
|
||||
Repository: jonschlinkert/is-number
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2014-present, Jon Schlinkert.
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## is-reference
|
||||
License: MIT
|
||||
By: Rich Harris
|
||||
Repository: git+https://github.com/Rich-Harris/is-reference.git
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## locate-character
|
||||
License: MIT
|
||||
By: Rich Harris
|
||||
Repository: Rich-Harris/locate-character
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## magic-string
|
||||
License: MIT
|
||||
By: Rich Harris
|
||||
Repository: https://github.com/rich-harris/magic-string
|
||||
|
||||
> Copyright 2018 Rich Harris
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## normalize-path
|
||||
License: MIT
|
||||
By: Jon Schlinkert, Blaine Bublitz
|
||||
Repository: jonschlinkert/normalize-path
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2014-2018, Jon Schlinkert.
|
||||
>
|
||||
> 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-ms
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/parse-ms
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## picomatch
|
||||
License: MIT
|
||||
By: Jon Schlinkert
|
||||
Repository: micromatch/picomatch
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2017-present, Jon Schlinkert.
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## pretty-bytes
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/pretty-bytes
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## pretty-ms
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/pretty-ms
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## readdirp
|
||||
License: MIT
|
||||
By: Thorsten Lorenz, Paul Miller
|
||||
Repository: git://github.com/paulmillr/readdirp.git
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) 2012-2019 Thorsten Lorenz, Paul Miller (https://paulmillr.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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## signal-exit
|
||||
License: ISC
|
||||
By: Ben Coe
|
||||
Repository: https://github.com/tapjs/signal-exit.git
|
||||
|
||||
> The ISC License
|
||||
>
|
||||
> Copyright (c) 2015-2023 Benjamin Coe, Isaac Z. Schlueter, and 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## time-zone
|
||||
License: MIT
|
||||
By: Sindre Sorhus
|
||||
Repository: sindresorhus/time-zone
|
||||
|
||||
> MIT License
|
||||
>
|
||||
> Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## to-regex-range
|
||||
License: MIT
|
||||
By: Jon Schlinkert, Rouven Weßling
|
||||
Repository: micromatch/to-regex-range
|
||||
|
||||
> The MIT License (MIT)
|
||||
>
|
||||
> Copyright (c) 2015-present, Jon Schlinkert.
|
||||
>
|
||||
> 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.
|
||||
|
||||
---------------------------------------
|
||||
|
||||
## yargs-parser
|
||||
License: ISC
|
||||
By: Ben Coe
|
||||
Repository: https://github.com/yargs/yargs-parser.git
|
||||
|
||||
> 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.
|
125
node_modules/rollup/README.md
generated
vendored
Normal file
125
node_modules/rollup/README.md
generated
vendored
Normal file
|
@ -0,0 +1,125 @@
|
|||
<p align="center">
|
||||
<a href="https://rollupjs.org/"><img src="https://rollupjs.org/rollup-logo.svg" width="150" /></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/package/rollup">
|
||||
<img src="https://img.shields.io/npm/v/rollup.svg" alt="npm version" >
|
||||
</a>
|
||||
<a href="https://packagephobia.now.sh/result?p=rollup">
|
||||
<img src="https://packagephobia.now.sh/badge?p=rollup" alt="install size" >
|
||||
</a>
|
||||
<a href="https://codecov.io/gh/rollup/rollup">
|
||||
<img src="https://codecov.io/gh/rollup/rollup/graph/badge.svg" alt="code coverage" >
|
||||
</a>
|
||||
<a href="#backers" alt="sponsors on Open Collective">
|
||||
<img src="https://opencollective.com/rollup/backers/badge.svg" alt="backers" >
|
||||
</a>
|
||||
<a href="#sponsors" alt="Sponsors on Open Collective">
|
||||
<img src="https://opencollective.com/rollup/sponsors/badge.svg" alt="sponsors" >
|
||||
</a>
|
||||
<a href="https://github.com/rollup/rollup/blob/master/LICENSE.md">
|
||||
<img src="https://img.shields.io/npm/l/rollup.svg" alt="license">
|
||||
</a>
|
||||
|
||||
<a href='https://is.gd/rollup_chat?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge'>
|
||||
<img src='https://img.shields.io/discord/466787075518365708?color=778cd1&label=chat' alt='Join the chat at https://is.gd/rollup_chat'>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<h1 align="center">Rollup</h1>
|
||||
|
||||
## Overview
|
||||
|
||||
Rollup is a module bundler for JavaScript which compiles small pieces of code into something larger and more complex, such as a library or application. It uses the standardized ES module format for code, instead of previous idiosyncratic solutions such as CommonJS and AMD. ES modules let you freely and seamlessly combine the most useful individual functions from your favorite libraries. Rollup can optimize ES modules for faster native loading in modern browsers, or output a legacy module format allowing ES module workflows today.
|
||||
|
||||
## Quick Start Guide
|
||||
|
||||
Install with `npm install --global rollup`. Rollup can be used either through a [command line interface](https://rollupjs.org/command-line-interface/) with an optional configuration file or else through its [JavaScript API](https://rollupjs.org/javascript-api/). Run `rollup --help` to see the available options and parameters. The starter project templates, [rollup-starter-lib](https://github.com/rollup/rollup-starter-lib) and [rollup-starter-app](https://github.com/rollup/rollup-starter-app), demonstrate common configuration options, and more detailed instructions are available throughout the [user guide](https://rollupjs.org/introduction/).
|
||||
|
||||
### Commands
|
||||
|
||||
These commands assume the entry point to your application is named main.js, and that you'd like all imports compiled into a single file named bundle.js.
|
||||
|
||||
For browsers:
|
||||
|
||||
```bash
|
||||
# compile to a <script> containing a self-executing function
|
||||
rollup main.js --format iife --name "myBundle" --file bundle.js
|
||||
```
|
||||
|
||||
For Node.js:
|
||||
|
||||
```bash
|
||||
# compile to a CommonJS module
|
||||
rollup main.js --format cjs --file bundle.js
|
||||
```
|
||||
|
||||
For both browsers and Node.js:
|
||||
|
||||
```bash
|
||||
# UMD format requires a bundle name
|
||||
rollup main.js --format umd --name "myBundle" --file bundle.js
|
||||
```
|
||||
|
||||
## Why
|
||||
|
||||
Developing software is usually easier if you break your project into smaller separate pieces, since that often removes unexpected interactions and dramatically reduces the complexity of the problems you'll need to solve, and simply writing smaller projects in the first place [isn't necessarily the answer](https://medium.com/@Rich_Harris/small-modules-it-s-not-quite-that-simple-3ca532d65de4). Unfortunately, JavaScript has not historically included this capability as a core feature in the language.
|
||||
|
||||
This finally changed with ES modules support in JavaScript, which provides a syntax for importing and exporting functions and data so they can be shared between separate scripts. Most browsers and Node.js support ES modules. However, Node.js releases before 12.17 support ES modules only behind the `--experimental-modules` flag, and older browsers like Internet Explorer do not support ES modules at all. Rollup allows you to write your code using ES modules, and run your application even in environments that do not support ES modules natively. For environments that support them, Rollup can output optimized ES modules; for environments that don't, Rollup can compile your code to other formats such as CommonJS modules, AMD modules, and IIFE-style scripts. This means that you get to _write future-proof code_, and you also get the tremendous benefits of...
|
||||
|
||||
## Tree Shaking
|
||||
|
||||
In addition to enabling the use of ES modules, Rollup also statically analyzes and optimizes the code you are importing, and will exclude anything that isn't actually used. This allows you to build on top of existing tools and modules without adding extra dependencies or bloating the size of your project.
|
||||
|
||||
For example, with CommonJS, the _entire tool or library must be imported_.
|
||||
|
||||
```js
|
||||
// import the entire utils object with CommonJS
|
||||
var utils = require('node:utils');
|
||||
var query = 'Rollup';
|
||||
// use the ajax method of the utils object
|
||||
utils.ajax('https://api.example.com?search=' + query).then(handleResponse);
|
||||
```
|
||||
|
||||
But with ES modules, instead of importing the whole `utils` object, we can just import the one `ajax` function we need:
|
||||
|
||||
```js
|
||||
// import the ajax function with an ES import statement
|
||||
import { ajax } from 'node:utils';
|
||||
var query = 'Rollup';
|
||||
// call the ajax function
|
||||
ajax('https://api.example.com?search=' + query).then(handleResponse);
|
||||
```
|
||||
|
||||
Because Rollup includes the bare minimum, it results in lighter, faster, and less complicated libraries and applications. Since this approach is based on explicit `import` and `export` statements, it is vastly more effective than simply running an automated minifier to detect unused variables in the compiled output code.
|
||||
|
||||
## Compatibility
|
||||
|
||||
### Importing CommonJS
|
||||
|
||||
Rollup can import existing CommonJS modules [through a plugin](https://github.com/rollup/plugins/tree/master/packages/commonjs).
|
||||
|
||||
### Publishing ES Modules
|
||||
|
||||
To make sure your ES modules are immediately usable by tools that work with CommonJS such as Node.js and webpack, you can use Rollup to compile to UMD or CommonJS format, and then point to that compiled version with the `main` property in your `package.json` file. If your `package.json` file also has a `module` field, ES-module-aware tools like Rollup and [webpack](https://webpack.js.org/) will [import the ES module version](https://github.com/rollup/rollup/wiki/pkg.module) directly.
|
||||
|
||||
## Contributors
|
||||
|
||||
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)]. <a href="https://github.com/rollup/rollup/graphs/contributors"><img src="https://opencollective.com/rollup/contributors.svg?width=890" /></a>
|
||||
|
||||
## Backers
|
||||
|
||||
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/rollup#backer)]
|
||||
|
||||
<a href="https://opencollective.com/rollup#backers" target="_blank"><img src="https://opencollective.com/rollup/backers.svg?width=890"></a>
|
||||
|
||||
## Sponsors
|
||||
|
||||
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/rollup#sponsor)]
|
||||
|
||||
<a href="https://opencollective.com/rollup/sponsor/0/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/1/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/2/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/3/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/4/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/4/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/5/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/5/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/6/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/6/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/7/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/8/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/9/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/9/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/10/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/10/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/11/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/11/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/12/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/12/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/13/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/13/avatar.svg"></a> <a href="https://opencollective.com/rollup/sponsor/14/website" target="_blank"><img src="https://opencollective.com/rollup/sponsor/14/avatar.svg"></a>
|
||||
|
||||
## License
|
||||
|
||||
[MIT](https://github.com/rollup/rollup/blob/master/LICENSE.md)
|
1718
node_modules/rollup/dist/bin/rollup
generated
vendored
Executable file
1718
node_modules/rollup/dist/bin/rollup
generated
vendored
Executable file
File diff suppressed because one or more lines are too long
1
node_modules/rollup/dist/es/package.json
generated
vendored
Normal file
1
node_modules/rollup/dist/es/package.json
generated
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
{"type":"module"}
|
18
node_modules/rollup/dist/es/rollup.js
generated
vendored
Normal file
18
node_modules/rollup/dist/es/rollup.js
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
export { version as VERSION, defineConfig, rollup, watch } from './shared/node-entry.js';
|
||||
import 'node:path';
|
||||
import 'path';
|
||||
import 'node:process';
|
||||
import 'node:perf_hooks';
|
||||
import 'node:crypto';
|
||||
import 'node:fs/promises';
|
||||
import 'node:events';
|
||||
import 'tty';
|
26349
node_modules/rollup/dist/es/shared/node-entry.js
generated
vendored
Normal file
26349
node_modules/rollup/dist/es/shared/node-entry.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
4862
node_modules/rollup/dist/es/shared/watch.js
generated
vendored
Normal file
4862
node_modules/rollup/dist/es/shared/watch.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
18
node_modules/rollup/dist/loadConfigFile.d.ts
generated
vendored
Normal file
18
node_modules/rollup/dist/loadConfigFile.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
import type { MergedRollupOptions, RollupWarning } from './rollup';
|
||||
|
||||
export interface BatchWarnings {
|
||||
add: (warning: RollupWarning) => void;
|
||||
readonly count: number;
|
||||
flush: () => void;
|
||||
readonly warningOccurred: boolean;
|
||||
}
|
||||
|
||||
export type LoadConfigFile = typeof loadConfigFile;
|
||||
|
||||
export function loadConfigFile(
|
||||
fileName: string,
|
||||
commandOptions: any
|
||||
): Promise<{
|
||||
options: MergedRollupOptions[];
|
||||
warnings: BatchWarnings;
|
||||
}>;
|
29
node_modules/rollup/dist/loadConfigFile.js
generated
vendored
Normal file
29
node_modules/rollup/dist/loadConfigFile.js
generated
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
require('node:fs/promises');
|
||||
require('node:path');
|
||||
require('node:process');
|
||||
require('node:url');
|
||||
require('./shared/rollup.js');
|
||||
const loadConfigFile_js = require('./shared/loadConfigFile.js');
|
||||
require('tty');
|
||||
require('path');
|
||||
require('node:perf_hooks');
|
||||
require('node:crypto');
|
||||
require('node:events');
|
||||
|
||||
|
||||
|
||||
exports.loadConfigFile = loadConfigFile_js.loadConfigFile;
|
||||
//# sourceMappingURL=loadConfigFile.js.map
|
957
node_modules/rollup/dist/rollup.d.ts
generated
vendored
Normal file
957
node_modules/rollup/dist/rollup.d.ts
generated
vendored
Normal file
|
@ -0,0 +1,957 @@
|
|||
export const VERSION: string;
|
||||
|
||||
// utils
|
||||
type NullValue = null | undefined | void;
|
||||
type MaybeArray<T> = T | T[];
|
||||
type MaybePromise<T> = T | Promise<T>;
|
||||
|
||||
type PartialNull<T> = {
|
||||
[P in keyof T]: T[P] | null;
|
||||
};
|
||||
|
||||
export interface RollupError extends RollupLog {
|
||||
name?: string;
|
||||
stack?: string;
|
||||
watchFiles?: string[];
|
||||
}
|
||||
|
||||
export type RollupWarning = RollupLog;
|
||||
|
||||
export interface RollupLog {
|
||||
binding?: string;
|
||||
cause?: unknown;
|
||||
code?: string;
|
||||
exporter?: string;
|
||||
frame?: string;
|
||||
hook?: string;
|
||||
id?: string;
|
||||
ids?: string[];
|
||||
loc?: {
|
||||
column: number;
|
||||
file?: string;
|
||||
line: number;
|
||||
};
|
||||
message: string;
|
||||
names?: string[];
|
||||
plugin?: string;
|
||||
pluginCode?: string;
|
||||
pos?: number;
|
||||
reexporter?: string;
|
||||
stack?: string;
|
||||
url?: string;
|
||||
}
|
||||
|
||||
export type SourceMapSegment =
|
||||
| [number]
|
||||
| [number, number, number, number]
|
||||
| [number, number, number, number, number];
|
||||
|
||||
export interface ExistingDecodedSourceMap {
|
||||
file?: string;
|
||||
mappings: SourceMapSegment[][];
|
||||
names: string[];
|
||||
sourceRoot?: string;
|
||||
sources: string[];
|
||||
sourcesContent?: (string | null)[];
|
||||
version: number;
|
||||
x_google_ignoreList?: number[];
|
||||
}
|
||||
|
||||
export interface ExistingRawSourceMap {
|
||||
file?: string;
|
||||
mappings: string;
|
||||
names: string[];
|
||||
sourceRoot?: string;
|
||||
sources: string[];
|
||||
sourcesContent?: (string | null)[];
|
||||
version: number;
|
||||
x_google_ignoreList?: number[];
|
||||
}
|
||||
|
||||
export type DecodedSourceMapOrMissing =
|
||||
| {
|
||||
mappings?: never;
|
||||
missing: true;
|
||||
plugin: string;
|
||||
}
|
||||
| ExistingDecodedSourceMap;
|
||||
|
||||
export interface SourceMap {
|
||||
file: string;
|
||||
mappings: string;
|
||||
names: string[];
|
||||
sources: string[];
|
||||
sourcesContent: (string | null)[];
|
||||
version: number;
|
||||
toString(): string;
|
||||
toUrl(): string;
|
||||
}
|
||||
|
||||
export type SourceMapInput = ExistingRawSourceMap | string | null | { mappings: '' };
|
||||
|
||||
interface ModuleOptions {
|
||||
assertions: Record<string, string>;
|
||||
meta: CustomPluginOptions;
|
||||
moduleSideEffects: boolean | 'no-treeshake';
|
||||
syntheticNamedExports: boolean | string;
|
||||
}
|
||||
|
||||
export interface SourceDescription extends Partial<PartialNull<ModuleOptions>> {
|
||||
ast?: AcornNode;
|
||||
code: string;
|
||||
map?: SourceMapInput;
|
||||
}
|
||||
|
||||
export interface TransformModuleJSON {
|
||||
ast?: AcornNode;
|
||||
code: string;
|
||||
// note if plugins use new this.cache to opt-out auto transform cache
|
||||
customTransformCache: boolean;
|
||||
originalCode: string;
|
||||
originalSourcemap: ExistingDecodedSourceMap | null;
|
||||
sourcemapChain: DecodedSourceMapOrMissing[];
|
||||
transformDependencies: string[];
|
||||
}
|
||||
|
||||
export interface ModuleJSON extends TransformModuleJSON, ModuleOptions {
|
||||
ast: AcornNode;
|
||||
dependencies: string[];
|
||||
id: string;
|
||||
resolvedIds: ResolvedIdMap;
|
||||
transformFiles: EmittedFile[] | undefined;
|
||||
}
|
||||
|
||||
export interface PluginCache {
|
||||
delete(id: string): boolean;
|
||||
get<T = any>(id: string): T;
|
||||
has(id: string): boolean;
|
||||
set<T = any>(id: string, value: T): void;
|
||||
}
|
||||
|
||||
export interface MinimalPluginContext {
|
||||
meta: PluginContextMeta;
|
||||
}
|
||||
|
||||
export interface EmittedAsset {
|
||||
fileName?: string;
|
||||
name?: string;
|
||||
needsCodeReference?: boolean;
|
||||
source?: string | Uint8Array;
|
||||
type: 'asset';
|
||||
}
|
||||
|
||||
export interface EmittedChunk {
|
||||
fileName?: string;
|
||||
id: string;
|
||||
implicitlyLoadedAfterOneOf?: string[];
|
||||
importer?: string;
|
||||
name?: string;
|
||||
preserveSignature?: PreserveEntrySignaturesOption;
|
||||
type: 'chunk';
|
||||
}
|
||||
|
||||
export type EmittedFile = EmittedAsset | EmittedChunk;
|
||||
|
||||
export type EmitFile = (emittedFile: EmittedFile) => string;
|
||||
|
||||
interface ModuleInfo extends ModuleOptions {
|
||||
ast: AcornNode | null;
|
||||
code: string | null;
|
||||
dynamicImporters: readonly string[];
|
||||
dynamicallyImportedIdResolutions: readonly ResolvedId[];
|
||||
dynamicallyImportedIds: readonly string[];
|
||||
exportedBindings: Record<string, string[]> | null;
|
||||
exports: string[] | null;
|
||||
hasDefaultExport: boolean | null;
|
||||
/** @deprecated Use `moduleSideEffects` instead */
|
||||
hasModuleSideEffects: boolean | 'no-treeshake';
|
||||
id: string;
|
||||
implicitlyLoadedAfterOneOf: readonly string[];
|
||||
implicitlyLoadedBefore: readonly string[];
|
||||
importedIdResolutions: readonly ResolvedId[];
|
||||
importedIds: readonly string[];
|
||||
importers: readonly string[];
|
||||
isEntry: boolean;
|
||||
isExternal: boolean;
|
||||
isIncluded: boolean | null;
|
||||
}
|
||||
|
||||
export type GetModuleInfo = (moduleId: string) => ModuleInfo | null;
|
||||
|
||||
export interface CustomPluginOptions {
|
||||
[plugin: string]: any;
|
||||
}
|
||||
|
||||
export interface PluginContext extends MinimalPluginContext {
|
||||
addWatchFile: (id: string) => void;
|
||||
cache: PluginCache;
|
||||
emitFile: EmitFile;
|
||||
error: (error: RollupError | string, pos?: number | { column: number; line: number }) => never;
|
||||
getFileName: (fileReferenceId: string) => string;
|
||||
getModuleIds: () => IterableIterator<string>;
|
||||
getModuleInfo: GetModuleInfo;
|
||||
getWatchFiles: () => string[];
|
||||
load: (
|
||||
options: { id: string; resolveDependencies?: boolean } & Partial<PartialNull<ModuleOptions>>
|
||||
) => Promise<ModuleInfo>;
|
||||
/** @deprecated Use `this.getModuleIds` instead */
|
||||
moduleIds: IterableIterator<string>;
|
||||
parse: (input: string, options?: any) => AcornNode;
|
||||
resolve: (
|
||||
source: string,
|
||||
importer?: string,
|
||||
options?: {
|
||||
assertions?: Record<string, string>;
|
||||
custom?: CustomPluginOptions;
|
||||
isEntry?: boolean;
|
||||
skipSelf?: boolean;
|
||||
}
|
||||
) => Promise<ResolvedId | null>;
|
||||
setAssetSource: (assetReferenceId: string, source: string | Uint8Array) => void;
|
||||
warn: (warning: RollupWarning | string, pos?: number | { column: number; line: number }) => void;
|
||||
}
|
||||
|
||||
export interface PluginContextMeta {
|
||||
rollupVersion: string;
|
||||
watchMode: boolean;
|
||||
}
|
||||
|
||||
export interface ResolvedId extends ModuleOptions {
|
||||
external: boolean | 'absolute';
|
||||
id: string;
|
||||
resolvedBy: string;
|
||||
}
|
||||
|
||||
export interface ResolvedIdMap {
|
||||
[key: string]: ResolvedId;
|
||||
}
|
||||
|
||||
interface PartialResolvedId extends Partial<PartialNull<ModuleOptions>> {
|
||||
external?: boolean | 'absolute' | 'relative';
|
||||
id: string;
|
||||
resolvedBy?: string;
|
||||
}
|
||||
|
||||
export type ResolveIdResult = string | NullValue | false | PartialResolvedId;
|
||||
|
||||
export type ResolveIdResultWithoutNullValue = string | false | PartialResolvedId;
|
||||
|
||||
export type ResolveIdHook = (
|
||||
this: PluginContext,
|
||||
source: string,
|
||||
importer: string | undefined,
|
||||
options: { assertions: Record<string, string>; custom?: CustomPluginOptions; isEntry: boolean }
|
||||
) => ResolveIdResult;
|
||||
|
||||
export type ShouldTransformCachedModuleHook = (
|
||||
this: PluginContext,
|
||||
options: {
|
||||
ast: AcornNode;
|
||||
code: string;
|
||||
id: string;
|
||||
meta: CustomPluginOptions;
|
||||
moduleSideEffects: boolean | 'no-treeshake';
|
||||
resolvedSources: ResolvedIdMap;
|
||||
syntheticNamedExports: boolean | string;
|
||||
}
|
||||
) => boolean | NullValue;
|
||||
|
||||
export type IsExternal = (
|
||||
source: string,
|
||||
importer: string | undefined,
|
||||
isResolved: boolean
|
||||
) => boolean;
|
||||
|
||||
export type IsPureModule = (id: string) => boolean | NullValue;
|
||||
|
||||
export type HasModuleSideEffects = (id: string, external: boolean) => boolean;
|
||||
|
||||
export type LoadResult = SourceDescription | string | NullValue;
|
||||
|
||||
export type LoadHook = (this: PluginContext, id: string) => LoadResult;
|
||||
|
||||
export interface TransformPluginContext extends PluginContext {
|
||||
getCombinedSourcemap: () => SourceMap;
|
||||
}
|
||||
|
||||
export type TransformResult = string | NullValue | Partial<SourceDescription>;
|
||||
|
||||
export type TransformHook = (
|
||||
this: TransformPluginContext,
|
||||
code: string,
|
||||
id: string
|
||||
) => TransformResult;
|
||||
|
||||
export type ModuleParsedHook = (this: PluginContext, info: ModuleInfo) => void;
|
||||
|
||||
export type RenderChunkHook = (
|
||||
this: PluginContext,
|
||||
code: string,
|
||||
chunk: RenderedChunk,
|
||||
options: NormalizedOutputOptions,
|
||||
meta: { chunks: Record<string, RenderedChunk> }
|
||||
) => { code: string; map?: SourceMapInput } | string | NullValue;
|
||||
|
||||
export type ResolveDynamicImportHook = (
|
||||
this: PluginContext,
|
||||
specifier: string | AcornNode,
|
||||
importer: string,
|
||||
options: { assertions: Record<string, string> }
|
||||
) => ResolveIdResult;
|
||||
|
||||
export type ResolveImportMetaHook = (
|
||||
this: PluginContext,
|
||||
property: string | null,
|
||||
options: { chunkId: string; format: InternalModuleFormat; moduleId: string }
|
||||
) => string | NullValue;
|
||||
|
||||
export type ResolveFileUrlHook = (
|
||||
this: PluginContext,
|
||||
options: {
|
||||
chunkId: string;
|
||||
fileName: string;
|
||||
format: InternalModuleFormat;
|
||||
moduleId: string;
|
||||
referenceId: string;
|
||||
relativePath: string;
|
||||
}
|
||||
) => string | NullValue;
|
||||
|
||||
export type AddonHookFunction = (
|
||||
this: PluginContext,
|
||||
chunk: RenderedChunk
|
||||
) => string | Promise<string>;
|
||||
export type AddonHook = string | AddonHookFunction;
|
||||
|
||||
export type ChangeEvent = 'create' | 'update' | 'delete';
|
||||
export type WatchChangeHook = (
|
||||
this: PluginContext,
|
||||
id: string,
|
||||
change: { event: ChangeEvent }
|
||||
) => void;
|
||||
|
||||
/**
|
||||
* use this type for plugin annotation
|
||||
* @example
|
||||
* ```ts
|
||||
* interface Options {
|
||||
* ...
|
||||
* }
|
||||
* const myPlugin: PluginImpl<Options> = (options = {}) => { ... }
|
||||
* ```
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
export type PluginImpl<O extends object = object> = (options?: O) => Plugin;
|
||||
|
||||
export interface OutputBundle {
|
||||
[fileName: string]: OutputAsset | OutputChunk;
|
||||
}
|
||||
|
||||
export interface FunctionPluginHooks {
|
||||
augmentChunkHash: (this: PluginContext, chunk: RenderedChunk) => string | void;
|
||||
buildEnd: (this: PluginContext, error?: Error) => void;
|
||||
buildStart: (this: PluginContext, options: NormalizedInputOptions) => void;
|
||||
closeBundle: (this: PluginContext) => void;
|
||||
closeWatcher: (this: PluginContext) => void;
|
||||
generateBundle: (
|
||||
this: PluginContext,
|
||||
options: NormalizedOutputOptions,
|
||||
bundle: OutputBundle,
|
||||
isWrite: boolean
|
||||
) => void;
|
||||
load: LoadHook;
|
||||
moduleParsed: ModuleParsedHook;
|
||||
options: (this: MinimalPluginContext, options: InputOptions) => InputOptions | NullValue;
|
||||
outputOptions: (this: PluginContext, options: OutputOptions) => OutputOptions | NullValue;
|
||||
renderChunk: RenderChunkHook;
|
||||
renderDynamicImport: (
|
||||
this: PluginContext,
|
||||
options: {
|
||||
customResolution: string | null;
|
||||
format: InternalModuleFormat;
|
||||
moduleId: string;
|
||||
targetModuleId: string | null;
|
||||
}
|
||||
) => { left: string; right: string } | NullValue;
|
||||
renderError: (this: PluginContext, error?: Error) => void;
|
||||
renderStart: (
|
||||
this: PluginContext,
|
||||
outputOptions: NormalizedOutputOptions,
|
||||
inputOptions: NormalizedInputOptions
|
||||
) => void;
|
||||
resolveDynamicImport: ResolveDynamicImportHook;
|
||||
resolveFileUrl: ResolveFileUrlHook;
|
||||
resolveId: ResolveIdHook;
|
||||
resolveImportMeta: ResolveImportMetaHook;
|
||||
shouldTransformCachedModule: ShouldTransformCachedModuleHook;
|
||||
transform: TransformHook;
|
||||
watchChange: WatchChangeHook;
|
||||
writeBundle: (
|
||||
this: PluginContext,
|
||||
options: NormalizedOutputOptions,
|
||||
bundle: OutputBundle
|
||||
) => void;
|
||||
}
|
||||
|
||||
export type OutputPluginHooks =
|
||||
| 'augmentChunkHash'
|
||||
| 'generateBundle'
|
||||
| 'outputOptions'
|
||||
| 'renderChunk'
|
||||
| 'renderDynamicImport'
|
||||
| 'renderError'
|
||||
| 'renderStart'
|
||||
| 'resolveFileUrl'
|
||||
| 'resolveImportMeta'
|
||||
| 'writeBundle';
|
||||
|
||||
export type InputPluginHooks = Exclude<keyof FunctionPluginHooks, OutputPluginHooks>;
|
||||
|
||||
export type SyncPluginHooks =
|
||||
| 'augmentChunkHash'
|
||||
| 'outputOptions'
|
||||
| 'renderDynamicImport'
|
||||
| 'resolveFileUrl'
|
||||
| 'resolveImportMeta';
|
||||
|
||||
export type AsyncPluginHooks = Exclude<keyof FunctionPluginHooks, SyncPluginHooks>;
|
||||
|
||||
export type FirstPluginHooks =
|
||||
| 'load'
|
||||
| 'renderDynamicImport'
|
||||
| 'resolveDynamicImport'
|
||||
| 'resolveFileUrl'
|
||||
| 'resolveId'
|
||||
| 'resolveImportMeta'
|
||||
| 'shouldTransformCachedModule';
|
||||
|
||||
export type SequentialPluginHooks =
|
||||
| 'augmentChunkHash'
|
||||
| 'generateBundle'
|
||||
| 'options'
|
||||
| 'outputOptions'
|
||||
| 'renderChunk'
|
||||
| 'transform';
|
||||
|
||||
export type ParallelPluginHooks = Exclude<
|
||||
keyof FunctionPluginHooks | AddonHooks,
|
||||
FirstPluginHooks | SequentialPluginHooks
|
||||
>;
|
||||
|
||||
export type AddonHooks = 'banner' | 'footer' | 'intro' | 'outro';
|
||||
|
||||
type MakeAsync<Function_> = Function_ extends (
|
||||
this: infer This,
|
||||
...parameters: infer Arguments
|
||||
) => infer Return
|
||||
? (this: This, ...parameters: Arguments) => Return | Promise<Return>
|
||||
: never;
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
type ObjectHook<T, O = {}> = T | ({ handler: T; order?: 'pre' | 'post' | null } & O);
|
||||
|
||||
export type PluginHooks = {
|
||||
[K in keyof FunctionPluginHooks]: ObjectHook<
|
||||
K extends AsyncPluginHooks ? MakeAsync<FunctionPluginHooks[K]> : FunctionPluginHooks[K],
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types
|
||||
K extends ParallelPluginHooks ? { sequential?: boolean } : {}
|
||||
>;
|
||||
};
|
||||
|
||||
export interface OutputPlugin
|
||||
extends Partial<{ [K in OutputPluginHooks]: PluginHooks[K] }>,
|
||||
Partial<{ [K in AddonHooks]: ObjectHook<AddonHook> }> {
|
||||
cacheKey?: string;
|
||||
name: string;
|
||||
version?: string;
|
||||
}
|
||||
|
||||
export interface Plugin extends OutputPlugin, Partial<PluginHooks> {
|
||||
// for inter-plugin communication
|
||||
api?: any;
|
||||
}
|
||||
|
||||
type TreeshakingPreset = 'smallest' | 'safest' | 'recommended';
|
||||
|
||||
export interface NormalizedTreeshakingOptions {
|
||||
annotations: boolean;
|
||||
correctVarValueBeforeDeclaration: boolean;
|
||||
manualPureFunctions: readonly string[];
|
||||
moduleSideEffects: HasModuleSideEffects;
|
||||
propertyReadSideEffects: boolean | 'always';
|
||||
tryCatchDeoptimization: boolean;
|
||||
unknownGlobalSideEffects: boolean;
|
||||
}
|
||||
|
||||
export interface TreeshakingOptions
|
||||
extends Partial<Omit<NormalizedTreeshakingOptions, 'moduleSideEffects'>> {
|
||||
moduleSideEffects?: ModuleSideEffectsOption;
|
||||
preset?: TreeshakingPreset;
|
||||
}
|
||||
|
||||
interface ManualChunkMeta {
|
||||
getModuleIds: () => IterableIterator<string>;
|
||||
getModuleInfo: GetModuleInfo;
|
||||
}
|
||||
export type GetManualChunk = (id: string, meta: ManualChunkMeta) => string | NullValue;
|
||||
|
||||
export type ExternalOption =
|
||||
| (string | RegExp)[]
|
||||
| string
|
||||
| RegExp
|
||||
| ((source: string, importer: string | undefined, isResolved: boolean) => boolean | NullValue);
|
||||
export type PureModulesOption = boolean | string[] | IsPureModule;
|
||||
export type GlobalsOption = { [name: string]: string } | ((name: string) => string);
|
||||
export type InputOption = string | string[] | { [entryAlias: string]: string };
|
||||
export type ManualChunksOption = { [chunkAlias: string]: string[] } | GetManualChunk;
|
||||
export type ModuleSideEffectsOption = boolean | 'no-external' | string[] | HasModuleSideEffects;
|
||||
export type PreserveEntrySignaturesOption = false | 'strict' | 'allow-extension' | 'exports-only';
|
||||
export type SourcemapPathTransformOption = (
|
||||
relativeSourcePath: string,
|
||||
sourcemapPath: string
|
||||
) => string;
|
||||
export type SourcemapIgnoreListOption = (
|
||||
relativeSourcePath: string,
|
||||
sourcemapPath: string
|
||||
) => boolean;
|
||||
|
||||
export type InputPluginOption = MaybePromise<Plugin | NullValue | false | InputPluginOption[]>;
|
||||
|
||||
export interface InputOptions {
|
||||
acorn?: Record<string, unknown>;
|
||||
acornInjectPlugins?: ((...arguments_: any[]) => unknown)[] | ((...arguments_: any[]) => unknown);
|
||||
cache?: boolean | RollupCache;
|
||||
context?: string;
|
||||
experimentalCacheExpiry?: number;
|
||||
experimentalLogSideEffects?: boolean;
|
||||
external?: ExternalOption;
|
||||
/** @deprecated Use the "inlineDynamicImports" output option instead. */
|
||||
inlineDynamicImports?: boolean;
|
||||
input?: InputOption;
|
||||
makeAbsoluteExternalsRelative?: boolean | 'ifRelativeSource';
|
||||
/** @deprecated Use the "manualChunks" output option instead. */
|
||||
manualChunks?: ManualChunksOption;
|
||||
maxParallelFileOps?: number;
|
||||
/** @deprecated Use the "maxParallelFileOps" option instead. */
|
||||
maxParallelFileReads?: number;
|
||||
moduleContext?: ((id: string) => string | NullValue) | { [id: string]: string };
|
||||
onwarn?: WarningHandlerWithDefault;
|
||||
perf?: boolean;
|
||||
plugins?: InputPluginOption;
|
||||
preserveEntrySignatures?: PreserveEntrySignaturesOption;
|
||||
/** @deprecated Use the "preserveModules" output option instead. */
|
||||
preserveModules?: boolean;
|
||||
preserveSymlinks?: boolean;
|
||||
shimMissingExports?: boolean;
|
||||
strictDeprecations?: boolean;
|
||||
treeshake?: boolean | TreeshakingPreset | TreeshakingOptions;
|
||||
watch?: WatcherOptions | false;
|
||||
}
|
||||
|
||||
export interface InputOptionsWithPlugins extends InputOptions {
|
||||
plugins: Plugin[];
|
||||
}
|
||||
|
||||
export interface NormalizedInputOptions {
|
||||
acorn: Record<string, unknown>;
|
||||
acornInjectPlugins: (() => unknown)[];
|
||||
cache: false | undefined | RollupCache;
|
||||
context: string;
|
||||
experimentalCacheExpiry: number;
|
||||
experimentalLogSideEffects: boolean;
|
||||
external: IsExternal;
|
||||
/** @deprecated Use the "inlineDynamicImports" output option instead. */
|
||||
inlineDynamicImports: boolean | undefined;
|
||||
input: string[] | { [entryAlias: string]: string };
|
||||
makeAbsoluteExternalsRelative: boolean | 'ifRelativeSource';
|
||||
/** @deprecated Use the "manualChunks" output option instead. */
|
||||
manualChunks: ManualChunksOption | undefined;
|
||||
maxParallelFileOps: number;
|
||||
/** @deprecated Use the "maxParallelFileOps" option instead. */
|
||||
maxParallelFileReads: number;
|
||||
moduleContext: (id: string) => string;
|
||||
onwarn: WarningHandler;
|
||||
perf: boolean;
|
||||
plugins: Plugin[];
|
||||
preserveEntrySignatures: PreserveEntrySignaturesOption;
|
||||
/** @deprecated Use the "preserveModules" output option instead. */
|
||||
preserveModules: boolean | undefined;
|
||||
preserveSymlinks: boolean;
|
||||
shimMissingExports: boolean;
|
||||
strictDeprecations: boolean;
|
||||
treeshake: false | NormalizedTreeshakingOptions;
|
||||
}
|
||||
|
||||
export type InternalModuleFormat = 'amd' | 'cjs' | 'es' | 'iife' | 'system' | 'umd';
|
||||
|
||||
export type ModuleFormat = InternalModuleFormat | 'commonjs' | 'esm' | 'module' | 'systemjs';
|
||||
|
||||
type GeneratedCodePreset = 'es5' | 'es2015';
|
||||
|
||||
interface NormalizedGeneratedCodeOptions {
|
||||
arrowFunctions: boolean;
|
||||
constBindings: boolean;
|
||||
objectShorthand: boolean;
|
||||
reservedNamesAsProps: boolean;
|
||||
symbols: boolean;
|
||||
}
|
||||
|
||||
interface GeneratedCodeOptions extends Partial<NormalizedGeneratedCodeOptions> {
|
||||
preset?: GeneratedCodePreset;
|
||||
}
|
||||
|
||||
export type OptionsPaths = Record<string, string> | ((id: string) => string);
|
||||
|
||||
export type InteropType = 'compat' | 'auto' | 'esModule' | 'default' | 'defaultOnly';
|
||||
|
||||
export type GetInterop = (id: string | null) => InteropType;
|
||||
|
||||
export type AmdOptions = (
|
||||
| {
|
||||
autoId?: false;
|
||||
id: string;
|
||||
}
|
||||
| {
|
||||
autoId: true;
|
||||
basePath?: string;
|
||||
id?: undefined;
|
||||
}
|
||||
| {
|
||||
autoId?: false;
|
||||
id?: undefined;
|
||||
}
|
||||
) & {
|
||||
define?: string;
|
||||
forceJsExtensionForImports?: boolean;
|
||||
};
|
||||
|
||||
export type NormalizedAmdOptions = (
|
||||
| {
|
||||
autoId: false;
|
||||
id?: string;
|
||||
}
|
||||
| {
|
||||
autoId: true;
|
||||
basePath: string;
|
||||
}
|
||||
) & {
|
||||
define: string;
|
||||
forceJsExtensionForImports: boolean;
|
||||
};
|
||||
|
||||
type AddonFunction = (chunk: RenderedChunk) => string | Promise<string>;
|
||||
|
||||
type OutputPluginOption = MaybePromise<OutputPlugin | NullValue | false | OutputPluginOption[]>;
|
||||
|
||||
export interface OutputOptions {
|
||||
amd?: AmdOptions;
|
||||
assetFileNames?: string | ((chunkInfo: PreRenderedAsset) => string);
|
||||
banner?: string | AddonFunction;
|
||||
chunkFileNames?: string | ((chunkInfo: PreRenderedChunk) => string);
|
||||
compact?: boolean;
|
||||
// only required for bundle.write
|
||||
dir?: string;
|
||||
/** @deprecated Use the "renderDynamicImport" plugin hook instead. */
|
||||
dynamicImportFunction?: string;
|
||||
dynamicImportInCjs?: boolean;
|
||||
entryFileNames?: string | ((chunkInfo: PreRenderedChunk) => string);
|
||||
esModule?: boolean | 'if-default-prop';
|
||||
/** @deprecated This option is no longer needed and ignored. */
|
||||
experimentalDeepDynamicChunkOptimization?: boolean;
|
||||
experimentalMinChunkSize?: number;
|
||||
exports?: 'default' | 'named' | 'none' | 'auto';
|
||||
extend?: boolean;
|
||||
externalImportAssertions?: boolean;
|
||||
externalLiveBindings?: boolean;
|
||||
// only required for bundle.write
|
||||
file?: string;
|
||||
footer?: string | AddonFunction;
|
||||
format?: ModuleFormat;
|
||||
freeze?: boolean;
|
||||
generatedCode?: GeneratedCodePreset | GeneratedCodeOptions;
|
||||
globals?: GlobalsOption;
|
||||
hoistTransitiveImports?: boolean;
|
||||
indent?: string | boolean;
|
||||
inlineDynamicImports?: boolean;
|
||||
interop?: InteropType | GetInterop;
|
||||
intro?: string | AddonFunction;
|
||||
manualChunks?: ManualChunksOption;
|
||||
minifyInternalExports?: boolean;
|
||||
name?: string;
|
||||
/** @deprecated Use "generatedCode.symbols" instead. */
|
||||
namespaceToStringTag?: boolean;
|
||||
noConflict?: boolean;
|
||||
outro?: string | AddonFunction;
|
||||
paths?: OptionsPaths;
|
||||
plugins?: OutputPluginOption;
|
||||
/** @deprecated Use "generatedCode.constBindings" instead. */
|
||||
preferConst?: boolean;
|
||||
preserveModules?: boolean;
|
||||
preserveModulesRoot?: string;
|
||||
sanitizeFileName?: boolean | ((fileName: string) => string);
|
||||
sourcemap?: boolean | 'inline' | 'hidden';
|
||||
sourcemapBaseUrl?: string;
|
||||
sourcemapExcludeSources?: boolean;
|
||||
sourcemapFile?: string;
|
||||
sourcemapIgnoreList?: boolean | SourcemapIgnoreListOption;
|
||||
sourcemapPathTransform?: SourcemapPathTransformOption;
|
||||
strict?: boolean;
|
||||
systemNullSetters?: boolean;
|
||||
validate?: boolean;
|
||||
}
|
||||
|
||||
export interface NormalizedOutputOptions {
|
||||
amd: NormalizedAmdOptions;
|
||||
assetFileNames: string | ((chunkInfo: PreRenderedAsset) => string);
|
||||
banner: AddonFunction;
|
||||
chunkFileNames: string | ((chunkInfo: PreRenderedChunk) => string);
|
||||
compact: boolean;
|
||||
dir: string | undefined;
|
||||
/** @deprecated Use the "renderDynamicImport" plugin hook instead. */
|
||||
dynamicImportFunction: string | undefined;
|
||||
dynamicImportInCjs: boolean;
|
||||
entryFileNames: string | ((chunkInfo: PreRenderedChunk) => string);
|
||||
esModule: boolean | 'if-default-prop';
|
||||
/** @deprecated This option is no longer needed and ignored. */
|
||||
experimentalDeepDynamicChunkOptimization: boolean;
|
||||
experimentalMinChunkSize: number;
|
||||
exports: 'default' | 'named' | 'none' | 'auto';
|
||||
extend: boolean;
|
||||
externalImportAssertions: boolean;
|
||||
externalLiveBindings: boolean;
|
||||
file: string | undefined;
|
||||
footer: AddonFunction;
|
||||
format: InternalModuleFormat;
|
||||
freeze: boolean;
|
||||
generatedCode: NormalizedGeneratedCodeOptions;
|
||||
globals: GlobalsOption;
|
||||
hoistTransitiveImports: boolean;
|
||||
indent: true | string;
|
||||
inlineDynamicImports: boolean;
|
||||
interop: GetInterop;
|
||||
intro: AddonFunction;
|
||||
manualChunks: ManualChunksOption;
|
||||
minifyInternalExports: boolean;
|
||||
name: string | undefined;
|
||||
/** @deprecated Use "generatedCode.symbols" instead. */
|
||||
namespaceToStringTag: boolean;
|
||||
noConflict: boolean;
|
||||
outro: AddonFunction;
|
||||
paths: OptionsPaths;
|
||||
plugins: OutputPlugin[];
|
||||
/** @deprecated Use "generatedCode.constBindings" instead. */
|
||||
preferConst: boolean;
|
||||
preserveModules: boolean;
|
||||
preserveModulesRoot: string | undefined;
|
||||
sanitizeFileName: (fileName: string) => string;
|
||||
sourcemap: boolean | 'inline' | 'hidden';
|
||||
sourcemapBaseUrl: string | undefined;
|
||||
sourcemapExcludeSources: boolean;
|
||||
sourcemapFile: string | undefined;
|
||||
sourcemapIgnoreList: SourcemapIgnoreListOption;
|
||||
sourcemapPathTransform: SourcemapPathTransformOption | undefined;
|
||||
strict: boolean;
|
||||
systemNullSetters: boolean;
|
||||
validate: boolean;
|
||||
}
|
||||
|
||||
export type WarningHandlerWithDefault = (
|
||||
warning: RollupWarning,
|
||||
defaultHandler: WarningHandler
|
||||
) => void;
|
||||
export type WarningHandler = (warning: RollupWarning) => void;
|
||||
|
||||
export interface SerializedTimings {
|
||||
[label: string]: [number, number, number];
|
||||
}
|
||||
|
||||
export interface PreRenderedAsset {
|
||||
name: string | undefined;
|
||||
source: string | Uint8Array;
|
||||
type: 'asset';
|
||||
}
|
||||
|
||||
export interface OutputAsset extends PreRenderedAsset {
|
||||
fileName: string;
|
||||
needsCodeReference: boolean;
|
||||
}
|
||||
|
||||
export interface RenderedModule {
|
||||
code: string | null;
|
||||
originalLength: number;
|
||||
removedExports: string[];
|
||||
renderedExports: string[];
|
||||
renderedLength: number;
|
||||
}
|
||||
|
||||
export interface PreRenderedChunk {
|
||||
exports: string[];
|
||||
facadeModuleId: string | null;
|
||||
isDynamicEntry: boolean;
|
||||
isEntry: boolean;
|
||||
isImplicitEntry: boolean;
|
||||
moduleIds: string[];
|
||||
name: string;
|
||||
type: 'chunk';
|
||||
}
|
||||
|
||||
export interface RenderedChunk extends PreRenderedChunk {
|
||||
dynamicImports: string[];
|
||||
fileName: string;
|
||||
implicitlyLoadedBefore: string[];
|
||||
importedBindings: {
|
||||
[imported: string]: string[];
|
||||
};
|
||||
imports: string[];
|
||||
modules: {
|
||||
[id: string]: RenderedModule;
|
||||
};
|
||||
referencedFiles: string[];
|
||||
}
|
||||
|
||||
export interface OutputChunk extends RenderedChunk {
|
||||
code: string;
|
||||
map: SourceMap | null;
|
||||
}
|
||||
|
||||
export interface SerializablePluginCache {
|
||||
[key: string]: [number, any];
|
||||
}
|
||||
|
||||
export interface RollupCache {
|
||||
modules: ModuleJSON[];
|
||||
plugins?: Record<string, SerializablePluginCache>;
|
||||
}
|
||||
|
||||
export interface RollupOutput {
|
||||
output: [OutputChunk, ...(OutputChunk | OutputAsset)[]];
|
||||
}
|
||||
|
||||
export interface RollupBuild {
|
||||
cache: RollupCache | undefined;
|
||||
close: () => Promise<void>;
|
||||
closed: boolean;
|
||||
generate: (outputOptions: OutputOptions) => Promise<RollupOutput>;
|
||||
getTimings?: () => SerializedTimings;
|
||||
watchFiles: string[];
|
||||
write: (options: OutputOptions) => Promise<RollupOutput>;
|
||||
}
|
||||
|
||||
export interface RollupOptions extends InputOptions {
|
||||
// This is included for compatibility with config files but ignored by rollup.rollup
|
||||
output?: OutputOptions | OutputOptions[];
|
||||
}
|
||||
|
||||
export interface MergedRollupOptions extends InputOptionsWithPlugins {
|
||||
output: OutputOptions[];
|
||||
}
|
||||
|
||||
export function rollup(options: RollupOptions): Promise<RollupBuild>;
|
||||
|
||||
export interface ChokidarOptions {
|
||||
alwaysStat?: boolean;
|
||||
atomic?: boolean | number;
|
||||
awaitWriteFinish?:
|
||||
| {
|
||||
pollInterval?: number;
|
||||
stabilityThreshold?: number;
|
||||
}
|
||||
| boolean;
|
||||
binaryInterval?: number;
|
||||
cwd?: string;
|
||||
depth?: number;
|
||||
disableGlobbing?: boolean;
|
||||
followSymlinks?: boolean;
|
||||
ignoreInitial?: boolean;
|
||||
ignorePermissionErrors?: boolean;
|
||||
ignored?: any;
|
||||
interval?: number;
|
||||
persistent?: boolean;
|
||||
useFsEvents?: boolean;
|
||||
usePolling?: boolean;
|
||||
}
|
||||
|
||||
export type RollupWatchHooks = 'onError' | 'onStart' | 'onBundleStart' | 'onBundleEnd' | 'onEnd';
|
||||
|
||||
export interface WatcherOptions {
|
||||
buildDelay?: number;
|
||||
chokidar?: ChokidarOptions;
|
||||
clearScreen?: boolean;
|
||||
exclude?: string | RegExp | (string | RegExp)[];
|
||||
include?: string | RegExp | (string | RegExp)[];
|
||||
skipWrite?: boolean;
|
||||
}
|
||||
|
||||
export interface RollupWatchOptions extends InputOptions {
|
||||
output?: OutputOptions | OutputOptions[];
|
||||
watch?: WatcherOptions | false;
|
||||
}
|
||||
|
||||
export type AwaitedEventListener<
|
||||
T extends { [event: string]: (...parameters: any) => any },
|
||||
K extends keyof T
|
||||
> = (...parameters: Parameters<T[K]>) => void | Promise<void>;
|
||||
|
||||
export interface AwaitingEventEmitter<T extends { [event: string]: (...parameters: any) => any }> {
|
||||
close(): Promise<void>;
|
||||
emit<K extends keyof T>(event: K, ...parameters: Parameters<T[K]>): Promise<unknown>;
|
||||
/**
|
||||
* Removes an event listener.
|
||||
*/
|
||||
off<K extends keyof T>(event: K, listener: AwaitedEventListener<T, K>): this;
|
||||
/**
|
||||
* Registers an event listener that will be awaited before Rollup continues.
|
||||
* All listeners will be awaited in parallel while rejections are tracked via
|
||||
* Promise.all.
|
||||
*/
|
||||
on<K extends keyof T>(event: K, listener: AwaitedEventListener<T, K>): this;
|
||||
/**
|
||||
* Registers an event listener that will be awaited before Rollup continues.
|
||||
* All listeners will be awaited in parallel while rejections are tracked via
|
||||
* Promise.all.
|
||||
* Listeners are removed automatically when removeListenersForCurrentRun is
|
||||
* called, which happens automatically after each run.
|
||||
*/
|
||||
onCurrentRun<K extends keyof T>(
|
||||
event: K,
|
||||
listener: (...parameters: Parameters<T[K]>) => Promise<ReturnType<T[K]>>
|
||||
): this;
|
||||
removeAllListeners(): this;
|
||||
removeListenersForCurrentRun(): this;
|
||||
}
|
||||
|
||||
export type RollupWatcherEvent =
|
||||
| { code: 'START' }
|
||||
| { code: 'BUNDLE_START'; input?: InputOption; output: readonly string[] }
|
||||
| {
|
||||
code: 'BUNDLE_END';
|
||||
duration: number;
|
||||
input?: InputOption;
|
||||
output: readonly string[];
|
||||
result: RollupBuild;
|
||||
}
|
||||
| { code: 'END' }
|
||||
| { code: 'ERROR'; error: RollupError; result: RollupBuild | null };
|
||||
|
||||
export type RollupWatcher = AwaitingEventEmitter<{
|
||||
change: (id: string, change: { event: ChangeEvent }) => void;
|
||||
close: () => void;
|
||||
event: (event: RollupWatcherEvent) => void;
|
||||
restart: () => void;
|
||||
}>;
|
||||
|
||||
export function watch(config: RollupWatchOptions | RollupWatchOptions[]): RollupWatcher;
|
||||
|
||||
interface AcornNode {
|
||||
end: number;
|
||||
start: number;
|
||||
type: string;
|
||||
}
|
||||
|
||||
export function defineConfig(options: RollupOptions): RollupOptions;
|
||||
export function defineConfig(options: RollupOptions[]): RollupOptions[];
|
||||
export function defineConfig(optionsFunction: RollupOptionsFunction): RollupOptionsFunction;
|
||||
|
||||
export type RollupOptionsFunction = (
|
||||
commandLineArguments: Record<string, any>
|
||||
) => MaybePromise<RollupOptions | RollupOptions[]>;
|
32
node_modules/rollup/dist/rollup.js
generated
vendored
Normal file
32
node_modules/rollup/dist/rollup.js
generated
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
const rollup = require('./shared/rollup.js');
|
||||
const watchProxy = require('./shared/watch-proxy.js');
|
||||
require('node:process');
|
||||
require('tty');
|
||||
require('node:path');
|
||||
require('path');
|
||||
require('node:perf_hooks');
|
||||
require('node:crypto');
|
||||
require('node:fs/promises');
|
||||
require('node:events');
|
||||
require('./shared/fsevents-importer.js');
|
||||
|
||||
|
||||
|
||||
exports.VERSION = rollup.version;
|
||||
exports.defineConfig = rollup.defineConfig;
|
||||
exports.rollup = rollup.rollup;
|
||||
exports.watch = watchProxy.watch;
|
||||
//# sourceMappingURL=rollup.js.map
|
37
node_modules/rollup/dist/shared/fsevents-importer.js
generated
vendored
Normal file
37
node_modules/rollup/dist/shared/fsevents-importer.js
generated
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
let fsEvents;
|
||||
let fsEventsImportError;
|
||||
async function loadFsEvents() {
|
||||
try {
|
||||
({ default: fsEvents } = await import('fsevents'));
|
||||
}
|
||||
catch (error) {
|
||||
fsEventsImportError = error;
|
||||
}
|
||||
}
|
||||
// A call to this function will be injected into the chokidar code
|
||||
function getFsEvents() {
|
||||
if (fsEventsImportError)
|
||||
throw fsEventsImportError;
|
||||
return fsEvents;
|
||||
}
|
||||
|
||||
const fseventsImporter = /*#__PURE__*/Object.defineProperty({
|
||||
__proto__: null,
|
||||
getFsEvents,
|
||||
loadFsEvents
|
||||
}, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
exports.fseventsImporter = fseventsImporter;
|
||||
exports.loadFsEvents = loadFsEvents;
|
||||
//# sourceMappingURL=fsevents-importer.js.map
|
4575
node_modules/rollup/dist/shared/index.js
generated
vendored
Normal file
4575
node_modules/rollup/dist/shared/index.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
508
node_modules/rollup/dist/shared/loadConfigFile.js
generated
vendored
Normal file
508
node_modules/rollup/dist/shared/loadConfigFile.js
generated
vendored
Normal file
|
@ -0,0 +1,508 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
const promises = require('node:fs/promises');
|
||||
const node_path = require('node:path');
|
||||
const process = require('node:process');
|
||||
const node_url = require('node:url');
|
||||
const rollup = require('./rollup.js');
|
||||
|
||||
function batchWarnings() {
|
||||
let count = 0;
|
||||
const deferredWarnings = new Map();
|
||||
let warningOccurred = false;
|
||||
return {
|
||||
add(warning) {
|
||||
count += 1;
|
||||
warningOccurred = true;
|
||||
if (warning.code in deferredHandlers) {
|
||||
rollup.getOrCreate(deferredWarnings, warning.code, rollup.getNewArray).push(warning);
|
||||
}
|
||||
else if (warning.code in immediateHandlers) {
|
||||
immediateHandlers[warning.code](warning);
|
||||
}
|
||||
else {
|
||||
title(warning.message);
|
||||
if (warning.url)
|
||||
info(warning.url);
|
||||
const id = warning.loc?.file || warning.id;
|
||||
if (id) {
|
||||
const loc = warning.loc
|
||||
? `${rollup.relativeId(id)} (${warning.loc.line}:${warning.loc.column})`
|
||||
: rollup.relativeId(id);
|
||||
rollup.stderr(rollup.bold(rollup.relativeId(loc)));
|
||||
}
|
||||
if (warning.frame)
|
||||
info(warning.frame);
|
||||
}
|
||||
},
|
||||
get count() {
|
||||
return count;
|
||||
},
|
||||
flush() {
|
||||
if (count === 0)
|
||||
return;
|
||||
const codes = [...deferredWarnings.keys()].sort((a, b) => deferredWarnings.get(b).length - deferredWarnings.get(a).length);
|
||||
for (const code of codes) {
|
||||
deferredHandlers[code](deferredWarnings.get(code));
|
||||
}
|
||||
deferredWarnings.clear();
|
||||
count = 0;
|
||||
},
|
||||
get warningOccurred() {
|
||||
return warningOccurred;
|
||||
}
|
||||
};
|
||||
}
|
||||
const immediateHandlers = {
|
||||
MISSING_NODE_BUILTINS(warning) {
|
||||
title(`Missing shims for Node.js built-ins`);
|
||||
rollup.stderr(`Creating a browser bundle that depends on ${rollup.printQuotedStringList(warning.ids)}. You might need to include https://github.com/FredKSchott/rollup-plugin-polyfill-node`);
|
||||
},
|
||||
UNKNOWN_OPTION(warning) {
|
||||
title(`You have passed an unrecognized option`);
|
||||
rollup.stderr(warning.message);
|
||||
}
|
||||
};
|
||||
const deferredHandlers = {
|
||||
CIRCULAR_DEPENDENCY(warnings) {
|
||||
title(`Circular dependenc${warnings.length > 1 ? 'ies' : 'y'}`);
|
||||
const displayed = warnings.length > 5 ? warnings.slice(0, 3) : warnings;
|
||||
for (const warning of displayed) {
|
||||
rollup.stderr(warning.ids.map(rollup.relativeId).join(' -> '));
|
||||
}
|
||||
if (warnings.length > displayed.length) {
|
||||
rollup.stderr(`...and ${warnings.length - displayed.length} more`);
|
||||
}
|
||||
},
|
||||
EMPTY_BUNDLE(warnings) {
|
||||
title(`Generated${warnings.length === 1 ? ' an' : ''} empty ${warnings.length > 1 ? 'chunks' : 'chunk'}`);
|
||||
rollup.stderr(rollup.printQuotedStringList(warnings.map(warning => warning.names[0])));
|
||||
},
|
||||
EVAL(warnings) {
|
||||
title('Use of eval is strongly discouraged');
|
||||
info(rollup.getRollupUrl(rollup.URL_AVOIDING_EVAL));
|
||||
showTruncatedWarnings(warnings);
|
||||
},
|
||||
MISSING_EXPORT(warnings) {
|
||||
title('Missing exports');
|
||||
info(rollup.getRollupUrl(rollup.URL_NAME_IS_NOT_EXPORTED));
|
||||
for (const warning of warnings) {
|
||||
rollup.stderr(rollup.bold(rollup.relativeId(warning.id)));
|
||||
rollup.stderr(`${warning.binding} is not exported by ${rollup.relativeId(warning.exporter)}`);
|
||||
rollup.stderr(rollup.gray(warning.frame));
|
||||
}
|
||||
},
|
||||
MISSING_GLOBAL_NAME(warnings) {
|
||||
title(`Missing global variable ${warnings.length > 1 ? 'names' : 'name'}`);
|
||||
info(rollup.getRollupUrl(rollup.URL_OUTPUT_GLOBALS));
|
||||
rollup.stderr(`Use "output.globals" to specify browser global variable names corresponding to external modules:`);
|
||||
for (const warning of warnings) {
|
||||
rollup.stderr(`${rollup.bold(warning.id)} (guessing "${warning.names[0]}")`);
|
||||
}
|
||||
},
|
||||
MIXED_EXPORTS(warnings) {
|
||||
title('Mixing named and default exports');
|
||||
info(rollup.getRollupUrl(rollup.URL_OUTPUT_EXPORTS));
|
||||
rollup.stderr(rollup.bold('The following entry modules are using named and default exports together:'));
|
||||
warnings.sort((a, b) => (a.id < b.id ? -1 : 1));
|
||||
const displayedWarnings = warnings.length > 5 ? warnings.slice(0, 3) : warnings;
|
||||
for (const warning of displayedWarnings) {
|
||||
rollup.stderr(rollup.relativeId(warning.id));
|
||||
}
|
||||
if (displayedWarnings.length < warnings.length) {
|
||||
rollup.stderr(`...and ${warnings.length - displayedWarnings.length} other entry modules`);
|
||||
}
|
||||
rollup.stderr(`\nConsumers of your bundle will have to use chunk.default to access their default export, which may not be what you want. Use \`output.exports: "named"\` to disable this warning.`);
|
||||
},
|
||||
NAMESPACE_CONFLICT(warnings) {
|
||||
title(`Conflicting re-exports`);
|
||||
for (const warning of warnings) {
|
||||
rollup.stderr(`"${rollup.bold(rollup.relativeId(warning.reexporter))}" re-exports "${warning.binding}" from both "${rollup.relativeId(warning.ids[0])}" and "${rollup.relativeId(warning.ids[1])}" (will be ignored).`);
|
||||
}
|
||||
},
|
||||
PLUGIN_WARNING(warnings) {
|
||||
const nestedByPlugin = nest(warnings, 'plugin');
|
||||
for (const { key: plugin, items } of nestedByPlugin) {
|
||||
const nestedByMessage = nest(items, 'message');
|
||||
let lastUrl = '';
|
||||
for (const { key: message, items } of nestedByMessage) {
|
||||
title(`Plugin ${plugin}: ${message}`);
|
||||
for (const warning of items) {
|
||||
if (warning.url && warning.url !== lastUrl)
|
||||
info((lastUrl = warning.url));
|
||||
const id = warning.id || warning.loc?.file;
|
||||
if (id) {
|
||||
let loc = rollup.relativeId(id);
|
||||
if (warning.loc) {
|
||||
loc += `: (${warning.loc.line}:${warning.loc.column})`;
|
||||
}
|
||||
rollup.stderr(rollup.bold(loc));
|
||||
}
|
||||
if (warning.frame)
|
||||
info(warning.frame);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
SOURCEMAP_BROKEN(warnings) {
|
||||
title(`Broken sourcemap`);
|
||||
info(rollup.getRollupUrl(rollup.URL_SOURCEMAP_IS_LIKELY_TO_BE_INCORRECT));
|
||||
const plugins = [...new Set(warnings.map(({ plugin }) => plugin).filter(Boolean))];
|
||||
rollup.stderr(`Plugins that transform code (such as ${rollup.printQuotedStringList(plugins)}) should generate accompanying sourcemaps.`);
|
||||
},
|
||||
THIS_IS_UNDEFINED(warnings) {
|
||||
title('"this" has been rewritten to "undefined"');
|
||||
info(rollup.getRollupUrl(rollup.URL_THIS_IS_UNDEFINED));
|
||||
showTruncatedWarnings(warnings);
|
||||
},
|
||||
UNRESOLVED_IMPORT(warnings) {
|
||||
title('Unresolved dependencies');
|
||||
info(rollup.getRollupUrl(rollup.URL_TREATING_MODULE_AS_EXTERNAL_DEPENDENCY));
|
||||
const dependencies = new Map();
|
||||
for (const warning of warnings) {
|
||||
rollup.getOrCreate(dependencies, rollup.relativeId(warning.exporter), rollup.getNewArray).push(rollup.relativeId(warning.id));
|
||||
}
|
||||
for (const [dependency, importers] of dependencies) {
|
||||
rollup.stderr(`${rollup.bold(dependency)} (imported by ${rollup.printQuotedStringList(importers)})`);
|
||||
}
|
||||
},
|
||||
UNUSED_EXTERNAL_IMPORT(warnings) {
|
||||
title('Unused external imports');
|
||||
for (const warning of warnings) {
|
||||
rollup.stderr(warning.names +
|
||||
' imported from external module "' +
|
||||
warning.exporter +
|
||||
'" but never used in ' +
|
||||
rollup.printQuotedStringList(warning.ids.map(rollup.relativeId)) +
|
||||
'.');
|
||||
}
|
||||
}
|
||||
};
|
||||
function title(string_) {
|
||||
rollup.stderr(rollup.bold(rollup.yellow(`(!) ${string_}`)));
|
||||
}
|
||||
function info(url) {
|
||||
rollup.stderr(rollup.gray(url));
|
||||
}
|
||||
function nest(array, property) {
|
||||
const nested = [];
|
||||
const lookup = new Map();
|
||||
for (const item of array) {
|
||||
const key = item[property];
|
||||
rollup.getOrCreate(lookup, key, () => {
|
||||
const items = {
|
||||
items: [],
|
||||
key
|
||||
};
|
||||
nested.push(items);
|
||||
return items;
|
||||
}).items.push(item);
|
||||
}
|
||||
return nested;
|
||||
}
|
||||
function showTruncatedWarnings(warnings) {
|
||||
const nestedByModule = nest(warnings, 'id');
|
||||
const displayedByModule = nestedByModule.length > 5 ? nestedByModule.slice(0, 3) : nestedByModule;
|
||||
for (const { key: id, items } of displayedByModule) {
|
||||
rollup.stderr(rollup.bold(rollup.relativeId(id)));
|
||||
rollup.stderr(rollup.gray(items[0].frame));
|
||||
if (items.length > 1) {
|
||||
rollup.stderr(`...and ${items.length - 1} other ${items.length > 2 ? 'occurrences' : 'occurrence'}`);
|
||||
}
|
||||
}
|
||||
if (nestedByModule.length > displayedByModule.length) {
|
||||
rollup.stderr(`\n...and ${nestedByModule.length - displayedByModule.length} other files`);
|
||||
}
|
||||
}
|
||||
|
||||
const stdinName = '-';
|
||||
let stdinResult = null;
|
||||
function stdinPlugin(argument) {
|
||||
const suffix = typeof argument == 'string' && argument.length > 0 ? '.' + argument : '';
|
||||
return {
|
||||
load(id) {
|
||||
if (id === stdinName || id.startsWith(stdinName + '.')) {
|
||||
return stdinResult || (stdinResult = readStdin());
|
||||
}
|
||||
},
|
||||
name: 'stdin',
|
||||
resolveId(id) {
|
||||
if (id === stdinName) {
|
||||
return id + suffix;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
function readStdin() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const chunks = [];
|
||||
process.stdin.setEncoding('utf8');
|
||||
process.stdin
|
||||
.on('data', chunk => chunks.push(chunk))
|
||||
.on('end', () => {
|
||||
const result = chunks.join('');
|
||||
resolve(result);
|
||||
})
|
||||
.on('error', error => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function waitForInputPlugin() {
|
||||
return {
|
||||
async buildStart(options) {
|
||||
const inputSpecifiers = Array.isArray(options.input)
|
||||
? options.input
|
||||
: Object.keys(options.input);
|
||||
let lastAwaitedSpecifier = null;
|
||||
checkSpecifiers: while (true) {
|
||||
for (const specifier of inputSpecifiers) {
|
||||
if ((await this.resolve(specifier)) === null) {
|
||||
if (lastAwaitedSpecifier !== specifier) {
|
||||
rollup.stderr(`waiting for input ${rollup.bold(specifier)}...`);
|
||||
lastAwaitedSpecifier = specifier;
|
||||
}
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
continue checkSpecifiers;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
},
|
||||
name: 'wait-for-input'
|
||||
};
|
||||
}
|
||||
|
||||
async function addCommandPluginsToInputOptions(inputOptions, command) {
|
||||
if (command.stdin !== false) {
|
||||
inputOptions.plugins.push(stdinPlugin(command.stdin));
|
||||
}
|
||||
if (command.waitForBundleInput === true) {
|
||||
inputOptions.plugins.push(waitForInputPlugin());
|
||||
}
|
||||
await addPluginsFromCommandOption(command.plugin, inputOptions);
|
||||
}
|
||||
async function addPluginsFromCommandOption(commandPlugin, inputOptions) {
|
||||
if (commandPlugin) {
|
||||
const plugins = await rollup.normalizePluginOption(commandPlugin);
|
||||
for (const plugin of plugins) {
|
||||
if (/[={}]/.test(plugin)) {
|
||||
// -p plugin=value
|
||||
// -p "{transform(c,i){...}}"
|
||||
await loadAndRegisterPlugin(inputOptions, plugin);
|
||||
}
|
||||
else {
|
||||
// split out plugins joined by commas
|
||||
// -p node-resolve,commonjs,buble
|
||||
for (const p of plugin.split(',')) {
|
||||
await loadAndRegisterPlugin(inputOptions, p);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
async function loadAndRegisterPlugin(inputOptions, pluginText) {
|
||||
let plugin = null;
|
||||
let pluginArgument = undefined;
|
||||
if (pluginText[0] === '{') {
|
||||
// -p "{transform(c,i){...}}"
|
||||
plugin = new Function('return ' + pluginText);
|
||||
}
|
||||
else {
|
||||
const match = pluginText.match(/^([\w./:@\\^{|}-]+)(=(.*))?$/);
|
||||
if (match) {
|
||||
// -p plugin
|
||||
// -p plugin=arg
|
||||
pluginText = match[1];
|
||||
pluginArgument = new Function('return ' + match[3])();
|
||||
}
|
||||
else {
|
||||
throw new Error(`Invalid --plugin argument format: ${JSON.stringify(pluginText)}`);
|
||||
}
|
||||
if (!/^\.|^rollup-plugin-|[/@\\]/.test(pluginText)) {
|
||||
// Try using plugin prefix variations first if applicable.
|
||||
// Prefix order is significant - left has higher precedence.
|
||||
for (const prefix of ['@rollup/plugin-', 'rollup-plugin-']) {
|
||||
try {
|
||||
plugin = await requireOrImport(prefix + pluginText);
|
||||
break;
|
||||
}
|
||||
catch {
|
||||
// if this does not work, we try requiring the actual name below
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!plugin) {
|
||||
try {
|
||||
if (pluginText[0] == '.')
|
||||
pluginText = node_path.resolve(pluginText);
|
||||
// Windows absolute paths must be specified as file:// protocol URL
|
||||
// Note that we do not have coverage for Windows-only code paths
|
||||
else if (/^[A-Za-z]:\\/.test(pluginText)) {
|
||||
pluginText = node_url.pathToFileURL(node_path.resolve(pluginText)).href;
|
||||
}
|
||||
plugin = await requireOrImport(pluginText);
|
||||
}
|
||||
catch (error) {
|
||||
throw new Error(`Cannot load plugin "${pluginText}": ${error.message}.`);
|
||||
}
|
||||
}
|
||||
}
|
||||
// some plugins do not use `module.exports` for their entry point,
|
||||
// in which case we try the named default export and the plugin name
|
||||
if (typeof plugin === 'object') {
|
||||
plugin = plugin.default || plugin[getCamelizedPluginBaseName(pluginText)];
|
||||
}
|
||||
if (!plugin) {
|
||||
throw new Error(`Cannot find entry for plugin "${pluginText}". The plugin needs to export a function either as "default" or "${getCamelizedPluginBaseName(pluginText)}" for Rollup to recognize it.`);
|
||||
}
|
||||
inputOptions.plugins.push(typeof plugin === 'function' ? plugin.call(plugin, pluginArgument) : plugin);
|
||||
}
|
||||
function getCamelizedPluginBaseName(pluginText) {
|
||||
return (pluginText.match(/(@rollup\/plugin-|rollup-plugin-)(.+)$/)?.[2] || pluginText)
|
||||
.split(/[/\\]/)
|
||||
.slice(-1)[0]
|
||||
.split('.')[0]
|
||||
.split('-')
|
||||
.map((part, index) => (index === 0 || !part ? part : part[0].toUpperCase() + part.slice(1)))
|
||||
.join('');
|
||||
}
|
||||
async function requireOrImport(pluginPath) {
|
||||
try {
|
||||
// eslint-disable-next-line unicorn/prefer-module
|
||||
return require(pluginPath);
|
||||
}
|
||||
catch {
|
||||
return import(pluginPath);
|
||||
}
|
||||
}
|
||||
|
||||
const loadConfigFile = async (fileName, commandOptions = {}) => {
|
||||
const configs = await getConfigList(getDefaultFromCjs(await getConfigFileExport(fileName, commandOptions)), commandOptions);
|
||||
const warnings = batchWarnings();
|
||||
try {
|
||||
const normalizedConfigs = [];
|
||||
for (const config of configs) {
|
||||
const options = await rollup.mergeOptions(config, commandOptions, warnings.add);
|
||||
await addCommandPluginsToInputOptions(options, commandOptions);
|
||||
normalizedConfigs.push(options);
|
||||
}
|
||||
return { options: normalizedConfigs, warnings };
|
||||
}
|
||||
catch (error_) {
|
||||
warnings.flush();
|
||||
throw error_;
|
||||
}
|
||||
};
|
||||
async function getConfigFileExport(fileName, commandOptions) {
|
||||
if (commandOptions.configPlugin || commandOptions.bundleConfigAsCjs) {
|
||||
try {
|
||||
return await loadTranspiledConfigFile(fileName, commandOptions);
|
||||
}
|
||||
catch (error_) {
|
||||
if (error_.message.includes('not defined in ES module scope')) {
|
||||
return rollup.error(rollup.errorCannotBundleConfigAsEsm(error_));
|
||||
}
|
||||
throw error_;
|
||||
}
|
||||
}
|
||||
let cannotLoadEsm = false;
|
||||
const handleWarning = (warning) => {
|
||||
if (warning.message.includes('To load an ES module')) {
|
||||
cannotLoadEsm = true;
|
||||
}
|
||||
};
|
||||
process.on('warning', handleWarning);
|
||||
try {
|
||||
const fileUrl = node_url.pathToFileURL(fileName);
|
||||
if (process.env.ROLLUP_WATCH) {
|
||||
// We are adding the current date to allow reloads in watch mode
|
||||
fileUrl.search = `?${Date.now()}`;
|
||||
}
|
||||
return (await import(fileUrl.href)).default;
|
||||
}
|
||||
catch (error_) {
|
||||
if (cannotLoadEsm) {
|
||||
return rollup.error(rollup.errorCannotLoadConfigAsCjs(error_));
|
||||
}
|
||||
if (error_.message.includes('not defined in ES module scope')) {
|
||||
return rollup.error(rollup.errorCannotLoadConfigAsEsm(error_));
|
||||
}
|
||||
throw error_;
|
||||
}
|
||||
finally {
|
||||
process.off('warning', handleWarning);
|
||||
}
|
||||
}
|
||||
function getDefaultFromCjs(namespace) {
|
||||
return namespace.default || namespace;
|
||||
}
|
||||
async function loadTranspiledConfigFile(fileName, { bundleConfigAsCjs, configPlugin, silent }) {
|
||||
const warnings = batchWarnings();
|
||||
const inputOptions = {
|
||||
external: (id) => (id[0] !== '.' && !node_path.isAbsolute(id)) || id.slice(-5, id.length) === '.json',
|
||||
input: fileName,
|
||||
onwarn: warnings.add,
|
||||
plugins: [],
|
||||
treeshake: false
|
||||
};
|
||||
await addPluginsFromCommandOption(configPlugin, inputOptions);
|
||||
const bundle = await rollup.rollup(inputOptions);
|
||||
if (!silent && warnings.count > 0) {
|
||||
rollup.stderr(rollup.bold(`loaded ${rollup.relativeId(fileName)} with warnings`));
|
||||
warnings.flush();
|
||||
}
|
||||
const { output: [{ code }] } = await bundle.generate({
|
||||
exports: 'named',
|
||||
format: bundleConfigAsCjs ? 'cjs' : 'es',
|
||||
plugins: [
|
||||
{
|
||||
name: 'transpile-import-meta',
|
||||
resolveImportMeta(property, { moduleId }) {
|
||||
if (property === 'url') {
|
||||
return `'${node_url.pathToFileURL(moduleId).href}'`;
|
||||
}
|
||||
if (property == null) {
|
||||
return `{url:'${node_url.pathToFileURL(moduleId).href}'}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
return loadConfigFromWrittenFile(node_path.join(node_path.dirname(fileName), `rollup.config-${Date.now()}.${bundleConfigAsCjs ? 'cjs' : 'mjs'}`), code);
|
||||
}
|
||||
async function loadConfigFromWrittenFile(bundledFileName, bundledCode) {
|
||||
await promises.writeFile(bundledFileName, bundledCode);
|
||||
try {
|
||||
return (await import(node_url.pathToFileURL(bundledFileName).href)).default;
|
||||
}
|
||||
finally {
|
||||
// Not awaiting here saves some ms while potentially hiding a non-critical error
|
||||
promises.unlink(bundledFileName);
|
||||
}
|
||||
}
|
||||
async function getConfigList(configFileExport, commandOptions) {
|
||||
const config = await (typeof configFileExport === 'function'
|
||||
? configFileExport(commandOptions)
|
||||
: configFileExport);
|
||||
if (Object.keys(config).length === 0) {
|
||||
return rollup.error(rollup.errorMissingConfig());
|
||||
}
|
||||
return Array.isArray(config) ? config : [config];
|
||||
}
|
||||
|
||||
exports.addCommandPluginsToInputOptions = addCommandPluginsToInputOptions;
|
||||
exports.batchWarnings = batchWarnings;
|
||||
exports.loadConfigFile = loadConfigFile;
|
||||
exports.stdinName = stdinName;
|
||||
//# sourceMappingURL=loadConfigFile.js.map
|
26381
node_modules/rollup/dist/shared/rollup.js
generated
vendored
Normal file
26381
node_modules/rollup/dist/shared/rollup.js
generated
vendored
Normal file
File diff suppressed because it is too large
Load diff
554
node_modules/rollup/dist/shared/watch-cli.js
generated
vendored
Normal file
554
node_modules/rollup/dist/shared/watch-cli.js
generated
vendored
Normal file
|
@ -0,0 +1,554 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
const promises = require('node:fs/promises');
|
||||
const process$2 = require('node:process');
|
||||
const index = require('./index.js');
|
||||
const cli = require('../bin/rollup');
|
||||
const rollup = require('./rollup.js');
|
||||
const loadConfigFile_js = require('./loadConfigFile.js');
|
||||
const node_child_process = require('node:child_process');
|
||||
const watchProxy = require('./watch-proxy.js');
|
||||
require('fs');
|
||||
require('util');
|
||||
require('stream');
|
||||
require('path');
|
||||
require('os');
|
||||
require('./fsevents-importer.js');
|
||||
require('events');
|
||||
require('node:path');
|
||||
require('tty');
|
||||
require('node:perf_hooks');
|
||||
require('node:crypto');
|
||||
require('node:events');
|
||||
require('node:url');
|
||||
|
||||
function timeZone(date = new Date()) {
|
||||
const offset = date.getTimezoneOffset();
|
||||
const absOffset = Math.abs(offset);
|
||||
const hours = Math.floor(absOffset / 60);
|
||||
const minutes = absOffset % 60;
|
||||
const minutesOut = minutes > 0 ? ':' + ('0' + minutes).slice(-2) : '';
|
||||
return (offset < 0 ? '+' : '-') + hours + minutesOut;
|
||||
}
|
||||
|
||||
function dateTime(options = {}) {
|
||||
let {
|
||||
date = new Date(),
|
||||
local = true,
|
||||
showTimeZone = false,
|
||||
showMilliseconds = false
|
||||
} = options;
|
||||
|
||||
if (local) {
|
||||
// Offset the date so it will return the correct value when getting the ISO string.
|
||||
date = new Date(date.getTime() - (date.getTimezoneOffset() * 60000));
|
||||
}
|
||||
|
||||
let end = '';
|
||||
|
||||
if (showTimeZone) {
|
||||
end = ' UTC' + (local ? timeZone(date) : '');
|
||||
}
|
||||
|
||||
if (showMilliseconds && date.getUTCMilliseconds() > 0) {
|
||||
end = ` ${date.getUTCMilliseconds()}ms${end}`;
|
||||
}
|
||||
|
||||
return date
|
||||
.toISOString()
|
||||
.replace(/T/, ' ')
|
||||
.replace(/\..+/, end);
|
||||
}
|
||||
|
||||
/**
|
||||
* This is not the set of all possible signals.
|
||||
*
|
||||
* It IS, however, the set of all signals that trigger
|
||||
* an exit on either Linux or BSD systems. Linux is a
|
||||
* superset of the signal names supported on BSD, and
|
||||
* the unknown signals just fail to register, so we can
|
||||
* catch that easily enough.
|
||||
*
|
||||
* Windows signals are a different set, since there are
|
||||
* signals that terminate Windows processes, but don't
|
||||
* terminate (or don't even exist) on Posix systems.
|
||||
*
|
||||
* Don't bother with SIGKILL. It's uncatchable, which
|
||||
* means that we can't fire any callbacks anyway.
|
||||
*
|
||||
* If a user does happen to register a handler on a non-
|
||||
* fatal signal like SIGWINCH or something, and then
|
||||
* exit, it'll end up firing `process.emit('exit')`, so
|
||||
* the handler will be fired anyway.
|
||||
*
|
||||
* SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
|
||||
* artificially, inherently leave the process in a
|
||||
* state from which it is not safe to try and enter JS
|
||||
* listeners.
|
||||
*/
|
||||
const signals = [];
|
||||
signals.push('SIGHUP', 'SIGINT', 'SIGTERM');
|
||||
if (process.platform !== 'win32') {
|
||||
signals.push('SIGALRM', 'SIGABRT', 'SIGVTALRM', 'SIGXCPU', 'SIGXFSZ', 'SIGUSR2', 'SIGTRAP', 'SIGSYS', 'SIGQUIT', 'SIGIOT'
|
||||
// should detect profiler and enable/disable accordingly.
|
||||
// see #21
|
||||
// 'SIGPROF'
|
||||
);
|
||||
}
|
||||
if (process.platform === 'linux') {
|
||||
signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT');
|
||||
}
|
||||
|
||||
// Note: since nyc uses this module to output coverage, any lines
|
||||
// that are in the direct sync flow of nyc's outputCoverage are
|
||||
// ignored, since we can never get coverage for them.
|
||||
// grab a reference to node's real process object right away
|
||||
const processOk = (process) => !!process &&
|
||||
typeof process === 'object' &&
|
||||
typeof process.removeListener === 'function' &&
|
||||
typeof process.emit === 'function' &&
|
||||
typeof process.reallyExit === 'function' &&
|
||||
typeof process.listeners === 'function' &&
|
||||
typeof process.kill === 'function' &&
|
||||
typeof process.pid === 'number' &&
|
||||
typeof process.on === 'function';
|
||||
const kExitEmitter = Symbol.for('signal-exit emitter');
|
||||
const global = globalThis;
|
||||
const ObjectDefineProperty = Object.defineProperty.bind(Object);
|
||||
// teeny tiny ee
|
||||
class Emitter {
|
||||
emitted = {
|
||||
afterExit: false,
|
||||
exit: false,
|
||||
};
|
||||
listeners = {
|
||||
afterExit: [],
|
||||
exit: [],
|
||||
};
|
||||
count = 0;
|
||||
id = Math.random();
|
||||
constructor() {
|
||||
if (global[kExitEmitter]) {
|
||||
console.error('reusing global emitter');
|
||||
return global[kExitEmitter];
|
||||
}
|
||||
ObjectDefineProperty(global, kExitEmitter, {
|
||||
value: this,
|
||||
writable: false,
|
||||
enumerable: false,
|
||||
configurable: false,
|
||||
});
|
||||
}
|
||||
on(ev, fn) {
|
||||
this.listeners[ev].push(fn);
|
||||
}
|
||||
removeListener(ev, fn) {
|
||||
const list = this.listeners[ev];
|
||||
const i = list.indexOf(fn);
|
||||
/* c8 ignore start */
|
||||
if (i === -1) {
|
||||
return;
|
||||
}
|
||||
/* c8 ignore stop */
|
||||
if (i === 0 && list.length === 1) {
|
||||
list.length = 0;
|
||||
}
|
||||
else {
|
||||
list.splice(i, 1);
|
||||
}
|
||||
}
|
||||
emit(ev, code, signal) {
|
||||
if (this.emitted[ev]) {
|
||||
return;
|
||||
}
|
||||
this.emitted[ev] = true;
|
||||
for (const fn of this.listeners[ev]) {
|
||||
fn(code, signal);
|
||||
}
|
||||
}
|
||||
}
|
||||
class SignalExitBase {
|
||||
}
|
||||
const signalExitWrap = (handler) => {
|
||||
return {
|
||||
onExit(cb, opts) {
|
||||
return handler.onExit(cb, opts);
|
||||
},
|
||||
load() {
|
||||
return handler.load();
|
||||
},
|
||||
unload() {
|
||||
return handler.unload();
|
||||
},
|
||||
};
|
||||
};
|
||||
class SignalExitFallback extends SignalExitBase {
|
||||
onExit() {
|
||||
return () => { };
|
||||
}
|
||||
load() { }
|
||||
unload() { }
|
||||
}
|
||||
class SignalExit extends SignalExitBase {
|
||||
// "SIGHUP" throws an `ENOSYS` error on Windows,
|
||||
// so use a supported signal instead
|
||||
/* c8 ignore start */
|
||||
#hupSig = process$1.platform === 'win32' ? 'SIGINT' : 'SIGHUP';
|
||||
/* c8 ignore stop */
|
||||
#emitter = new Emitter();
|
||||
#process;
|
||||
#originalProcessEmit;
|
||||
#originalProcessReallyExit;
|
||||
#sigListeners = {};
|
||||
#loaded = false;
|
||||
constructor(process) {
|
||||
super();
|
||||
this.#process = process;
|
||||
// { <signal>: <listener fn>, ... }
|
||||
this.#sigListeners = {};
|
||||
for (const sig of signals) {
|
||||
this.#sigListeners[sig] = () => {
|
||||
// If there are no other listeners, an exit is coming!
|
||||
// Simplest way: remove us and then re-send the signal.
|
||||
// We know that this will kill the process, so we can
|
||||
// safely emit now.
|
||||
const listeners = this.#process.listeners(sig);
|
||||
let { count } = this.#emitter;
|
||||
// This is a workaround for the fact that signal-exit v3 and signal
|
||||
// exit v4 are not aware of each other, and each will attempt to let
|
||||
// the other handle it, so neither of them do. To correct this, we
|
||||
// detect if we're the only handler *except* for previous versions
|
||||
// of signal-exit.
|
||||
/* c8 ignore start */
|
||||
//@ts-ignore
|
||||
if (typeof process.__signal_exit_emitter__ === 'object')
|
||||
count++;
|
||||
/* c8 ignore stop */
|
||||
if (listeners.length === count) {
|
||||
this.unload();
|
||||
this.#emitter.emit('exit', null, sig);
|
||||
this.#emitter.emit('afterExit', null, sig);
|
||||
/* c8 ignore start */
|
||||
process.kill(process.pid, sig === 'SIGHUP' ? this.#hupSig : sig);
|
||||
/* c8 ignore stop */
|
||||
}
|
||||
};
|
||||
}
|
||||
this.#originalProcessReallyExit = process.reallyExit;
|
||||
this.#originalProcessEmit = process.emit;
|
||||
}
|
||||
onExit(cb, opts) {
|
||||
/* c8 ignore start */
|
||||
if (!processOk(this.#process)) {
|
||||
return () => { };
|
||||
}
|
||||
/* c8 ignore stop */
|
||||
if (this.#loaded === false) {
|
||||
this.load();
|
||||
}
|
||||
const ev = opts?.alwaysLast ? 'afterExit' : 'exit';
|
||||
this.#emitter.on(ev, cb);
|
||||
return () => {
|
||||
this.#emitter.removeListener(ev, cb);
|
||||
if (this.#emitter.listeners['exit'].length === 0 &&
|
||||
this.#emitter.listeners['afterExit'].length === 0) {
|
||||
this.unload();
|
||||
}
|
||||
};
|
||||
}
|
||||
load() {
|
||||
if (this.#loaded) {
|
||||
return;
|
||||
}
|
||||
this.#loaded = true;
|
||||
// This is the number of onSignalExit's that are in play.
|
||||
// It's important so that we can count the correct number of
|
||||
// listeners on signals, and don't wait for the other one to
|
||||
// handle it instead of us.
|
||||
this.#emitter.count += 1;
|
||||
for (const sig of signals) {
|
||||
try {
|
||||
const fn = this.#sigListeners[sig];
|
||||
if (fn)
|
||||
this.#process.on(sig, fn);
|
||||
}
|
||||
catch (_) { }
|
||||
}
|
||||
this.#process.emit = (ev, ...a) => {
|
||||
return this.#processEmit(ev, ...a);
|
||||
};
|
||||
this.#process.reallyExit = (code) => {
|
||||
return this.#processReallyExit(code);
|
||||
};
|
||||
}
|
||||
unload() {
|
||||
if (!this.#loaded) {
|
||||
return;
|
||||
}
|
||||
this.#loaded = false;
|
||||
signals.forEach(sig => {
|
||||
const listener = this.#sigListeners[sig];
|
||||
/* c8 ignore start */
|
||||
if (!listener) {
|
||||
throw new Error('Listener not defined for signal: ' + sig);
|
||||
}
|
||||
/* c8 ignore stop */
|
||||
try {
|
||||
this.#process.removeListener(sig, listener);
|
||||
/* c8 ignore start */
|
||||
}
|
||||
catch (_) { }
|
||||
/* c8 ignore stop */
|
||||
});
|
||||
this.#process.emit = this.#originalProcessEmit;
|
||||
this.#process.reallyExit = this.#originalProcessReallyExit;
|
||||
this.#emitter.count -= 1;
|
||||
}
|
||||
#processReallyExit(code) {
|
||||
/* c8 ignore start */
|
||||
if (!processOk(this.#process)) {
|
||||
return 0;
|
||||
}
|
||||
this.#process.exitCode = code || 0;
|
||||
/* c8 ignore stop */
|
||||
this.#emitter.emit('exit', this.#process.exitCode, null);
|
||||
this.#emitter.emit('afterExit', this.#process.exitCode, null);
|
||||
return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
|
||||
}
|
||||
#processEmit(ev, ...args) {
|
||||
const og = this.#originalProcessEmit;
|
||||
if (ev === 'exit' && processOk(this.#process)) {
|
||||
if (typeof args[0] === 'number') {
|
||||
this.#process.exitCode = args[0];
|
||||
/* c8 ignore start */
|
||||
}
|
||||
/* c8 ignore start */
|
||||
const ret = og.call(this.#process, ev, ...args);
|
||||
/* c8 ignore start */
|
||||
this.#emitter.emit('exit', this.#process.exitCode, null);
|
||||
this.#emitter.emit('afterExit', this.#process.exitCode, null);
|
||||
/* c8 ignore stop */
|
||||
return ret;
|
||||
}
|
||||
else {
|
||||
return og.call(this.#process, ev, ...args);
|
||||
}
|
||||
}
|
||||
}
|
||||
const process$1 = globalThis.process;
|
||||
// wrap so that we call the method on the actual handler, without
|
||||
// exporting it directly.
|
||||
const {
|
||||
/**
|
||||
* Called when the process is exiting, whether via signal, explicit
|
||||
* exit, or running out of stuff to do.
|
||||
*
|
||||
* If the global process object is not suitable for instrumentation,
|
||||
* then this will be a no-op.
|
||||
*
|
||||
* Returns a function that may be used to unload signal-exit.
|
||||
*/
|
||||
onExit,
|
||||
/**
|
||||
* Load the listeners. Likely you never need to call this, unless
|
||||
* doing a rather deep integration with signal-exit functionality.
|
||||
* Mostly exposed for the benefit of testing.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
load,
|
||||
/**
|
||||
* Unload the listeners. Likely you never need to call this, unless
|
||||
* doing a rather deep integration with signal-exit functionality.
|
||||
* Mostly exposed for the benefit of testing.
|
||||
*
|
||||
* @internal
|
||||
*/
|
||||
unload, } = signalExitWrap(processOk(process$1) ? new SignalExit(process$1) : new SignalExitFallback());
|
||||
|
||||
const CLEAR_SCREEN = '\u001Bc';
|
||||
function getResetScreen(configs, allowClearScreen) {
|
||||
let clearScreen = allowClearScreen;
|
||||
for (const config of configs) {
|
||||
if (config.watch && config.watch.clearScreen === false) {
|
||||
clearScreen = false;
|
||||
}
|
||||
}
|
||||
if (clearScreen) {
|
||||
return (heading) => rollup.stderr(CLEAR_SCREEN + heading);
|
||||
}
|
||||
let firstRun = true;
|
||||
return (heading) => {
|
||||
if (firstRun) {
|
||||
rollup.stderr(heading);
|
||||
firstRun = false;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function extractWatchHooks(command) {
|
||||
if (!Array.isArray(command.watch))
|
||||
return {};
|
||||
return command.watch
|
||||
.filter(value => typeof value === 'object')
|
||||
.reduce((accumulator, keyValueOption) => ({ ...accumulator, ...keyValueOption }), {});
|
||||
}
|
||||
function createWatchHooks(command) {
|
||||
const watchHooks = extractWatchHooks(command);
|
||||
return function (hook) {
|
||||
if (watchHooks[hook]) {
|
||||
const cmd = watchHooks[hook];
|
||||
if (!command.silent) {
|
||||
rollup.stderr(rollup.cyan(`watch.${hook} ${rollup.bold(`$ ${cmd}`)}`));
|
||||
}
|
||||
try {
|
||||
// !! important - use stderr for all writes from execSync
|
||||
const stdio = [process.stdin, process.stderr, process.stderr];
|
||||
node_child_process.execSync(cmd, { stdio: command.silent ? 'ignore' : stdio });
|
||||
}
|
||||
catch (error) {
|
||||
rollup.stderr(error.message);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
async function watch(command) {
|
||||
process$2.env.ROLLUP_WATCH = 'true';
|
||||
const isTTY = process$2.stderr.isTTY;
|
||||
const silent = command.silent;
|
||||
let watcher;
|
||||
let configWatcher;
|
||||
let resetScreen;
|
||||
const configFile = command.config ? await cli.getConfigPath(command.config) : null;
|
||||
const runWatchHook = createWatchHooks(command);
|
||||
onExit(close);
|
||||
process$2.on('uncaughtException', closeWithError);
|
||||
if (!process$2.stdin.isTTY) {
|
||||
process$2.stdin.on('end', close);
|
||||
process$2.stdin.resume();
|
||||
}
|
||||
async function loadConfigFromFileAndTrack(configFile) {
|
||||
let configFileData = null;
|
||||
let configFileRevision = 0;
|
||||
configWatcher = index.chokidar.watch(configFile).on('change', reloadConfigFile);
|
||||
await reloadConfigFile();
|
||||
async function reloadConfigFile() {
|
||||
try {
|
||||
const newConfigFileData = await promises.readFile(configFile, 'utf8');
|
||||
if (newConfigFileData === configFileData) {
|
||||
return;
|
||||
}
|
||||
configFileRevision++;
|
||||
const currentConfigFileRevision = configFileRevision;
|
||||
if (configFileData) {
|
||||
rollup.stderr(`\nReloading updated config...`);
|
||||
}
|
||||
configFileData = newConfigFileData;
|
||||
const { options, warnings } = await loadConfigFile_js.loadConfigFile(configFile, command);
|
||||
if (currentConfigFileRevision !== configFileRevision) {
|
||||
return;
|
||||
}
|
||||
if (watcher) {
|
||||
await watcher.close();
|
||||
}
|
||||
start(options, warnings);
|
||||
}
|
||||
catch (error) {
|
||||
rollup.handleError(error, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (configFile) {
|
||||
await loadConfigFromFileAndTrack(configFile);
|
||||
}
|
||||
else {
|
||||
const { options, warnings } = await cli.loadConfigFromCommand(command);
|
||||
await start(options, warnings);
|
||||
}
|
||||
async function start(configs, warnings) {
|
||||
watcher = watchProxy.watch(configs);
|
||||
watcher.on('event', event => {
|
||||
switch (event.code) {
|
||||
case 'ERROR': {
|
||||
warnings.flush();
|
||||
rollup.handleError(event.error, true);
|
||||
runWatchHook('onError');
|
||||
break;
|
||||
}
|
||||
case 'START': {
|
||||
if (!silent) {
|
||||
if (!resetScreen) {
|
||||
resetScreen = getResetScreen(configs, isTTY);
|
||||
}
|
||||
resetScreen(rollup.underline(`rollup v${rollup.version}`));
|
||||
}
|
||||
runWatchHook('onStart');
|
||||
break;
|
||||
}
|
||||
case 'BUNDLE_START': {
|
||||
if (!silent) {
|
||||
let input = event.input;
|
||||
if (typeof input !== 'string') {
|
||||
input = Array.isArray(input)
|
||||
? input.join(', ')
|
||||
: Object.values(input).join(', ');
|
||||
}
|
||||
rollup.stderr(rollup.cyan(`bundles ${rollup.bold(input)} → ${rollup.bold(event.output.map(rollup.relativeId).join(', '))}...`));
|
||||
}
|
||||
runWatchHook('onBundleStart');
|
||||
break;
|
||||
}
|
||||
case 'BUNDLE_END': {
|
||||
warnings.flush();
|
||||
if (!silent)
|
||||
rollup.stderr(rollup.green(`created ${rollup.bold(event.output.map(rollup.relativeId).join(', '))} in ${rollup.bold(cli.prettyMilliseconds(event.duration))}`));
|
||||
runWatchHook('onBundleEnd');
|
||||
if (event.result && event.result.getTimings) {
|
||||
cli.printTimings(event.result.getTimings());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 'END': {
|
||||
runWatchHook('onEnd');
|
||||
if (!silent && isTTY) {
|
||||
rollup.stderr(`\n[${dateTime()}] waiting for changes...`);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ('result' in event && event.result) {
|
||||
event.result.close().catch(error => rollup.handleError(error, true));
|
||||
}
|
||||
});
|
||||
}
|
||||
async function close(code) {
|
||||
process$2.removeListener('uncaughtException', closeWithError);
|
||||
// removing a non-existent listener is a no-op
|
||||
process$2.stdin.removeListener('end', close);
|
||||
if (watcher)
|
||||
await watcher.close();
|
||||
if (configWatcher)
|
||||
configWatcher.close();
|
||||
process$2.exit(code || 0);
|
||||
}
|
||||
// return a promise that never resolves to keep the process running
|
||||
return new Promise(() => { });
|
||||
}
|
||||
function closeWithError(error) {
|
||||
error.name = `Uncaught ${error.name}`;
|
||||
rollup.handleError(error);
|
||||
}
|
||||
|
||||
exports.watch = watch;
|
||||
//# sourceMappingURL=watch-cli.js.map
|
87
node_modules/rollup/dist/shared/watch-proxy.js
generated
vendored
Normal file
87
node_modules/rollup/dist/shared/watch-proxy.js
generated
vendored
Normal file
|
@ -0,0 +1,87 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
const rollup = require('./rollup.js');
|
||||
const fseventsImporter = require('./fsevents-importer.js');
|
||||
|
||||
class WatchEmitter {
|
||||
constructor() {
|
||||
this.currentHandlers = Object.create(null);
|
||||
this.persistentHandlers = Object.create(null);
|
||||
}
|
||||
// Will be overwritten by Rollup
|
||||
async close() { }
|
||||
emit(event, ...parameters) {
|
||||
return Promise.all([...this.getCurrentHandlers(event), ...this.getPersistentHandlers(event)].map(handler => handler(...parameters)));
|
||||
}
|
||||
off(event, listener) {
|
||||
const listeners = this.persistentHandlers[event];
|
||||
if (listeners) {
|
||||
// A hack stolen from "mitt": ">>> 0" does not change numbers >= 0, but -1
|
||||
// (which would remove the last array element if used unchanged) is turned
|
||||
// into max_int, which is outside the array and does not change anything.
|
||||
listeners.splice(listeners.indexOf(listener) >>> 0, 1);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
on(event, listener) {
|
||||
this.getPersistentHandlers(event).push(listener);
|
||||
return this;
|
||||
}
|
||||
onCurrentRun(event, listener) {
|
||||
this.getCurrentHandlers(event).push(listener);
|
||||
return this;
|
||||
}
|
||||
once(event, listener) {
|
||||
const selfRemovingListener = (...parameters) => {
|
||||
this.off(event, selfRemovingListener);
|
||||
return listener(...parameters);
|
||||
};
|
||||
this.on(event, selfRemovingListener);
|
||||
return this;
|
||||
}
|
||||
removeAllListeners() {
|
||||
this.removeListenersForCurrentRun();
|
||||
this.persistentHandlers = Object.create(null);
|
||||
return this;
|
||||
}
|
||||
removeListenersForCurrentRun() {
|
||||
this.currentHandlers = Object.create(null);
|
||||
return this;
|
||||
}
|
||||
getCurrentHandlers(event) {
|
||||
return this.currentHandlers[event] || (this.currentHandlers[event] = []);
|
||||
}
|
||||
getPersistentHandlers(event) {
|
||||
return this.persistentHandlers[event] || (this.persistentHandlers[event] = []);
|
||||
}
|
||||
}
|
||||
|
||||
function watch(configs) {
|
||||
const emitter = new WatchEmitter();
|
||||
watchInternal(configs, emitter).catch(error => {
|
||||
rollup.handleError(error);
|
||||
});
|
||||
return emitter;
|
||||
}
|
||||
async function watchInternal(configs, emitter) {
|
||||
const optionsList = await Promise.all(rollup.ensureArray(configs).map(config => rollup.mergeOptions(config)));
|
||||
const watchOptionsList = optionsList.filter(config => config.watch !== false);
|
||||
if (watchOptionsList.length === 0) {
|
||||
return rollup.error(rollup.errorInvalidOption('watch', rollup.URL_WATCH, 'there must be at least one config where "watch" is not set to "false"'));
|
||||
}
|
||||
await fseventsImporter.loadFsEvents();
|
||||
const { Watcher } = await Promise.resolve().then(() => require('./watch.js'));
|
||||
new Watcher(watchOptionsList, emitter);
|
||||
}
|
||||
|
||||
exports.watch = watch;
|
||||
//# sourceMappingURL=watch-proxy.js.map
|
317
node_modules/rollup/dist/shared/watch.js
generated
vendored
Normal file
317
node_modules/rollup/dist/shared/watch.js
generated
vendored
Normal file
|
@ -0,0 +1,317 @@
|
|||
/*
|
||||
@license
|
||||
Rollup.js v3.22.0
|
||||
Wed, 17 May 2023 04:19:47 GMT - commit 9f05b91e5e1862f7ea7a728fb63fb2750dfe7392
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
Released under the MIT License.
|
||||
*/
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||
|
||||
const node_path = require('node:path');
|
||||
const process = require('node:process');
|
||||
const rollup = require('./rollup.js');
|
||||
const node_os = require('node:os');
|
||||
const index = require('./index.js');
|
||||
require('tty');
|
||||
require('path');
|
||||
require('node:perf_hooks');
|
||||
require('node:crypto');
|
||||
require('node:fs/promises');
|
||||
require('node:events');
|
||||
require('fs');
|
||||
require('util');
|
||||
require('stream');
|
||||
require('os');
|
||||
require('./fsevents-importer.js');
|
||||
require('events');
|
||||
|
||||
class FileWatcher {
|
||||
constructor(task, chokidarOptions) {
|
||||
this.transformWatchers = new Map();
|
||||
this.chokidarOptions = chokidarOptions;
|
||||
this.task = task;
|
||||
this.watcher = this.createWatcher(null);
|
||||
}
|
||||
close() {
|
||||
this.watcher.close();
|
||||
for (const watcher of this.transformWatchers.values()) {
|
||||
watcher.close();
|
||||
}
|
||||
}
|
||||
unwatch(id) {
|
||||
this.watcher.unwatch(id);
|
||||
const transformWatcher = this.transformWatchers.get(id);
|
||||
if (transformWatcher) {
|
||||
this.transformWatchers.delete(id);
|
||||
transformWatcher.close();
|
||||
}
|
||||
}
|
||||
watch(id, isTransformDependency) {
|
||||
if (isTransformDependency) {
|
||||
const watcher = this.transformWatchers.get(id) ?? this.createWatcher(id);
|
||||
watcher.add(id);
|
||||
this.transformWatchers.set(id, watcher);
|
||||
}
|
||||
else {
|
||||
this.watcher.add(id);
|
||||
}
|
||||
}
|
||||
createWatcher(transformWatcherId) {
|
||||
const task = this.task;
|
||||
const isLinux = node_os.platform() === 'linux';
|
||||
const isTransformDependency = transformWatcherId !== null;
|
||||
const handleChange = (id, event) => {
|
||||
const changedId = transformWatcherId || id;
|
||||
if (isLinux) {
|
||||
// unwatching and watching fixes an issue with chokidar where on certain systems,
|
||||
// a file that was unlinked and immediately recreated would create a change event
|
||||
// but then no longer any further events
|
||||
watcher.unwatch(changedId);
|
||||
watcher.add(changedId);
|
||||
}
|
||||
task.invalidate(changedId, { event, isTransformDependency });
|
||||
};
|
||||
const watcher = index.chokidar
|
||||
.watch([], this.chokidarOptions)
|
||||
.on('add', id => handleChange(id, 'create'))
|
||||
.on('change', id => handleChange(id, 'update'))
|
||||
.on('unlink', id => handleChange(id, 'delete'));
|
||||
return watcher;
|
||||
}
|
||||
}
|
||||
|
||||
const eventsRewrites = {
|
||||
create: {
|
||||
create: 'buggy',
|
||||
delete: null,
|
||||
update: 'create'
|
||||
},
|
||||
delete: {
|
||||
create: 'update',
|
||||
delete: 'buggy',
|
||||
update: 'buggy'
|
||||
},
|
||||
update: {
|
||||
create: 'buggy',
|
||||
delete: 'delete',
|
||||
update: 'update'
|
||||
}
|
||||
};
|
||||
class Watcher {
|
||||
constructor(optionsList, emitter) {
|
||||
this.buildDelay = 0;
|
||||
this.buildTimeout = null;
|
||||
this.closed = false;
|
||||
this.invalidatedIds = new Map();
|
||||
this.rerun = false;
|
||||
this.running = true;
|
||||
this.emitter = emitter;
|
||||
emitter.close = this.close.bind(this);
|
||||
this.tasks = optionsList.map(options => new Task(this, options));
|
||||
for (const { watch } of optionsList) {
|
||||
if (watch && typeof watch.buildDelay === 'number') {
|
||||
this.buildDelay = Math.max(this.buildDelay, watch.buildDelay);
|
||||
}
|
||||
}
|
||||
process.nextTick(() => this.run());
|
||||
}
|
||||
async close() {
|
||||
if (this.closed)
|
||||
return;
|
||||
this.closed = true;
|
||||
if (this.buildTimeout)
|
||||
clearTimeout(this.buildTimeout);
|
||||
for (const task of this.tasks) {
|
||||
task.close();
|
||||
}
|
||||
await this.emitter.emit('close');
|
||||
this.emitter.removeAllListeners();
|
||||
}
|
||||
invalidate(file) {
|
||||
if (file) {
|
||||
const previousEvent = this.invalidatedIds.get(file.id);
|
||||
const event = previousEvent ? eventsRewrites[previousEvent][file.event] : file.event;
|
||||
if (event === 'buggy') {
|
||||
//TODO: throws or warn? Currently just ignore, uses new event
|
||||
this.invalidatedIds.set(file.id, file.event);
|
||||
}
|
||||
else if (event === null) {
|
||||
this.invalidatedIds.delete(file.id);
|
||||
}
|
||||
else {
|
||||
this.invalidatedIds.set(file.id, event);
|
||||
}
|
||||
}
|
||||
if (this.running) {
|
||||
this.rerun = true;
|
||||
return;
|
||||
}
|
||||
if (this.buildTimeout)
|
||||
clearTimeout(this.buildTimeout);
|
||||
this.buildTimeout = setTimeout(async () => {
|
||||
this.buildTimeout = null;
|
||||
try {
|
||||
await Promise.all([...this.invalidatedIds].map(([id, event]) => this.emitter.emit('change', id, { event })));
|
||||
this.invalidatedIds.clear();
|
||||
await this.emitter.emit('restart');
|
||||
this.emitter.removeListenersForCurrentRun();
|
||||
this.run();
|
||||
}
|
||||
catch (error) {
|
||||
this.invalidatedIds.clear();
|
||||
await this.emitter.emit('event', {
|
||||
code: 'ERROR',
|
||||
error,
|
||||
result: null
|
||||
});
|
||||
await this.emitter.emit('event', {
|
||||
code: 'END'
|
||||
});
|
||||
}
|
||||
}, this.buildDelay);
|
||||
}
|
||||
async run() {
|
||||
this.running = true;
|
||||
await this.emitter.emit('event', {
|
||||
code: 'START'
|
||||
});
|
||||
for (const task of this.tasks) {
|
||||
await task.run();
|
||||
}
|
||||
this.running = false;
|
||||
await this.emitter.emit('event', {
|
||||
code: 'END'
|
||||
});
|
||||
if (this.rerun) {
|
||||
this.rerun = false;
|
||||
this.invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
class Task {
|
||||
constructor(watcher, options) {
|
||||
this.cache = { modules: [] };
|
||||
this.watchFiles = [];
|
||||
this.closed = false;
|
||||
this.invalidated = true;
|
||||
this.watched = new Set();
|
||||
this.watcher = watcher;
|
||||
this.options = options;
|
||||
this.skipWrite = Boolean(options.watch && options.watch.skipWrite);
|
||||
this.outputs = this.options.output;
|
||||
this.outputFiles = this.outputs.map(output => {
|
||||
if (output.file || output.dir)
|
||||
return node_path.resolve(output.file || output.dir);
|
||||
return undefined;
|
||||
});
|
||||
const watchOptions = this.options.watch || {};
|
||||
this.filter = rollup.createFilter(watchOptions.include, watchOptions.exclude);
|
||||
this.fileWatcher = new FileWatcher(this, {
|
||||
...watchOptions.chokidar,
|
||||
disableGlobbing: true,
|
||||
ignoreInitial: true
|
||||
});
|
||||
}
|
||||
close() {
|
||||
this.closed = true;
|
||||
this.fileWatcher.close();
|
||||
}
|
||||
invalidate(id, details) {
|
||||
this.invalidated = true;
|
||||
if (details.isTransformDependency) {
|
||||
for (const module of this.cache.modules) {
|
||||
if (!module.transformDependencies.includes(id))
|
||||
continue;
|
||||
// effective invalidation
|
||||
module.originalCode = null;
|
||||
}
|
||||
}
|
||||
this.watcher.invalidate({ event: details.event, id });
|
||||
}
|
||||
async run() {
|
||||
if (!this.invalidated)
|
||||
return;
|
||||
this.invalidated = false;
|
||||
const options = {
|
||||
...this.options,
|
||||
cache: this.cache
|
||||
};
|
||||
const start = Date.now();
|
||||
await this.watcher.emitter.emit('event', {
|
||||
code: 'BUNDLE_START',
|
||||
input: this.options.input,
|
||||
output: this.outputFiles
|
||||
});
|
||||
let result = null;
|
||||
try {
|
||||
result = await rollup.rollupInternal(options, this.watcher.emitter);
|
||||
if (this.closed) {
|
||||
return;
|
||||
}
|
||||
this.updateWatchedFiles(result);
|
||||
this.skipWrite || (await Promise.all(this.outputs.map(output => result.write(output))));
|
||||
await this.watcher.emitter.emit('event', {
|
||||
code: 'BUNDLE_END',
|
||||
duration: Date.now() - start,
|
||||
input: this.options.input,
|
||||
output: this.outputFiles,
|
||||
result
|
||||
});
|
||||
}
|
||||
catch (error) {
|
||||
if (!this.closed) {
|
||||
if (Array.isArray(error.watchFiles)) {
|
||||
for (const id of error.watchFiles) {
|
||||
this.watchFile(id);
|
||||
}
|
||||
}
|
||||
if (error.id) {
|
||||
this.cache.modules = this.cache.modules.filter(module => module.id !== error.id);
|
||||
}
|
||||
}
|
||||
await this.watcher.emitter.emit('event', {
|
||||
code: 'ERROR',
|
||||
error,
|
||||
result
|
||||
});
|
||||
}
|
||||
}
|
||||
updateWatchedFiles(result) {
|
||||
const previouslyWatched = this.watched;
|
||||
this.watched = new Set();
|
||||
this.watchFiles = result.watchFiles;
|
||||
this.cache = result.cache;
|
||||
for (const id of this.watchFiles) {
|
||||
this.watchFile(id);
|
||||
}
|
||||
for (const module of this.cache.modules) {
|
||||
for (const depId of module.transformDependencies) {
|
||||
this.watchFile(depId, true);
|
||||
}
|
||||
}
|
||||
for (const id of previouslyWatched) {
|
||||
if (!this.watched.has(id)) {
|
||||
this.fileWatcher.unwatch(id);
|
||||
}
|
||||
}
|
||||
}
|
||||
watchFile(id, isTransformDependency = false) {
|
||||
if (!this.filter(id))
|
||||
return;
|
||||
this.watched.add(id);
|
||||
if (this.outputFiles.includes(id)) {
|
||||
throw new Error('Cannot import the generated bundle');
|
||||
}
|
||||
// this is necessary to ensure that any 'renamed' files
|
||||
// continue to be watched following an error
|
||||
this.fileWatcher.watch(id, isTransformDependency);
|
||||
}
|
||||
}
|
||||
|
||||
exports.Task = Task;
|
||||
exports.Watcher = Watcher;
|
||||
//# sourceMappingURL=watch.js.map
|
169
node_modules/rollup/package.json
generated
vendored
Normal file
169
node_modules/rollup/package.json
generated
vendored
Normal file
|
@ -0,0 +1,169 @@
|
|||
{
|
||||
"name": "rollup",
|
||||
"version": "3.22.0",
|
||||
"description": "Next-generation ES module bundler",
|
||||
"main": "dist/rollup.js",
|
||||
"module": "dist/es/rollup.js",
|
||||
"types": "dist/rollup.d.ts",
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "rollup --config rollup.config.ts --configPlugin typescript",
|
||||
"dev": "vitepress dev docs",
|
||||
"build:cjs": "rollup --config rollup.config.ts --configPlugin typescript --configTest",
|
||||
"build:bootstrap": "node dist/bin/rollup --config rollup.config.ts --configPlugin typescript",
|
||||
"build:docs": "vitepress build docs",
|
||||
"preview:docs": "vitepress preview docs",
|
||||
"ci:lint": "concurrently 'npm:lint:js:nofix' 'npm:lint:markdown:nofix'",
|
||||
"ci:test": "npm run build:cjs && npm run build:bootstrap && npm run test:all",
|
||||
"ci:test:only": "npm run build:cjs && npm run build:bootstrap && npm run test:only",
|
||||
"ci:coverage": "npm run build:cjs && npm run build:bootstrap && nyc --reporter lcovonly mocha",
|
||||
"lint": "concurrently -c red,green 'npm:lint:js' 'npm:lint:markdown'",
|
||||
"lint:js": "eslint . --fix --cache",
|
||||
"lint:js:nofix": "eslint . --cache",
|
||||
"lint:markdown": "prettier --write \"**/*.md\"",
|
||||
"lint:markdown:nofix": "prettier --check \"**/*.md\"",
|
||||
"perf": "npm run build:cjs && node --expose-gc scripts/perf.js",
|
||||
"perf:init": "node scripts/perf-init.js",
|
||||
"prepare": "husky install && node scripts/check-release.js || npm run build",
|
||||
"prepublishOnly": "node scripts/check-release.js",
|
||||
"release": "node scripts/release.js",
|
||||
"release:docs": "git fetch --update-head-ok origin master:master && git branch --force documentation-published master && git push origin documentation-published",
|
||||
"test": "npm run build && npm run test:all",
|
||||
"test:update-snapshots": "node scripts/update-snapshots.js",
|
||||
"test:cjs": "npm run build:cjs && npm run test:only",
|
||||
"test:quick": "mocha -b test/test.js",
|
||||
"test:all": "concurrently --kill-others-on-fail -c green,blue,magenta,cyan,red 'npm:test:only' 'npm:test:browser' 'npm:test:typescript' 'npm:test:leak' 'npm:test:package' 'npm:test:options'",
|
||||
"test:coverage": "npm run build:cjs && shx rm -rf coverage/* && nyc --reporter html mocha test/test.js",
|
||||
"test:coverage:browser": "npm run build && shx rm -rf coverage/* && nyc mocha test/browser/index.js",
|
||||
"test:leak": "node --expose-gc test/leak/index.js",
|
||||
"test:package": "node scripts/test-package.js",
|
||||
"test:options": "node scripts/test-options.js",
|
||||
"test:only": "mocha test/test.js",
|
||||
"test:typescript": "shx rm -rf test/typescript/dist && shx cp -r dist test/typescript/ && tsc --noEmit -p test/typescript && tsc --noEmit",
|
||||
"test:browser": "mocha test/browser/index.js",
|
||||
"watch": "rollup --config rollup.config.ts --configPlugin typescript --watch"
|
||||
},
|
||||
"repository": "rollup/rollup",
|
||||
"keywords": [
|
||||
"modules",
|
||||
"bundler",
|
||||
"bundling",
|
||||
"es6",
|
||||
"optimizer"
|
||||
],
|
||||
"author": "Rich Harris",
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/rollup/rollup/issues"
|
||||
},
|
||||
"homepage": "https://rollupjs.org/",
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@codemirror/commands": "^6.2.4",
|
||||
"@codemirror/lang-javascript": "^6.1.7",
|
||||
"@codemirror/language": "^6.6.0",
|
||||
"@codemirror/search": "^6.4.0",
|
||||
"@codemirror/state": "^6.2.0",
|
||||
"@codemirror/view": "^6.11.0",
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15",
|
||||
"@mermaid-js/mermaid-cli": "^10.1.0",
|
||||
"@rollup/plugin-alias": "^5.0.0",
|
||||
"@rollup/plugin-buble": "^1.0.2",
|
||||
"@rollup/plugin-commonjs": "^24.1.0",
|
||||
"@rollup/plugin-json": "^6.0.0",
|
||||
"@rollup/plugin-node-resolve": "^15.0.2",
|
||||
"@rollup/plugin-replace": "^5.0.2",
|
||||
"@rollup/plugin-terser": "^0.4.1",
|
||||
"@rollup/plugin-typescript": "^11.1.0",
|
||||
"@rollup/pluginutils": "^5.0.2",
|
||||
"@types/estree": "1.0.1",
|
||||
"@types/mocha": "^10.0.1",
|
||||
"@types/node": "~14.18.43",
|
||||
"@types/yargs-parser": "^21.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "^5.59.2",
|
||||
"@typescript-eslint/parser": "^5.59.2",
|
||||
"@vue/eslint-config-prettier": "^7.1.0",
|
||||
"@vue/eslint-config-typescript": "^11.0.3",
|
||||
"acorn": "^8.8.2",
|
||||
"acorn-import-assertions": "^1.8.0",
|
||||
"acorn-jsx": "^5.3.2",
|
||||
"acorn-walk": "^8.2.0",
|
||||
"buble": "^0.20.0",
|
||||
"builtin-modules": "^3.3.0",
|
||||
"chokidar": "^3.5.3",
|
||||
"colorette": "^2.0.20",
|
||||
"concurrently": "^8.0.1",
|
||||
"core-js": "^3.30.1",
|
||||
"date-time": "^4.0.0",
|
||||
"es5-shim": "^4.6.7",
|
||||
"es6-shim": "^0.35.8",
|
||||
"eslint": "^8.39.0",
|
||||
"eslint-config-prettier": "^8.8.0",
|
||||
"eslint-plugin-import": "^2.27.5",
|
||||
"eslint-plugin-prettier": "^4.2.1",
|
||||
"eslint-plugin-unicorn": "^46.0.0",
|
||||
"eslint-plugin-vue": "^9.11.0",
|
||||
"fixturify": "^3.0.0",
|
||||
"flru": "^1.0.2",
|
||||
"fs-extra": "^11.1.1",
|
||||
"github-api": "^3.4.0",
|
||||
"hash.js": "^1.1.7",
|
||||
"husky": "^8.0.3",
|
||||
"inquirer": "^9.2.0",
|
||||
"is-reference": "^3.0.1",
|
||||
"lint-staged": "^13.2.2",
|
||||
"locate-character": "^2.0.5",
|
||||
"magic-string": "^0.30.0",
|
||||
"mocha": "^10.2.0",
|
||||
"nyc": "^15.1.0",
|
||||
"pinia": "^2.0.35",
|
||||
"prettier": "^2.8.8",
|
||||
"pretty-bytes": "^6.1.0",
|
||||
"pretty-ms": "^8.0.0",
|
||||
"requirejs": "^2.3.6",
|
||||
"rollup": "^3.21.3",
|
||||
"rollup-plugin-license": "^3.0.1",
|
||||
"rollup-plugin-string": "^3.0.0",
|
||||
"rollup-plugin-thatworks": "^1.0.4",
|
||||
"semver": "^7.5.0",
|
||||
"shx": "^0.3.4",
|
||||
"signal-exit": "^4.0.1",
|
||||
"source-map": "^0.7.4",
|
||||
"source-map-support": "^0.5.21",
|
||||
"systemjs": "^6.14.1",
|
||||
"terser": "^5.17.1",
|
||||
"tslib": "^2.5.0",
|
||||
"typescript": "^5.0.4",
|
||||
"vitepress": "^1.0.0-alpha.75",
|
||||
"vue": "^3.2.47",
|
||||
"weak-napi": "^2.0.2",
|
||||
"yargs-parser": "^21.1.1"
|
||||
},
|
||||
"files": [
|
||||
"dist/**/*.js",
|
||||
"dist/*.d.ts",
|
||||
"dist/bin/rollup",
|
||||
"dist/es/package.json"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=14.18.0",
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./dist/rollup.d.ts",
|
||||
"require": "./dist/rollup.js",
|
||||
"import": "./dist/es/rollup.js"
|
||||
},
|
||||
"./loadConfigFile": {
|
||||
"types": "./dist/loadConfigFile.d.ts",
|
||||
"require": "./dist/loadConfigFile.js",
|
||||
"default": "./dist/loadConfigFile.js"
|
||||
},
|
||||
"./dist/*": "./dist/*"
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue