From ea0404d6065af5e278f47ae3861d903ab259ddb0 Mon Sep 17 00:00:00 2001 From: Hugo Bourgeon Date: Thu, 8 Aug 2024 16:38:35 +0200 Subject: [PATCH] Game - Added more ball in scene - Modify Lambert texture to Physical - Implement RectAreaLight in scene --- site/game/elements.js | 15 +- site/game/main.js | 68 +- site/game/map.js | 6 +- ...nal-peer-dep_lightningcss_vite-LUUMBJI5.js | 3 - ...peer-dep_lightningcss_vite-LUUMBJI5.js.map | 7 - .../node_modules/.vite/deps/_metadata.json | 93 +- .../node_modules/.vite/deps/chunk-4XRL7ZXG.js | 21 - .../.vite/deps/chunk-4XRL7ZXG.js.map | 7 - .../node_modules/.vite/deps/chunk-7522MNHT.js | 3787 - .../.vite/deps/chunk-7522MNHT.js.map | 7 - .../node_modules/.vite/deps/chunk-BUSYA2B4.js | 9 + ...-ZSMWDLMK.js.map => chunk-BUSYA2B4.js.map} | 0 .../node_modules/.vite/deps/chunk-G2ZEZZAJ.js | 35 - .../.vite/deps/chunk-G2ZEZZAJ.js.map | 7 - .../node_modules/.vite/deps/chunk-H6V4345L.js | 428 - .../.vite/deps/chunk-H6V4345L.js.map | 7 - .../node_modules/.vite/deps/chunk-I5RSIQOR.js | 21 - .../.vite/deps/chunk-I5RSIQOR.js.map | 7 - .../node_modules/.vite/deps/chunk-I6YKGN4K.js | 2225 - .../.vite/deps/chunk-I6YKGN4K.js.map | 7 - .../node_modules/.vite/deps/chunk-KPGLAEFU.js | 77 - .../.vite/deps/chunk-KPGLAEFU.js.map | 7 - .../node_modules/.vite/deps/chunk-M2MSWSHF.js | 21 - .../.vite/deps/chunk-M2MSWSHF.js.map | 7 - .../node_modules/.vite/deps/chunk-MPVQUUHK.js | 21 - .../.vite/deps/chunk-MPVQUUHK.js.map | 7 - .../node_modules/.vite/deps/chunk-OZBCPRVH.js | 21 - .../.vite/deps/chunk-OZBCPRVH.js.map | 7 - .../node_modules/.vite/deps/chunk-PTYCI75C.js | 18921 ----- .../.vite/deps/chunk-PTYCI75C.js.map | 7 - .../node_modules/.vite/deps/chunk-UIZRH6IJ.js | 57970 ---------------- .../.vite/deps/chunk-UIZRH6IJ.js.map | 7 - .../node_modules/.vite/deps/chunk-X45QO7DX.js | 21 - .../.vite/deps/chunk-X45QO7DX.js.map | 7 - .../node_modules/.vite/deps/chunk-ZSMWDLMK.js | 62 - .../.vite/deps/dep-CjZz522d-UKJ7SIID.js | 5871 -- .../.vite/deps/dep-CjZz522d-UKJ7SIID.js.map | 7 - .../.vite/deps/dep-D-7KCb9p-QLXNKUUS.js | 7572 -- .../.vite/deps/dep-D-7KCb9p-QLXNKUUS.js.map | 7 - .../.vite/deps/dep-VqAwxVIc-WZUMGT3D.js | 755 - .../.vite/deps/dep-VqAwxVIc-WZUMGT3D.js.map | 7 - .../.vite/deps/node_http-PVJAKJLZ.js | 6 - .../.vite/deps/node_http-PVJAKJLZ.js.map | 7 - .../.vite/deps/node_http2-LSZGSR42.js | 18 - .../.vite/deps/node_http2-LSZGSR42.js.map | 7 - .../.vite/deps/node_https-MF5UXHZ4.js | 6 - .../.vite/deps/node_https-MF5UXHZ4.js.map | 7 - .../.vite/deps/postcss-EOMQEHKO.js | 59 - .../.vite/deps/postcss-EOMQEHKO.js.map | 7 - .../.vite/deps/rollup-CIAQV775.js | 51 - .../.vite/deps/rollup-CIAQV775.js.map | 7 - .../game/node_modules/.vite/deps/stats__js.js | 2 +- site/game/node_modules/.vite/deps/three.js | 2 +- ...examples_jsm_controls_OrbitControls__js.js | 2 +- ...jsm_lights_RectAreaLightUniformsLib__js.js | 64 + ...lights_RectAreaLightUniformsLib__js.js.map | 7 + site/game/node_modules/.vite/deps/vite.js | 1492 - site/game/node_modules/.vite/deps/vite.js.map | 7 - .../node_modules/.vite/deps/watch-EFW4YXCL.js | 3793 - .../.vite/deps/watch-EFW4YXCL.js.map | 7 - .../Class/__pycache__/User.cpython-310.pyc | Bin 0 -> 3522 bytes .../getPrivateListMessage.cpython-310.pyc | Bin 0 -> 1081 bytes .../getPrivateListUser.cpython-310.pyc | Bin 0 -> 1125 bytes .../__pycache__/login.cpython-310.pyc | Bin 0 -> 2565 bytes .../sendPrivateMessage.cpython-310.pyc | Bin 0 -> 740 bytes 65 files changed, 161 insertions(+), 103532 deletions(-) delete mode 100644 site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js delete mode 100644 site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-7522MNHT.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-7522MNHT.js.map create mode 100644 site/game/node_modules/.vite/deps/chunk-BUSYA2B4.js rename site/game/node_modules/.vite/deps/{chunk-ZSMWDLMK.js.map => chunk-BUSYA2B4.js.map} (100%) delete mode 100644 site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-H6V4345L.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-H6V4345L.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-PTYCI75C.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-PTYCI75C.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-UIZRH6IJ.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-UIZRH6IJ.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-X45QO7DX.js delete mode 100644 site/game/node_modules/.vite/deps/chunk-X45QO7DX.js.map delete mode 100644 site/game/node_modules/.vite/deps/chunk-ZSMWDLMK.js delete mode 100644 site/game/node_modules/.vite/deps/dep-CjZz522d-UKJ7SIID.js delete mode 100644 site/game/node_modules/.vite/deps/dep-CjZz522d-UKJ7SIID.js.map delete mode 100644 site/game/node_modules/.vite/deps/dep-D-7KCb9p-QLXNKUUS.js delete mode 100644 site/game/node_modules/.vite/deps/dep-D-7KCb9p-QLXNKUUS.js.map delete mode 100644 site/game/node_modules/.vite/deps/dep-VqAwxVIc-WZUMGT3D.js delete mode 100644 site/game/node_modules/.vite/deps/dep-VqAwxVIc-WZUMGT3D.js.map delete mode 100644 site/game/node_modules/.vite/deps/node_http-PVJAKJLZ.js delete mode 100644 site/game/node_modules/.vite/deps/node_http-PVJAKJLZ.js.map delete mode 100644 site/game/node_modules/.vite/deps/node_http2-LSZGSR42.js delete mode 100644 site/game/node_modules/.vite/deps/node_http2-LSZGSR42.js.map delete mode 100644 site/game/node_modules/.vite/deps/node_https-MF5UXHZ4.js delete mode 100644 site/game/node_modules/.vite/deps/node_https-MF5UXHZ4.js.map delete mode 100644 site/game/node_modules/.vite/deps/postcss-EOMQEHKO.js delete mode 100644 site/game/node_modules/.vite/deps/postcss-EOMQEHKO.js.map delete mode 100644 site/game/node_modules/.vite/deps/rollup-CIAQV775.js delete mode 100644 site/game/node_modules/.vite/deps/rollup-CIAQV775.js.map create mode 100644 site/game/node_modules/.vite/deps/three_examples_jsm_lights_RectAreaLightUniformsLib__js.js create mode 100644 site/game/node_modules/.vite/deps/three_examples_jsm_lights_RectAreaLightUniformsLib__js.js.map delete mode 100644 site/game/node_modules/.vite/deps/vite.js delete mode 100644 site/game/node_modules/.vite/deps/vite.js.map delete mode 100644 site/game/node_modules/.vite/deps/watch-EFW4YXCL.js delete mode 100644 site/game/node_modules/.vite/deps/watch-EFW4YXCL.js.map create mode 100644 websocket-server/Class/__pycache__/User.cpython-310.pyc create mode 100644 websocket-server/typeRequets/__pycache__/getPrivateListMessage.cpython-310.pyc create mode 100644 websocket-server/typeRequets/__pycache__/getPrivateListUser.cpython-310.pyc create mode 100644 websocket-server/typeRequets/__pycache__/login.cpython-310.pyc create mode 100644 websocket-server/typeRequets/__pycache__/sendPrivateMessage.cpython-310.pyc diff --git a/site/game/elements.js b/site/game/elements.js index 37cdeb6..f36ca01 100644 --- a/site/game/elements.js +++ b/site/game/elements.js @@ -6,7 +6,7 @@ /* By: hubourge +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/07 16:07:51 by hubourge #+# #+# */ -/* Updated: 2024/08/07 16:12:33 by hubourge ### ########.fr */ +/* Updated: 2024/08/08 15:37:06 by hubourge ### ########.fr */ /* */ /* ************************************************************************** */ @@ -20,7 +20,7 @@ let BoxThickness = 0.1; function createBox(scene, x, y, z) { const geometryBox = new THREE.BoxGeometry(BoxWidth, BoxHeight, BoxThickness); - const materialBox = new THREE.MeshLambertMaterial({ + const materialBox = new THREE.MeshPhysicalMaterial({ color: 0xff0000, }); const box = new THREE.Mesh(geometryBox, materialBox); @@ -31,4 +31,15 @@ function createBox(scene, x, y, z) return box; } +function createBall(scene, x, y, z, geometryBall, materialBall) { + const ball = new THREE.Mesh(geometryBall, materialBall); + ball.position.x = x; + ball.position.y = y; + ball.position.z = z; + ball.castShadow = true; + scene.add(ball); + return ball; +} + +export { createBall }; export { createBox }; \ No newline at end of file diff --git a/site/game/main.js b/site/game/main.js index c9ffd70..bae6c17 100644 --- a/site/game/main.js +++ b/site/game/main.js @@ -6,18 +6,20 @@ /* By: hubourge +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/30 13:50:49 by edbernar #+# #+# */ -/* Updated: 2024/08/07 16:52:45 by hubourge ### ########.fr */ +/* Updated: 2024/08/08 16:33:16 by hubourge ### ########.fr */ /* */ /* ************************************************************************** */ import { sendRequest } from './websocket.js'; import { MoveObject } from './controls.js'; -import { createBox } from './elements.js'; import * as THREE from 'three'; import Stats from 'stats.js'; import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls.js'; import { createSpotLight, refreshSpotLight, createLightAmbient, createLightPoint, refreshLightPoint } from './light.js'; import { createMap } from './map.js'; +import { createBox } from './elements.js'; +import { createBall } from './elements.js'; +import { RectAreaLightUniformsLib } from 'three/examples/jsm/lights/RectAreaLightUniformsLib.js'; let time = Date.now(); @@ -27,12 +29,12 @@ const renderer = new THREE.WebGLRenderer(); renderer.setSize(window.innerWidth, window.innerHeight); document.body.appendChild(renderer.domElement); -// ------------------- Stats ------------------- // +// ------------------- Stats -------------------- // const stats = new Stats(); stats.showPanel(0); // 0: fps, 1: ms, 2: mémoire document.body.appendChild(stats.dom); -// ------------------- Scene ------------------- // +// ------------------- Scene -------------------- // scene.background = new THREE.Color(0x1a1a1a); // ------------------- Shadow ------------------- // @@ -44,47 +46,77 @@ camera.position.z = 4; camera.position.y = 3; camera.rotation.x = -(Math.PI / 4); -// ------------------- Ball ------------------- // +// ------------------- Ball --------------------- // const geometryBall = new THREE.SphereGeometry(0.1, 32, 32); -const materialBall = new THREE.MeshLambertMaterial({ color: 0xffffff }); -const ball = new THREE.Mesh(geometryBall, materialBall); -ball.position.y = 0.1; -ball.castShadow = true; -scene.add(ball); +const materialBall = new THREE.MeshPhysicalMaterial({ color: 0xffffff }); + +const ball1 = createBall(scene, 0, 0.1, 0, geometryBall, materialBall); +const ball2 = createBall(scene, 2, 0.1, 0, geometryBall, materialBall); +const ball3 = createBall(scene, 2, 0.1, 2, geometryBall, materialBall); +const ball4 = createBall(scene, 0, 0.1, 0, geometryBall, materialBall); +const ball5 = createBall(scene, 2, 0.1, -1.5, geometryBall, materialBall); + +// ------------------- RectAreaLight ------------ // +RectAreaLightUniformsLib.init(); +let width = 9; +let height = 1; +let intensity = 10; +const rectLightUp = new THREE.RectAreaLight( 0xff0000, intensity, width, height ); +rectLightUp.position.set( 0, 0, -2.24); +rectLightUp.rotation.y = Math.PI; +scene.add( rectLightUp ) + +width = 9; +height = 1; +intensity = 5; +const rectLightDown = new THREE.RectAreaLight( 0x0000ff, intensity, width, height ); +rectLightDown.position.set( 0, 0, 2.24); +scene.add( rectLightDown ) // --------------- Box Constrols -------------- // const boxLeft = createBox(scene, -4.45, 0.1 / 2, 0); const boxRight = createBox(scene, 4.45, 0.1 / 2, 0); const controlBoxLeft = new MoveObject(boxLeft); -let spotLight = createSpotLight(0xffffff, ball, scene); +let spotLight = createSpotLight(0xffffff, ball4, scene); let lightAmbient = createLightAmbient(scene); let lightPoint = createLightPoint(scene); createMap(scene); - const controls = new OrbitControls(camera, renderer.domElement); -camera.position.set(0, 1, 5); +camera.position.set(0, 4, 5); controls.update(); - - function animate() { stats.begin(); if (Date.now() - time > 10000) { time = Date.now(); - spotLight = refreshSpotLight(scene, spotLight, ball); + spotLight = refreshSpotLight(scene, spotLight, ball4); lightPoint = refreshLightPoint(scene, lightPoint); } // controls.update(); - ball.position.x = Math.sin(Date.now() * 0.001) * 2; - ball.position.z = Math.cos(Date.now() * 0.001) * 2; + updateBalls(); renderer.render(scene, camera); controlBoxLeft.update(); stats.end(); } +function updateBalls() { + ball1.position.z = Math.sin(Date.now() * 0.001) * 2; + + ball2.position.x = Math.sin(Date.now() * 0.001) * 3.5; + + ball3.position.x = Math.sin(Date.now() * 0.001) * 3.5; + ball3.position.z = Math.sin(Date.now() * 0.001) * 2; + + ball4.position.z = Math.sin(Date.now() * 0.001) * 2; + ball4.position.x = Math.cos(Date.now() * 0.001) * 2; + + ball5.position.y = Math.sin(Date.now() * 0.001) * 0.5 + 0.7; +} + + renderer.setAnimationLoop(animate) document.addEventListener("wheel", onDocumentWheel, false); diff --git a/site/game/map.js b/site/game/map.js index 2ac089e..ed48400 100644 --- a/site/game/map.js +++ b/site/game/map.js @@ -6,7 +6,7 @@ /* By: hubourge +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/30 13:50:51 by edbernar #+# #+# */ -/* Updated: 2024/08/07 16:26:17 by hubourge ### ########.fr */ +/* Updated: 2024/08/08 15:36:48 by hubourge ### ########.fr */ /* */ /* ************************************************************************** */ @@ -26,7 +26,7 @@ function createMap(scene) { function createWall(scene, x, y, z, thickness) { const geometryWall = new THREE.BoxGeometry(9, 0.5, thickness); - const materialWall = new THREE.MeshLambertMaterial({ + const materialWall = new THREE.MeshPhysicalMaterial({ color: 0x3b3b3b, }); const wall = new THREE.Mesh(geometryWall, materialWall); @@ -38,7 +38,7 @@ function createWall(scene, x, y, z, thickness) { function createGround(scene) { const geometry = new THREE.PlaneGeometry(9, 4.5, 1); - const material = new THREE.MeshLambertMaterial({ + const material = new THREE.MeshPhysicalMaterial({ color: 0x3b3b3b, }); const plane = new THREE.Mesh(geometry, material); diff --git a/site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js b/site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js deleted file mode 100644 index c6eb434..0000000 --- a/site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js +++ /dev/null @@ -1,3 +0,0 @@ -// optional-peer-dep:__vite-optional-peer-dep:lightningcss:vite -throw new Error(`Could not resolve "lightningcss" imported by "vite". Is it installed?`); -//# sourceMappingURL=__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js.map diff --git a/site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js.map b/site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js.map deleted file mode 100644 index 513a4bc..0000000 --- a/site/game/node_modules/.vite/deps/__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["optional-peer-dep:__vite-optional-peer-dep:lightningcss:vite"], - "sourcesContent": ["throw new Error(`Could not resolve \"lightningcss\" imported by \"vite\". Is it installed?`)"], - "mappings": ";AAAA,MAAM,IAAI,MAAM,uEAAuE;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/_metadata.json b/site/game/node_modules/.vite/deps/_metadata.json index aced7b8..077c108 100644 --- a/site/game/node_modules/.vite/deps/_metadata.json +++ b/site/game/node_modules/.vite/deps/_metadata.json @@ -1,109 +1,40 @@ { - "hash": "b28c11ff", - "configHash": "8ea63f38", + "hash": "84705c79", + "configHash": "e6b0507d", "lockfileHash": "c0b533f0", - "browserHash": "fea337a7", + "browserHash": "e8cce6d5", "optimized": { "stats.js": { "src": "../../stats.js/build/stats.min.js", "file": "stats__js.js", - "fileHash": "3b5669d4", + "fileHash": "76e64697", "needsInterop": true }, "three": { "src": "../../three/build/three.module.js", "file": "three.js", - "fileHash": "e6d9b41d", + "fileHash": "2c53ee09", "needsInterop": false }, "three/examples/jsm/controls/OrbitControls.js": { "src": "../../three/examples/jsm/controls/OrbitControls.js", "file": "three_examples_jsm_controls_OrbitControls__js.js", - "fileHash": "d8efbae2", + "fileHash": "ed778cce", "needsInterop": false }, - "vite": { - "src": "../../vite/dist/node/index.js", - "file": "vite.js", - "fileHash": "0b83e725", + "three/examples/jsm/lights/RectAreaLightUniformsLib.js": { + "src": "../../three/examples/jsm/lights/RectAreaLightUniformsLib.js", + "file": "three_examples_jsm_lights_RectAreaLightUniformsLib__js.js", + "fileHash": "ca8c3839", "needsInterop": false } }, "chunks": { - "postcss-EOMQEHKO": { - "file": "postcss-EOMQEHKO.js" - }, - "dep-CjZz522d-UKJ7SIID": { - "file": "dep-CjZz522d-UKJ7SIID.js" - }, - "chunk-7522MNHT": { - "file": "chunk-7522MNHT.js" - }, - "__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5": { - "file": "__vite-optional-peer-dep_lightningcss_vite-LUUMBJI5.js" - }, - "node_http2-LSZGSR42": { - "file": "node_http2-LSZGSR42.js" - }, - "watch-EFW4YXCL": { - "file": "watch-EFW4YXCL.js" - }, - "rollup-CIAQV775": { - "file": "rollup-CIAQV775.js" - }, - "chunk-PTYCI75C": { - "file": "chunk-PTYCI75C.js" - }, "chunk-IS2ZBFBB": { "file": "chunk-IS2ZBFBB.js" }, - "node_http-PVJAKJLZ": { - "file": "node_http-PVJAKJLZ.js" - }, - "node_https-MF5UXHZ4": { - "file": "node_https-MF5UXHZ4.js" - }, - "dep-D-7KCb9p-QLXNKUUS": { - "file": "dep-D-7KCb9p-QLXNKUUS.js" - }, - "dep-VqAwxVIc-WZUMGT3D": { - "file": "dep-VqAwxVIc-WZUMGT3D.js" - }, - "chunk-H6V4345L": { - "file": "chunk-H6V4345L.js" - }, - "chunk-UIZRH6IJ": { - "file": "chunk-UIZRH6IJ.js" - }, - "chunk-MPVQUUHK": { - "file": "chunk-MPVQUUHK.js" - }, - "chunk-KPGLAEFU": { - "file": "chunk-KPGLAEFU.js" - }, - "chunk-I5RSIQOR": { - "file": "chunk-I5RSIQOR.js" - }, - "chunk-I6YKGN4K": { - "file": "chunk-I6YKGN4K.js" - }, - "chunk-4XRL7ZXG": { - "file": "chunk-4XRL7ZXG.js" - }, - "chunk-X45QO7DX": { - "file": "chunk-X45QO7DX.js" - }, - "chunk-OZBCPRVH": { - "file": "chunk-OZBCPRVH.js" - }, - "chunk-G2ZEZZAJ": { - "file": "chunk-G2ZEZZAJ.js" - }, - "chunk-M2MSWSHF": { - "file": "chunk-M2MSWSHF.js" - }, - "chunk-ZSMWDLMK": { - "file": "chunk-ZSMWDLMK.js" + "chunk-BUSYA2B4": { + "file": "chunk-BUSYA2B4.js" } } } \ No newline at end of file diff --git a/site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js b/site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js deleted file mode 100644 index 9b64841..0000000 --- a/site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js +++ /dev/null @@ -1,21 +0,0 @@ -import { - __commonJS -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:path -var require_path = __commonJS({ - "browser-external:path"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "path" has been externalized for browser compatibility. Cannot access "path.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -export { - require_path -}; -//# sourceMappingURL=chunk-4XRL7ZXG.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js.map b/site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js.map deleted file mode 100644 index d41d6d6..0000000 --- a/site/game/node_modules/.vite/deps/chunk-4XRL7ZXG.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:path"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"path\" has been externalized for browser compatibility. Cannot access \"path.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))"], - "mappings": ";;;;;AAAA;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,sFAAsF,GAAG,qIAAqI;AAAA,QAC7O;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/chunk-7522MNHT.js b/site/game/node_modules/.vite/deps/chunk-7522MNHT.js deleted file mode 100644 index 45f7b1e..0000000 --- a/site/game/node_modules/.vite/deps/chunk-7522MNHT.js +++ /dev/null @@ -1,3787 +0,0 @@ -import { - require_url -} from "./chunk-MPVQUUHK.js"; -import { - require_fs -} from "./chunk-I5RSIQOR.js"; -import { - require_path -} from "./chunk-4XRL7ZXG.js"; -import { - __commonJS, - __toESM -} from "./chunk-ZSMWDLMK.js"; - -// node_modules/picocolors/picocolors.browser.js -var require_picocolors_browser = __commonJS({ - "node_modules/picocolors/picocolors.browser.js"(exports, module) { - var x = String; - var create = function() { - return { isColorSupported: false, reset: x, bold: x, dim: x, italic: x, underline: x, inverse: x, hidden: x, strikethrough: x, black: x, red: x, green: x, yellow: x, blue: x, magenta: x, cyan: x, white: x, gray: x, bgBlack: x, bgRed: x, bgGreen: x, bgYellow: x, bgBlue: x, bgMagenta: x, bgCyan: x, bgWhite: x }; - }; - module.exports = create(); - module.exports.createColors = create; - } -}); - -// (disabled):node_modules/postcss/lib/terminal-highlight -var require_terminal_highlight = __commonJS({ - "(disabled):node_modules/postcss/lib/terminal-highlight"() { - } -}); - -// node_modules/postcss/lib/css-syntax-error.js -var require_css_syntax_error = __commonJS({ - "node_modules/postcss/lib/css-syntax-error.js"(exports, module) { - "use strict"; - var pico = require_picocolors_browser(); - var terminalHighlight = require_terminal_highlight(); - var CssSyntaxError2 = class _CssSyntaxError extends Error { - constructor(message, line, column, source, file, plugin2) { - super(message); - this.name = "CssSyntaxError"; - this.reason = message; - if (file) { - this.file = file; - } - if (source) { - this.source = source; - } - if (plugin2) { - this.plugin = plugin2; - } - if (typeof line !== "undefined" && typeof column !== "undefined") { - if (typeof line === "number") { - this.line = line; - this.column = column; - } else { - this.line = line.line; - this.column = line.column; - this.endLine = column.line; - this.endColumn = column.column; - } - } - this.setMessage(); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, _CssSyntaxError); - } - } - setMessage() { - this.message = this.plugin ? this.plugin + ": " : ""; - this.message += this.file ? this.file : ""; - if (typeof this.line !== "undefined") { - this.message += ":" + this.line + ":" + this.column; - } - this.message += ": " + this.reason; - } - showSourceCode(color) { - if (!this.source) return ""; - let css = this.source; - if (color == null) color = pico.isColorSupported; - if (terminalHighlight) { - if (color) css = terminalHighlight(css); - } - let lines = css.split(/\r?\n/); - let start = Math.max(this.line - 3, 0); - let end = Math.min(this.line + 2, lines.length); - let maxWidth = String(end).length; - let mark, aside; - if (color) { - let { bold, gray, red } = pico.createColors(true); - mark = (text) => bold(red(text)); - aside = (text) => gray(text); - } else { - mark = aside = (str) => str; - } - return lines.slice(start, end).map((line, index) => { - let number = start + 1 + index; - let gutter = " " + (" " + number).slice(-maxWidth) + " | "; - if (number === this.line) { - let spacing = aside(gutter.replace(/\d/g, " ")) + line.slice(0, this.column - 1).replace(/[^\t]/g, " "); - return mark(">") + aside(gutter) + line + "\n " + spacing + mark("^"); - } - return " " + aside(gutter) + line; - }).join("\n"); - } - toString() { - let code = this.showSourceCode(); - if (code) { - code = "\n\n" + code + "\n"; - } - return this.name + ": " + this.message + code; - } - }; - module.exports = CssSyntaxError2; - CssSyntaxError2.default = CssSyntaxError2; - } -}); - -// node_modules/postcss/lib/symbols.js -var require_symbols = __commonJS({ - "node_modules/postcss/lib/symbols.js"(exports, module) { - "use strict"; - module.exports.isClean = Symbol("isClean"); - module.exports.my = Symbol("my"); - } -}); - -// node_modules/postcss/lib/stringifier.js -var require_stringifier = __commonJS({ - "node_modules/postcss/lib/stringifier.js"(exports, module) { - "use strict"; - var DEFAULT_RAW = { - after: "\n", - beforeClose: "\n", - beforeComment: "\n", - beforeDecl: "\n", - beforeOpen: " ", - beforeRule: "\n", - colon: ": ", - commentLeft: " ", - commentRight: " ", - emptyBody: "", - indent: " ", - semicolon: false - }; - function capitalize(str) { - return str[0].toUpperCase() + str.slice(1); - } - var Stringifier = class { - constructor(builder) { - this.builder = builder; - } - atrule(node, semicolon) { - let name = "@" + node.name; - let params = node.params ? this.rawValue(node, "params") : ""; - if (typeof node.raws.afterName !== "undefined") { - name += node.raws.afterName; - } else if (params) { - name += " "; - } - if (node.nodes) { - this.block(node, name + params); - } else { - let end = (node.raws.between || "") + (semicolon ? ";" : ""); - this.builder(name + params + end, node); - } - } - beforeAfter(node, detect) { - let value; - if (node.type === "decl") { - value = this.raw(node, null, "beforeDecl"); - } else if (node.type === "comment") { - value = this.raw(node, null, "beforeComment"); - } else if (detect === "before") { - value = this.raw(node, null, "beforeRule"); - } else { - value = this.raw(node, null, "beforeClose"); - } - let buf = node.parent; - let depth = 0; - while (buf && buf.type !== "root") { - depth += 1; - buf = buf.parent; - } - if (value.includes("\n")) { - let indent = this.raw(node, null, "indent"); - if (indent.length) { - for (let step = 0; step < depth; step++) value += indent; - } - } - return value; - } - block(node, start) { - let between = this.raw(node, "between", "beforeOpen"); - this.builder(start + between + "{", node, "start"); - let after; - if (node.nodes && node.nodes.length) { - this.body(node); - after = this.raw(node, "after"); - } else { - after = this.raw(node, "after", "emptyBody"); - } - if (after) this.builder(after); - this.builder("}", node, "end"); - } - body(node) { - let last = node.nodes.length - 1; - while (last > 0) { - if (node.nodes[last].type !== "comment") break; - last -= 1; - } - let semicolon = this.raw(node, "semicolon"); - for (let i = 0; i < node.nodes.length; i++) { - let child = node.nodes[i]; - let before = this.raw(child, "before"); - if (before) this.builder(before); - this.stringify(child, last !== i || semicolon); - } - } - comment(node) { - let left = this.raw(node, "left", "commentLeft"); - let right = this.raw(node, "right", "commentRight"); - this.builder("/*" + left + node.text + right + "*/", node); - } - decl(node, semicolon) { - let between = this.raw(node, "between", "colon"); - let string = node.prop + between + this.rawValue(node, "value"); - if (node.important) { - string += node.raws.important || " !important"; - } - if (semicolon) string += ";"; - this.builder(string, node); - } - document(node) { - this.body(node); - } - raw(node, own, detect) { - let value; - if (!detect) detect = own; - if (own) { - value = node.raws[own]; - if (typeof value !== "undefined") return value; - } - let parent = node.parent; - if (detect === "before") { - if (!parent || parent.type === "root" && parent.first === node) { - return ""; - } - if (parent && parent.type === "document") { - return ""; - } - } - if (!parent) return DEFAULT_RAW[detect]; - let root2 = node.root(); - if (!root2.rawCache) root2.rawCache = {}; - if (typeof root2.rawCache[detect] !== "undefined") { - return root2.rawCache[detect]; - } - if (detect === "before" || detect === "after") { - return this.beforeAfter(node, detect); - } else { - let method = "raw" + capitalize(detect); - if (this[method]) { - value = this[method](root2, node); - } else { - root2.walk((i) => { - value = i.raws[own]; - if (typeof value !== "undefined") return false; - }); - } - } - if (typeof value === "undefined") value = DEFAULT_RAW[detect]; - root2.rawCache[detect] = value; - return value; - } - rawBeforeClose(root2) { - let value; - root2.walk((i) => { - if (i.nodes && i.nodes.length > 0) { - if (typeof i.raws.after !== "undefined") { - value = i.raws.after; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - } - }); - if (value) value = value.replace(/\S/g, ""); - return value; - } - rawBeforeComment(root2, node) { - let value; - root2.walkComments((i) => { - if (typeof i.raws.before !== "undefined") { - value = i.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - }); - if (typeof value === "undefined") { - value = this.raw(node, null, "beforeDecl"); - } else if (value) { - value = value.replace(/\S/g, ""); - } - return value; - } - rawBeforeDecl(root2, node) { - let value; - root2.walkDecls((i) => { - if (typeof i.raws.before !== "undefined") { - value = i.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - }); - if (typeof value === "undefined") { - value = this.raw(node, null, "beforeRule"); - } else if (value) { - value = value.replace(/\S/g, ""); - } - return value; - } - rawBeforeOpen(root2) { - let value; - root2.walk((i) => { - if (i.type !== "decl") { - value = i.raws.between; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - rawBeforeRule(root2) { - let value; - root2.walk((i) => { - if (i.nodes && (i.parent !== root2 || root2.first !== i)) { - if (typeof i.raws.before !== "undefined") { - value = i.raws.before; - if (value.includes("\n")) { - value = value.replace(/[^\n]+$/, ""); - } - return false; - } - } - }); - if (value) value = value.replace(/\S/g, ""); - return value; - } - rawColon(root2) { - let value; - root2.walkDecls((i) => { - if (typeof i.raws.between !== "undefined") { - value = i.raws.between.replace(/[^\s:]/g, ""); - return false; - } - }); - return value; - } - rawEmptyBody(root2) { - let value; - root2.walk((i) => { - if (i.nodes && i.nodes.length === 0) { - value = i.raws.after; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - rawIndent(root2) { - if (root2.raws.indent) return root2.raws.indent; - let value; - root2.walk((i) => { - let p = i.parent; - if (p && p !== root2 && p.parent && p.parent === root2) { - if (typeof i.raws.before !== "undefined") { - let parts = i.raws.before.split("\n"); - value = parts[parts.length - 1]; - value = value.replace(/\S/g, ""); - return false; - } - } - }); - return value; - } - rawSemicolon(root2) { - let value; - root2.walk((i) => { - if (i.nodes && i.nodes.length && i.last.type === "decl") { - value = i.raws.semicolon; - if (typeof value !== "undefined") return false; - } - }); - return value; - } - rawValue(node, prop) { - let value = node[prop]; - let raw = node.raws[prop]; - if (raw && raw.value === value) { - return raw.raw; - } - return value; - } - root(node) { - this.body(node); - if (node.raws.after) this.builder(node.raws.after); - } - rule(node) { - this.block(node, this.rawValue(node, "selector")); - if (node.raws.ownSemicolon) { - this.builder(node.raws.ownSemicolon, node, "end"); - } - } - stringify(node, semicolon) { - if (!this[node.type]) { - throw new Error( - "Unknown AST node type " + node.type + ". Maybe you need to change PostCSS stringifier." - ); - } - this[node.type](node, semicolon); - } - }; - module.exports = Stringifier; - Stringifier.default = Stringifier; - } -}); - -// node_modules/postcss/lib/stringify.js -var require_stringify = __commonJS({ - "node_modules/postcss/lib/stringify.js"(exports, module) { - "use strict"; - var Stringifier = require_stringifier(); - function stringify2(node, builder) { - let str = new Stringifier(builder); - str.stringify(node); - } - module.exports = stringify2; - stringify2.default = stringify2; - } -}); - -// node_modules/postcss/lib/node.js -var require_node = __commonJS({ - "node_modules/postcss/lib/node.js"(exports, module) { - "use strict"; - var { isClean, my } = require_symbols(); - var CssSyntaxError2 = require_css_syntax_error(); - var Stringifier = require_stringifier(); - var stringify2 = require_stringify(); - function cloneNode(obj, parent) { - let cloned = new obj.constructor(); - for (let i in obj) { - if (!Object.prototype.hasOwnProperty.call(obj, i)) { - continue; - } - if (i === "proxyCache") continue; - let value = obj[i]; - let type = typeof value; - if (i === "parent" && type === "object") { - if (parent) cloned[i] = parent; - } else if (i === "source") { - cloned[i] = value; - } else if (Array.isArray(value)) { - cloned[i] = value.map((j) => cloneNode(j, cloned)); - } else { - if (type === "object" && value !== null) value = cloneNode(value); - cloned[i] = value; - } - } - return cloned; - } - var Node2 = class { - constructor(defaults = {}) { - this.raws = {}; - this[isClean] = false; - this[my] = true; - for (let name in defaults) { - if (name === "nodes") { - this.nodes = []; - for (let node of defaults[name]) { - if (typeof node.clone === "function") { - this.append(node.clone()); - } else { - this.append(node); - } - } - } else { - this[name] = defaults[name]; - } - } - } - addToError(error) { - error.postcssNode = this; - if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { - let s = this.source; - error.stack = error.stack.replace( - /\n\s{4}at /, - `$&${s.input.from}:${s.start.line}:${s.start.column}$&` - ); - } - return error; - } - after(add) { - this.parent.insertAfter(this, add); - return this; - } - assign(overrides = {}) { - for (let name in overrides) { - this[name] = overrides[name]; - } - return this; - } - before(add) { - this.parent.insertBefore(this, add); - return this; - } - cleanRaws(keepBetween) { - delete this.raws.before; - delete this.raws.after; - if (!keepBetween) delete this.raws.between; - } - clone(overrides = {}) { - let cloned = cloneNode(this); - for (let name in overrides) { - cloned[name] = overrides[name]; - } - return cloned; - } - cloneAfter(overrides = {}) { - let cloned = this.clone(overrides); - this.parent.insertAfter(this, cloned); - return cloned; - } - cloneBefore(overrides = {}) { - let cloned = this.clone(overrides); - this.parent.insertBefore(this, cloned); - return cloned; - } - error(message, opts = {}) { - if (this.source) { - let { end, start } = this.rangeBy(opts); - return this.source.input.error( - message, - { column: start.column, line: start.line }, - { column: end.column, line: end.line }, - opts - ); - } - return new CssSyntaxError2(message); - } - getProxyProcessor() { - return { - get(node, prop) { - if (prop === "proxyOf") { - return node; - } else if (prop === "root") { - return () => node.root().toProxy(); - } else { - return node[prop]; - } - }, - set(node, prop, value) { - if (node[prop] === value) return true; - node[prop] = value; - if (prop === "prop" || prop === "value" || prop === "name" || prop === "params" || prop === "important" || /* c8 ignore next */ - prop === "text") { - node.markDirty(); - } - return true; - } - }; - } - markDirty() { - if (this[isClean]) { - this[isClean] = false; - let next = this; - while (next = next.parent) { - next[isClean] = false; - } - } - } - next() { - if (!this.parent) return void 0; - let index = this.parent.index(this); - return this.parent.nodes[index + 1]; - } - positionBy(opts, stringRepresentation) { - let pos = this.source.start; - if (opts.index) { - pos = this.positionInside(opts.index, stringRepresentation); - } else if (opts.word) { - stringRepresentation = this.toString(); - let index = stringRepresentation.indexOf(opts.word); - if (index !== -1) pos = this.positionInside(index, stringRepresentation); - } - return pos; - } - positionInside(index, stringRepresentation) { - let string = stringRepresentation || this.toString(); - let column = this.source.start.column; - let line = this.source.start.line; - for (let i = 0; i < index; i++) { - if (string[i] === "\n") { - column = 1; - line += 1; - } else { - column += 1; - } - } - return { column, line }; - } - prev() { - if (!this.parent) return void 0; - let index = this.parent.index(this); - return this.parent.nodes[index - 1]; - } - rangeBy(opts) { - let start = { - column: this.source.start.column, - line: this.source.start.line - }; - let end = this.source.end ? { - column: this.source.end.column + 1, - line: this.source.end.line - } : { - column: start.column + 1, - line: start.line - }; - if (opts.word) { - let stringRepresentation = this.toString(); - let index = stringRepresentation.indexOf(opts.word); - if (index !== -1) { - start = this.positionInside(index, stringRepresentation); - end = this.positionInside(index + opts.word.length, stringRepresentation); - } - } else { - if (opts.start) { - start = { - column: opts.start.column, - line: opts.start.line - }; - } else if (opts.index) { - start = this.positionInside(opts.index); - } - if (opts.end) { - end = { - column: opts.end.column, - line: opts.end.line - }; - } else if (typeof opts.endIndex === "number") { - end = this.positionInside(opts.endIndex); - } else if (opts.index) { - end = this.positionInside(opts.index + 1); - } - } - if (end.line < start.line || end.line === start.line && end.column <= start.column) { - end = { column: start.column + 1, line: start.line }; - } - return { end, start }; - } - raw(prop, defaultType) { - let str = new Stringifier(); - return str.raw(this, prop, defaultType); - } - remove() { - if (this.parent) { - this.parent.removeChild(this); - } - this.parent = void 0; - return this; - } - replaceWith(...nodes) { - if (this.parent) { - let bookmark = this; - let foundSelf = false; - for (let node of nodes) { - if (node === this) { - foundSelf = true; - } else if (foundSelf) { - this.parent.insertAfter(bookmark, node); - bookmark = node; - } else { - this.parent.insertBefore(bookmark, node); - } - } - if (!foundSelf) { - this.remove(); - } - } - return this; - } - root() { - let result = this; - while (result.parent && result.parent.type !== "document") { - result = result.parent; - } - return result; - } - toJSON(_, inputs) { - let fixed = {}; - let emitInputs = inputs == null; - inputs = inputs || /* @__PURE__ */ new Map(); - let inputsNextIndex = 0; - for (let name in this) { - if (!Object.prototype.hasOwnProperty.call(this, name)) { - continue; - } - if (name === "parent" || name === "proxyCache") continue; - let value = this[name]; - if (Array.isArray(value)) { - fixed[name] = value.map((i) => { - if (typeof i === "object" && i.toJSON) { - return i.toJSON(null, inputs); - } else { - return i; - } - }); - } else if (typeof value === "object" && value.toJSON) { - fixed[name] = value.toJSON(null, inputs); - } else if (name === "source") { - let inputId = inputs.get(value.input); - if (inputId == null) { - inputId = inputsNextIndex; - inputs.set(value.input, inputsNextIndex); - inputsNextIndex++; - } - fixed[name] = { - end: value.end, - inputId, - start: value.start - }; - } else { - fixed[name] = value; - } - } - if (emitInputs) { - fixed.inputs = [...inputs.keys()].map((input) => input.toJSON()); - } - return fixed; - } - toProxy() { - if (!this.proxyCache) { - this.proxyCache = new Proxy(this, this.getProxyProcessor()); - } - return this.proxyCache; - } - toString(stringifier = stringify2) { - if (stringifier.stringify) stringifier = stringifier.stringify; - let result = ""; - stringifier(this, (i) => { - result += i; - }); - return result; - } - warn(result, text, opts) { - let data = { node: this }; - for (let i in opts) data[i] = opts[i]; - return result.warn(text, data); - } - get proxyOf() { - return this; - } - }; - module.exports = Node2; - Node2.default = Node2; - } -}); - -// node_modules/postcss/lib/declaration.js -var require_declaration = __commonJS({ - "node_modules/postcss/lib/declaration.js"(exports, module) { - "use strict"; - var Node2 = require_node(); - var Declaration2 = class extends Node2 { - constructor(defaults) { - if (defaults && typeof defaults.value !== "undefined" && typeof defaults.value !== "string") { - defaults = { ...defaults, value: String(defaults.value) }; - } - super(defaults); - this.type = "decl"; - } - get variable() { - return this.prop.startsWith("--") || this.prop[0] === "$"; - } - }; - module.exports = Declaration2; - Declaration2.default = Declaration2; - } -}); - -// browser-external:source-map-js -var require_source_map_js = __commonJS({ - "browser-external:source-map-js"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "source-map-js" has been externalized for browser compatibility. Cannot access "source-map-js.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// node_modules/nanoid/non-secure/index.cjs -var require_non_secure = __commonJS({ - "node_modules/nanoid/non-secure/index.cjs"(exports, module) { - var urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"; - var customAlphabet = (alphabet, defaultSize = 21) => { - return (size = defaultSize) => { - let id = ""; - let i = size; - while (i--) { - id += alphabet[Math.random() * alphabet.length | 0]; - } - return id; - }; - }; - var nanoid = (size = 21) => { - let id = ""; - let i = size; - while (i--) { - id += urlAlphabet[Math.random() * 64 | 0]; - } - return id; - }; - module.exports = { nanoid, customAlphabet }; - } -}); - -// node_modules/postcss/lib/previous-map.js -var require_previous_map = __commonJS({ - "node_modules/postcss/lib/previous-map.js"(exports, module) { - "use strict"; - var { SourceMapConsumer, SourceMapGenerator } = require_source_map_js(); - var { existsSync, readFileSync } = require_fs(); - var { dirname, join } = require_path(); - function fromBase64(str) { - if (Buffer) { - return Buffer.from(str, "base64").toString(); - } else { - return window.atob(str); - } - } - var PreviousMap = class { - constructor(css, opts) { - if (opts.map === false) return; - this.loadAnnotation(css); - this.inline = this.startWith(this.annotation, "data:"); - let prev = opts.map ? opts.map.prev : void 0; - let text = this.loadMap(opts.from, prev); - if (!this.mapFile && opts.from) { - this.mapFile = opts.from; - } - if (this.mapFile) this.root = dirname(this.mapFile); - if (text) this.text = text; - } - consumer() { - if (!this.consumerCache) { - this.consumerCache = new SourceMapConsumer(this.text); - } - return this.consumerCache; - } - decodeInline(text) { - let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/; - let baseUri = /^data:application\/json;base64,/; - let charsetUri = /^data:application\/json;charset=utf-?8,/; - let uri = /^data:application\/json,/; - if (charsetUri.test(text) || uri.test(text)) { - return decodeURIComponent(text.substr(RegExp.lastMatch.length)); - } - if (baseCharsetUri.test(text) || baseUri.test(text)) { - return fromBase64(text.substr(RegExp.lastMatch.length)); - } - let encoding = text.match(/data:application\/json;([^,]+),/)[1]; - throw new Error("Unsupported source map encoding " + encoding); - } - getAnnotationURL(sourceMapString) { - return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, "").trim(); - } - isMap(map) { - if (typeof map !== "object") return false; - return typeof map.mappings === "string" || typeof map._mappings === "string" || Array.isArray(map.sections); - } - loadAnnotation(css) { - let comments = css.match(/\/\*\s*# sourceMappingURL=/gm); - if (!comments) return; - let start = css.lastIndexOf(comments.pop()); - let end = css.indexOf("*/", start); - if (start > -1 && end > -1) { - this.annotation = this.getAnnotationURL(css.substring(start, end)); - } - } - loadFile(path) { - this.root = dirname(path); - if (existsSync(path)) { - this.mapFile = path; - return readFileSync(path, "utf-8").toString().trim(); - } - } - loadMap(file, prev) { - if (prev === false) return false; - if (prev) { - if (typeof prev === "string") { - return prev; - } else if (typeof prev === "function") { - let prevPath = prev(file); - if (prevPath) { - let map = this.loadFile(prevPath); - if (!map) { - throw new Error( - "Unable to load previous source map: " + prevPath.toString() - ); - } - return map; - } - } else if (prev instanceof SourceMapConsumer) { - return SourceMapGenerator.fromSourceMap(prev).toString(); - } else if (prev instanceof SourceMapGenerator) { - return prev.toString(); - } else if (this.isMap(prev)) { - return JSON.stringify(prev); - } else { - throw new Error( - "Unsupported previous source map format: " + prev.toString() - ); - } - } else if (this.inline) { - return this.decodeInline(this.annotation); - } else if (this.annotation) { - let map = this.annotation; - if (file) map = join(dirname(file), map); - return this.loadFile(map); - } - } - startWith(string, start) { - if (!string) return false; - return string.substr(0, start.length) === start; - } - withContent() { - return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); - } - }; - module.exports = PreviousMap; - PreviousMap.default = PreviousMap; - } -}); - -// node_modules/postcss/lib/input.js -var require_input = __commonJS({ - "node_modules/postcss/lib/input.js"(exports, module) { - "use strict"; - var { SourceMapConsumer, SourceMapGenerator } = require_source_map_js(); - var { fileURLToPath, pathToFileURL } = require_url(); - var { isAbsolute, resolve } = require_path(); - var { nanoid } = require_non_secure(); - var terminalHighlight = require_terminal_highlight(); - var CssSyntaxError2 = require_css_syntax_error(); - var PreviousMap = require_previous_map(); - var fromOffsetCache = Symbol("fromOffsetCache"); - var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); - var pathAvailable = Boolean(resolve && isAbsolute); - var Input2 = class { - constructor(css, opts = {}) { - if (css === null || typeof css === "undefined" || typeof css === "object" && !css.toString) { - throw new Error(`PostCSS received ${css} instead of CSS string`); - } - this.css = css.toString(); - if (this.css[0] === "\uFEFF" || this.css[0] === "￾") { - this.hasBOM = true; - this.css = this.css.slice(1); - } else { - this.hasBOM = false; - } - if (opts.from) { - if (!pathAvailable || /^\w+:\/\//.test(opts.from) || isAbsolute(opts.from)) { - this.file = opts.from; - } else { - this.file = resolve(opts.from); - } - } - if (pathAvailable && sourceMapAvailable) { - let map = new PreviousMap(this.css, opts); - if (map.text) { - this.map = map; - let file = map.consumer().file; - if (!this.file && file) this.file = this.mapResolve(file); - } - } - if (!this.file) { - this.id = ""; - } - if (this.map) this.map.file = this.from; - } - error(message, line, column, opts = {}) { - let result, endLine, endColumn; - if (line && typeof line === "object") { - let start = line; - let end = column; - if (typeof start.offset === "number") { - let pos = this.fromOffset(start.offset); - line = pos.line; - column = pos.col; - } else { - line = start.line; - column = start.column; - } - if (typeof end.offset === "number") { - let pos = this.fromOffset(end.offset); - endLine = pos.line; - endColumn = pos.col; - } else { - endLine = end.line; - endColumn = end.column; - } - } else if (!column) { - let pos = this.fromOffset(line); - line = pos.line; - column = pos.col; - } - let origin = this.origin(line, column, endLine, endColumn); - if (origin) { - result = new CssSyntaxError2( - message, - origin.endLine === void 0 ? origin.line : { column: origin.column, line: origin.line }, - origin.endLine === void 0 ? origin.column : { column: origin.endColumn, line: origin.endLine }, - origin.source, - origin.file, - opts.plugin - ); - } else { - result = new CssSyntaxError2( - message, - endLine === void 0 ? line : { column, line }, - endLine === void 0 ? column : { column: endColumn, line: endLine }, - this.css, - this.file, - opts.plugin - ); - } - result.input = { column, endColumn, endLine, line, source: this.css }; - if (this.file) { - if (pathToFileURL) { - result.input.url = pathToFileURL(this.file).toString(); - } - result.input.file = this.file; - } - return result; - } - fromOffset(offset) { - let lastLine, lineToIndex; - if (!this[fromOffsetCache]) { - let lines = this.css.split("\n"); - lineToIndex = new Array(lines.length); - let prevIndex = 0; - for (let i = 0, l = lines.length; i < l; i++) { - lineToIndex[i] = prevIndex; - prevIndex += lines[i].length + 1; - } - this[fromOffsetCache] = lineToIndex; - } else { - lineToIndex = this[fromOffsetCache]; - } - lastLine = lineToIndex[lineToIndex.length - 1]; - let min = 0; - if (offset >= lastLine) { - min = lineToIndex.length - 1; - } else { - let max = lineToIndex.length - 2; - let mid; - while (min < max) { - mid = min + (max - min >> 1); - if (offset < lineToIndex[mid]) { - max = mid - 1; - } else if (offset >= lineToIndex[mid + 1]) { - min = mid + 1; - } else { - min = mid; - break; - } - } - } - return { - col: offset - lineToIndex[min] + 1, - line: min + 1 - }; - } - mapResolve(file) { - if (/^\w+:\/\//.test(file)) { - return file; - } - return resolve(this.map.consumer().sourceRoot || this.map.root || ".", file); - } - origin(line, column, endLine, endColumn) { - if (!this.map) return false; - let consumer = this.map.consumer(); - let from = consumer.originalPositionFor({ column, line }); - if (!from.source) return false; - let to; - if (typeof endLine === "number") { - to = consumer.originalPositionFor({ column: endColumn, line: endLine }); - } - let fromUrl; - if (isAbsolute(from.source)) { - fromUrl = pathToFileURL(from.source); - } else { - fromUrl = new URL( - from.source, - this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) - ); - } - let result = { - column: from.column, - endColumn: to && to.column, - endLine: to && to.line, - line: from.line, - url: fromUrl.toString() - }; - if (fromUrl.protocol === "file:") { - if (fileURLToPath) { - result.file = fileURLToPath(fromUrl); - } else { - throw new Error(`file: protocol is not available in this PostCSS build`); - } - } - let source = consumer.sourceContentFor(from.source); - if (source) result.source = source; - return result; - } - toJSON() { - let json = {}; - for (let name of ["hasBOM", "css", "file", "id"]) { - if (this[name] != null) { - json[name] = this[name]; - } - } - if (this.map) { - json.map = { ...this.map }; - if (json.map.consumerCache) { - json.map.consumerCache = void 0; - } - } - return json; - } - get from() { - return this.file || this.id; - } - }; - module.exports = Input2; - Input2.default = Input2; - if (terminalHighlight && terminalHighlight.registerInput) { - terminalHighlight.registerInput(Input2); - } - } -}); - -// node_modules/postcss/lib/map-generator.js -var require_map_generator = __commonJS({ - "node_modules/postcss/lib/map-generator.js"(exports, module) { - "use strict"; - var { SourceMapConsumer, SourceMapGenerator } = require_source_map_js(); - var { dirname, relative, resolve, sep } = require_path(); - var { pathToFileURL } = require_url(); - var Input2 = require_input(); - var sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator); - var pathAvailable = Boolean(dirname && resolve && relative && sep); - var MapGenerator = class { - constructor(stringify2, root2, opts, cssString) { - this.stringify = stringify2; - this.mapOpts = opts.map || {}; - this.root = root2; - this.opts = opts; - this.css = cssString; - this.originalCSS = cssString; - this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute; - this.memoizedFileURLs = /* @__PURE__ */ new Map(); - this.memoizedPaths = /* @__PURE__ */ new Map(); - this.memoizedURLs = /* @__PURE__ */ new Map(); - } - addAnnotation() { - let content; - if (this.isInline()) { - content = "data:application/json;base64," + this.toBase64(this.map.toString()); - } else if (typeof this.mapOpts.annotation === "string") { - content = this.mapOpts.annotation; - } else if (typeof this.mapOpts.annotation === "function") { - content = this.mapOpts.annotation(this.opts.to, this.root); - } else { - content = this.outputFile() + ".map"; - } - let eol = "\n"; - if (this.css.includes("\r\n")) eol = "\r\n"; - this.css += eol + "/*# sourceMappingURL=" + content + " */"; - } - applyPrevMaps() { - for (let prev of this.previous()) { - let from = this.toUrl(this.path(prev.file)); - let root2 = prev.root || dirname(prev.file); - let map; - if (this.mapOpts.sourcesContent === false) { - map = new SourceMapConsumer(prev.text); - if (map.sourcesContent) { - map.sourcesContent = null; - } - } else { - map = prev.consumer(); - } - this.map.applySourceMap(map, from, this.toUrl(this.path(root2))); - } - } - clearAnnotation() { - if (this.mapOpts.annotation === false) return; - if (this.root) { - let node; - for (let i = this.root.nodes.length - 1; i >= 0; i--) { - node = this.root.nodes[i]; - if (node.type !== "comment") continue; - if (node.text.indexOf("# sourceMappingURL=") === 0) { - this.root.removeChild(i); - } - } - } else if (this.css) { - this.css = this.css.replace(/\n*?\/\*#[\S\s]*?\*\/$/gm, ""); - } - } - generate() { - this.clearAnnotation(); - if (pathAvailable && sourceMapAvailable && this.isMap()) { - return this.generateMap(); - } else { - let result = ""; - this.stringify(this.root, (i) => { - result += i; - }); - return [result]; - } - } - generateMap() { - if (this.root) { - this.generateString(); - } else if (this.previous().length === 1) { - let prev = this.previous()[0].consumer(); - prev.file = this.outputFile(); - this.map = SourceMapGenerator.fromSourceMap(prev, { - ignoreInvalidMapping: true - }); - } else { - this.map = new SourceMapGenerator({ - file: this.outputFile(), - ignoreInvalidMapping: true - }); - this.map.addMapping({ - generated: { column: 0, line: 1 }, - original: { column: 0, line: 1 }, - source: this.opts.from ? this.toUrl(this.path(this.opts.from)) : "" - }); - } - if (this.isSourcesContent()) this.setSourcesContent(); - if (this.root && this.previous().length > 0) this.applyPrevMaps(); - if (this.isAnnotation()) this.addAnnotation(); - if (this.isInline()) { - return [this.css]; - } else { - return [this.css, this.map]; - } - } - generateString() { - this.css = ""; - this.map = new SourceMapGenerator({ - file: this.outputFile(), - ignoreInvalidMapping: true - }); - let line = 1; - let column = 1; - let noSource = ""; - let mapping = { - generated: { column: 0, line: 0 }, - original: { column: 0, line: 0 }, - source: "" - }; - let lines, last; - this.stringify(this.root, (str, node, type) => { - this.css += str; - if (node && type !== "end") { - mapping.generated.line = line; - mapping.generated.column = column - 1; - if (node.source && node.source.start) { - mapping.source = this.sourcePath(node); - mapping.original.line = node.source.start.line; - mapping.original.column = node.source.start.column - 1; - this.map.addMapping(mapping); - } else { - mapping.source = noSource; - mapping.original.line = 1; - mapping.original.column = 0; - this.map.addMapping(mapping); - } - } - lines = str.match(/\n/g); - if (lines) { - line += lines.length; - last = str.lastIndexOf("\n"); - column = str.length - last; - } else { - column += str.length; - } - if (node && type !== "start") { - let p = node.parent || { raws: {} }; - let childless = node.type === "decl" || node.type === "atrule" && !node.nodes; - if (!childless || node !== p.last || p.raws.semicolon) { - if (node.source && node.source.end) { - mapping.source = this.sourcePath(node); - mapping.original.line = node.source.end.line; - mapping.original.column = node.source.end.column - 1; - mapping.generated.line = line; - mapping.generated.column = column - 2; - this.map.addMapping(mapping); - } else { - mapping.source = noSource; - mapping.original.line = 1; - mapping.original.column = 0; - mapping.generated.line = line; - mapping.generated.column = column - 1; - this.map.addMapping(mapping); - } - } - } - }); - } - isAnnotation() { - if (this.isInline()) { - return true; - } - if (typeof this.mapOpts.annotation !== "undefined") { - return this.mapOpts.annotation; - } - if (this.previous().length) { - return this.previous().some((i) => i.annotation); - } - return true; - } - isInline() { - if (typeof this.mapOpts.inline !== "undefined") { - return this.mapOpts.inline; - } - let annotation = this.mapOpts.annotation; - if (typeof annotation !== "undefined" && annotation !== true) { - return false; - } - if (this.previous().length) { - return this.previous().some((i) => i.inline); - } - return true; - } - isMap() { - if (typeof this.opts.map !== "undefined") { - return !!this.opts.map; - } - return this.previous().length > 0; - } - isSourcesContent() { - if (typeof this.mapOpts.sourcesContent !== "undefined") { - return this.mapOpts.sourcesContent; - } - if (this.previous().length) { - return this.previous().some((i) => i.withContent()); - } - return true; - } - outputFile() { - if (this.opts.to) { - return this.path(this.opts.to); - } else if (this.opts.from) { - return this.path(this.opts.from); - } else { - return "to.css"; - } - } - path(file) { - if (this.mapOpts.absolute) return file; - if (file.charCodeAt(0) === 60) return file; - if (/^\w+:\/\//.test(file)) return file; - let cached = this.memoizedPaths.get(file); - if (cached) return cached; - let from = this.opts.to ? dirname(this.opts.to) : "."; - if (typeof this.mapOpts.annotation === "string") { - from = dirname(resolve(from, this.mapOpts.annotation)); - } - let path = relative(from, file); - this.memoizedPaths.set(file, path); - return path; - } - previous() { - if (!this.previousMaps) { - this.previousMaps = []; - if (this.root) { - this.root.walk((node) => { - if (node.source && node.source.input.map) { - let map = node.source.input.map; - if (!this.previousMaps.includes(map)) { - this.previousMaps.push(map); - } - } - }); - } else { - let input = new Input2(this.originalCSS, this.opts); - if (input.map) this.previousMaps.push(input.map); - } - } - return this.previousMaps; - } - setSourcesContent() { - let already = {}; - if (this.root) { - this.root.walk((node) => { - if (node.source) { - let from = node.source.input.from; - if (from && !already[from]) { - already[from] = true; - let fromUrl = this.usesFileUrls ? this.toFileUrl(from) : this.toUrl(this.path(from)); - this.map.setSourceContent(fromUrl, node.source.input.css); - } - } - }); - } else if (this.css) { - let from = this.opts.from ? this.toUrl(this.path(this.opts.from)) : ""; - this.map.setSourceContent(from, this.css); - } - } - sourcePath(node) { - if (this.mapOpts.from) { - return this.toUrl(this.mapOpts.from); - } else if (this.usesFileUrls) { - return this.toFileUrl(node.source.input.from); - } else { - return this.toUrl(this.path(node.source.input.from)); - } - } - toBase64(str) { - if (Buffer) { - return Buffer.from(str).toString("base64"); - } else { - return window.btoa(unescape(encodeURIComponent(str))); - } - } - toFileUrl(path) { - let cached = this.memoizedFileURLs.get(path); - if (cached) return cached; - if (pathToFileURL) { - let fileURL = pathToFileURL(path).toString(); - this.memoizedFileURLs.set(path, fileURL); - return fileURL; - } else { - throw new Error( - "`map.absolute` option is not available in this PostCSS build" - ); - } - } - toUrl(path) { - let cached = this.memoizedURLs.get(path); - if (cached) return cached; - if (sep === "\\") { - path = path.replace(/\\/g, "/"); - } - let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent); - this.memoizedURLs.set(path, url); - return url; - } - }; - module.exports = MapGenerator; - } -}); - -// node_modules/postcss/lib/comment.js -var require_comment = __commonJS({ - "node_modules/postcss/lib/comment.js"(exports, module) { - "use strict"; - var Node2 = require_node(); - var Comment2 = class extends Node2 { - constructor(defaults) { - super(defaults); - this.type = "comment"; - } - }; - module.exports = Comment2; - Comment2.default = Comment2; - } -}); - -// node_modules/postcss/lib/container.js -var require_container = __commonJS({ - "node_modules/postcss/lib/container.js"(exports, module) { - "use strict"; - var { isClean, my } = require_symbols(); - var Declaration2 = require_declaration(); - var Comment2 = require_comment(); - var Node2 = require_node(); - var parse2; - var Rule2; - var AtRule2; - var Root2; - function cleanSource(nodes) { - return nodes.map((i) => { - if (i.nodes) i.nodes = cleanSource(i.nodes); - delete i.source; - return i; - }); - } - function markTreeDirty(node) { - node[isClean] = false; - if (node.proxyOf.nodes) { - for (let i of node.proxyOf.nodes) { - markTreeDirty(i); - } - } - } - var Container2 = class _Container extends Node2 { - append(...children) { - for (let child of children) { - let nodes = this.normalize(child, this.last); - for (let node of nodes) this.proxyOf.nodes.push(node); - } - this.markDirty(); - return this; - } - cleanRaws(keepBetween) { - super.cleanRaws(keepBetween); - if (this.nodes) { - for (let node of this.nodes) node.cleanRaws(keepBetween); - } - } - each(callback) { - if (!this.proxyOf.nodes) return void 0; - let iterator = this.getIterator(); - let index, result; - while (this.indexes[iterator] < this.proxyOf.nodes.length) { - index = this.indexes[iterator]; - result = callback(this.proxyOf.nodes[index], index); - if (result === false) break; - this.indexes[iterator] += 1; - } - delete this.indexes[iterator]; - return result; - } - every(condition) { - return this.nodes.every(condition); - } - getIterator() { - if (!this.lastEach) this.lastEach = 0; - if (!this.indexes) this.indexes = {}; - this.lastEach += 1; - let iterator = this.lastEach; - this.indexes[iterator] = 0; - return iterator; - } - getProxyProcessor() { - return { - get(node, prop) { - if (prop === "proxyOf") { - return node; - } else if (!node[prop]) { - return node[prop]; - } else if (prop === "each" || typeof prop === "string" && prop.startsWith("walk")) { - return (...args) => { - return node[prop]( - ...args.map((i) => { - if (typeof i === "function") { - return (child, index) => i(child.toProxy(), index); - } else { - return i; - } - }) - ); - }; - } else if (prop === "every" || prop === "some") { - return (cb) => { - return node[prop]( - (child, ...other) => cb(child.toProxy(), ...other) - ); - }; - } else if (prop === "root") { - return () => node.root().toProxy(); - } else if (prop === "nodes") { - return node.nodes.map((i) => i.toProxy()); - } else if (prop === "first" || prop === "last") { - return node[prop].toProxy(); - } else { - return node[prop]; - } - }, - set(node, prop, value) { - if (node[prop] === value) return true; - node[prop] = value; - if (prop === "name" || prop === "params" || prop === "selector") { - node.markDirty(); - } - return true; - } - }; - } - index(child) { - if (typeof child === "number") return child; - if (child.proxyOf) child = child.proxyOf; - return this.proxyOf.nodes.indexOf(child); - } - insertAfter(exist, add) { - let existIndex = this.index(exist); - let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse(); - existIndex = this.index(exist); - for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node); - let index; - for (let id in this.indexes) { - index = this.indexes[id]; - if (existIndex < index) { - this.indexes[id] = index + nodes.length; - } - } - this.markDirty(); - return this; - } - insertBefore(exist, add) { - let existIndex = this.index(exist); - let type = existIndex === 0 ? "prepend" : false; - let nodes = this.normalize( - add, - this.proxyOf.nodes[existIndex], - type - ).reverse(); - existIndex = this.index(exist); - for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node); - let index; - for (let id in this.indexes) { - index = this.indexes[id]; - if (existIndex <= index) { - this.indexes[id] = index + nodes.length; - } - } - this.markDirty(); - return this; - } - normalize(nodes, sample) { - if (typeof nodes === "string") { - nodes = cleanSource(parse2(nodes).nodes); - } else if (typeof nodes === "undefined") { - nodes = []; - } else if (Array.isArray(nodes)) { - nodes = nodes.slice(0); - for (let i of nodes) { - if (i.parent) i.parent.removeChild(i, "ignore"); - } - } else if (nodes.type === "root" && this.type !== "document") { - nodes = nodes.nodes.slice(0); - for (let i of nodes) { - if (i.parent) i.parent.removeChild(i, "ignore"); - } - } else if (nodes.type) { - nodes = [nodes]; - } else if (nodes.prop) { - if (typeof nodes.value === "undefined") { - throw new Error("Value field is missed in node creation"); - } else if (typeof nodes.value !== "string") { - nodes.value = String(nodes.value); - } - nodes = [new Declaration2(nodes)]; - } else if (nodes.selector) { - nodes = [new Rule2(nodes)]; - } else if (nodes.name) { - nodes = [new AtRule2(nodes)]; - } else if (nodes.text) { - nodes = [new Comment2(nodes)]; - } else { - throw new Error("Unknown node type in node creation"); - } - let processed = nodes.map((i) => { - if (!i[my]) _Container.rebuild(i); - i = i.proxyOf; - if (i.parent) i.parent.removeChild(i); - if (i[isClean]) markTreeDirty(i); - if (typeof i.raws.before === "undefined") { - if (sample && typeof sample.raws.before !== "undefined") { - i.raws.before = sample.raws.before.replace(/\S/g, ""); - } - } - i.parent = this.proxyOf; - return i; - }); - return processed; - } - prepend(...children) { - children = children.reverse(); - for (let child of children) { - let nodes = this.normalize(child, this.first, "prepend").reverse(); - for (let node of nodes) this.proxyOf.nodes.unshift(node); - for (let id in this.indexes) { - this.indexes[id] = this.indexes[id] + nodes.length; - } - } - this.markDirty(); - return this; - } - push(child) { - child.parent = this; - this.proxyOf.nodes.push(child); - return this; - } - removeAll() { - for (let node of this.proxyOf.nodes) node.parent = void 0; - this.proxyOf.nodes = []; - this.markDirty(); - return this; - } - removeChild(child) { - child = this.index(child); - this.proxyOf.nodes[child].parent = void 0; - this.proxyOf.nodes.splice(child, 1); - let index; - for (let id in this.indexes) { - index = this.indexes[id]; - if (index >= child) { - this.indexes[id] = index - 1; - } - } - this.markDirty(); - return this; - } - replaceValues(pattern, opts, callback) { - if (!callback) { - callback = opts; - opts = {}; - } - this.walkDecls((decl2) => { - if (opts.props && !opts.props.includes(decl2.prop)) return; - if (opts.fast && !decl2.value.includes(opts.fast)) return; - decl2.value = decl2.value.replace(pattern, callback); - }); - this.markDirty(); - return this; - } - some(condition) { - return this.nodes.some(condition); - } - walk(callback) { - return this.each((child, i) => { - let result; - try { - result = callback(child, i); - } catch (e) { - throw child.addToError(e); - } - if (result !== false && child.walk) { - result = child.walk(callback); - } - return result; - }); - } - walkAtRules(name, callback) { - if (!callback) { - callback = name; - return this.walk((child, i) => { - if (child.type === "atrule") { - return callback(child, i); - } - }); - } - if (name instanceof RegExp) { - return this.walk((child, i) => { - if (child.type === "atrule" && name.test(child.name)) { - return callback(child, i); - } - }); - } - return this.walk((child, i) => { - if (child.type === "atrule" && child.name === name) { - return callback(child, i); - } - }); - } - walkComments(callback) { - return this.walk((child, i) => { - if (child.type === "comment") { - return callback(child, i); - } - }); - } - walkDecls(prop, callback) { - if (!callback) { - callback = prop; - return this.walk((child, i) => { - if (child.type === "decl") { - return callback(child, i); - } - }); - } - if (prop instanceof RegExp) { - return this.walk((child, i) => { - if (child.type === "decl" && prop.test(child.prop)) { - return callback(child, i); - } - }); - } - return this.walk((child, i) => { - if (child.type === "decl" && child.prop === prop) { - return callback(child, i); - } - }); - } - walkRules(selector, callback) { - if (!callback) { - callback = selector; - return this.walk((child, i) => { - if (child.type === "rule") { - return callback(child, i); - } - }); - } - if (selector instanceof RegExp) { - return this.walk((child, i) => { - if (child.type === "rule" && selector.test(child.selector)) { - return callback(child, i); - } - }); - } - return this.walk((child, i) => { - if (child.type === "rule" && child.selector === selector) { - return callback(child, i); - } - }); - } - get first() { - if (!this.proxyOf.nodes) return void 0; - return this.proxyOf.nodes[0]; - } - get last() { - if (!this.proxyOf.nodes) return void 0; - return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]; - } - }; - Container2.registerParse = (dependant) => { - parse2 = dependant; - }; - Container2.registerRule = (dependant) => { - Rule2 = dependant; - }; - Container2.registerAtRule = (dependant) => { - AtRule2 = dependant; - }; - Container2.registerRoot = (dependant) => { - Root2 = dependant; - }; - module.exports = Container2; - Container2.default = Container2; - Container2.rebuild = (node) => { - if (node.type === "atrule") { - Object.setPrototypeOf(node, AtRule2.prototype); - } else if (node.type === "rule") { - Object.setPrototypeOf(node, Rule2.prototype); - } else if (node.type === "decl") { - Object.setPrototypeOf(node, Declaration2.prototype); - } else if (node.type === "comment") { - Object.setPrototypeOf(node, Comment2.prototype); - } else if (node.type === "root") { - Object.setPrototypeOf(node, Root2.prototype); - } - node[my] = true; - if (node.nodes) { - node.nodes.forEach((child) => { - Container2.rebuild(child); - }); - } - }; - } -}); - -// node_modules/postcss/lib/document.js -var require_document = __commonJS({ - "node_modules/postcss/lib/document.js"(exports, module) { - "use strict"; - var Container2 = require_container(); - var LazyResult; - var Processor2; - var Document2 = class extends Container2 { - constructor(defaults) { - super({ type: "document", ...defaults }); - if (!this.nodes) { - this.nodes = []; - } - } - toResult(opts = {}) { - let lazy = new LazyResult(new Processor2(), this, opts); - return lazy.stringify(); - } - }; - Document2.registerLazyResult = (dependant) => { - LazyResult = dependant; - }; - Document2.registerProcessor = (dependant) => { - Processor2 = dependant; - }; - module.exports = Document2; - Document2.default = Document2; - } -}); - -// node_modules/postcss/lib/warn-once.js -var require_warn_once = __commonJS({ - "node_modules/postcss/lib/warn-once.js"(exports, module) { - "use strict"; - var printed = {}; - module.exports = function warnOnce(message) { - if (printed[message]) return; - printed[message] = true; - if (typeof console !== "undefined" && console.warn) { - console.warn(message); - } - }; - } -}); - -// node_modules/postcss/lib/warning.js -var require_warning = __commonJS({ - "node_modules/postcss/lib/warning.js"(exports, module) { - "use strict"; - var Warning2 = class { - constructor(text, opts = {}) { - this.type = "warning"; - this.text = text; - if (opts.node && opts.node.source) { - let range = opts.node.rangeBy(opts); - this.line = range.start.line; - this.column = range.start.column; - this.endLine = range.end.line; - this.endColumn = range.end.column; - } - for (let opt in opts) this[opt] = opts[opt]; - } - toString() { - if (this.node) { - return this.node.error(this.text, { - index: this.index, - plugin: this.plugin, - word: this.word - }).message; - } - if (this.plugin) { - return this.plugin + ": " + this.text; - } - return this.text; - } - }; - module.exports = Warning2; - Warning2.default = Warning2; - } -}); - -// node_modules/postcss/lib/result.js -var require_result = __commonJS({ - "node_modules/postcss/lib/result.js"(exports, module) { - "use strict"; - var Warning2 = require_warning(); - var Result2 = class { - constructor(processor, root2, opts) { - this.processor = processor; - this.messages = []; - this.root = root2; - this.opts = opts; - this.css = void 0; - this.map = void 0; - } - toString() { - return this.css; - } - warn(text, opts = {}) { - if (!opts.plugin) { - if (this.lastPlugin && this.lastPlugin.postcssPlugin) { - opts.plugin = this.lastPlugin.postcssPlugin; - } - } - let warning = new Warning2(text, opts); - this.messages.push(warning); - return warning; - } - warnings() { - return this.messages.filter((i) => i.type === "warning"); - } - get content() { - return this.css; - } - }; - module.exports = Result2; - Result2.default = Result2; - } -}); - -// node_modules/postcss/lib/tokenize.js -var require_tokenize = __commonJS({ - "node_modules/postcss/lib/tokenize.js"(exports, module) { - "use strict"; - var SINGLE_QUOTE = "'".charCodeAt(0); - var DOUBLE_QUOTE = '"'.charCodeAt(0); - var BACKSLASH = "\\".charCodeAt(0); - var SLASH = "/".charCodeAt(0); - var NEWLINE = "\n".charCodeAt(0); - var SPACE = " ".charCodeAt(0); - var FEED = "\f".charCodeAt(0); - var TAB = " ".charCodeAt(0); - var CR = "\r".charCodeAt(0); - var OPEN_SQUARE = "[".charCodeAt(0); - var CLOSE_SQUARE = "]".charCodeAt(0); - var OPEN_PARENTHESES = "(".charCodeAt(0); - var CLOSE_PARENTHESES = ")".charCodeAt(0); - var OPEN_CURLY = "{".charCodeAt(0); - var CLOSE_CURLY = "}".charCodeAt(0); - var SEMICOLON = ";".charCodeAt(0); - var ASTERISK = "*".charCodeAt(0); - var COLON = ":".charCodeAt(0); - var AT = "@".charCodeAt(0); - var RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g; - var RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g; - var RE_BAD_BRACKET = /.[\r\n"'(/\\]/; - var RE_HEX_ESCAPE = /[\da-f]/i; - module.exports = function tokenizer(input, options = {}) { - let css = input.css.valueOf(); - let ignore = options.ignoreErrors; - let code, next, quote, content, escape; - let escaped, escapePos, prev, n, currentToken; - let length = css.length; - let pos = 0; - let buffer = []; - let returned = []; - function position() { - return pos; - } - function unclosed(what) { - throw input.error("Unclosed " + what, pos); - } - function endOfFile() { - return returned.length === 0 && pos >= length; - } - function nextToken(opts) { - if (returned.length) return returned.pop(); - if (pos >= length) return; - let ignoreUnclosed = opts ? opts.ignoreUnclosed : false; - code = css.charCodeAt(pos); - switch (code) { - case NEWLINE: - case SPACE: - case TAB: - case CR: - case FEED: { - next = pos; - do { - next += 1; - code = css.charCodeAt(next); - } while (code === SPACE || code === NEWLINE || code === TAB || code === CR || code === FEED); - currentToken = ["space", css.slice(pos, next)]; - pos = next - 1; - break; - } - case OPEN_SQUARE: - case CLOSE_SQUARE: - case OPEN_CURLY: - case CLOSE_CURLY: - case COLON: - case SEMICOLON: - case CLOSE_PARENTHESES: { - let controlChar = String.fromCharCode(code); - currentToken = [controlChar, controlChar, pos]; - break; - } - case OPEN_PARENTHESES: { - prev = buffer.length ? buffer.pop()[1] : ""; - n = css.charCodeAt(pos + 1); - if (prev === "url" && n !== SINGLE_QUOTE && n !== DOUBLE_QUOTE && n !== SPACE && n !== NEWLINE && n !== TAB && n !== FEED && n !== CR) { - next = pos; - do { - escaped = false; - next = css.indexOf(")", next + 1); - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos; - break; - } else { - unclosed("bracket"); - } - } - escapePos = next; - while (css.charCodeAt(escapePos - 1) === BACKSLASH) { - escapePos -= 1; - escaped = !escaped; - } - } while (escaped); - currentToken = ["brackets", css.slice(pos, next + 1), pos, next]; - pos = next; - } else { - next = css.indexOf(")", pos + 1); - content = css.slice(pos, next + 1); - if (next === -1 || RE_BAD_BRACKET.test(content)) { - currentToken = ["(", "(", pos]; - } else { - currentToken = ["brackets", content, pos, next]; - pos = next; - } - } - break; - } - case SINGLE_QUOTE: - case DOUBLE_QUOTE: { - quote = code === SINGLE_QUOTE ? "'" : '"'; - next = pos; - do { - escaped = false; - next = css.indexOf(quote, next + 1); - if (next === -1) { - if (ignore || ignoreUnclosed) { - next = pos + 1; - break; - } else { - unclosed("string"); - } - } - escapePos = next; - while (css.charCodeAt(escapePos - 1) === BACKSLASH) { - escapePos -= 1; - escaped = !escaped; - } - } while (escaped); - currentToken = ["string", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - case AT: { - RE_AT_END.lastIndex = pos + 1; - RE_AT_END.test(css); - if (RE_AT_END.lastIndex === 0) { - next = css.length - 1; - } else { - next = RE_AT_END.lastIndex - 2; - } - currentToken = ["at-word", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - case BACKSLASH: { - next = pos; - escape = true; - while (css.charCodeAt(next + 1) === BACKSLASH) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if (escape && code !== SLASH && code !== SPACE && code !== NEWLINE && code !== TAB && code !== CR && code !== FEED) { - next += 1; - if (RE_HEX_ESCAPE.test(css.charAt(next))) { - while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { - next += 1; - } - if (css.charCodeAt(next + 1) === SPACE) { - next += 1; - } - } - } - currentToken = ["word", css.slice(pos, next + 1), pos, next]; - pos = next; - break; - } - default: { - if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { - next = css.indexOf("*/", pos + 2) + 1; - if (next === 0) { - if (ignore || ignoreUnclosed) { - next = css.length; - } else { - unclosed("comment"); - } - } - currentToken = ["comment", css.slice(pos, next + 1), pos, next]; - pos = next; - } else { - RE_WORD_END.lastIndex = pos + 1; - RE_WORD_END.test(css); - if (RE_WORD_END.lastIndex === 0) { - next = css.length - 1; - } else { - next = RE_WORD_END.lastIndex - 2; - } - currentToken = ["word", css.slice(pos, next + 1), pos, next]; - buffer.push(currentToken); - pos = next; - } - break; - } - } - pos++; - return currentToken; - } - function back(token) { - returned.push(token); - } - return { - back, - endOfFile, - nextToken, - position - }; - }; - } -}); - -// node_modules/postcss/lib/at-rule.js -var require_at_rule = __commonJS({ - "node_modules/postcss/lib/at-rule.js"(exports, module) { - "use strict"; - var Container2 = require_container(); - var AtRule2 = class extends Container2 { - constructor(defaults) { - super(defaults); - this.type = "atrule"; - } - append(...children) { - if (!this.proxyOf.nodes) this.nodes = []; - return super.append(...children); - } - prepend(...children) { - if (!this.proxyOf.nodes) this.nodes = []; - return super.prepend(...children); - } - }; - module.exports = AtRule2; - AtRule2.default = AtRule2; - Container2.registerAtRule(AtRule2); - } -}); - -// node_modules/postcss/lib/root.js -var require_root = __commonJS({ - "node_modules/postcss/lib/root.js"(exports, module) { - "use strict"; - var Container2 = require_container(); - var LazyResult; - var Processor2; - var Root2 = class extends Container2 { - constructor(defaults) { - super(defaults); - this.type = "root"; - if (!this.nodes) this.nodes = []; - } - normalize(child, sample, type) { - let nodes = super.normalize(child); - if (sample) { - if (type === "prepend") { - if (this.nodes.length > 1) { - sample.raws.before = this.nodes[1].raws.before; - } else { - delete sample.raws.before; - } - } else if (this.first !== sample) { - for (let node of nodes) { - node.raws.before = sample.raws.before; - } - } - } - return nodes; - } - removeChild(child, ignore) { - let index = this.index(child); - if (!ignore && index === 0 && this.nodes.length > 1) { - this.nodes[1].raws.before = this.nodes[index].raws.before; - } - return super.removeChild(child); - } - toResult(opts = {}) { - let lazy = new LazyResult(new Processor2(), this, opts); - return lazy.stringify(); - } - }; - Root2.registerLazyResult = (dependant) => { - LazyResult = dependant; - }; - Root2.registerProcessor = (dependant) => { - Processor2 = dependant; - }; - module.exports = Root2; - Root2.default = Root2; - Container2.registerRoot(Root2); - } -}); - -// node_modules/postcss/lib/list.js -var require_list = __commonJS({ - "node_modules/postcss/lib/list.js"(exports, module) { - "use strict"; - var list2 = { - comma(string) { - return list2.split(string, [","], true); - }, - space(string) { - let spaces = [" ", "\n", " "]; - return list2.split(string, spaces); - }, - split(string, separators, last) { - let array = []; - let current = ""; - let split = false; - let func = 0; - let inQuote = false; - let prevQuote = ""; - let escape = false; - for (let letter of string) { - if (escape) { - escape = false; - } else if (letter === "\\") { - escape = true; - } else if (inQuote) { - if (letter === prevQuote) { - inQuote = false; - } - } else if (letter === '"' || letter === "'") { - inQuote = true; - prevQuote = letter; - } else if (letter === "(") { - func += 1; - } else if (letter === ")") { - if (func > 0) func -= 1; - } else if (func === 0) { - if (separators.includes(letter)) split = true; - } - if (split) { - if (current !== "") array.push(current.trim()); - current = ""; - split = false; - } else { - current += letter; - } - } - if (last || current !== "") array.push(current.trim()); - return array; - } - }; - module.exports = list2; - list2.default = list2; - } -}); - -// node_modules/postcss/lib/rule.js -var require_rule = __commonJS({ - "node_modules/postcss/lib/rule.js"(exports, module) { - "use strict"; - var Container2 = require_container(); - var list2 = require_list(); - var Rule2 = class extends Container2 { - constructor(defaults) { - super(defaults); - this.type = "rule"; - if (!this.nodes) this.nodes = []; - } - get selectors() { - return list2.comma(this.selector); - } - set selectors(values) { - let match = this.selector ? this.selector.match(/,\s*/) : null; - let sep = match ? match[0] : "," + this.raw("between", "beforeOpen"); - this.selector = values.join(sep); - } - }; - module.exports = Rule2; - Rule2.default = Rule2; - Container2.registerRule(Rule2); - } -}); - -// node_modules/postcss/lib/parser.js -var require_parser = __commonJS({ - "node_modules/postcss/lib/parser.js"(exports, module) { - "use strict"; - var Declaration2 = require_declaration(); - var tokenizer = require_tokenize(); - var Comment2 = require_comment(); - var AtRule2 = require_at_rule(); - var Root2 = require_root(); - var Rule2 = require_rule(); - var SAFE_COMMENT_NEIGHBOR = { - empty: true, - space: true - }; - function findLastWithPosition(tokens) { - for (let i = tokens.length - 1; i >= 0; i--) { - let token = tokens[i]; - let pos = token[3] || token[2]; - if (pos) return pos; - } - } - var Parser = class { - constructor(input) { - this.input = input; - this.root = new Root2(); - this.current = this.root; - this.spaces = ""; - this.semicolon = false; - this.createTokenizer(); - this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }; - } - atrule(token) { - let node = new AtRule2(); - node.name = token[1].slice(1); - if (node.name === "") { - this.unnamedAtrule(node, token); - } - this.init(node, token[2]); - let type; - let prev; - let shift; - let last = false; - let open = false; - let params = []; - let brackets = []; - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken(); - type = token[0]; - if (type === "(" || type === "[") { - brackets.push(type === "(" ? ")" : "]"); - } else if (type === "{" && brackets.length > 0) { - brackets.push("}"); - } else if (type === brackets[brackets.length - 1]) { - brackets.pop(); - } - if (brackets.length === 0) { - if (type === ";") { - node.source.end = this.getPosition(token[2]); - node.source.end.offset++; - this.semicolon = true; - break; - } else if (type === "{") { - open = true; - break; - } else if (type === "}") { - if (params.length > 0) { - shift = params.length - 1; - prev = params[shift]; - while (prev && prev[0] === "space") { - prev = params[--shift]; - } - if (prev) { - node.source.end = this.getPosition(prev[3] || prev[2]); - node.source.end.offset++; - } - } - this.end(token); - break; - } else { - params.push(token); - } - } else { - params.push(token); - } - if (this.tokenizer.endOfFile()) { - last = true; - break; - } - } - node.raws.between = this.spacesAndCommentsFromEnd(params); - if (params.length) { - node.raws.afterName = this.spacesAndCommentsFromStart(params); - this.raw(node, "params", params); - if (last) { - token = params[params.length - 1]; - node.source.end = this.getPosition(token[3] || token[2]); - node.source.end.offset++; - this.spaces = node.raws.between; - node.raws.between = ""; - } - } else { - node.raws.afterName = ""; - node.params = ""; - } - if (open) { - node.nodes = []; - this.current = node; - } - } - checkMissedSemicolon(tokens) { - let colon = this.colon(tokens); - if (colon === false) return; - let founded = 0; - let token; - for (let j = colon - 1; j >= 0; j--) { - token = tokens[j]; - if (token[0] !== "space") { - founded += 1; - if (founded === 2) break; - } - } - throw this.input.error( - "Missed semicolon", - token[0] === "word" ? token[3] + 1 : token[2] - ); - } - colon(tokens) { - let brackets = 0; - let token, type, prev; - for (let [i, element] of tokens.entries()) { - token = element; - type = token[0]; - if (type === "(") { - brackets += 1; - } - if (type === ")") { - brackets -= 1; - } - if (brackets === 0 && type === ":") { - if (!prev) { - this.doubleColon(token); - } else if (prev[0] === "word" && prev[1] === "progid") { - continue; - } else { - return i; - } - } - prev = token; - } - return false; - } - comment(token) { - let node = new Comment2(); - this.init(node, token[2]); - node.source.end = this.getPosition(token[3] || token[2]); - node.source.end.offset++; - let text = token[1].slice(2, -2); - if (/^\s*$/.test(text)) { - node.text = ""; - node.raws.left = text; - node.raws.right = ""; - } else { - let match = text.match(/^(\s*)([^]*\S)(\s*)$/); - node.text = match[2]; - node.raws.left = match[1]; - node.raws.right = match[3]; - } - } - createTokenizer() { - this.tokenizer = tokenizer(this.input); - } - decl(tokens, customProperty) { - let node = new Declaration2(); - this.init(node, tokens[0][2]); - let last = tokens[tokens.length - 1]; - if (last[0] === ";") { - this.semicolon = true; - tokens.pop(); - } - node.source.end = this.getPosition( - last[3] || last[2] || findLastWithPosition(tokens) - ); - node.source.end.offset++; - while (tokens[0][0] !== "word") { - if (tokens.length === 1) this.unknownWord(tokens); - node.raws.before += tokens.shift()[1]; - } - node.source.start = this.getPosition(tokens[0][2]); - node.prop = ""; - while (tokens.length) { - let type = tokens[0][0]; - if (type === ":" || type === "space" || type === "comment") { - break; - } - node.prop += tokens.shift()[1]; - } - node.raws.between = ""; - let token; - while (tokens.length) { - token = tokens.shift(); - if (token[0] === ":") { - node.raws.between += token[1]; - break; - } else { - if (token[0] === "word" && /\w/.test(token[1])) { - this.unknownWord([token]); - } - node.raws.between += token[1]; - } - } - if (node.prop[0] === "_" || node.prop[0] === "*") { - node.raws.before += node.prop[0]; - node.prop = node.prop.slice(1); - } - let firstSpaces = []; - let next; - while (tokens.length) { - next = tokens[0][0]; - if (next !== "space" && next !== "comment") break; - firstSpaces.push(tokens.shift()); - } - this.precheckMissedSemicolon(tokens); - for (let i = tokens.length - 1; i >= 0; i--) { - token = tokens[i]; - if (token[1].toLowerCase() === "!important") { - node.important = true; - let string = this.stringFrom(tokens, i); - string = this.spacesFromEnd(tokens) + string; - if (string !== " !important") node.raws.important = string; - break; - } else if (token[1].toLowerCase() === "important") { - let cache = tokens.slice(0); - let str = ""; - for (let j = i; j > 0; j--) { - let type = cache[j][0]; - if (str.trim().indexOf("!") === 0 && type !== "space") { - break; - } - str = cache.pop()[1] + str; - } - if (str.trim().indexOf("!") === 0) { - node.important = true; - node.raws.important = str; - tokens = cache; - } - } - if (token[0] !== "space" && token[0] !== "comment") { - break; - } - } - let hasWord = tokens.some((i) => i[0] !== "space" && i[0] !== "comment"); - if (hasWord) { - node.raws.between += firstSpaces.map((i) => i[1]).join(""); - firstSpaces = []; - } - this.raw(node, "value", firstSpaces.concat(tokens), customProperty); - if (node.value.includes(":") && !customProperty) { - this.checkMissedSemicolon(tokens); - } - } - doubleColon(token) { - throw this.input.error( - "Double colon", - { offset: token[2] }, - { offset: token[2] + token[1].length } - ); - } - emptyRule(token) { - let node = new Rule2(); - this.init(node, token[2]); - node.selector = ""; - node.raws.between = ""; - this.current = node; - } - end(token) { - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon; - } - this.semicolon = false; - this.current.raws.after = (this.current.raws.after || "") + this.spaces; - this.spaces = ""; - if (this.current.parent) { - this.current.source.end = this.getPosition(token[2]); - this.current.source.end.offset++; - this.current = this.current.parent; - } else { - this.unexpectedClose(token); - } - } - endFile() { - if (this.current.parent) this.unclosedBlock(); - if (this.current.nodes && this.current.nodes.length) { - this.current.raws.semicolon = this.semicolon; - } - this.current.raws.after = (this.current.raws.after || "") + this.spaces; - this.root.source.end = this.getPosition(this.tokenizer.position()); - } - freeSemicolon(token) { - this.spaces += token[1]; - if (this.current.nodes) { - let prev = this.current.nodes[this.current.nodes.length - 1]; - if (prev && prev.type === "rule" && !prev.raws.ownSemicolon) { - prev.raws.ownSemicolon = this.spaces; - this.spaces = ""; - } - } - } - // Helpers - getPosition(offset) { - let pos = this.input.fromOffset(offset); - return { - column: pos.col, - line: pos.line, - offset - }; - } - init(node, offset) { - this.current.push(node); - node.source = { - input: this.input, - start: this.getPosition(offset) - }; - node.raws.before = this.spaces; - this.spaces = ""; - if (node.type !== "comment") this.semicolon = false; - } - other(start) { - let end = false; - let type = null; - let colon = false; - let bracket = null; - let brackets = []; - let customProperty = start[1].startsWith("--"); - let tokens = []; - let token = start; - while (token) { - type = token[0]; - tokens.push(token); - if (type === "(" || type === "[") { - if (!bracket) bracket = token; - brackets.push(type === "(" ? ")" : "]"); - } else if (customProperty && colon && type === "{") { - if (!bracket) bracket = token; - brackets.push("}"); - } else if (brackets.length === 0) { - if (type === ";") { - if (colon) { - this.decl(tokens, customProperty); - return; - } else { - break; - } - } else if (type === "{") { - this.rule(tokens); - return; - } else if (type === "}") { - this.tokenizer.back(tokens.pop()); - end = true; - break; - } else if (type === ":") { - colon = true; - } - } else if (type === brackets[brackets.length - 1]) { - brackets.pop(); - if (brackets.length === 0) bracket = null; - } - token = this.tokenizer.nextToken(); - } - if (this.tokenizer.endOfFile()) end = true; - if (brackets.length > 0) this.unclosedBracket(bracket); - if (end && colon) { - if (!customProperty) { - while (tokens.length) { - token = tokens[tokens.length - 1][0]; - if (token !== "space" && token !== "comment") break; - this.tokenizer.back(tokens.pop()); - } - } - this.decl(tokens, customProperty); - } else { - this.unknownWord(tokens); - } - } - parse() { - let token; - while (!this.tokenizer.endOfFile()) { - token = this.tokenizer.nextToken(); - switch (token[0]) { - case "space": - this.spaces += token[1]; - break; - case ";": - this.freeSemicolon(token); - break; - case "}": - this.end(token); - break; - case "comment": - this.comment(token); - break; - case "at-word": - this.atrule(token); - break; - case "{": - this.emptyRule(token); - break; - default: - this.other(token); - break; - } - } - this.endFile(); - } - precheckMissedSemicolon() { - } - raw(node, prop, tokens, customProperty) { - let token, type; - let length = tokens.length; - let value = ""; - let clean = true; - let next, prev; - for (let i = 0; i < length; i += 1) { - token = tokens[i]; - type = token[0]; - if (type === "space" && i === length - 1 && !customProperty) { - clean = false; - } else if (type === "comment") { - prev = tokens[i - 1] ? tokens[i - 1][0] : "empty"; - next = tokens[i + 1] ? tokens[i + 1][0] : "empty"; - if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { - if (value.slice(-1) === ",") { - clean = false; - } else { - value += token[1]; - } - } else { - clean = false; - } - } else { - value += token[1]; - } - } - if (!clean) { - let raw = tokens.reduce((all, i) => all + i[1], ""); - node.raws[prop] = { raw, value }; - } - node[prop] = value; - } - rule(tokens) { - tokens.pop(); - let node = new Rule2(); - this.init(node, tokens[0][2]); - node.raws.between = this.spacesAndCommentsFromEnd(tokens); - this.raw(node, "selector", tokens); - this.current = node; - } - spacesAndCommentsFromEnd(tokens) { - let lastTokenType; - let spaces = ""; - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0]; - if (lastTokenType !== "space" && lastTokenType !== "comment") break; - spaces = tokens.pop()[1] + spaces; - } - return spaces; - } - // Errors - spacesAndCommentsFromStart(tokens) { - let next; - let spaces = ""; - while (tokens.length) { - next = tokens[0][0]; - if (next !== "space" && next !== "comment") break; - spaces += tokens.shift()[1]; - } - return spaces; - } - spacesFromEnd(tokens) { - let lastTokenType; - let spaces = ""; - while (tokens.length) { - lastTokenType = tokens[tokens.length - 1][0]; - if (lastTokenType !== "space") break; - spaces = tokens.pop()[1] + spaces; - } - return spaces; - } - stringFrom(tokens, from) { - let result = ""; - for (let i = from; i < tokens.length; i++) { - result += tokens[i][1]; - } - tokens.splice(from, tokens.length - from); - return result; - } - unclosedBlock() { - let pos = this.current.source.start; - throw this.input.error("Unclosed block", pos.line, pos.column); - } - unclosedBracket(bracket) { - throw this.input.error( - "Unclosed bracket", - { offset: bracket[2] }, - { offset: bracket[2] + 1 } - ); - } - unexpectedClose(token) { - throw this.input.error( - "Unexpected }", - { offset: token[2] }, - { offset: token[2] + 1 } - ); - } - unknownWord(tokens) { - throw this.input.error( - "Unknown word", - { offset: tokens[0][2] }, - { offset: tokens[0][2] + tokens[0][1].length } - ); - } - unnamedAtrule(node, token) { - throw this.input.error( - "At-rule without name", - { offset: token[2] }, - { offset: token[2] + token[1].length } - ); - } - }; - module.exports = Parser; - } -}); - -// node_modules/postcss/lib/parse.js -var require_parse = __commonJS({ - "node_modules/postcss/lib/parse.js"(exports, module) { - "use strict"; - var Container2 = require_container(); - var Parser = require_parser(); - var Input2 = require_input(); - function parse2(css, opts) { - let input = new Input2(css, opts); - let parser = new Parser(input); - try { - parser.parse(); - } catch (e) { - if (true) { - if (e.name === "CssSyntaxError" && opts && opts.from) { - if (/\.scss$/i.test(opts.from)) { - e.message += "\nYou tried to parse SCSS with the standard CSS parser; try again with the postcss-scss parser"; - } else if (/\.sass/i.test(opts.from)) { - e.message += "\nYou tried to parse Sass with the standard CSS parser; try again with the postcss-sass parser"; - } else if (/\.less$/i.test(opts.from)) { - e.message += "\nYou tried to parse Less with the standard CSS parser; try again with the postcss-less parser"; - } - } - } - throw e; - } - return parser.root; - } - module.exports = parse2; - parse2.default = parse2; - Container2.registerParse(parse2); - } -}); - -// node_modules/postcss/lib/lazy-result.js -var require_lazy_result = __commonJS({ - "node_modules/postcss/lib/lazy-result.js"(exports, module) { - "use strict"; - var { isClean, my } = require_symbols(); - var MapGenerator = require_map_generator(); - var stringify2 = require_stringify(); - var Container2 = require_container(); - var Document2 = require_document(); - var warnOnce = require_warn_once(); - var Result2 = require_result(); - var parse2 = require_parse(); - var Root2 = require_root(); - var TYPE_TO_CLASS_NAME = { - atrule: "AtRule", - comment: "Comment", - decl: "Declaration", - document: "Document", - root: "Root", - rule: "Rule" - }; - var PLUGIN_PROPS = { - AtRule: true, - AtRuleExit: true, - Comment: true, - CommentExit: true, - Declaration: true, - DeclarationExit: true, - Document: true, - DocumentExit: true, - Once: true, - OnceExit: true, - postcssPlugin: true, - prepare: true, - Root: true, - RootExit: true, - Rule: true, - RuleExit: true - }; - var NOT_VISITORS = { - Once: true, - postcssPlugin: true, - prepare: true - }; - var CHILDREN = 0; - function isPromise(obj) { - return typeof obj === "object" && typeof obj.then === "function"; - } - function getEvents(node) { - let key = false; - let type = TYPE_TO_CLASS_NAME[node.type]; - if (node.type === "decl") { - key = node.prop.toLowerCase(); - } else if (node.type === "atrule") { - key = node.name.toLowerCase(); - } - if (key && node.append) { - return [ - type, - type + "-" + key, - CHILDREN, - type + "Exit", - type + "Exit-" + key - ]; - } else if (key) { - return [type, type + "-" + key, type + "Exit", type + "Exit-" + key]; - } else if (node.append) { - return [type, CHILDREN, type + "Exit"]; - } else { - return [type, type + "Exit"]; - } - } - function toStack(node) { - let events; - if (node.type === "document") { - events = ["Document", CHILDREN, "DocumentExit"]; - } else if (node.type === "root") { - events = ["Root", CHILDREN, "RootExit"]; - } else { - events = getEvents(node); - } - return { - eventIndex: 0, - events, - iterator: 0, - node, - visitorIndex: 0, - visitors: [] - }; - } - function cleanMarks(node) { - node[isClean] = false; - if (node.nodes) node.nodes.forEach((i) => cleanMarks(i)); - return node; - } - var postcss2 = {}; - var LazyResult = class _LazyResult { - constructor(processor, css, opts) { - this.stringified = false; - this.processed = false; - let root2; - if (typeof css === "object" && css !== null && (css.type === "root" || css.type === "document")) { - root2 = cleanMarks(css); - } else if (css instanceof _LazyResult || css instanceof Result2) { - root2 = cleanMarks(css.root); - if (css.map) { - if (typeof opts.map === "undefined") opts.map = {}; - if (!opts.map.inline) opts.map.inline = false; - opts.map.prev = css.map; - } - } else { - let parser = parse2; - if (opts.syntax) parser = opts.syntax.parse; - if (opts.parser) parser = opts.parser; - if (parser.parse) parser = parser.parse; - try { - root2 = parser(css, opts); - } catch (error) { - this.processed = true; - this.error = error; - } - if (root2 && !root2[my]) { - Container2.rebuild(root2); - } - } - this.result = new Result2(processor, root2, opts); - this.helpers = { ...postcss2, postcss: postcss2, result: this.result }; - this.plugins = this.processor.plugins.map((plugin2) => { - if (typeof plugin2 === "object" && plugin2.prepare) { - return { ...plugin2, ...plugin2.prepare(this.result) }; - } else { - return plugin2; - } - }); - } - async() { - if (this.error) return Promise.reject(this.error); - if (this.processed) return Promise.resolve(this.result); - if (!this.processing) { - this.processing = this.runAsync(); - } - return this.processing; - } - catch(onRejected) { - return this.async().catch(onRejected); - } - finally(onFinally) { - return this.async().then(onFinally, onFinally); - } - getAsyncError() { - throw new Error("Use process(css).then(cb) to work with async plugins"); - } - handleError(error, node) { - let plugin2 = this.result.lastPlugin; - try { - if (node) node.addToError(error); - this.error = error; - if (error.name === "CssSyntaxError" && !error.plugin) { - error.plugin = plugin2.postcssPlugin; - error.setMessage(); - } else if (plugin2.postcssVersion) { - if (true) { - let pluginName = plugin2.postcssPlugin; - let pluginVer = plugin2.postcssVersion; - let runtimeVer = this.result.processor.version; - let a = pluginVer.split("."); - let b = runtimeVer.split("."); - if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { - console.error( - "Unknown error from PostCSS plugin. Your current PostCSS version is " + runtimeVer + ", but " + pluginName + " uses " + pluginVer + ". Perhaps this is the source of the error below." - ); - } - } - } - } catch (err) { - if (console && console.error) console.error(err); - } - return error; - } - prepareVisitors() { - this.listeners = {}; - let add = (plugin2, type, cb) => { - if (!this.listeners[type]) this.listeners[type] = []; - this.listeners[type].push([plugin2, cb]); - }; - for (let plugin2 of this.plugins) { - if (typeof plugin2 === "object") { - for (let event in plugin2) { - if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { - throw new Error( - `Unknown event ${event} in ${plugin2.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).` - ); - } - if (!NOT_VISITORS[event]) { - if (typeof plugin2[event] === "object") { - for (let filter in plugin2[event]) { - if (filter === "*") { - add(plugin2, event, plugin2[event][filter]); - } else { - add( - plugin2, - event + "-" + filter.toLowerCase(), - plugin2[event][filter] - ); - } - } - } else if (typeof plugin2[event] === "function") { - add(plugin2, event, plugin2[event]); - } - } - } - } - } - this.hasListener = Object.keys(this.listeners).length > 0; - } - async runAsync() { - this.plugin = 0; - for (let i = 0; i < this.plugins.length; i++) { - let plugin2 = this.plugins[i]; - let promise = this.runOnRoot(plugin2); - if (isPromise(promise)) { - try { - await promise; - } catch (error) { - throw this.handleError(error); - } - } - } - this.prepareVisitors(); - if (this.hasListener) { - let root2 = this.result.root; - while (!root2[isClean]) { - root2[isClean] = true; - let stack = [toStack(root2)]; - while (stack.length > 0) { - let promise = this.visitTick(stack); - if (isPromise(promise)) { - try { - await promise; - } catch (e) { - let node = stack[stack.length - 1].node; - throw this.handleError(e, node); - } - } - } - } - if (this.listeners.OnceExit) { - for (let [plugin2, visitor] of this.listeners.OnceExit) { - this.result.lastPlugin = plugin2; - try { - if (root2.type === "document") { - let roots = root2.nodes.map( - (subRoot) => visitor(subRoot, this.helpers) - ); - await Promise.all(roots); - } else { - await visitor(root2, this.helpers); - } - } catch (e) { - throw this.handleError(e); - } - } - } - } - this.processed = true; - return this.stringify(); - } - runOnRoot(plugin2) { - this.result.lastPlugin = plugin2; - try { - if (typeof plugin2 === "object" && plugin2.Once) { - if (this.result.root.type === "document") { - let roots = this.result.root.nodes.map( - (root2) => plugin2.Once(root2, this.helpers) - ); - if (isPromise(roots[0])) { - return Promise.all(roots); - } - return roots; - } - return plugin2.Once(this.result.root, this.helpers); - } else if (typeof plugin2 === "function") { - return plugin2(this.result.root, this.result); - } - } catch (error) { - throw this.handleError(error); - } - } - stringify() { - if (this.error) throw this.error; - if (this.stringified) return this.result; - this.stringified = true; - this.sync(); - let opts = this.result.opts; - let str = stringify2; - if (opts.syntax) str = opts.syntax.stringify; - if (opts.stringifier) str = opts.stringifier; - if (str.stringify) str = str.stringify; - let map = new MapGenerator(str, this.result.root, this.result.opts); - let data = map.generate(); - this.result.css = data[0]; - this.result.map = data[1]; - return this.result; - } - sync() { - if (this.error) throw this.error; - if (this.processed) return this.result; - this.processed = true; - if (this.processing) { - throw this.getAsyncError(); - } - for (let plugin2 of this.plugins) { - let promise = this.runOnRoot(plugin2); - if (isPromise(promise)) { - throw this.getAsyncError(); - } - } - this.prepareVisitors(); - if (this.hasListener) { - let root2 = this.result.root; - while (!root2[isClean]) { - root2[isClean] = true; - this.walkSync(root2); - } - if (this.listeners.OnceExit) { - if (root2.type === "document") { - for (let subRoot of root2.nodes) { - this.visitSync(this.listeners.OnceExit, subRoot); - } - } else { - this.visitSync(this.listeners.OnceExit, root2); - } - } - } - return this.result; - } - then(onFulfilled, onRejected) { - if (true) { - if (!("from" in this.opts)) { - warnOnce( - "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning." - ); - } - } - return this.async().then(onFulfilled, onRejected); - } - toString() { - return this.css; - } - visitSync(visitors, node) { - for (let [plugin2, visitor] of visitors) { - this.result.lastPlugin = plugin2; - let promise; - try { - promise = visitor(node, this.helpers); - } catch (e) { - throw this.handleError(e, node.proxyOf); - } - if (node.type !== "root" && node.type !== "document" && !node.parent) { - return true; - } - if (isPromise(promise)) { - throw this.getAsyncError(); - } - } - } - visitTick(stack) { - let visit = stack[stack.length - 1]; - let { node, visitors } = visit; - if (node.type !== "root" && node.type !== "document" && !node.parent) { - stack.pop(); - return; - } - if (visitors.length > 0 && visit.visitorIndex < visitors.length) { - let [plugin2, visitor] = visitors[visit.visitorIndex]; - visit.visitorIndex += 1; - if (visit.visitorIndex === visitors.length) { - visit.visitors = []; - visit.visitorIndex = 0; - } - this.result.lastPlugin = plugin2; - try { - return visitor(node.toProxy(), this.helpers); - } catch (e) { - throw this.handleError(e, node); - } - } - if (visit.iterator !== 0) { - let iterator = visit.iterator; - let child; - while (child = node.nodes[node.indexes[iterator]]) { - node.indexes[iterator] += 1; - if (!child[isClean]) { - child[isClean] = true; - stack.push(toStack(child)); - return; - } - } - visit.iterator = 0; - delete node.indexes[iterator]; - } - let events = visit.events; - while (visit.eventIndex < events.length) { - let event = events[visit.eventIndex]; - visit.eventIndex += 1; - if (event === CHILDREN) { - if (node.nodes && node.nodes.length) { - node[isClean] = true; - visit.iterator = node.getIterator(); - } - return; - } else if (this.listeners[event]) { - visit.visitors = this.listeners[event]; - return; - } - } - stack.pop(); - } - walkSync(node) { - node[isClean] = true; - let events = getEvents(node); - for (let event of events) { - if (event === CHILDREN) { - if (node.nodes) { - node.each((child) => { - if (!child[isClean]) this.walkSync(child); - }); - } - } else { - let visitors = this.listeners[event]; - if (visitors) { - if (this.visitSync(visitors, node.toProxy())) return; - } - } - } - } - warnings() { - return this.sync().warnings(); - } - get content() { - return this.stringify().content; - } - get css() { - return this.stringify().css; - } - get map() { - return this.stringify().map; - } - get messages() { - return this.sync().messages; - } - get opts() { - return this.result.opts; - } - get processor() { - return this.result.processor; - } - get root() { - return this.sync().root; - } - get [Symbol.toStringTag]() { - return "LazyResult"; - } - }; - LazyResult.registerPostcss = (dependant) => { - postcss2 = dependant; - }; - module.exports = LazyResult; - LazyResult.default = LazyResult; - Root2.registerLazyResult(LazyResult); - Document2.registerLazyResult(LazyResult); - } -}); - -// node_modules/postcss/lib/no-work-result.js -var require_no_work_result = __commonJS({ - "node_modules/postcss/lib/no-work-result.js"(exports, module) { - "use strict"; - var MapGenerator = require_map_generator(); - var stringify2 = require_stringify(); - var warnOnce = require_warn_once(); - var parse2 = require_parse(); - var Result2 = require_result(); - var NoWorkResult = class { - constructor(processor, css, opts) { - css = css.toString(); - this.stringified = false; - this._processor = processor; - this._css = css; - this._opts = opts; - this._map = void 0; - let root2; - let str = stringify2; - this.result = new Result2(this._processor, root2, this._opts); - this.result.css = css; - let self = this; - Object.defineProperty(this.result, "root", { - get() { - return self.root; - } - }); - let map = new MapGenerator(str, root2, this._opts, css); - if (map.isMap()) { - let [generatedCSS, generatedMap] = map.generate(); - if (generatedCSS) { - this.result.css = generatedCSS; - } - if (generatedMap) { - this.result.map = generatedMap; - } - } else { - map.clearAnnotation(); - this.result.css = map.css; - } - } - async() { - if (this.error) return Promise.reject(this.error); - return Promise.resolve(this.result); - } - catch(onRejected) { - return this.async().catch(onRejected); - } - finally(onFinally) { - return this.async().then(onFinally, onFinally); - } - sync() { - if (this.error) throw this.error; - return this.result; - } - then(onFulfilled, onRejected) { - if (true) { - if (!("from" in this._opts)) { - warnOnce( - "Without `from` option PostCSS could generate wrong source map and will not find Browserslist config. Set it to CSS file path or to `undefined` to prevent this warning." - ); - } - } - return this.async().then(onFulfilled, onRejected); - } - toString() { - return this._css; - } - warnings() { - return []; - } - get content() { - return this.result.css; - } - get css() { - return this.result.css; - } - get map() { - return this.result.map; - } - get messages() { - return []; - } - get opts() { - return this.result.opts; - } - get processor() { - return this.result.processor; - } - get root() { - if (this._root) { - return this._root; - } - let root2; - let parser = parse2; - try { - root2 = parser(this._css, this._opts); - } catch (error) { - this.error = error; - } - if (this.error) { - throw this.error; - } else { - this._root = root2; - return root2; - } - } - get [Symbol.toStringTag]() { - return "NoWorkResult"; - } - }; - module.exports = NoWorkResult; - NoWorkResult.default = NoWorkResult; - } -}); - -// node_modules/postcss/lib/processor.js -var require_processor = __commonJS({ - "node_modules/postcss/lib/processor.js"(exports, module) { - "use strict"; - var NoWorkResult = require_no_work_result(); - var LazyResult = require_lazy_result(); - var Document2 = require_document(); - var Root2 = require_root(); - var Processor2 = class { - constructor(plugins = []) { - this.version = "8.4.40"; - this.plugins = this.normalize(plugins); - } - normalize(plugins) { - let normalized = []; - for (let i of plugins) { - if (i.postcss === true) { - i = i(); - } else if (i.postcss) { - i = i.postcss; - } - if (typeof i === "object" && Array.isArray(i.plugins)) { - normalized = normalized.concat(i.plugins); - } else if (typeof i === "object" && i.postcssPlugin) { - normalized.push(i); - } else if (typeof i === "function") { - normalized.push(i); - } else if (typeof i === "object" && (i.parse || i.stringify)) { - if (true) { - throw new Error( - "PostCSS syntaxes cannot be used as plugins. Instead, please use one of the syntax/parser/stringifier options as outlined in your PostCSS runner documentation." - ); - } - } else { - throw new Error(i + " is not a PostCSS plugin"); - } - } - return normalized; - } - process(css, opts = {}) { - if (!this.plugins.length && !opts.parser && !opts.stringifier && !opts.syntax) { - return new NoWorkResult(this, css, opts); - } else { - return new LazyResult(this, css, opts); - } - } - use(plugin2) { - this.plugins = this.plugins.concat(this.normalize([plugin2])); - return this; - } - }; - module.exports = Processor2; - Processor2.default = Processor2; - Root2.registerProcessor(Processor2); - Document2.registerProcessor(Processor2); - } -}); - -// node_modules/postcss/lib/fromJSON.js -var require_fromJSON = __commonJS({ - "node_modules/postcss/lib/fromJSON.js"(exports, module) { - "use strict"; - var Declaration2 = require_declaration(); - var PreviousMap = require_previous_map(); - var Comment2 = require_comment(); - var AtRule2 = require_at_rule(); - var Input2 = require_input(); - var Root2 = require_root(); - var Rule2 = require_rule(); - function fromJSON2(json, inputs) { - if (Array.isArray(json)) return json.map((n) => fromJSON2(n)); - let { inputs: ownInputs, ...defaults } = json; - if (ownInputs) { - inputs = []; - for (let input of ownInputs) { - let inputHydrated = { ...input, __proto__: Input2.prototype }; - if (inputHydrated.map) { - inputHydrated.map = { - ...inputHydrated.map, - __proto__: PreviousMap.prototype - }; - } - inputs.push(inputHydrated); - } - } - if (defaults.nodes) { - defaults.nodes = json.nodes.map((n) => fromJSON2(n, inputs)); - } - if (defaults.source) { - let { inputId, ...source } = defaults.source; - defaults.source = source; - if (inputId != null) { - defaults.source.input = inputs[inputId]; - } - } - if (defaults.type === "root") { - return new Root2(defaults); - } else if (defaults.type === "decl") { - return new Declaration2(defaults); - } else if (defaults.type === "rule") { - return new Rule2(defaults); - } else if (defaults.type === "comment") { - return new Comment2(defaults); - } else if (defaults.type === "atrule") { - return new AtRule2(defaults); - } else { - throw new Error("Unknown node type: " + json.type); - } - } - module.exports = fromJSON2; - fromJSON2.default = fromJSON2; - } -}); - -// node_modules/postcss/lib/postcss.js -var require_postcss = __commonJS({ - "node_modules/postcss/lib/postcss.js"(exports, module) { - "use strict"; - var CssSyntaxError2 = require_css_syntax_error(); - var Declaration2 = require_declaration(); - var LazyResult = require_lazy_result(); - var Container2 = require_container(); - var Processor2 = require_processor(); - var stringify2 = require_stringify(); - var fromJSON2 = require_fromJSON(); - var Document2 = require_document(); - var Warning2 = require_warning(); - var Comment2 = require_comment(); - var AtRule2 = require_at_rule(); - var Result2 = require_result(); - var Input2 = require_input(); - var parse2 = require_parse(); - var list2 = require_list(); - var Rule2 = require_rule(); - var Root2 = require_root(); - var Node2 = require_node(); - function postcss2(...plugins) { - if (plugins.length === 1 && Array.isArray(plugins[0])) { - plugins = plugins[0]; - } - return new Processor2(plugins); - } - postcss2.plugin = function plugin2(name, initializer) { - let warningPrinted = false; - function creator(...args) { - if (console && console.warn && !warningPrinted) { - warningPrinted = true; - console.warn( - name + ": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration" - ); - if (process.env.LANG && process.env.LANG.startsWith("cn")) { - console.warn( - name + ": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226" - ); - } - } - let transformer = initializer(...args); - transformer.postcssPlugin = name; - transformer.postcssVersion = new Processor2().version; - return transformer; - } - let cache; - Object.defineProperty(creator, "postcss", { - get() { - if (!cache) cache = creator(); - return cache; - } - }); - creator.process = function(css, processOpts, pluginOpts) { - return postcss2([creator(pluginOpts)]).process(css, processOpts); - }; - return creator; - }; - postcss2.stringify = stringify2; - postcss2.parse = parse2; - postcss2.fromJSON = fromJSON2; - postcss2.list = list2; - postcss2.comment = (defaults) => new Comment2(defaults); - postcss2.atRule = (defaults) => new AtRule2(defaults); - postcss2.decl = (defaults) => new Declaration2(defaults); - postcss2.rule = (defaults) => new Rule2(defaults); - postcss2.root = (defaults) => new Root2(defaults); - postcss2.document = (defaults) => new Document2(defaults); - postcss2.CssSyntaxError = CssSyntaxError2; - postcss2.Declaration = Declaration2; - postcss2.Container = Container2; - postcss2.Processor = Processor2; - postcss2.Document = Document2; - postcss2.Comment = Comment2; - postcss2.Warning = Warning2; - postcss2.AtRule = AtRule2; - postcss2.Result = Result2; - postcss2.Input = Input2; - postcss2.Rule = Rule2; - postcss2.Root = Root2; - postcss2.Node = Node2; - LazyResult.registerPostcss(postcss2); - module.exports = postcss2; - postcss2.default = postcss2; - } -}); - -// node_modules/postcss/lib/postcss.mjs -var import_postcss = __toESM(require_postcss(), 1); -var postcss_default = import_postcss.default; -var stringify = import_postcss.default.stringify; -var fromJSON = import_postcss.default.fromJSON; -var plugin = import_postcss.default.plugin; -var parse = import_postcss.default.parse; -var list = import_postcss.default.list; -var document = import_postcss.default.document; -var comment = import_postcss.default.comment; -var atRule = import_postcss.default.atRule; -var rule = import_postcss.default.rule; -var decl = import_postcss.default.decl; -var root = import_postcss.default.root; -var CssSyntaxError = import_postcss.default.CssSyntaxError; -var Declaration = import_postcss.default.Declaration; -var Container = import_postcss.default.Container; -var Processor = import_postcss.default.Processor; -var Document = import_postcss.default.Document; -var Comment = import_postcss.default.Comment; -var Warning = import_postcss.default.Warning; -var AtRule = import_postcss.default.AtRule; -var Result = import_postcss.default.Result; -var Input = import_postcss.default.Input; -var Rule = import_postcss.default.Rule; -var Root = import_postcss.default.Root; -var Node = import_postcss.default.Node; - -export { - postcss_default, - stringify, - fromJSON, - plugin, - parse, - list, - document, - comment, - atRule, - rule, - decl, - root, - CssSyntaxError, - Declaration, - Container, - Processor, - Document, - Comment, - Warning, - AtRule, - Result, - Input, - Rule, - Root, - Node -}; -//# sourceMappingURL=chunk-7522MNHT.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-7522MNHT.js.map b/site/game/node_modules/.vite/deps/chunk-7522MNHT.js.map deleted file mode 100644 index 3865807..0000000 --- a/site/game/node_modules/.vite/deps/chunk-7522MNHT.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../picocolors/picocolors.browser.js", "../../postcss/lib/css-syntax-error.js", "../../postcss/lib/symbols.js", "../../postcss/lib/stringifier.js", "../../postcss/lib/stringify.js", "../../postcss/lib/node.js", "../../postcss/lib/declaration.js", "browser-external:source-map-js", "../../nanoid/non-secure/index.cjs", "../../postcss/lib/previous-map.js", "../../postcss/lib/input.js", "../../postcss/lib/map-generator.js", "../../postcss/lib/comment.js", "../../postcss/lib/container.js", "../../postcss/lib/document.js", "../../postcss/lib/warn-once.js", "../../postcss/lib/warning.js", "../../postcss/lib/result.js", "../../postcss/lib/tokenize.js", "../../postcss/lib/at-rule.js", "../../postcss/lib/root.js", "../../postcss/lib/list.js", "../../postcss/lib/rule.js", "../../postcss/lib/parser.js", "../../postcss/lib/parse.js", "../../postcss/lib/lazy-result.js", "../../postcss/lib/no-work-result.js", "../../postcss/lib/processor.js", "../../postcss/lib/fromJSON.js", "../../postcss/lib/postcss.js", "../../postcss/lib/postcss.mjs"], - "sourcesContent": ["var x=String;\nvar create=function() {return {isColorSupported:false,reset:x,bold:x,dim:x,italic:x,underline:x,inverse:x,hidden:x,strikethrough:x,black:x,red:x,green:x,yellow:x,blue:x,magenta:x,cyan:x,white:x,gray:x,bgBlack:x,bgRed:x,bgGreen:x,bgYellow:x,bgBlue:x,bgMagenta:x,bgCyan:x,bgWhite:x}};\nmodule.exports=create();\nmodule.exports.createColors = create;\n", "'use strict'\n\nlet pico = require('picocolors')\n\nlet terminalHighlight = require('./terminal-highlight')\n\nclass CssSyntaxError extends Error {\n constructor(message, line, column, source, file, plugin) {\n super(message)\n this.name = 'CssSyntaxError'\n this.reason = message\n\n if (file) {\n this.file = file\n }\n if (source) {\n this.source = source\n }\n if (plugin) {\n this.plugin = plugin\n }\n if (typeof line !== 'undefined' && typeof column !== 'undefined') {\n if (typeof line === 'number') {\n this.line = line\n this.column = column\n } else {\n this.line = line.line\n this.column = line.column\n this.endLine = column.line\n this.endColumn = column.column\n }\n }\n\n this.setMessage()\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CssSyntaxError)\n }\n }\n\n setMessage() {\n this.message = this.plugin ? this.plugin + ': ' : ''\n this.message += this.file ? this.file : ''\n if (typeof this.line !== 'undefined') {\n this.message += ':' + this.line + ':' + this.column\n }\n this.message += ': ' + this.reason\n }\n\n showSourceCode(color) {\n if (!this.source) return ''\n\n let css = this.source\n if (color == null) color = pico.isColorSupported\n if (terminalHighlight) {\n if (color) css = terminalHighlight(css)\n }\n\n let lines = css.split(/\\r?\\n/)\n let start = Math.max(this.line - 3, 0)\n let end = Math.min(this.line + 2, lines.length)\n\n let maxWidth = String(end).length\n\n let mark, aside\n if (color) {\n let { bold, gray, red } = pico.createColors(true)\n mark = text => bold(red(text))\n aside = text => gray(text)\n } else {\n mark = aside = str => str\n }\n\n return lines\n .slice(start, end)\n .map((line, index) => {\n let number = start + 1 + index\n let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | '\n if (number === this.line) {\n let spacing =\n aside(gutter.replace(/\\d/g, ' ')) +\n line.slice(0, this.column - 1).replace(/[^\\t]/g, ' ')\n return mark('>') + aside(gutter) + line + '\\n ' + spacing + mark('^')\n }\n return ' ' + aside(gutter) + line\n })\n .join('\\n')\n }\n\n toString() {\n let code = this.showSourceCode()\n if (code) {\n code = '\\n\\n' + code + '\\n'\n }\n return this.name + ': ' + this.message + code\n }\n}\n\nmodule.exports = CssSyntaxError\nCssSyntaxError.default = CssSyntaxError\n", "'use strict'\n\nmodule.exports.isClean = Symbol('isClean')\n\nmodule.exports.my = Symbol('my')\n", "'use strict'\n\nconst DEFAULT_RAW = {\n after: '\\n',\n beforeClose: '\\n',\n beforeComment: '\\n',\n beforeDecl: '\\n',\n beforeOpen: ' ',\n beforeRule: '\\n',\n colon: ': ',\n commentLeft: ' ',\n commentRight: ' ',\n emptyBody: '',\n indent: ' ',\n semicolon: false\n}\n\nfunction capitalize(str) {\n return str[0].toUpperCase() + str.slice(1)\n}\n\nclass Stringifier {\n constructor(builder) {\n this.builder = builder\n }\n\n atrule(node, semicolon) {\n let name = '@' + node.name\n let params = node.params ? this.rawValue(node, 'params') : ''\n\n if (typeof node.raws.afterName !== 'undefined') {\n name += node.raws.afterName\n } else if (params) {\n name += ' '\n }\n\n if (node.nodes) {\n this.block(node, name + params)\n } else {\n let end = (node.raws.between || '') + (semicolon ? ';' : '')\n this.builder(name + params + end, node)\n }\n }\n\n beforeAfter(node, detect) {\n let value\n if (node.type === 'decl') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (node.type === 'comment') {\n value = this.raw(node, null, 'beforeComment')\n } else if (detect === 'before') {\n value = this.raw(node, null, 'beforeRule')\n } else {\n value = this.raw(node, null, 'beforeClose')\n }\n\n let buf = node.parent\n let depth = 0\n while (buf && buf.type !== 'root') {\n depth += 1\n buf = buf.parent\n }\n\n if (value.includes('\\n')) {\n let indent = this.raw(node, null, 'indent')\n if (indent.length) {\n for (let step = 0; step < depth; step++) value += indent\n }\n }\n\n return value\n }\n\n block(node, start) {\n let between = this.raw(node, 'between', 'beforeOpen')\n this.builder(start + between + '{', node, 'start')\n\n let after\n if (node.nodes && node.nodes.length) {\n this.body(node)\n after = this.raw(node, 'after')\n } else {\n after = this.raw(node, 'after', 'emptyBody')\n }\n\n if (after) this.builder(after)\n this.builder('}', node, 'end')\n }\n\n body(node) {\n let last = node.nodes.length - 1\n while (last > 0) {\n if (node.nodes[last].type !== 'comment') break\n last -= 1\n }\n\n let semicolon = this.raw(node, 'semicolon')\n for (let i = 0; i < node.nodes.length; i++) {\n let child = node.nodes[i]\n let before = this.raw(child, 'before')\n if (before) this.builder(before)\n this.stringify(child, last !== i || semicolon)\n }\n }\n\n comment(node) {\n let left = this.raw(node, 'left', 'commentLeft')\n let right = this.raw(node, 'right', 'commentRight')\n this.builder('/*' + left + node.text + right + '*/', node)\n }\n\n decl(node, semicolon) {\n let between = this.raw(node, 'between', 'colon')\n let string = node.prop + between + this.rawValue(node, 'value')\n\n if (node.important) {\n string += node.raws.important || ' !important'\n }\n\n if (semicolon) string += ';'\n this.builder(string, node)\n }\n\n document(node) {\n this.body(node)\n }\n\n raw(node, own, detect) {\n let value\n if (!detect) detect = own\n\n // Already had\n if (own) {\n value = node.raws[own]\n if (typeof value !== 'undefined') return value\n }\n\n let parent = node.parent\n\n if (detect === 'before') {\n // Hack for first rule in CSS\n if (!parent || (parent.type === 'root' && parent.first === node)) {\n return ''\n }\n\n // `root` nodes in `document` should use only their own raws\n if (parent && parent.type === 'document') {\n return ''\n }\n }\n\n // Floating child without parent\n if (!parent) return DEFAULT_RAW[detect]\n\n // Detect style by other nodes\n let root = node.root()\n if (!root.rawCache) root.rawCache = {}\n if (typeof root.rawCache[detect] !== 'undefined') {\n return root.rawCache[detect]\n }\n\n if (detect === 'before' || detect === 'after') {\n return this.beforeAfter(node, detect)\n } else {\n let method = 'raw' + capitalize(detect)\n if (this[method]) {\n value = this[method](root, node)\n } else {\n root.walk(i => {\n value = i.raws[own]\n if (typeof value !== 'undefined') return false\n })\n }\n }\n\n if (typeof value === 'undefined') value = DEFAULT_RAW[detect]\n\n root.rawCache[detect] = value\n return value\n }\n\n rawBeforeClose(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length > 0) {\n if (typeof i.raws.after !== 'undefined') {\n value = i.raws.after\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawBeforeComment(root, node) {\n let value\n root.walkComments(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeDecl')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeDecl(root, node) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n })\n if (typeof value === 'undefined') {\n value = this.raw(node, null, 'beforeRule')\n } else if (value) {\n value = value.replace(/\\S/g, '')\n }\n return value\n }\n\n rawBeforeOpen(root) {\n let value\n root.walk(i => {\n if (i.type !== 'decl') {\n value = i.raws.between\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawBeforeRule(root) {\n let value\n root.walk(i => {\n if (i.nodes && (i.parent !== root || root.first !== i)) {\n if (typeof i.raws.before !== 'undefined') {\n value = i.raws.before\n if (value.includes('\\n')) {\n value = value.replace(/[^\\n]+$/, '')\n }\n return false\n }\n }\n })\n if (value) value = value.replace(/\\S/g, '')\n return value\n }\n\n rawColon(root) {\n let value\n root.walkDecls(i => {\n if (typeof i.raws.between !== 'undefined') {\n value = i.raws.between.replace(/[^\\s:]/g, '')\n return false\n }\n })\n return value\n }\n\n rawEmptyBody(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length === 0) {\n value = i.raws.after\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawIndent(root) {\n if (root.raws.indent) return root.raws.indent\n let value\n root.walk(i => {\n let p = i.parent\n if (p && p !== root && p.parent && p.parent === root) {\n if (typeof i.raws.before !== 'undefined') {\n let parts = i.raws.before.split('\\n')\n value = parts[parts.length - 1]\n value = value.replace(/\\S/g, '')\n return false\n }\n }\n })\n return value\n }\n\n rawSemicolon(root) {\n let value\n root.walk(i => {\n if (i.nodes && i.nodes.length && i.last.type === 'decl') {\n value = i.raws.semicolon\n if (typeof value !== 'undefined') return false\n }\n })\n return value\n }\n\n rawValue(node, prop) {\n let value = node[prop]\n let raw = node.raws[prop]\n if (raw && raw.value === value) {\n return raw.raw\n }\n\n return value\n }\n\n root(node) {\n this.body(node)\n if (node.raws.after) this.builder(node.raws.after)\n }\n\n rule(node) {\n this.block(node, this.rawValue(node, 'selector'))\n if (node.raws.ownSemicolon) {\n this.builder(node.raws.ownSemicolon, node, 'end')\n }\n }\n\n stringify(node, semicolon) {\n /* c8 ignore start */\n if (!this[node.type]) {\n throw new Error(\n 'Unknown AST node type ' +\n node.type +\n '. ' +\n 'Maybe you need to change PostCSS stringifier.'\n )\n }\n /* c8 ignore stop */\n this[node.type](node, semicolon)\n }\n}\n\nmodule.exports = Stringifier\nStringifier.default = Stringifier\n", "'use strict'\n\nlet Stringifier = require('./stringifier')\n\nfunction stringify(node, builder) {\n let str = new Stringifier(builder)\n str.stringify(node)\n}\n\nmodule.exports = stringify\nstringify.default = stringify\n", "'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet CssSyntaxError = require('./css-syntax-error')\nlet Stringifier = require('./stringifier')\nlet stringify = require('./stringify')\n\nfunction cloneNode(obj, parent) {\n let cloned = new obj.constructor()\n\n for (let i in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, i)) {\n /* c8 ignore next 2 */\n continue\n }\n if (i === 'proxyCache') continue\n let value = obj[i]\n let type = typeof value\n\n if (i === 'parent' && type === 'object') {\n if (parent) cloned[i] = parent\n } else if (i === 'source') {\n cloned[i] = value\n } else if (Array.isArray(value)) {\n cloned[i] = value.map(j => cloneNode(j, cloned))\n } else {\n if (type === 'object' && value !== null) value = cloneNode(value)\n cloned[i] = value\n }\n }\n\n return cloned\n}\n\nclass Node {\n constructor(defaults = {}) {\n this.raws = {}\n this[isClean] = false\n this[my] = true\n\n for (let name in defaults) {\n if (name === 'nodes') {\n this.nodes = []\n for (let node of defaults[name]) {\n if (typeof node.clone === 'function') {\n this.append(node.clone())\n } else {\n this.append(node)\n }\n }\n } else {\n this[name] = defaults[name]\n }\n }\n }\n\n addToError(error) {\n error.postcssNode = this\n if (error.stack && this.source && /\\n\\s{4}at /.test(error.stack)) {\n let s = this.source\n error.stack = error.stack.replace(\n /\\n\\s{4}at /,\n `$&${s.input.from}:${s.start.line}:${s.start.column}$&`\n )\n }\n return error\n }\n\n after(add) {\n this.parent.insertAfter(this, add)\n return this\n }\n\n assign(overrides = {}) {\n for (let name in overrides) {\n this[name] = overrides[name]\n }\n return this\n }\n\n before(add) {\n this.parent.insertBefore(this, add)\n return this\n }\n\n cleanRaws(keepBetween) {\n delete this.raws.before\n delete this.raws.after\n if (!keepBetween) delete this.raws.between\n }\n\n clone(overrides = {}) {\n let cloned = cloneNode(this)\n for (let name in overrides) {\n cloned[name] = overrides[name]\n }\n return cloned\n }\n\n cloneAfter(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertAfter(this, cloned)\n return cloned\n }\n\n cloneBefore(overrides = {}) {\n let cloned = this.clone(overrides)\n this.parent.insertBefore(this, cloned)\n return cloned\n }\n\n error(message, opts = {}) {\n if (this.source) {\n let { end, start } = this.rangeBy(opts)\n return this.source.input.error(\n message,\n { column: start.column, line: start.line },\n { column: end.column, line: end.line },\n opts\n )\n }\n return new CssSyntaxError(message)\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (\n prop === 'prop' ||\n prop === 'value' ||\n prop === 'name' ||\n prop === 'params' ||\n prop === 'important' ||\n /* c8 ignore next */\n prop === 'text'\n ) {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n markDirty() {\n if (this[isClean]) {\n this[isClean] = false\n let next = this\n while ((next = next.parent)) {\n next[isClean] = false\n }\n }\n }\n\n next() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index + 1]\n }\n\n positionBy(opts, stringRepresentation) {\n let pos = this.source.start\n if (opts.index) {\n pos = this.positionInside(opts.index, stringRepresentation)\n } else if (opts.word) {\n stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) pos = this.positionInside(index, stringRepresentation)\n }\n return pos\n }\n\n positionInside(index, stringRepresentation) {\n let string = stringRepresentation || this.toString()\n let column = this.source.start.column\n let line = this.source.start.line\n\n for (let i = 0; i < index; i++) {\n if (string[i] === '\\n') {\n column = 1\n line += 1\n } else {\n column += 1\n }\n }\n\n return { column, line }\n }\n\n prev() {\n if (!this.parent) return undefined\n let index = this.parent.index(this)\n return this.parent.nodes[index - 1]\n }\n\n rangeBy(opts) {\n let start = {\n column: this.source.start.column,\n line: this.source.start.line\n }\n let end = this.source.end\n ? {\n column: this.source.end.column + 1,\n line: this.source.end.line\n }\n : {\n column: start.column + 1,\n line: start.line\n }\n\n if (opts.word) {\n let stringRepresentation = this.toString()\n let index = stringRepresentation.indexOf(opts.word)\n if (index !== -1) {\n start = this.positionInside(index, stringRepresentation)\n end = this.positionInside(index + opts.word.length, stringRepresentation)\n }\n } else {\n if (opts.start) {\n start = {\n column: opts.start.column,\n line: opts.start.line\n }\n } else if (opts.index) {\n start = this.positionInside(opts.index)\n }\n\n if (opts.end) {\n end = {\n column: opts.end.column,\n line: opts.end.line\n }\n } else if (typeof opts.endIndex === 'number') {\n end = this.positionInside(opts.endIndex)\n } else if (opts.index) {\n end = this.positionInside(opts.index + 1)\n }\n }\n\n if (\n end.line < start.line ||\n (end.line === start.line && end.column <= start.column)\n ) {\n end = { column: start.column + 1, line: start.line }\n }\n\n return { end, start }\n }\n\n raw(prop, defaultType) {\n let str = new Stringifier()\n return str.raw(this, prop, defaultType)\n }\n\n remove() {\n if (this.parent) {\n this.parent.removeChild(this)\n }\n this.parent = undefined\n return this\n }\n\n replaceWith(...nodes) {\n if (this.parent) {\n let bookmark = this\n let foundSelf = false\n for (let node of nodes) {\n if (node === this) {\n foundSelf = true\n } else if (foundSelf) {\n this.parent.insertAfter(bookmark, node)\n bookmark = node\n } else {\n this.parent.insertBefore(bookmark, node)\n }\n }\n\n if (!foundSelf) {\n this.remove()\n }\n }\n\n return this\n }\n\n root() {\n let result = this\n while (result.parent && result.parent.type !== 'document') {\n result = result.parent\n }\n return result\n }\n\n toJSON(_, inputs) {\n let fixed = {}\n let emitInputs = inputs == null\n inputs = inputs || new Map()\n let inputsNextIndex = 0\n\n for (let name in this) {\n if (!Object.prototype.hasOwnProperty.call(this, name)) {\n /* c8 ignore next 2 */\n continue\n }\n if (name === 'parent' || name === 'proxyCache') continue\n let value = this[name]\n\n if (Array.isArray(value)) {\n fixed[name] = value.map(i => {\n if (typeof i === 'object' && i.toJSON) {\n return i.toJSON(null, inputs)\n } else {\n return i\n }\n })\n } else if (typeof value === 'object' && value.toJSON) {\n fixed[name] = value.toJSON(null, inputs)\n } else if (name === 'source') {\n let inputId = inputs.get(value.input)\n if (inputId == null) {\n inputId = inputsNextIndex\n inputs.set(value.input, inputsNextIndex)\n inputsNextIndex++\n }\n fixed[name] = {\n end: value.end,\n inputId,\n start: value.start\n }\n } else {\n fixed[name] = value\n }\n }\n\n if (emitInputs) {\n fixed.inputs = [...inputs.keys()].map(input => input.toJSON())\n }\n\n return fixed\n }\n\n toProxy() {\n if (!this.proxyCache) {\n this.proxyCache = new Proxy(this, this.getProxyProcessor())\n }\n return this.proxyCache\n }\n\n toString(stringifier = stringify) {\n if (stringifier.stringify) stringifier = stringifier.stringify\n let result = ''\n stringifier(this, i => {\n result += i\n })\n return result\n }\n\n warn(result, text, opts) {\n let data = { node: this }\n for (let i in opts) data[i] = opts[i]\n return result.warn(text, data)\n }\n\n get proxyOf() {\n return this\n }\n}\n\nmodule.exports = Node\nNode.default = Node\n", "'use strict'\n\nlet Node = require('./node')\n\nclass Declaration extends Node {\n constructor(defaults) {\n if (\n defaults &&\n typeof defaults.value !== 'undefined' &&\n typeof defaults.value !== 'string'\n ) {\n defaults = { ...defaults, value: String(defaults.value) }\n }\n super(defaults)\n this.type = 'decl'\n }\n\n get variable() {\n return this.prop.startsWith('--') || this.prop[0] === '$'\n }\n}\n\nmodule.exports = Declaration\nDeclaration.default = Declaration\n", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"source-map-js\" has been externalized for browser compatibility. Cannot access \"source-map-js.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n", "'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { existsSync, readFileSync } = require('fs')\nlet { dirname, join } = require('path')\n\nfunction fromBase64(str) {\n if (Buffer) {\n return Buffer.from(str, 'base64').toString()\n } else {\n /* c8 ignore next 2 */\n return window.atob(str)\n }\n}\n\nclass PreviousMap {\n constructor(css, opts) {\n if (opts.map === false) return\n this.loadAnnotation(css)\n this.inline = this.startWith(this.annotation, 'data:')\n\n let prev = opts.map ? opts.map.prev : undefined\n let text = this.loadMap(opts.from, prev)\n if (!this.mapFile && opts.from) {\n this.mapFile = opts.from\n }\n if (this.mapFile) this.root = dirname(this.mapFile)\n if (text) this.text = text\n }\n\n consumer() {\n if (!this.consumerCache) {\n this.consumerCache = new SourceMapConsumer(this.text)\n }\n return this.consumerCache\n }\n\n decodeInline(text) {\n let baseCharsetUri = /^data:application\\/json;charset=utf-?8;base64,/\n let baseUri = /^data:application\\/json;base64,/\n let charsetUri = /^data:application\\/json;charset=utf-?8,/\n let uri = /^data:application\\/json,/\n\n if (charsetUri.test(text) || uri.test(text)) {\n return decodeURIComponent(text.substr(RegExp.lastMatch.length))\n }\n\n if (baseCharsetUri.test(text) || baseUri.test(text)) {\n return fromBase64(text.substr(RegExp.lastMatch.length))\n }\n\n let encoding = text.match(/data:application\\/json;([^,]+),/)[1]\n throw new Error('Unsupported source map encoding ' + encoding)\n }\n\n getAnnotationURL(sourceMapString) {\n return sourceMapString.replace(/^\\/\\*\\s*# sourceMappingURL=/, '').trim()\n }\n\n isMap(map) {\n if (typeof map !== 'object') return false\n return (\n typeof map.mappings === 'string' ||\n typeof map._mappings === 'string' ||\n Array.isArray(map.sections)\n )\n }\n\n loadAnnotation(css) {\n let comments = css.match(/\\/\\*\\s*# sourceMappingURL=/gm)\n if (!comments) return\n\n // sourceMappingURLs from comments, strings, etc.\n let start = css.lastIndexOf(comments.pop())\n let end = css.indexOf('*/', start)\n\n if (start > -1 && end > -1) {\n // Locate the last sourceMappingURL to avoid pickin\n this.annotation = this.getAnnotationURL(css.substring(start, end))\n }\n }\n\n loadFile(path) {\n this.root = dirname(path)\n if (existsSync(path)) {\n this.mapFile = path\n return readFileSync(path, 'utf-8').toString().trim()\n }\n }\n\n loadMap(file, prev) {\n if (prev === false) return false\n\n if (prev) {\n if (typeof prev === 'string') {\n return prev\n } else if (typeof prev === 'function') {\n let prevPath = prev(file)\n if (prevPath) {\n let map = this.loadFile(prevPath)\n if (!map) {\n throw new Error(\n 'Unable to load previous source map: ' + prevPath.toString()\n )\n }\n return map\n }\n } else if (prev instanceof SourceMapConsumer) {\n return SourceMapGenerator.fromSourceMap(prev).toString()\n } else if (prev instanceof SourceMapGenerator) {\n return prev.toString()\n } else if (this.isMap(prev)) {\n return JSON.stringify(prev)\n } else {\n throw new Error(\n 'Unsupported previous source map format: ' + prev.toString()\n )\n }\n } else if (this.inline) {\n return this.decodeInline(this.annotation)\n } else if (this.annotation) {\n let map = this.annotation\n if (file) map = join(dirname(file), map)\n return this.loadFile(map)\n }\n }\n\n startWith(string, start) {\n if (!string) return false\n return string.substr(0, start.length) === start\n }\n\n withContent() {\n return !!(\n this.consumer().sourcesContent &&\n this.consumer().sourcesContent.length > 0\n )\n }\n}\n\nmodule.exports = PreviousMap\nPreviousMap.default = PreviousMap\n", "'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { fileURLToPath, pathToFileURL } = require('url')\nlet { isAbsolute, resolve } = require('path')\nlet { nanoid } = require('nanoid/non-secure')\n\nlet terminalHighlight = require('./terminal-highlight')\nlet CssSyntaxError = require('./css-syntax-error')\nlet PreviousMap = require('./previous-map')\n\nlet fromOffsetCache = Symbol('fromOffsetCache')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(resolve && isAbsolute)\n\nclass Input {\n constructor(css, opts = {}) {\n if (\n css === null ||\n typeof css === 'undefined' ||\n (typeof css === 'object' && !css.toString)\n ) {\n throw new Error(`PostCSS received ${css} instead of CSS string`)\n }\n\n this.css = css.toString()\n\n if (this.css[0] === '\\uFEFF' || this.css[0] === '\\uFFFE') {\n this.hasBOM = true\n this.css = this.css.slice(1)\n } else {\n this.hasBOM = false\n }\n\n if (opts.from) {\n if (\n !pathAvailable ||\n /^\\w+:\\/\\//.test(opts.from) ||\n isAbsolute(opts.from)\n ) {\n this.file = opts.from\n } else {\n this.file = resolve(opts.from)\n }\n }\n\n if (pathAvailable && sourceMapAvailable) {\n let map = new PreviousMap(this.css, opts)\n if (map.text) {\n this.map = map\n let file = map.consumer().file\n if (!this.file && file) this.file = this.mapResolve(file)\n }\n }\n\n if (!this.file) {\n this.id = ''\n }\n if (this.map) this.map.file = this.from\n }\n\n error(message, line, column, opts = {}) {\n let result, endLine, endColumn\n\n if (line && typeof line === 'object') {\n let start = line\n let end = column\n if (typeof start.offset === 'number') {\n let pos = this.fromOffset(start.offset)\n line = pos.line\n column = pos.col\n } else {\n line = start.line\n column = start.column\n }\n if (typeof end.offset === 'number') {\n let pos = this.fromOffset(end.offset)\n endLine = pos.line\n endColumn = pos.col\n } else {\n endLine = end.line\n endColumn = end.column\n }\n } else if (!column) {\n let pos = this.fromOffset(line)\n line = pos.line\n column = pos.col\n }\n\n let origin = this.origin(line, column, endLine, endColumn)\n if (origin) {\n result = new CssSyntaxError(\n message,\n origin.endLine === undefined\n ? origin.line\n : { column: origin.column, line: origin.line },\n origin.endLine === undefined\n ? origin.column\n : { column: origin.endColumn, line: origin.endLine },\n origin.source,\n origin.file,\n opts.plugin\n )\n } else {\n result = new CssSyntaxError(\n message,\n endLine === undefined ? line : { column, line },\n endLine === undefined ? column : { column: endColumn, line: endLine },\n this.css,\n this.file,\n opts.plugin\n )\n }\n\n result.input = { column, endColumn, endLine, line, source: this.css }\n if (this.file) {\n if (pathToFileURL) {\n result.input.url = pathToFileURL(this.file).toString()\n }\n result.input.file = this.file\n }\n\n return result\n }\n\n fromOffset(offset) {\n let lastLine, lineToIndex\n if (!this[fromOffsetCache]) {\n let lines = this.css.split('\\n')\n lineToIndex = new Array(lines.length)\n let prevIndex = 0\n\n for (let i = 0, l = lines.length; i < l; i++) {\n lineToIndex[i] = prevIndex\n prevIndex += lines[i].length + 1\n }\n\n this[fromOffsetCache] = lineToIndex\n } else {\n lineToIndex = this[fromOffsetCache]\n }\n lastLine = lineToIndex[lineToIndex.length - 1]\n\n let min = 0\n if (offset >= lastLine) {\n min = lineToIndex.length - 1\n } else {\n let max = lineToIndex.length - 2\n let mid\n while (min < max) {\n mid = min + ((max - min) >> 1)\n if (offset < lineToIndex[mid]) {\n max = mid - 1\n } else if (offset >= lineToIndex[mid + 1]) {\n min = mid + 1\n } else {\n min = mid\n break\n }\n }\n }\n return {\n col: offset - lineToIndex[min] + 1,\n line: min + 1\n }\n }\n\n mapResolve(file) {\n if (/^\\w+:\\/\\//.test(file)) {\n return file\n }\n return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file)\n }\n\n origin(line, column, endLine, endColumn) {\n if (!this.map) return false\n let consumer = this.map.consumer()\n\n let from = consumer.originalPositionFor({ column, line })\n if (!from.source) return false\n\n let to\n if (typeof endLine === 'number') {\n to = consumer.originalPositionFor({ column: endColumn, line: endLine })\n }\n\n let fromUrl\n\n if (isAbsolute(from.source)) {\n fromUrl = pathToFileURL(from.source)\n } else {\n fromUrl = new URL(\n from.source,\n this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile)\n )\n }\n\n let result = {\n column: from.column,\n endColumn: to && to.column,\n endLine: to && to.line,\n line: from.line,\n url: fromUrl.toString()\n }\n\n if (fromUrl.protocol === 'file:') {\n if (fileURLToPath) {\n result.file = fileURLToPath(fromUrl)\n } else {\n /* c8 ignore next 2 */\n throw new Error(`file: protocol is not available in this PostCSS build`)\n }\n }\n\n let source = consumer.sourceContentFor(from.source)\n if (source) result.source = source\n\n return result\n }\n\n toJSON() {\n let json = {}\n for (let name of ['hasBOM', 'css', 'file', 'id']) {\n if (this[name] != null) {\n json[name] = this[name]\n }\n }\n if (this.map) {\n json.map = { ...this.map }\n if (json.map.consumerCache) {\n json.map.consumerCache = undefined\n }\n }\n return json\n }\n\n get from() {\n return this.file || this.id\n }\n}\n\nmodule.exports = Input\nInput.default = Input\n\nif (terminalHighlight && terminalHighlight.registerInput) {\n terminalHighlight.registerInput(Input)\n}\n", "'use strict'\n\nlet { SourceMapConsumer, SourceMapGenerator } = require('source-map-js')\nlet { dirname, relative, resolve, sep } = require('path')\nlet { pathToFileURL } = require('url')\n\nlet Input = require('./input')\n\nlet sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator)\nlet pathAvailable = Boolean(dirname && resolve && relative && sep)\n\nclass MapGenerator {\n constructor(stringify, root, opts, cssString) {\n this.stringify = stringify\n this.mapOpts = opts.map || {}\n this.root = root\n this.opts = opts\n this.css = cssString\n this.originalCSS = cssString\n this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute\n\n this.memoizedFileURLs = new Map()\n this.memoizedPaths = new Map()\n this.memoizedURLs = new Map()\n }\n\n addAnnotation() {\n let content\n\n if (this.isInline()) {\n content =\n 'data:application/json;base64,' + this.toBase64(this.map.toString())\n } else if (typeof this.mapOpts.annotation === 'string') {\n content = this.mapOpts.annotation\n } else if (typeof this.mapOpts.annotation === 'function') {\n content = this.mapOpts.annotation(this.opts.to, this.root)\n } else {\n content = this.outputFile() + '.map'\n }\n let eol = '\\n'\n if (this.css.includes('\\r\\n')) eol = '\\r\\n'\n\n this.css += eol + '/*# sourceMappingURL=' + content + ' */'\n }\n\n applyPrevMaps() {\n for (let prev of this.previous()) {\n let from = this.toUrl(this.path(prev.file))\n let root = prev.root || dirname(prev.file)\n let map\n\n if (this.mapOpts.sourcesContent === false) {\n map = new SourceMapConsumer(prev.text)\n if (map.sourcesContent) {\n map.sourcesContent = null\n }\n } else {\n map = prev.consumer()\n }\n\n this.map.applySourceMap(map, from, this.toUrl(this.path(root)))\n }\n }\n\n clearAnnotation() {\n if (this.mapOpts.annotation === false) return\n\n if (this.root) {\n let node\n for (let i = this.root.nodes.length - 1; i >= 0; i--) {\n node = this.root.nodes[i]\n if (node.type !== 'comment') continue\n if (node.text.indexOf('# sourceMappingURL=') === 0) {\n this.root.removeChild(i)\n }\n }\n } else if (this.css) {\n this.css = this.css.replace(/\\n*?\\/\\*#[\\S\\s]*?\\*\\/$/gm, '')\n }\n }\n\n generate() {\n this.clearAnnotation()\n if (pathAvailable && sourceMapAvailable && this.isMap()) {\n return this.generateMap()\n } else {\n let result = ''\n this.stringify(this.root, i => {\n result += i\n })\n return [result]\n }\n }\n\n generateMap() {\n if (this.root) {\n this.generateString()\n } else if (this.previous().length === 1) {\n let prev = this.previous()[0].consumer()\n prev.file = this.outputFile()\n this.map = SourceMapGenerator.fromSourceMap(prev, {\n ignoreInvalidMapping: true\n })\n } else {\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n this.map.addMapping({\n generated: { column: 0, line: 1 },\n original: { column: 0, line: 1 },\n source: this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : ''\n })\n }\n\n if (this.isSourcesContent()) this.setSourcesContent()\n if (this.root && this.previous().length > 0) this.applyPrevMaps()\n if (this.isAnnotation()) this.addAnnotation()\n\n if (this.isInline()) {\n return [this.css]\n } else {\n return [this.css, this.map]\n }\n }\n\n generateString() {\n this.css = ''\n this.map = new SourceMapGenerator({\n file: this.outputFile(),\n ignoreInvalidMapping: true\n })\n\n let line = 1\n let column = 1\n\n let noSource = ''\n let mapping = {\n generated: { column: 0, line: 0 },\n original: { column: 0, line: 0 },\n source: ''\n }\n\n let lines, last\n this.stringify(this.root, (str, node, type) => {\n this.css += str\n\n if (node && type !== 'end') {\n mapping.generated.line = line\n mapping.generated.column = column - 1\n if (node.source && node.source.start) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.start.line\n mapping.original.column = node.source.start.column - 1\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n this.map.addMapping(mapping)\n }\n }\n\n lines = str.match(/\\n/g)\n if (lines) {\n line += lines.length\n last = str.lastIndexOf('\\n')\n column = str.length - last\n } else {\n column += str.length\n }\n\n if (node && type !== 'start') {\n let p = node.parent || { raws: {} }\n let childless =\n node.type === 'decl' || (node.type === 'atrule' && !node.nodes)\n if (!childless || node !== p.last || p.raws.semicolon) {\n if (node.source && node.source.end) {\n mapping.source = this.sourcePath(node)\n mapping.original.line = node.source.end.line\n mapping.original.column = node.source.end.column - 1\n mapping.generated.line = line\n mapping.generated.column = column - 2\n this.map.addMapping(mapping)\n } else {\n mapping.source = noSource\n mapping.original.line = 1\n mapping.original.column = 0\n mapping.generated.line = line\n mapping.generated.column = column - 1\n this.map.addMapping(mapping)\n }\n }\n }\n })\n }\n\n isAnnotation() {\n if (this.isInline()) {\n return true\n }\n if (typeof this.mapOpts.annotation !== 'undefined') {\n return this.mapOpts.annotation\n }\n if (this.previous().length) {\n return this.previous().some(i => i.annotation)\n }\n return true\n }\n\n isInline() {\n if (typeof this.mapOpts.inline !== 'undefined') {\n return this.mapOpts.inline\n }\n\n let annotation = this.mapOpts.annotation\n if (typeof annotation !== 'undefined' && annotation !== true) {\n return false\n }\n\n if (this.previous().length) {\n return this.previous().some(i => i.inline)\n }\n return true\n }\n\n isMap() {\n if (typeof this.opts.map !== 'undefined') {\n return !!this.opts.map\n }\n return this.previous().length > 0\n }\n\n isSourcesContent() {\n if (typeof this.mapOpts.sourcesContent !== 'undefined') {\n return this.mapOpts.sourcesContent\n }\n if (this.previous().length) {\n return this.previous().some(i => i.withContent())\n }\n return true\n }\n\n outputFile() {\n if (this.opts.to) {\n return this.path(this.opts.to)\n } else if (this.opts.from) {\n return this.path(this.opts.from)\n } else {\n return 'to.css'\n }\n }\n\n path(file) {\n if (this.mapOpts.absolute) return file\n if (file.charCodeAt(0) === 60 /* `<` */) return file\n if (/^\\w+:\\/\\//.test(file)) return file\n let cached = this.memoizedPaths.get(file)\n if (cached) return cached\n\n let from = this.opts.to ? dirname(this.opts.to) : '.'\n\n if (typeof this.mapOpts.annotation === 'string') {\n from = dirname(resolve(from, this.mapOpts.annotation))\n }\n\n let path = relative(from, file)\n this.memoizedPaths.set(file, path)\n\n return path\n }\n\n previous() {\n if (!this.previousMaps) {\n this.previousMaps = []\n if (this.root) {\n this.root.walk(node => {\n if (node.source && node.source.input.map) {\n let map = node.source.input.map\n if (!this.previousMaps.includes(map)) {\n this.previousMaps.push(map)\n }\n }\n })\n } else {\n let input = new Input(this.originalCSS, this.opts)\n if (input.map) this.previousMaps.push(input.map)\n }\n }\n\n return this.previousMaps\n }\n\n setSourcesContent() {\n let already = {}\n if (this.root) {\n this.root.walk(node => {\n if (node.source) {\n let from = node.source.input.from\n if (from && !already[from]) {\n already[from] = true\n let fromUrl = this.usesFileUrls\n ? this.toFileUrl(from)\n : this.toUrl(this.path(from))\n this.map.setSourceContent(fromUrl, node.source.input.css)\n }\n }\n })\n } else if (this.css) {\n let from = this.opts.from\n ? this.toUrl(this.path(this.opts.from))\n : ''\n this.map.setSourceContent(from, this.css)\n }\n }\n\n sourcePath(node) {\n if (this.mapOpts.from) {\n return this.toUrl(this.mapOpts.from)\n } else if (this.usesFileUrls) {\n return this.toFileUrl(node.source.input.from)\n } else {\n return this.toUrl(this.path(node.source.input.from))\n }\n }\n\n toBase64(str) {\n if (Buffer) {\n return Buffer.from(str).toString('base64')\n } else {\n return window.btoa(unescape(encodeURIComponent(str)))\n }\n }\n\n toFileUrl(path) {\n let cached = this.memoizedFileURLs.get(path)\n if (cached) return cached\n\n if (pathToFileURL) {\n let fileURL = pathToFileURL(path).toString()\n this.memoizedFileURLs.set(path, fileURL)\n\n return fileURL\n } else {\n throw new Error(\n '`map.absolute` option is not available in this PostCSS build'\n )\n }\n }\n\n toUrl(path) {\n let cached = this.memoizedURLs.get(path)\n if (cached) return cached\n\n if (sep === '\\\\') {\n path = path.replace(/\\\\/g, '/')\n }\n\n let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent)\n this.memoizedURLs.set(path, url)\n\n return url\n }\n}\n\nmodule.exports = MapGenerator\n", "'use strict'\n\nlet Node = require('./node')\n\nclass Comment extends Node {\n constructor(defaults) {\n super(defaults)\n this.type = 'comment'\n }\n}\n\nmodule.exports = Comment\nComment.default = Comment\n", "'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet Declaration = require('./declaration')\nlet Comment = require('./comment')\nlet Node = require('./node')\n\nlet parse, Rule, AtRule, Root\n\nfunction cleanSource(nodes) {\n return nodes.map(i => {\n if (i.nodes) i.nodes = cleanSource(i.nodes)\n delete i.source\n return i\n })\n}\n\nfunction markTreeDirty(node) {\n node[isClean] = false\n if (node.proxyOf.nodes) {\n for (let i of node.proxyOf.nodes) {\n markTreeDirty(i)\n }\n }\n}\n\nclass Container extends Node {\n append(...children) {\n for (let child of children) {\n let nodes = this.normalize(child, this.last)\n for (let node of nodes) this.proxyOf.nodes.push(node)\n }\n\n this.markDirty()\n\n return this\n }\n\n cleanRaws(keepBetween) {\n super.cleanRaws(keepBetween)\n if (this.nodes) {\n for (let node of this.nodes) node.cleanRaws(keepBetween)\n }\n }\n\n each(callback) {\n if (!this.proxyOf.nodes) return undefined\n let iterator = this.getIterator()\n\n let index, result\n while (this.indexes[iterator] < this.proxyOf.nodes.length) {\n index = this.indexes[iterator]\n result = callback(this.proxyOf.nodes[index], index)\n if (result === false) break\n\n this.indexes[iterator] += 1\n }\n\n delete this.indexes[iterator]\n return result\n }\n\n every(condition) {\n return this.nodes.every(condition)\n }\n\n getIterator() {\n if (!this.lastEach) this.lastEach = 0\n if (!this.indexes) this.indexes = {}\n\n this.lastEach += 1\n let iterator = this.lastEach\n this.indexes[iterator] = 0\n\n return iterator\n }\n\n getProxyProcessor() {\n return {\n get(node, prop) {\n if (prop === 'proxyOf') {\n return node\n } else if (!node[prop]) {\n return node[prop]\n } else if (\n prop === 'each' ||\n (typeof prop === 'string' && prop.startsWith('walk'))\n ) {\n return (...args) => {\n return node[prop](\n ...args.map(i => {\n if (typeof i === 'function') {\n return (child, index) => i(child.toProxy(), index)\n } else {\n return i\n }\n })\n )\n }\n } else if (prop === 'every' || prop === 'some') {\n return cb => {\n return node[prop]((child, ...other) =>\n cb(child.toProxy(), ...other)\n )\n }\n } else if (prop === 'root') {\n return () => node.root().toProxy()\n } else if (prop === 'nodes') {\n return node.nodes.map(i => i.toProxy())\n } else if (prop === 'first' || prop === 'last') {\n return node[prop].toProxy()\n } else {\n return node[prop]\n }\n },\n\n set(node, prop, value) {\n if (node[prop] === value) return true\n node[prop] = value\n if (prop === 'name' || prop === 'params' || prop === 'selector') {\n node.markDirty()\n }\n return true\n }\n }\n }\n\n index(child) {\n if (typeof child === 'number') return child\n if (child.proxyOf) child = child.proxyOf\n return this.proxyOf.nodes.indexOf(child)\n }\n\n insertAfter(exist, add) {\n let existIndex = this.index(exist)\n let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex < index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n insertBefore(exist, add) {\n let existIndex = this.index(exist)\n let type = existIndex === 0 ? 'prepend' : false\n let nodes = this.normalize(\n add,\n this.proxyOf.nodes[existIndex],\n type\n ).reverse()\n existIndex = this.index(exist)\n for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (existIndex <= index) {\n this.indexes[id] = index + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n normalize(nodes, sample) {\n if (typeof nodes === 'string') {\n nodes = cleanSource(parse(nodes).nodes)\n } else if (typeof nodes === 'undefined') {\n nodes = []\n } else if (Array.isArray(nodes)) {\n nodes = nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type === 'root' && this.type !== 'document') {\n nodes = nodes.nodes.slice(0)\n for (let i of nodes) {\n if (i.parent) i.parent.removeChild(i, 'ignore')\n }\n } else if (nodes.type) {\n nodes = [nodes]\n } else if (nodes.prop) {\n if (typeof nodes.value === 'undefined') {\n throw new Error('Value field is missed in node creation')\n } else if (typeof nodes.value !== 'string') {\n nodes.value = String(nodes.value)\n }\n nodes = [new Declaration(nodes)]\n } else if (nodes.selector) {\n nodes = [new Rule(nodes)]\n } else if (nodes.name) {\n nodes = [new AtRule(nodes)]\n } else if (nodes.text) {\n nodes = [new Comment(nodes)]\n } else {\n throw new Error('Unknown node type in node creation')\n }\n\n let processed = nodes.map(i => {\n /* c8 ignore next */\n if (!i[my]) Container.rebuild(i)\n i = i.proxyOf\n if (i.parent) i.parent.removeChild(i)\n if (i[isClean]) markTreeDirty(i)\n if (typeof i.raws.before === 'undefined') {\n if (sample && typeof sample.raws.before !== 'undefined') {\n i.raws.before = sample.raws.before.replace(/\\S/g, '')\n }\n }\n i.parent = this.proxyOf\n return i\n })\n\n return processed\n }\n\n prepend(...children) {\n children = children.reverse()\n for (let child of children) {\n let nodes = this.normalize(child, this.first, 'prepend').reverse()\n for (let node of nodes) this.proxyOf.nodes.unshift(node)\n for (let id in this.indexes) {\n this.indexes[id] = this.indexes[id] + nodes.length\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n push(child) {\n child.parent = this\n this.proxyOf.nodes.push(child)\n return this\n }\n\n removeAll() {\n for (let node of this.proxyOf.nodes) node.parent = undefined\n this.proxyOf.nodes = []\n\n this.markDirty()\n\n return this\n }\n\n removeChild(child) {\n child = this.index(child)\n this.proxyOf.nodes[child].parent = undefined\n this.proxyOf.nodes.splice(child, 1)\n\n let index\n for (let id in this.indexes) {\n index = this.indexes[id]\n if (index >= child) {\n this.indexes[id] = index - 1\n }\n }\n\n this.markDirty()\n\n return this\n }\n\n replaceValues(pattern, opts, callback) {\n if (!callback) {\n callback = opts\n opts = {}\n }\n\n this.walkDecls(decl => {\n if (opts.props && !opts.props.includes(decl.prop)) return\n if (opts.fast && !decl.value.includes(opts.fast)) return\n\n decl.value = decl.value.replace(pattern, callback)\n })\n\n this.markDirty()\n\n return this\n }\n\n some(condition) {\n return this.nodes.some(condition)\n }\n\n walk(callback) {\n return this.each((child, i) => {\n let result\n try {\n result = callback(child, i)\n } catch (e) {\n throw child.addToError(e)\n }\n if (result !== false && child.walk) {\n result = child.walk(callback)\n }\n\n return result\n })\n }\n\n walkAtRules(name, callback) {\n if (!callback) {\n callback = name\n return this.walk((child, i) => {\n if (child.type === 'atrule') {\n return callback(child, i)\n }\n })\n }\n if (name instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'atrule' && name.test(child.name)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'atrule' && child.name === name) {\n return callback(child, i)\n }\n })\n }\n\n walkComments(callback) {\n return this.walk((child, i) => {\n if (child.type === 'comment') {\n return callback(child, i)\n }\n })\n }\n\n walkDecls(prop, callback) {\n if (!callback) {\n callback = prop\n return this.walk((child, i) => {\n if (child.type === 'decl') {\n return callback(child, i)\n }\n })\n }\n if (prop instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'decl' && prop.test(child.prop)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'decl' && child.prop === prop) {\n return callback(child, i)\n }\n })\n }\n\n walkRules(selector, callback) {\n if (!callback) {\n callback = selector\n\n return this.walk((child, i) => {\n if (child.type === 'rule') {\n return callback(child, i)\n }\n })\n }\n if (selector instanceof RegExp) {\n return this.walk((child, i) => {\n if (child.type === 'rule' && selector.test(child.selector)) {\n return callback(child, i)\n }\n })\n }\n return this.walk((child, i) => {\n if (child.type === 'rule' && child.selector === selector) {\n return callback(child, i)\n }\n })\n }\n\n get first() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[0]\n }\n\n get last() {\n if (!this.proxyOf.nodes) return undefined\n return this.proxyOf.nodes[this.proxyOf.nodes.length - 1]\n }\n}\n\nContainer.registerParse = dependant => {\n parse = dependant\n}\n\nContainer.registerRule = dependant => {\n Rule = dependant\n}\n\nContainer.registerAtRule = dependant => {\n AtRule = dependant\n}\n\nContainer.registerRoot = dependant => {\n Root = dependant\n}\n\nmodule.exports = Container\nContainer.default = Container\n\n/* c8 ignore start */\nContainer.rebuild = node => {\n if (node.type === 'atrule') {\n Object.setPrototypeOf(node, AtRule.prototype)\n } else if (node.type === 'rule') {\n Object.setPrototypeOf(node, Rule.prototype)\n } else if (node.type === 'decl') {\n Object.setPrototypeOf(node, Declaration.prototype)\n } else if (node.type === 'comment') {\n Object.setPrototypeOf(node, Comment.prototype)\n } else if (node.type === 'root') {\n Object.setPrototypeOf(node, Root.prototype)\n }\n\n node[my] = true\n\n if (node.nodes) {\n node.nodes.forEach(child => {\n Container.rebuild(child)\n })\n }\n}\n/* c8 ignore stop */\n", "'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Document extends Container {\n constructor(defaults) {\n // type needs to be passed to super, otherwise child roots won't be normalized correctly\n super({ type: 'document', ...defaults })\n\n if (!this.nodes) {\n this.nodes = []\n }\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n\n return lazy.stringify()\n }\n}\n\nDocument.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nDocument.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Document\nDocument.default = Document\n", "/* eslint-disable no-console */\n'use strict'\n\nlet printed = {}\n\nmodule.exports = function warnOnce(message) {\n if (printed[message]) return\n printed[message] = true\n\n if (typeof console !== 'undefined' && console.warn) {\n console.warn(message)\n }\n}\n", "'use strict'\n\nclass Warning {\n constructor(text, opts = {}) {\n this.type = 'warning'\n this.text = text\n\n if (opts.node && opts.node.source) {\n let range = opts.node.rangeBy(opts)\n this.line = range.start.line\n this.column = range.start.column\n this.endLine = range.end.line\n this.endColumn = range.end.column\n }\n\n for (let opt in opts) this[opt] = opts[opt]\n }\n\n toString() {\n if (this.node) {\n return this.node.error(this.text, {\n index: this.index,\n plugin: this.plugin,\n word: this.word\n }).message\n }\n\n if (this.plugin) {\n return this.plugin + ': ' + this.text\n }\n\n return this.text\n }\n}\n\nmodule.exports = Warning\nWarning.default = Warning\n", "'use strict'\n\nlet Warning = require('./warning')\n\nclass Result {\n constructor(processor, root, opts) {\n this.processor = processor\n this.messages = []\n this.root = root\n this.opts = opts\n this.css = undefined\n this.map = undefined\n }\n\n toString() {\n return this.css\n }\n\n warn(text, opts = {}) {\n if (!opts.plugin) {\n if (this.lastPlugin && this.lastPlugin.postcssPlugin) {\n opts.plugin = this.lastPlugin.postcssPlugin\n }\n }\n\n let warning = new Warning(text, opts)\n this.messages.push(warning)\n\n return warning\n }\n\n warnings() {\n return this.messages.filter(i => i.type === 'warning')\n }\n\n get content() {\n return this.css\n }\n}\n\nmodule.exports = Result\nResult.default = Result\n", "'use strict'\n\nconst SINGLE_QUOTE = \"'\".charCodeAt(0)\nconst DOUBLE_QUOTE = '\"'.charCodeAt(0)\nconst BACKSLASH = '\\\\'.charCodeAt(0)\nconst SLASH = '/'.charCodeAt(0)\nconst NEWLINE = '\\n'.charCodeAt(0)\nconst SPACE = ' '.charCodeAt(0)\nconst FEED = '\\f'.charCodeAt(0)\nconst TAB = '\\t'.charCodeAt(0)\nconst CR = '\\r'.charCodeAt(0)\nconst OPEN_SQUARE = '['.charCodeAt(0)\nconst CLOSE_SQUARE = ']'.charCodeAt(0)\nconst OPEN_PARENTHESES = '('.charCodeAt(0)\nconst CLOSE_PARENTHESES = ')'.charCodeAt(0)\nconst OPEN_CURLY = '{'.charCodeAt(0)\nconst CLOSE_CURLY = '}'.charCodeAt(0)\nconst SEMICOLON = ';'.charCodeAt(0)\nconst ASTERISK = '*'.charCodeAt(0)\nconst COLON = ':'.charCodeAt(0)\nconst AT = '@'.charCodeAt(0)\n\nconst RE_AT_END = /[\\t\\n\\f\\r \"#'()/;[\\\\\\]{}]/g\nconst RE_WORD_END = /[\\t\\n\\f\\r !\"#'():;@[\\\\\\]{}]|\\/(?=\\*)/g\nconst RE_BAD_BRACKET = /.[\\r\\n\"'(/\\\\]/\nconst RE_HEX_ESCAPE = /[\\da-f]/i\n\nmodule.exports = function tokenizer(input, options = {}) {\n let css = input.css.valueOf()\n let ignore = options.ignoreErrors\n\n let code, next, quote, content, escape\n let escaped, escapePos, prev, n, currentToken\n\n let length = css.length\n let pos = 0\n let buffer = []\n let returned = []\n\n function position() {\n return pos\n }\n\n function unclosed(what) {\n throw input.error('Unclosed ' + what, pos)\n }\n\n function endOfFile() {\n return returned.length === 0 && pos >= length\n }\n\n function nextToken(opts) {\n if (returned.length) return returned.pop()\n if (pos >= length) return\n\n let ignoreUnclosed = opts ? opts.ignoreUnclosed : false\n\n code = css.charCodeAt(pos)\n\n switch (code) {\n case NEWLINE:\n case SPACE:\n case TAB:\n case CR:\n case FEED: {\n next = pos\n do {\n next += 1\n code = css.charCodeAt(next)\n } while (\n code === SPACE ||\n code === NEWLINE ||\n code === TAB ||\n code === CR ||\n code === FEED\n )\n\n currentToken = ['space', css.slice(pos, next)]\n pos = next - 1\n break\n }\n\n case OPEN_SQUARE:\n case CLOSE_SQUARE:\n case OPEN_CURLY:\n case CLOSE_CURLY:\n case COLON:\n case SEMICOLON:\n case CLOSE_PARENTHESES: {\n let controlChar = String.fromCharCode(code)\n currentToken = [controlChar, controlChar, pos]\n break\n }\n\n case OPEN_PARENTHESES: {\n prev = buffer.length ? buffer.pop()[1] : ''\n n = css.charCodeAt(pos + 1)\n if (\n prev === 'url' &&\n n !== SINGLE_QUOTE &&\n n !== DOUBLE_QUOTE &&\n n !== SPACE &&\n n !== NEWLINE &&\n n !== TAB &&\n n !== FEED &&\n n !== CR\n ) {\n next = pos\n do {\n escaped = false\n next = css.indexOf(')', next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos\n break\n } else {\n unclosed('bracket')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['brackets', css.slice(pos, next + 1), pos, next]\n\n pos = next\n } else {\n next = css.indexOf(')', pos + 1)\n content = css.slice(pos, next + 1)\n\n if (next === -1 || RE_BAD_BRACKET.test(content)) {\n currentToken = ['(', '(', pos]\n } else {\n currentToken = ['brackets', content, pos, next]\n pos = next\n }\n }\n\n break\n }\n\n case SINGLE_QUOTE:\n case DOUBLE_QUOTE: {\n quote = code === SINGLE_QUOTE ? \"'\" : '\"'\n next = pos\n do {\n escaped = false\n next = css.indexOf(quote, next + 1)\n if (next === -1) {\n if (ignore || ignoreUnclosed) {\n next = pos + 1\n break\n } else {\n unclosed('string')\n }\n }\n escapePos = next\n while (css.charCodeAt(escapePos - 1) === BACKSLASH) {\n escapePos -= 1\n escaped = !escaped\n }\n } while (escaped)\n\n currentToken = ['string', css.slice(pos, next + 1), pos, next]\n pos = next\n break\n }\n\n case AT: {\n RE_AT_END.lastIndex = pos + 1\n RE_AT_END.test(css)\n if (RE_AT_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_AT_END.lastIndex - 2\n }\n\n currentToken = ['at-word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n case BACKSLASH: {\n next = pos\n escape = true\n while (css.charCodeAt(next + 1) === BACKSLASH) {\n next += 1\n escape = !escape\n }\n code = css.charCodeAt(next + 1)\n if (\n escape &&\n code !== SLASH &&\n code !== SPACE &&\n code !== NEWLINE &&\n code !== TAB &&\n code !== CR &&\n code !== FEED\n ) {\n next += 1\n if (RE_HEX_ESCAPE.test(css.charAt(next))) {\n while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) {\n next += 1\n }\n if (css.charCodeAt(next + 1) === SPACE) {\n next += 1\n }\n }\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n\n pos = next\n break\n }\n\n default: {\n if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) {\n next = css.indexOf('*/', pos + 2) + 1\n if (next === 0) {\n if (ignore || ignoreUnclosed) {\n next = css.length\n } else {\n unclosed('comment')\n }\n }\n\n currentToken = ['comment', css.slice(pos, next + 1), pos, next]\n pos = next\n } else {\n RE_WORD_END.lastIndex = pos + 1\n RE_WORD_END.test(css)\n if (RE_WORD_END.lastIndex === 0) {\n next = css.length - 1\n } else {\n next = RE_WORD_END.lastIndex - 2\n }\n\n currentToken = ['word', css.slice(pos, next + 1), pos, next]\n buffer.push(currentToken)\n pos = next\n }\n\n break\n }\n }\n\n pos++\n return currentToken\n }\n\n function back(token) {\n returned.push(token)\n }\n\n return {\n back,\n endOfFile,\n nextToken,\n position\n }\n}\n", "'use strict'\n\nlet Container = require('./container')\n\nclass AtRule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'atrule'\n }\n\n append(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.append(...children)\n }\n\n prepend(...children) {\n if (!this.proxyOf.nodes) this.nodes = []\n return super.prepend(...children)\n }\n}\n\nmodule.exports = AtRule\nAtRule.default = AtRule\n\nContainer.registerAtRule(AtRule)\n", "'use strict'\n\nlet Container = require('./container')\n\nlet LazyResult, Processor\n\nclass Root extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'root'\n if (!this.nodes) this.nodes = []\n }\n\n normalize(child, sample, type) {\n let nodes = super.normalize(child)\n\n if (sample) {\n if (type === 'prepend') {\n if (this.nodes.length > 1) {\n sample.raws.before = this.nodes[1].raws.before\n } else {\n delete sample.raws.before\n }\n } else if (this.first !== sample) {\n for (let node of nodes) {\n node.raws.before = sample.raws.before\n }\n }\n }\n\n return nodes\n }\n\n removeChild(child, ignore) {\n let index = this.index(child)\n\n if (!ignore && index === 0 && this.nodes.length > 1) {\n this.nodes[1].raws.before = this.nodes[index].raws.before\n }\n\n return super.removeChild(child)\n }\n\n toResult(opts = {}) {\n let lazy = new LazyResult(new Processor(), this, opts)\n return lazy.stringify()\n }\n}\n\nRoot.registerLazyResult = dependant => {\n LazyResult = dependant\n}\n\nRoot.registerProcessor = dependant => {\n Processor = dependant\n}\n\nmodule.exports = Root\nRoot.default = Root\n\nContainer.registerRoot(Root)\n", "'use strict'\n\nlet list = {\n comma(string) {\n return list.split(string, [','], true)\n },\n\n space(string) {\n let spaces = [' ', '\\n', '\\t']\n return list.split(string, spaces)\n },\n\n split(string, separators, last) {\n let array = []\n let current = ''\n let split = false\n\n let func = 0\n let inQuote = false\n let prevQuote = ''\n let escape = false\n\n for (let letter of string) {\n if (escape) {\n escape = false\n } else if (letter === '\\\\') {\n escape = true\n } else if (inQuote) {\n if (letter === prevQuote) {\n inQuote = false\n }\n } else if (letter === '\"' || letter === \"'\") {\n inQuote = true\n prevQuote = letter\n } else if (letter === '(') {\n func += 1\n } else if (letter === ')') {\n if (func > 0) func -= 1\n } else if (func === 0) {\n if (separators.includes(letter)) split = true\n }\n\n if (split) {\n if (current !== '') array.push(current.trim())\n current = ''\n split = false\n } else {\n current += letter\n }\n }\n\n if (last || current !== '') array.push(current.trim())\n return array\n }\n}\n\nmodule.exports = list\nlist.default = list\n", "'use strict'\n\nlet Container = require('./container')\nlet list = require('./list')\n\nclass Rule extends Container {\n constructor(defaults) {\n super(defaults)\n this.type = 'rule'\n if (!this.nodes) this.nodes = []\n }\n\n get selectors() {\n return list.comma(this.selector)\n }\n\n set selectors(values) {\n let match = this.selector ? this.selector.match(/,\\s*/) : null\n let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen')\n this.selector = values.join(sep)\n }\n}\n\nmodule.exports = Rule\nRule.default = Rule\n\nContainer.registerRule(Rule)\n", "'use strict'\n\nlet Declaration = require('./declaration')\nlet tokenizer = require('./tokenize')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nconst SAFE_COMMENT_NEIGHBOR = {\n empty: true,\n space: true\n}\n\nfunction findLastWithPosition(tokens) {\n for (let i = tokens.length - 1; i >= 0; i--) {\n let token = tokens[i]\n let pos = token[3] || token[2]\n if (pos) return pos\n }\n}\n\nclass Parser {\n constructor(input) {\n this.input = input\n\n this.root = new Root()\n this.current = this.root\n this.spaces = ''\n this.semicolon = false\n\n this.createTokenizer()\n this.root.source = { input, start: { column: 1, line: 1, offset: 0 } }\n }\n\n atrule(token) {\n let node = new AtRule()\n node.name = token[1].slice(1)\n if (node.name === '') {\n this.unnamedAtrule(node, token)\n }\n this.init(node, token[2])\n\n let type\n let prev\n let shift\n let last = false\n let open = false\n let params = []\n let brackets = []\n\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n type = token[0]\n\n if (type === '(' || type === '[') {\n brackets.push(type === '(' ? ')' : ']')\n } else if (type === '{' && brackets.length > 0) {\n brackets.push('}')\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n }\n\n if (brackets.length === 0) {\n if (type === ';') {\n node.source.end = this.getPosition(token[2])\n node.source.end.offset++\n this.semicolon = true\n break\n } else if (type === '{') {\n open = true\n break\n } else if (type === '}') {\n if (params.length > 0) {\n shift = params.length - 1\n prev = params[shift]\n while (prev && prev[0] === 'space') {\n prev = params[--shift]\n }\n if (prev) {\n node.source.end = this.getPosition(prev[3] || prev[2])\n node.source.end.offset++\n }\n }\n this.end(token)\n break\n } else {\n params.push(token)\n }\n } else {\n params.push(token)\n }\n\n if (this.tokenizer.endOfFile()) {\n last = true\n break\n }\n }\n\n node.raws.between = this.spacesAndCommentsFromEnd(params)\n if (params.length) {\n node.raws.afterName = this.spacesAndCommentsFromStart(params)\n this.raw(node, 'params', params)\n if (last) {\n token = params[params.length - 1]\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n this.spaces = node.raws.between\n node.raws.between = ''\n }\n } else {\n node.raws.afterName = ''\n node.params = ''\n }\n\n if (open) {\n node.nodes = []\n this.current = node\n }\n }\n\n checkMissedSemicolon(tokens) {\n let colon = this.colon(tokens)\n if (colon === false) return\n\n let founded = 0\n let token\n for (let j = colon - 1; j >= 0; j--) {\n token = tokens[j]\n if (token[0] !== 'space') {\n founded += 1\n if (founded === 2) break\n }\n }\n // If the token is a word, e.g. `!important`, `red` or any other valid property's value.\n // Then we need to return the colon after that word token. [3] is the \"end\" colon of that word.\n // And because we need it after that one we do +1 to get the next one.\n throw this.input.error(\n 'Missed semicolon',\n token[0] === 'word' ? token[3] + 1 : token[2]\n )\n }\n\n colon(tokens) {\n let brackets = 0\n let token, type, prev\n for (let [i, element] of tokens.entries()) {\n token = element\n type = token[0]\n\n if (type === '(') {\n brackets += 1\n }\n if (type === ')') {\n brackets -= 1\n }\n if (brackets === 0 && type === ':') {\n if (!prev) {\n this.doubleColon(token)\n } else if (prev[0] === 'word' && prev[1] === 'progid') {\n continue\n } else {\n return i\n }\n }\n\n prev = token\n }\n return false\n }\n\n comment(token) {\n let node = new Comment()\n this.init(node, token[2])\n node.source.end = this.getPosition(token[3] || token[2])\n node.source.end.offset++\n\n let text = token[1].slice(2, -2)\n if (/^\\s*$/.test(text)) {\n node.text = ''\n node.raws.left = text\n node.raws.right = ''\n } else {\n let match = text.match(/^(\\s*)([^]*\\S)(\\s*)$/)\n node.text = match[2]\n node.raws.left = match[1]\n node.raws.right = match[3]\n }\n }\n\n createTokenizer() {\n this.tokenizer = tokenizer(this.input)\n }\n\n decl(tokens, customProperty) {\n let node = new Declaration()\n this.init(node, tokens[0][2])\n\n let last = tokens[tokens.length - 1]\n if (last[0] === ';') {\n this.semicolon = true\n tokens.pop()\n }\n\n node.source.end = this.getPosition(\n last[3] || last[2] || findLastWithPosition(tokens)\n )\n node.source.end.offset++\n\n while (tokens[0][0] !== 'word') {\n if (tokens.length === 1) this.unknownWord(tokens)\n node.raws.before += tokens.shift()[1]\n }\n node.source.start = this.getPosition(tokens[0][2])\n\n node.prop = ''\n while (tokens.length) {\n let type = tokens[0][0]\n if (type === ':' || type === 'space' || type === 'comment') {\n break\n }\n node.prop += tokens.shift()[1]\n }\n\n node.raws.between = ''\n\n let token\n while (tokens.length) {\n token = tokens.shift()\n\n if (token[0] === ':') {\n node.raws.between += token[1]\n break\n } else {\n if (token[0] === 'word' && /\\w/.test(token[1])) {\n this.unknownWord([token])\n }\n node.raws.between += token[1]\n }\n }\n\n if (node.prop[0] === '_' || node.prop[0] === '*') {\n node.raws.before += node.prop[0]\n node.prop = node.prop.slice(1)\n }\n\n let firstSpaces = []\n let next\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n firstSpaces.push(tokens.shift())\n }\n\n this.precheckMissedSemicolon(tokens)\n\n for (let i = tokens.length - 1; i >= 0; i--) {\n token = tokens[i]\n if (token[1].toLowerCase() === '!important') {\n node.important = true\n let string = this.stringFrom(tokens, i)\n string = this.spacesFromEnd(tokens) + string\n if (string !== ' !important') node.raws.important = string\n break\n } else if (token[1].toLowerCase() === 'important') {\n let cache = tokens.slice(0)\n let str = ''\n for (let j = i; j > 0; j--) {\n let type = cache[j][0]\n if (str.trim().indexOf('!') === 0 && type !== 'space') {\n break\n }\n str = cache.pop()[1] + str\n }\n if (str.trim().indexOf('!') === 0) {\n node.important = true\n node.raws.important = str\n tokens = cache\n }\n }\n\n if (token[0] !== 'space' && token[0] !== 'comment') {\n break\n }\n }\n\n let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment')\n\n if (hasWord) {\n node.raws.between += firstSpaces.map(i => i[1]).join('')\n firstSpaces = []\n }\n this.raw(node, 'value', firstSpaces.concat(tokens), customProperty)\n\n if (node.value.includes(':') && !customProperty) {\n this.checkMissedSemicolon(tokens)\n }\n }\n\n doubleColon(token) {\n throw this.input.error(\n 'Double colon',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n\n emptyRule(token) {\n let node = new Rule()\n this.init(node, token[2])\n node.selector = ''\n node.raws.between = ''\n this.current = node\n }\n\n end(token) {\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.semicolon = false\n\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.spaces = ''\n\n if (this.current.parent) {\n this.current.source.end = this.getPosition(token[2])\n this.current.source.end.offset++\n this.current = this.current.parent\n } else {\n this.unexpectedClose(token)\n }\n }\n\n endFile() {\n if (this.current.parent) this.unclosedBlock()\n if (this.current.nodes && this.current.nodes.length) {\n this.current.raws.semicolon = this.semicolon\n }\n this.current.raws.after = (this.current.raws.after || '') + this.spaces\n this.root.source.end = this.getPosition(this.tokenizer.position())\n }\n\n freeSemicolon(token) {\n this.spaces += token[1]\n if (this.current.nodes) {\n let prev = this.current.nodes[this.current.nodes.length - 1]\n if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) {\n prev.raws.ownSemicolon = this.spaces\n this.spaces = ''\n }\n }\n }\n\n // Helpers\n\n getPosition(offset) {\n let pos = this.input.fromOffset(offset)\n return {\n column: pos.col,\n line: pos.line,\n offset\n }\n }\n\n init(node, offset) {\n this.current.push(node)\n node.source = {\n input: this.input,\n start: this.getPosition(offset)\n }\n node.raws.before = this.spaces\n this.spaces = ''\n if (node.type !== 'comment') this.semicolon = false\n }\n\n other(start) {\n let end = false\n let type = null\n let colon = false\n let bracket = null\n let brackets = []\n let customProperty = start[1].startsWith('--')\n\n let tokens = []\n let token = start\n while (token) {\n type = token[0]\n tokens.push(token)\n\n if (type === '(' || type === '[') {\n if (!bracket) bracket = token\n brackets.push(type === '(' ? ')' : ']')\n } else if (customProperty && colon && type === '{') {\n if (!bracket) bracket = token\n brackets.push('}')\n } else if (brackets.length === 0) {\n if (type === ';') {\n if (colon) {\n this.decl(tokens, customProperty)\n return\n } else {\n break\n }\n } else if (type === '{') {\n this.rule(tokens)\n return\n } else if (type === '}') {\n this.tokenizer.back(tokens.pop())\n end = true\n break\n } else if (type === ':') {\n colon = true\n }\n } else if (type === brackets[brackets.length - 1]) {\n brackets.pop()\n if (brackets.length === 0) bracket = null\n }\n\n token = this.tokenizer.nextToken()\n }\n\n if (this.tokenizer.endOfFile()) end = true\n if (brackets.length > 0) this.unclosedBracket(bracket)\n\n if (end && colon) {\n if (!customProperty) {\n while (tokens.length) {\n token = tokens[tokens.length - 1][0]\n if (token !== 'space' && token !== 'comment') break\n this.tokenizer.back(tokens.pop())\n }\n }\n this.decl(tokens, customProperty)\n } else {\n this.unknownWord(tokens)\n }\n }\n\n parse() {\n let token\n while (!this.tokenizer.endOfFile()) {\n token = this.tokenizer.nextToken()\n\n switch (token[0]) {\n case 'space':\n this.spaces += token[1]\n break\n\n case ';':\n this.freeSemicolon(token)\n break\n\n case '}':\n this.end(token)\n break\n\n case 'comment':\n this.comment(token)\n break\n\n case 'at-word':\n this.atrule(token)\n break\n\n case '{':\n this.emptyRule(token)\n break\n\n default:\n this.other(token)\n break\n }\n }\n this.endFile()\n }\n\n precheckMissedSemicolon(/* tokens */) {\n // Hook for Safe Parser\n }\n\n raw(node, prop, tokens, customProperty) {\n let token, type\n let length = tokens.length\n let value = ''\n let clean = true\n let next, prev\n\n for (let i = 0; i < length; i += 1) {\n token = tokens[i]\n type = token[0]\n if (type === 'space' && i === length - 1 && !customProperty) {\n clean = false\n } else if (type === 'comment') {\n prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty'\n next = tokens[i + 1] ? tokens[i + 1][0] : 'empty'\n if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) {\n if (value.slice(-1) === ',') {\n clean = false\n } else {\n value += token[1]\n }\n } else {\n clean = false\n }\n } else {\n value += token[1]\n }\n }\n if (!clean) {\n let raw = tokens.reduce((all, i) => all + i[1], '')\n node.raws[prop] = { raw, value }\n }\n node[prop] = value\n }\n\n rule(tokens) {\n tokens.pop()\n\n let node = new Rule()\n this.init(node, tokens[0][2])\n\n node.raws.between = this.spacesAndCommentsFromEnd(tokens)\n this.raw(node, 'selector', tokens)\n this.current = node\n }\n\n spacesAndCommentsFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space' && lastTokenType !== 'comment') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n // Errors\n\n spacesAndCommentsFromStart(tokens) {\n let next\n let spaces = ''\n while (tokens.length) {\n next = tokens[0][0]\n if (next !== 'space' && next !== 'comment') break\n spaces += tokens.shift()[1]\n }\n return spaces\n }\n\n spacesFromEnd(tokens) {\n let lastTokenType\n let spaces = ''\n while (tokens.length) {\n lastTokenType = tokens[tokens.length - 1][0]\n if (lastTokenType !== 'space') break\n spaces = tokens.pop()[1] + spaces\n }\n return spaces\n }\n\n stringFrom(tokens, from) {\n let result = ''\n for (let i = from; i < tokens.length; i++) {\n result += tokens[i][1]\n }\n tokens.splice(from, tokens.length - from)\n return result\n }\n\n unclosedBlock() {\n let pos = this.current.source.start\n throw this.input.error('Unclosed block', pos.line, pos.column)\n }\n\n unclosedBracket(bracket) {\n throw this.input.error(\n 'Unclosed bracket',\n { offset: bracket[2] },\n { offset: bracket[2] + 1 }\n )\n }\n\n unexpectedClose(token) {\n throw this.input.error(\n 'Unexpected }',\n { offset: token[2] },\n { offset: token[2] + 1 }\n )\n }\n\n unknownWord(tokens) {\n throw this.input.error(\n 'Unknown word',\n { offset: tokens[0][2] },\n { offset: tokens[0][2] + tokens[0][1].length }\n )\n }\n\n unnamedAtrule(node, token) {\n throw this.input.error(\n 'At-rule without name',\n { offset: token[2] },\n { offset: token[2] + token[1].length }\n )\n }\n}\n\nmodule.exports = Parser\n", "'use strict'\n\nlet Container = require('./container')\nlet Parser = require('./parser')\nlet Input = require('./input')\n\nfunction parse(css, opts) {\n let input = new Input(css, opts)\n let parser = new Parser(input)\n try {\n parser.parse()\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n if (e.name === 'CssSyntaxError' && opts && opts.from) {\n if (/\\.scss$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse SCSS with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-scss parser'\n } else if (/\\.sass/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Sass with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-sass parser'\n } else if (/\\.less$/i.test(opts.from)) {\n e.message +=\n '\\nYou tried to parse Less with ' +\n 'the standard CSS parser; ' +\n 'try again with the postcss-less parser'\n }\n }\n }\n throw e\n }\n\n return parser.root\n}\n\nmodule.exports = parse\nparse.default = parse\n\nContainer.registerParse(parse)\n", "'use strict'\n\nlet { isClean, my } = require('./symbols')\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet Container = require('./container')\nlet Document = require('./document')\nlet warnOnce = require('./warn-once')\nlet Result = require('./result')\nlet parse = require('./parse')\nlet Root = require('./root')\n\nconst TYPE_TO_CLASS_NAME = {\n atrule: 'AtRule',\n comment: 'Comment',\n decl: 'Declaration',\n document: 'Document',\n root: 'Root',\n rule: 'Rule'\n}\n\nconst PLUGIN_PROPS = {\n AtRule: true,\n AtRuleExit: true,\n Comment: true,\n CommentExit: true,\n Declaration: true,\n DeclarationExit: true,\n Document: true,\n DocumentExit: true,\n Once: true,\n OnceExit: true,\n postcssPlugin: true,\n prepare: true,\n Root: true,\n RootExit: true,\n Rule: true,\n RuleExit: true\n}\n\nconst NOT_VISITORS = {\n Once: true,\n postcssPlugin: true,\n prepare: true\n}\n\nconst CHILDREN = 0\n\nfunction isPromise(obj) {\n return typeof obj === 'object' && typeof obj.then === 'function'\n}\n\nfunction getEvents(node) {\n let key = false\n let type = TYPE_TO_CLASS_NAME[node.type]\n if (node.type === 'decl') {\n key = node.prop.toLowerCase()\n } else if (node.type === 'atrule') {\n key = node.name.toLowerCase()\n }\n\n if (key && node.append) {\n return [\n type,\n type + '-' + key,\n CHILDREN,\n type + 'Exit',\n type + 'Exit-' + key\n ]\n } else if (key) {\n return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key]\n } else if (node.append) {\n return [type, CHILDREN, type + 'Exit']\n } else {\n return [type, type + 'Exit']\n }\n}\n\nfunction toStack(node) {\n let events\n if (node.type === 'document') {\n events = ['Document', CHILDREN, 'DocumentExit']\n } else if (node.type === 'root') {\n events = ['Root', CHILDREN, 'RootExit']\n } else {\n events = getEvents(node)\n }\n\n return {\n eventIndex: 0,\n events,\n iterator: 0,\n node,\n visitorIndex: 0,\n visitors: []\n }\n}\n\nfunction cleanMarks(node) {\n node[isClean] = false\n if (node.nodes) node.nodes.forEach(i => cleanMarks(i))\n return node\n}\n\nlet postcss = {}\n\nclass LazyResult {\n constructor(processor, css, opts) {\n this.stringified = false\n this.processed = false\n\n let root\n if (\n typeof css === 'object' &&\n css !== null &&\n (css.type === 'root' || css.type === 'document')\n ) {\n root = cleanMarks(css)\n } else if (css instanceof LazyResult || css instanceof Result) {\n root = cleanMarks(css.root)\n if (css.map) {\n if (typeof opts.map === 'undefined') opts.map = {}\n if (!opts.map.inline) opts.map.inline = false\n opts.map.prev = css.map\n }\n } else {\n let parser = parse\n if (opts.syntax) parser = opts.syntax.parse\n if (opts.parser) parser = opts.parser\n if (parser.parse) parser = parser.parse\n\n try {\n root = parser(css, opts)\n } catch (error) {\n this.processed = true\n this.error = error\n }\n\n if (root && !root[my]) {\n /* c8 ignore next 2 */\n Container.rebuild(root)\n }\n }\n\n this.result = new Result(processor, root, opts)\n this.helpers = { ...postcss, postcss, result: this.result }\n this.plugins = this.processor.plugins.map(plugin => {\n if (typeof plugin === 'object' && plugin.prepare) {\n return { ...plugin, ...plugin.prepare(this.result) }\n } else {\n return plugin\n }\n })\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n if (this.processed) return Promise.resolve(this.result)\n if (!this.processing) {\n this.processing = this.runAsync()\n }\n return this.processing\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n getAsyncError() {\n throw new Error('Use process(css).then(cb) to work with async plugins')\n }\n\n handleError(error, node) {\n let plugin = this.result.lastPlugin\n try {\n if (node) node.addToError(error)\n this.error = error\n if (error.name === 'CssSyntaxError' && !error.plugin) {\n error.plugin = plugin.postcssPlugin\n error.setMessage()\n } else if (plugin.postcssVersion) {\n if (process.env.NODE_ENV !== 'production') {\n let pluginName = plugin.postcssPlugin\n let pluginVer = plugin.postcssVersion\n let runtimeVer = this.result.processor.version\n let a = pluginVer.split('.')\n let b = runtimeVer.split('.')\n\n if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) {\n // eslint-disable-next-line no-console\n console.error(\n 'Unknown error from PostCSS plugin. Your current PostCSS ' +\n 'version is ' +\n runtimeVer +\n ', but ' +\n pluginName +\n ' uses ' +\n pluginVer +\n '. Perhaps this is the source of the error below.'\n )\n }\n }\n }\n } catch (err) {\n /* c8 ignore next 3 */\n // eslint-disable-next-line no-console\n if (console && console.error) console.error(err)\n }\n return error\n }\n\n prepareVisitors() {\n this.listeners = {}\n let add = (plugin, type, cb) => {\n if (!this.listeners[type]) this.listeners[type] = []\n this.listeners[type].push([plugin, cb])\n }\n for (let plugin of this.plugins) {\n if (typeof plugin === 'object') {\n for (let event in plugin) {\n if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) {\n throw new Error(\n `Unknown event ${event} in ${plugin.postcssPlugin}. ` +\n `Try to update PostCSS (${this.processor.version} now).`\n )\n }\n if (!NOT_VISITORS[event]) {\n if (typeof plugin[event] === 'object') {\n for (let filter in plugin[event]) {\n if (filter === '*') {\n add(plugin, event, plugin[event][filter])\n } else {\n add(\n plugin,\n event + '-' + filter.toLowerCase(),\n plugin[event][filter]\n )\n }\n }\n } else if (typeof plugin[event] === 'function') {\n add(plugin, event, plugin[event])\n }\n }\n }\n }\n }\n this.hasListener = Object.keys(this.listeners).length > 0\n }\n\n async runAsync() {\n this.plugin = 0\n for (let i = 0; i < this.plugins.length; i++) {\n let plugin = this.plugins[i]\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (error) {\n throw this.handleError(error)\n }\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n let stack = [toStack(root)]\n while (stack.length > 0) {\n let promise = this.visitTick(stack)\n if (isPromise(promise)) {\n try {\n await promise\n } catch (e) {\n let node = stack[stack.length - 1].node\n throw this.handleError(e, node)\n }\n }\n }\n }\n\n if (this.listeners.OnceExit) {\n for (let [plugin, visitor] of this.listeners.OnceExit) {\n this.result.lastPlugin = plugin\n try {\n if (root.type === 'document') {\n let roots = root.nodes.map(subRoot =>\n visitor(subRoot, this.helpers)\n )\n\n await Promise.all(roots)\n } else {\n await visitor(root, this.helpers)\n }\n } catch (e) {\n throw this.handleError(e)\n }\n }\n }\n }\n\n this.processed = true\n return this.stringify()\n }\n\n runOnRoot(plugin) {\n this.result.lastPlugin = plugin\n try {\n if (typeof plugin === 'object' && plugin.Once) {\n if (this.result.root.type === 'document') {\n let roots = this.result.root.nodes.map(root =>\n plugin.Once(root, this.helpers)\n )\n\n if (isPromise(roots[0])) {\n return Promise.all(roots)\n }\n\n return roots\n }\n\n return plugin.Once(this.result.root, this.helpers)\n } else if (typeof plugin === 'function') {\n return plugin(this.result.root, this.result)\n }\n } catch (error) {\n throw this.handleError(error)\n }\n }\n\n stringify() {\n if (this.error) throw this.error\n if (this.stringified) return this.result\n this.stringified = true\n\n this.sync()\n\n let opts = this.result.opts\n let str = stringify\n if (opts.syntax) str = opts.syntax.stringify\n if (opts.stringifier) str = opts.stringifier\n if (str.stringify) str = str.stringify\n\n let map = new MapGenerator(str, this.result.root, this.result.opts)\n let data = map.generate()\n this.result.css = data[0]\n this.result.map = data[1]\n\n return this.result\n }\n\n sync() {\n if (this.error) throw this.error\n if (this.processed) return this.result\n this.processed = true\n\n if (this.processing) {\n throw this.getAsyncError()\n }\n\n for (let plugin of this.plugins) {\n let promise = this.runOnRoot(plugin)\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n\n this.prepareVisitors()\n if (this.hasListener) {\n let root = this.result.root\n while (!root[isClean]) {\n root[isClean] = true\n this.walkSync(root)\n }\n if (this.listeners.OnceExit) {\n if (root.type === 'document') {\n for (let subRoot of root.nodes) {\n this.visitSync(this.listeners.OnceExit, subRoot)\n }\n } else {\n this.visitSync(this.listeners.OnceExit, root)\n }\n }\n }\n\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this.opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this.css\n }\n\n visitSync(visitors, node) {\n for (let [plugin, visitor] of visitors) {\n this.result.lastPlugin = plugin\n let promise\n try {\n promise = visitor(node, this.helpers)\n } catch (e) {\n throw this.handleError(e, node.proxyOf)\n }\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n return true\n }\n if (isPromise(promise)) {\n throw this.getAsyncError()\n }\n }\n }\n\n visitTick(stack) {\n let visit = stack[stack.length - 1]\n let { node, visitors } = visit\n\n if (node.type !== 'root' && node.type !== 'document' && !node.parent) {\n stack.pop()\n return\n }\n\n if (visitors.length > 0 && visit.visitorIndex < visitors.length) {\n let [plugin, visitor] = visitors[visit.visitorIndex]\n visit.visitorIndex += 1\n if (visit.visitorIndex === visitors.length) {\n visit.visitors = []\n visit.visitorIndex = 0\n }\n this.result.lastPlugin = plugin\n try {\n return visitor(node.toProxy(), this.helpers)\n } catch (e) {\n throw this.handleError(e, node)\n }\n }\n\n if (visit.iterator !== 0) {\n let iterator = visit.iterator\n let child\n while ((child = node.nodes[node.indexes[iterator]])) {\n node.indexes[iterator] += 1\n if (!child[isClean]) {\n child[isClean] = true\n stack.push(toStack(child))\n return\n }\n }\n visit.iterator = 0\n delete node.indexes[iterator]\n }\n\n let events = visit.events\n while (visit.eventIndex < events.length) {\n let event = events[visit.eventIndex]\n visit.eventIndex += 1\n if (event === CHILDREN) {\n if (node.nodes && node.nodes.length) {\n node[isClean] = true\n visit.iterator = node.getIterator()\n }\n return\n } else if (this.listeners[event]) {\n visit.visitors = this.listeners[event]\n return\n }\n }\n stack.pop()\n }\n\n walkSync(node) {\n node[isClean] = true\n let events = getEvents(node)\n for (let event of events) {\n if (event === CHILDREN) {\n if (node.nodes) {\n node.each(child => {\n if (!child[isClean]) this.walkSync(child)\n })\n }\n } else {\n let visitors = this.listeners[event]\n if (visitors) {\n if (this.visitSync(visitors, node.toProxy())) return\n }\n }\n }\n }\n\n warnings() {\n return this.sync().warnings()\n }\n\n get content() {\n return this.stringify().content\n }\n\n get css() {\n return this.stringify().css\n }\n\n get map() {\n return this.stringify().map\n }\n\n get messages() {\n return this.sync().messages\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n return this.sync().root\n }\n\n get [Symbol.toStringTag]() {\n return 'LazyResult'\n }\n}\n\nLazyResult.registerPostcss = dependant => {\n postcss = dependant\n}\n\nmodule.exports = LazyResult\nLazyResult.default = LazyResult\n\nRoot.registerLazyResult(LazyResult)\nDocument.registerLazyResult(LazyResult)\n", "'use strict'\n\nlet MapGenerator = require('./map-generator')\nlet stringify = require('./stringify')\nlet warnOnce = require('./warn-once')\nlet parse = require('./parse')\nconst Result = require('./result')\n\nclass NoWorkResult {\n constructor(processor, css, opts) {\n css = css.toString()\n this.stringified = false\n\n this._processor = processor\n this._css = css\n this._opts = opts\n this._map = undefined\n let root\n\n let str = stringify\n this.result = new Result(this._processor, root, this._opts)\n this.result.css = css\n\n let self = this\n Object.defineProperty(this.result, 'root', {\n get() {\n return self.root\n }\n })\n\n let map = new MapGenerator(str, root, this._opts, css)\n if (map.isMap()) {\n let [generatedCSS, generatedMap] = map.generate()\n if (generatedCSS) {\n this.result.css = generatedCSS\n }\n if (generatedMap) {\n this.result.map = generatedMap\n }\n } else {\n map.clearAnnotation()\n this.result.css = map.css\n }\n }\n\n async() {\n if (this.error) return Promise.reject(this.error)\n return Promise.resolve(this.result)\n }\n\n catch(onRejected) {\n return this.async().catch(onRejected)\n }\n\n finally(onFinally) {\n return this.async().then(onFinally, onFinally)\n }\n\n sync() {\n if (this.error) throw this.error\n return this.result\n }\n\n then(onFulfilled, onRejected) {\n if (process.env.NODE_ENV !== 'production') {\n if (!('from' in this._opts)) {\n warnOnce(\n 'Without `from` option PostCSS could generate wrong source map ' +\n 'and will not find Browserslist config. Set it to CSS file path ' +\n 'or to `undefined` to prevent this warning.'\n )\n }\n }\n\n return this.async().then(onFulfilled, onRejected)\n }\n\n toString() {\n return this._css\n }\n\n warnings() {\n return []\n }\n\n get content() {\n return this.result.css\n }\n\n get css() {\n return this.result.css\n }\n\n get map() {\n return this.result.map\n }\n\n get messages() {\n return []\n }\n\n get opts() {\n return this.result.opts\n }\n\n get processor() {\n return this.result.processor\n }\n\n get root() {\n if (this._root) {\n return this._root\n }\n\n let root\n let parser = parse\n\n try {\n root = parser(this._css, this._opts)\n } catch (error) {\n this.error = error\n }\n\n if (this.error) {\n throw this.error\n } else {\n this._root = root\n return root\n }\n }\n\n get [Symbol.toStringTag]() {\n return 'NoWorkResult'\n }\n}\n\nmodule.exports = NoWorkResult\nNoWorkResult.default = NoWorkResult\n", "'use strict'\n\nlet NoWorkResult = require('./no-work-result')\nlet LazyResult = require('./lazy-result')\nlet Document = require('./document')\nlet Root = require('./root')\n\nclass Processor {\n constructor(plugins = []) {\n this.version = '8.4.40'\n this.plugins = this.normalize(plugins)\n }\n\n normalize(plugins) {\n let normalized = []\n for (let i of plugins) {\n if (i.postcss === true) {\n i = i()\n } else if (i.postcss) {\n i = i.postcss\n }\n\n if (typeof i === 'object' && Array.isArray(i.plugins)) {\n normalized = normalized.concat(i.plugins)\n } else if (typeof i === 'object' && i.postcssPlugin) {\n normalized.push(i)\n } else if (typeof i === 'function') {\n normalized.push(i)\n } else if (typeof i === 'object' && (i.parse || i.stringify)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' +\n 'one of the syntax/parser/stringifier options as outlined ' +\n 'in your PostCSS runner documentation.'\n )\n }\n } else {\n throw new Error(i + ' is not a PostCSS plugin')\n }\n }\n return normalized\n }\n\n process(css, opts = {}) {\n if (\n !this.plugins.length &&\n !opts.parser &&\n !opts.stringifier &&\n !opts.syntax\n ) {\n return new NoWorkResult(this, css, opts)\n } else {\n return new LazyResult(this, css, opts)\n }\n }\n\n use(plugin) {\n this.plugins = this.plugins.concat(this.normalize([plugin]))\n return this\n }\n}\n\nmodule.exports = Processor\nProcessor.default = Processor\n\nRoot.registerProcessor(Processor)\nDocument.registerProcessor(Processor)\n", "'use strict'\n\nlet Declaration = require('./declaration')\nlet PreviousMap = require('./previous-map')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Input = require('./input')\nlet Root = require('./root')\nlet Rule = require('./rule')\n\nfunction fromJSON(json, inputs) {\n if (Array.isArray(json)) return json.map(n => fromJSON(n))\n\n let { inputs: ownInputs, ...defaults } = json\n if (ownInputs) {\n inputs = []\n for (let input of ownInputs) {\n let inputHydrated = { ...input, __proto__: Input.prototype }\n if (inputHydrated.map) {\n inputHydrated.map = {\n ...inputHydrated.map,\n __proto__: PreviousMap.prototype\n }\n }\n inputs.push(inputHydrated)\n }\n }\n if (defaults.nodes) {\n defaults.nodes = json.nodes.map(n => fromJSON(n, inputs))\n }\n if (defaults.source) {\n let { inputId, ...source } = defaults.source\n defaults.source = source\n if (inputId != null) {\n defaults.source.input = inputs[inputId]\n }\n }\n if (defaults.type === 'root') {\n return new Root(defaults)\n } else if (defaults.type === 'decl') {\n return new Declaration(defaults)\n } else if (defaults.type === 'rule') {\n return new Rule(defaults)\n } else if (defaults.type === 'comment') {\n return new Comment(defaults)\n } else if (defaults.type === 'atrule') {\n return new AtRule(defaults)\n } else {\n throw new Error('Unknown node type: ' + json.type)\n }\n}\n\nmodule.exports = fromJSON\nfromJSON.default = fromJSON\n", "'use strict'\n\nlet CssSyntaxError = require('./css-syntax-error')\nlet Declaration = require('./declaration')\nlet LazyResult = require('./lazy-result')\nlet Container = require('./container')\nlet Processor = require('./processor')\nlet stringify = require('./stringify')\nlet fromJSON = require('./fromJSON')\nlet Document = require('./document')\nlet Warning = require('./warning')\nlet Comment = require('./comment')\nlet AtRule = require('./at-rule')\nlet Result = require('./result.js')\nlet Input = require('./input')\nlet parse = require('./parse')\nlet list = require('./list')\nlet Rule = require('./rule')\nlet Root = require('./root')\nlet Node = require('./node')\n\nfunction postcss(...plugins) {\n if (plugins.length === 1 && Array.isArray(plugins[0])) {\n plugins = plugins[0]\n }\n return new Processor(plugins)\n}\n\npostcss.plugin = function plugin(name, initializer) {\n let warningPrinted = false\n function creator(...args) {\n // eslint-disable-next-line no-console\n if (console && console.warn && !warningPrinted) {\n warningPrinted = true\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': postcss.plugin was deprecated. Migration guide:\\n' +\n 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'\n )\n if (process.env.LANG && process.env.LANG.startsWith('cn')) {\n /* c8 ignore next 7 */\n // eslint-disable-next-line no-console\n console.warn(\n name +\n ': 里面 postcss.plugin 被弃用. 迁移指南:\\n' +\n 'https://www.w3ctech.com/topic/2226'\n )\n }\n }\n let transformer = initializer(...args)\n transformer.postcssPlugin = name\n transformer.postcssVersion = new Processor().version\n return transformer\n }\n\n let cache\n Object.defineProperty(creator, 'postcss', {\n get() {\n if (!cache) cache = creator()\n return cache\n }\n })\n\n creator.process = function (css, processOpts, pluginOpts) {\n return postcss([creator(pluginOpts)]).process(css, processOpts)\n }\n\n return creator\n}\n\npostcss.stringify = stringify\npostcss.parse = parse\npostcss.fromJSON = fromJSON\npostcss.list = list\n\npostcss.comment = defaults => new Comment(defaults)\npostcss.atRule = defaults => new AtRule(defaults)\npostcss.decl = defaults => new Declaration(defaults)\npostcss.rule = defaults => new Rule(defaults)\npostcss.root = defaults => new Root(defaults)\npostcss.document = defaults => new Document(defaults)\n\npostcss.CssSyntaxError = CssSyntaxError\npostcss.Declaration = Declaration\npostcss.Container = Container\npostcss.Processor = Processor\npostcss.Document = Document\npostcss.Comment = Comment\npostcss.Warning = Warning\npostcss.AtRule = AtRule\npostcss.Result = Result\npostcss.Input = Input\npostcss.Rule = Rule\npostcss.Root = Root\npostcss.Node = Node\n\nLazyResult.registerPostcss(postcss)\n\nmodule.exports = postcss\npostcss.default = postcss\n", "import postcss from './postcss.js'\n\nexport default postcss\n\nexport const stringify = postcss.stringify\nexport const fromJSON = postcss.fromJSON\nexport const plugin = postcss.plugin\nexport const parse = postcss.parse\nexport const list = postcss.list\n\nexport const document = postcss.document\nexport const comment = postcss.comment\nexport const atRule = postcss.atRule\nexport const rule = postcss.rule\nexport const decl = postcss.decl\nexport const root = postcss.root\n\nexport const CssSyntaxError = postcss.CssSyntaxError\nexport const Declaration = postcss.Declaration\nexport const Container = postcss.Container\nexport const Processor = postcss.Processor\nexport const Document = postcss.Document\nexport const Comment = postcss.Comment\nexport const Warning = postcss.Warning\nexport const AtRule = postcss.AtRule\nexport const Result = postcss.Result\nexport const Input = postcss.Input\nexport const Rule = postcss.Rule\nexport const Root = postcss.Root\nexport const Node = postcss.Node\n"], - "mappings": "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", - "names": ["CssSyntaxError", "plugin", "root", "stringify", "CssSyntaxError", "stringify", "Node", "Node", "Declaration", "CssSyntaxError", "Input", "Input", "stringify", "root", "Node", "Comment", "Declaration", "Comment", "Node", "parse", "Rule", "AtRule", "Root", "Container", "decl", "Container", "Processor", "Document", "Warning", "Warning", "Result", "root", "Container", "AtRule", "Container", "Processor", "Root", "list", "Container", "list", "Rule", "Declaration", "Comment", "AtRule", "Root", "Rule", "Container", "Input", "parse", "stringify", "Container", "Document", "Result", "parse", "Root", "postcss", "root", "plugin", "stringify", "parse", "Result", "root", "Document", "Root", "Processor", "plugin", "Declaration", "Comment", "AtRule", "Input", "Root", "Rule", "fromJSON", "CssSyntaxError", "Declaration", "Container", "Processor", "stringify", "fromJSON", "Document", "Warning", "Comment", "AtRule", "Result", "Input", "parse", "list", "Rule", "Root", "Node", "postcss", "plugin", "postcss"] -} diff --git a/site/game/node_modules/.vite/deps/chunk-BUSYA2B4.js b/site/game/node_modules/.vite/deps/chunk-BUSYA2B4.js new file mode 100644 index 0000000..a7109e0 --- /dev/null +++ b/site/game/node_modules/.vite/deps/chunk-BUSYA2B4.js @@ -0,0 +1,9 @@ +var __getOwnPropNames = Object.getOwnPropertyNames; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; + +export { + __commonJS +}; +//# sourceMappingURL=chunk-BUSYA2B4.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-ZSMWDLMK.js.map b/site/game/node_modules/.vite/deps/chunk-BUSYA2B4.js.map similarity index 100% rename from site/game/node_modules/.vite/deps/chunk-ZSMWDLMK.js.map rename to site/game/node_modules/.vite/deps/chunk-BUSYA2B4.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js b/site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js deleted file mode 100644 index 8252db2..0000000 --- a/site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js +++ /dev/null @@ -1,35 +0,0 @@ -import { - __commonJS -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:node:url -var require_node_url = __commonJS({ - "browser-external:node:url"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:url" has been externalized for browser compatibility. Cannot access "node:url.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:module -var require_node_module = __commonJS({ - "browser-external:node:module"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:module" has been externalized for browser compatibility. Cannot access "node:module.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -export { - require_node_url, - require_node_module -}; -//# sourceMappingURL=chunk-G2ZEZZAJ.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js.map b/site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js.map deleted file mode 100644 index 0d53eeb..0000000 --- a/site/game/node_modules/.vite/deps/chunk-G2ZEZZAJ.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:node:url", "browser-external:node:module"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:url\" has been externalized for browser compatibility. Cannot access \"node:url.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:module\" has been externalized for browser compatibility. Cannot access \"node:module.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))"], - "mappings": ";;;;;AAAA;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,8FAA8F,GAAG,qIAAqI;AAAA,QACrP;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;;;ACXF;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,oGAAoG,GAAG,qIAAqI;AAAA,QAC3P;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/chunk-H6V4345L.js b/site/game/node_modules/.vite/deps/chunk-H6V4345L.js deleted file mode 100644 index 745c6eb..0000000 --- a/site/game/node_modules/.vite/deps/chunk-H6V4345L.js +++ /dev/null @@ -1,428 +0,0 @@ -import { - require_node_module, - require_node_url -} from "./chunk-G2ZEZZAJ.js"; -import { - require_node_path -} from "./chunk-M2MSWSHF.js"; -import { - __toESM -} from "./chunk-ZSMWDLMK.js"; - -// node_modules/vite/dist/node/chunks/dep-IQS-Za7F.js -var import_node_url = __toESM(require_node_url(), 1); -var import_node_path = __toESM(require_node_path(), 1); -var import_node_module = __toESM(require_node_module(), 1); -var __filename = (0, import_node_url.fileURLToPath)(import.meta.url); -var __dirname = (0, import_node_path.dirname)(__filename); -var require2 = (0, import_node_module.createRequire)(import.meta.url); -var openParentheses = "(".charCodeAt(0); -var closeParentheses = ")".charCodeAt(0); -var singleQuote = "'".charCodeAt(0); -var doubleQuote = '"'.charCodeAt(0); -var backslash = "\\".charCodeAt(0); -var slash = "/".charCodeAt(0); -var comma = ",".charCodeAt(0); -var colon = ":".charCodeAt(0); -var star = "*".charCodeAt(0); -var uLower = "u".charCodeAt(0); -var uUpper = "U".charCodeAt(0); -var plus = "+".charCodeAt(0); -var isUnicodeRange = /^[a-f0-9?-]+$/i; -var parse$1 = function(input) { - var tokens = []; - var value = input; - var next, quote, prev, token, escape, escapePos, whitespacePos, parenthesesOpenPos; - var pos = 0; - var code = value.charCodeAt(pos); - var max = value.length; - var stack = [{ nodes: tokens }]; - var balanced = 0; - var parent; - var name = ""; - var before = ""; - var after = ""; - while (pos < max) { - if (code <= 32) { - next = pos; - do { - next += 1; - code = value.charCodeAt(next); - } while (code <= 32); - token = value.slice(pos, next); - prev = tokens[tokens.length - 1]; - if (code === closeParentheses && balanced) { - after = token; - } else if (prev && prev.type === "div") { - prev.after = token; - prev.sourceEndIndex += token.length; - } else if (code === comma || code === colon || code === slash && value.charCodeAt(next + 1) !== star && (!parent || parent && parent.type === "function" && parent.value !== "calc")) { - before = token; - } else { - tokens.push({ - type: "space", - sourceIndex: pos, - sourceEndIndex: next, - value: token - }); - } - pos = next; - } else if (code === singleQuote || code === doubleQuote) { - next = pos; - quote = code === singleQuote ? "'" : '"'; - token = { - type: "string", - sourceIndex: pos, - quote - }; - do { - escape = false; - next = value.indexOf(quote, next + 1); - if (~next) { - escapePos = next; - while (value.charCodeAt(escapePos - 1) === backslash) { - escapePos -= 1; - escape = !escape; - } - } else { - value += quote; - next = value.length - 1; - token.unclosed = true; - } - } while (escape); - token.value = value.slice(pos + 1, next); - token.sourceEndIndex = token.unclosed ? next : next + 1; - tokens.push(token); - pos = next + 1; - code = value.charCodeAt(pos); - } else if (code === slash && value.charCodeAt(pos + 1) === star) { - next = value.indexOf("*/", pos); - token = { - type: "comment", - sourceIndex: pos, - sourceEndIndex: next + 2 - }; - if (next === -1) { - token.unclosed = true; - next = value.length; - token.sourceEndIndex = next; - } - token.value = value.slice(pos + 2, next); - tokens.push(token); - pos = next + 2; - code = value.charCodeAt(pos); - } else if ((code === slash || code === star) && parent && parent.type === "function" && parent.value === "calc") { - token = value[pos]; - tokens.push({ - type: "word", - sourceIndex: pos - before.length, - sourceEndIndex: pos + token.length, - value: token - }); - pos += 1; - code = value.charCodeAt(pos); - } else if (code === slash || code === comma || code === colon) { - token = value[pos]; - tokens.push({ - type: "div", - sourceIndex: pos - before.length, - sourceEndIndex: pos + token.length, - value: token, - before, - after: "" - }); - before = ""; - pos += 1; - code = value.charCodeAt(pos); - } else if (openParentheses === code) { - next = pos; - do { - next += 1; - code = value.charCodeAt(next); - } while (code <= 32); - parenthesesOpenPos = pos; - token = { - type: "function", - sourceIndex: pos - name.length, - value: name, - before: value.slice(parenthesesOpenPos + 1, next) - }; - pos = next; - if (name === "url" && code !== singleQuote && code !== doubleQuote) { - next -= 1; - do { - escape = false; - next = value.indexOf(")", next + 1); - if (~next) { - escapePos = next; - while (value.charCodeAt(escapePos - 1) === backslash) { - escapePos -= 1; - escape = !escape; - } - } else { - value += ")"; - next = value.length - 1; - token.unclosed = true; - } - } while (escape); - whitespacePos = next; - do { - whitespacePos -= 1; - code = value.charCodeAt(whitespacePos); - } while (code <= 32); - if (parenthesesOpenPos < whitespacePos) { - if (pos !== whitespacePos + 1) { - token.nodes = [ - { - type: "word", - sourceIndex: pos, - sourceEndIndex: whitespacePos + 1, - value: value.slice(pos, whitespacePos + 1) - } - ]; - } else { - token.nodes = []; - } - if (token.unclosed && whitespacePos + 1 !== next) { - token.after = ""; - token.nodes.push({ - type: "space", - sourceIndex: whitespacePos + 1, - sourceEndIndex: next, - value: value.slice(whitespacePos + 1, next) - }); - } else { - token.after = value.slice(whitespacePos + 1, next); - token.sourceEndIndex = next; - } - } else { - token.after = ""; - token.nodes = []; - } - pos = next + 1; - token.sourceEndIndex = token.unclosed ? next : pos; - code = value.charCodeAt(pos); - tokens.push(token); - } else { - balanced += 1; - token.after = ""; - token.sourceEndIndex = pos + 1; - tokens.push(token); - stack.push(token); - tokens = token.nodes = []; - parent = token; - } - name = ""; - } else if (closeParentheses === code && balanced) { - pos += 1; - code = value.charCodeAt(pos); - parent.after = after; - parent.sourceEndIndex += after.length; - after = ""; - balanced -= 1; - stack[stack.length - 1].sourceEndIndex = pos; - stack.pop(); - parent = stack[balanced]; - tokens = parent.nodes; - } else { - next = pos; - do { - if (code === backslash) { - next += 1; - } - next += 1; - code = value.charCodeAt(next); - } while (next < max && !(code <= 32 || code === singleQuote || code === doubleQuote || code === comma || code === colon || code === slash || code === openParentheses || code === star && parent && parent.type === "function" && parent.value === "calc" || code === slash && parent.type === "function" && parent.value === "calc" || code === closeParentheses && balanced)); - token = value.slice(pos, next); - if (openParentheses === code) { - name = token; - } else if ((uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) && plus === token.charCodeAt(1) && isUnicodeRange.test(token.slice(2))) { - tokens.push({ - type: "unicode-range", - sourceIndex: pos, - sourceEndIndex: next, - value: token - }); - } else { - tokens.push({ - type: "word", - sourceIndex: pos, - sourceEndIndex: next, - value: token - }); - } - pos = next; - } - } - for (pos = stack.length - 1; pos; pos -= 1) { - stack[pos].unclosed = true; - stack[pos].sourceEndIndex = value.length; - } - return stack[0].nodes; -}; -var walk$1 = function walk(nodes, cb, bubble) { - var i, max, node, result; - for (i = 0, max = nodes.length; i < max; i += 1) { - node = nodes[i]; - if (!bubble) { - result = cb(node, i, nodes); - } - if (result !== false && node.type === "function" && Array.isArray(node.nodes)) { - walk(node.nodes, cb, bubble); - } - if (bubble) { - cb(node, i, nodes); - } - } -}; -function stringifyNode(node, custom) { - var type = node.type; - var value = node.value; - var buf; - var customResult; - if (custom && (customResult = custom(node)) !== void 0) { - return customResult; - } else if (type === "word" || type === "space") { - return value; - } else if (type === "string") { - buf = node.quote || ""; - return buf + value + (node.unclosed ? "" : buf); - } else if (type === "comment") { - return "/*" + value + (node.unclosed ? "" : "*/"); - } else if (type === "div") { - return (node.before || "") + value + (node.after || ""); - } else if (Array.isArray(node.nodes)) { - buf = stringify$1(node.nodes, custom); - if (type !== "function") { - return buf; - } - return value + "(" + (node.before || "") + buf + (node.after || "") + (node.unclosed ? "" : ")"); - } - return value; -} -function stringify$1(nodes, custom) { - var result, i; - if (Array.isArray(nodes)) { - result = ""; - for (i = nodes.length - 1; ~i; i -= 1) { - result = stringifyNode(nodes[i], custom) + result; - } - return result; - } - return stringifyNode(nodes, custom); -} -var stringify_1 = stringify$1; -var unit; -var hasRequiredUnit; -function requireUnit() { - if (hasRequiredUnit) return unit; - hasRequiredUnit = 1; - var minus = "-".charCodeAt(0); - var plus2 = "+".charCodeAt(0); - var dot = ".".charCodeAt(0); - var exp = "e".charCodeAt(0); - var EXP = "E".charCodeAt(0); - function likeNumber(value) { - var code = value.charCodeAt(0); - var nextCode; - if (code === plus2 || code === minus) { - nextCode = value.charCodeAt(1); - if (nextCode >= 48 && nextCode <= 57) { - return true; - } - var nextNextCode = value.charCodeAt(2); - if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) { - return true; - } - return false; - } - if (code === dot) { - nextCode = value.charCodeAt(1); - if (nextCode >= 48 && nextCode <= 57) { - return true; - } - return false; - } - if (code >= 48 && code <= 57) { - return true; - } - return false; - } - unit = function(value) { - var pos = 0; - var length = value.length; - var code; - var nextCode; - var nextNextCode; - if (length === 0 || !likeNumber(value)) { - return false; - } - code = value.charCodeAt(pos); - if (code === plus2 || code === minus) { - pos++; - } - while (pos < length) { - code = value.charCodeAt(pos); - if (code < 48 || code > 57) { - break; - } - pos += 1; - } - code = value.charCodeAt(pos); - nextCode = value.charCodeAt(pos + 1); - if (code === dot && nextCode >= 48 && nextCode <= 57) { - pos += 2; - while (pos < length) { - code = value.charCodeAt(pos); - if (code < 48 || code > 57) { - break; - } - pos += 1; - } - } - code = value.charCodeAt(pos); - nextCode = value.charCodeAt(pos + 1); - nextNextCode = value.charCodeAt(pos + 2); - if ((code === exp || code === EXP) && (nextCode >= 48 && nextCode <= 57 || (nextCode === plus2 || nextCode === minus) && nextNextCode >= 48 && nextNextCode <= 57)) { - pos += nextCode === plus2 || nextCode === minus ? 3 : 2; - while (pos < length) { - code = value.charCodeAt(pos); - if (code < 48 || code > 57) { - break; - } - pos += 1; - } - } - return { - number: value.slice(0, pos), - unit: value.slice(pos) - }; - }; - return unit; -} -var parse = parse$1; -var walk2 = walk$1; -var stringify = stringify_1; -function ValueParser(value) { - if (this instanceof ValueParser) { - this.nodes = parse(value); - return this; - } - return new ValueParser(value); -} -ValueParser.prototype.toString = function() { - return Array.isArray(this.nodes) ? stringify(this.nodes) : ""; -}; -ValueParser.prototype.walk = function(cb, bubble) { - walk2(this.nodes, cb, bubble); - return this; -}; -ValueParser.unit = requireUnit(); -ValueParser.walk = walk2; -ValueParser.stringify = stringify; -var lib = ValueParser; - -export { - lib -}; -//# sourceMappingURL=chunk-H6V4345L.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-H6V4345L.js.map b/site/game/node_modules/.vite/deps/chunk-H6V4345L.js.map deleted file mode 100644 index d309ca5..0000000 --- a/site/game/node_modules/.vite/deps/chunk-H6V4345L.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../vite/dist/node/chunks/dep-IQS-Za7F.js"], - "sourcesContent": ["import { fileURLToPath as __cjs_fileURLToPath } from 'node:url';\nimport { dirname as __cjs_dirname } from 'node:path';\nimport { createRequire as __cjs_createRequire } from 'node:module';\n\nconst __filename = __cjs_fileURLToPath(import.meta.url);\nconst __dirname = __cjs_dirname(__filename);\nconst require = __cjs_createRequire(import.meta.url);\nconst __require = require;\nvar openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\nvar uLower = \"u\".charCodeAt(0);\nvar uUpper = \"U\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar isUnicodeRange = /^[a-f0-9?-]+$/i;\n\nvar parse$1 = function(input) {\n var tokens = [];\n var value = input;\n\n var next,\n quote,\n prev,\n token,\n escape,\n escapePos,\n whitespacePos,\n parenthesesOpenPos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n prev.sourceEndIndex += token.length;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash &&\n value.charCodeAt(next + 1) !== star &&\n (!parent ||\n (parent && parent.type === \"function\" && parent.value !== \"calc\")))\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n token.sourceEndIndex = token.unclosed ? next : next + 1;\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n next = value.indexOf(\"*/\", pos);\n\n token = {\n type: \"comment\",\n sourceIndex: pos,\n sourceEndIndex: next + 2\n };\n\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n token.sourceEndIndex = next;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Operation within calc\n } else if (\n (code === slash || code === star) &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\"\n ) {\n token = value[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token\n });\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: whitespacePos + 1,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n sourceEndIndex: next,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n token.sourceEndIndex = next;\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n token.sourceEndIndex = token.unclosed ? next : pos;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n token.sourceEndIndex = pos + 1;\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n parent.sourceEndIndex += after.length;\n after = \"\";\n balanced -= 1;\n stack[stack.length - 1].sourceEndIndex = pos;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === star &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === slash &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else if (\n (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&\n plus === token.charCodeAt(1) &&\n isUnicodeRange.test(token.slice(2))\n ) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n stack[pos].sourceEndIndex = value.length;\n }\n\n return stack[0].nodes;\n};\n\nvar walk$1 = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n\nfunction stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify$1(node.nodes, custom);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify$1(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nvar stringify_1 = stringify$1;\n\nvar unit;\nvar hasRequiredUnit;\n\nfunction requireUnit () {\n\tif (hasRequiredUnit) return unit;\n\thasRequiredUnit = 1;\n\tvar minus = \"-\".charCodeAt(0);\n\tvar plus = \"+\".charCodeAt(0);\n\tvar dot = \".\".charCodeAt(0);\n\tvar exp = \"e\".charCodeAt(0);\n\tvar EXP = \"E\".charCodeAt(0);\n\n\t// Check if three code points would start a number\n\t// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number\n\tfunction likeNumber(value) {\n\t var code = value.charCodeAt(0);\n\t var nextCode;\n\n\t if (code === plus || code === minus) {\n\t nextCode = value.charCodeAt(1);\n\n\t if (nextCode >= 48 && nextCode <= 57) {\n\t return true;\n\t }\n\n\t var nextNextCode = value.charCodeAt(2);\n\n\t if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n\t return true;\n\t }\n\n\t return false;\n\t }\n\n\t if (code === dot) {\n\t nextCode = value.charCodeAt(1);\n\n\t if (nextCode >= 48 && nextCode <= 57) {\n\t return true;\n\t }\n\n\t return false;\n\t }\n\n\t if (code >= 48 && code <= 57) {\n\t return true;\n\t }\n\n\t return false;\n\t}\n\n\t// Consume a number\n\t// https://www.w3.org/TR/css-syntax-3/#consume-number\n\tunit = function(value) {\n\t var pos = 0;\n\t var length = value.length;\n\t var code;\n\t var nextCode;\n\t var nextNextCode;\n\n\t if (length === 0 || !likeNumber(value)) {\n\t return false;\n\t }\n\n\t code = value.charCodeAt(pos);\n\n\t if (code === plus || code === minus) {\n\t pos++;\n\t }\n\n\t while (pos < length) {\n\t code = value.charCodeAt(pos);\n\n\t if (code < 48 || code > 57) {\n\t break;\n\t }\n\n\t pos += 1;\n\t }\n\n\t code = value.charCodeAt(pos);\n\t nextCode = value.charCodeAt(pos + 1);\n\n\t if (code === dot && nextCode >= 48 && nextCode <= 57) {\n\t pos += 2;\n\n\t while (pos < length) {\n\t code = value.charCodeAt(pos);\n\n\t if (code < 48 || code > 57) {\n\t break;\n\t }\n\n\t pos += 1;\n\t }\n\t }\n\n\t code = value.charCodeAt(pos);\n\t nextCode = value.charCodeAt(pos + 1);\n\t nextNextCode = value.charCodeAt(pos + 2);\n\n\t if (\n\t (code === exp || code === EXP) &&\n\t ((nextCode >= 48 && nextCode <= 57) ||\n\t ((nextCode === plus || nextCode === minus) &&\n\t nextNextCode >= 48 &&\n\t nextNextCode <= 57))\n\t ) {\n\t pos += nextCode === plus || nextCode === minus ? 3 : 2;\n\n\t while (pos < length) {\n\t code = value.charCodeAt(pos);\n\n\t if (code < 48 || code > 57) {\n\t break;\n\t }\n\n\t pos += 1;\n\t }\n\t }\n\n\t return {\n\t number: value.slice(0, pos),\n\t unit: value.slice(pos)\n\t };\n\t};\n\treturn unit;\n}\n\nvar parse = parse$1;\nvar walk = walk$1;\nvar stringify = stringify_1;\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = requireUnit();\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nvar lib = ValueParser;\n\nexport { lib as l };\n"], - "mappings": "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", - "names": ["__cjs_fileURLToPath", "__cjs_dirname", "require", "__cjs_createRequire", "plus", "walk"] -} diff --git a/site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js b/site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js deleted file mode 100644 index d7cbdf7..0000000 --- a/site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js +++ /dev/null @@ -1,21 +0,0 @@ -import { - __commonJS -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:fs -var require_fs = __commonJS({ - "browser-external:fs"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "fs" has been externalized for browser compatibility. Cannot access "fs.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -export { - require_fs -}; -//# sourceMappingURL=chunk-I5RSIQOR.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js.map b/site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js.map deleted file mode 100644 index 324c344..0000000 --- a/site/game/node_modules/.vite/deps/chunk-I5RSIQOR.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:fs"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"fs\" has been externalized for browser compatibility. Cannot access \"fs.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))"], - "mappings": ";;;;;AAAA;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,kFAAkF,GAAG,qIAAqI;AAAA,QACzO;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js b/site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js deleted file mode 100644 index 8998f53..0000000 --- a/site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js +++ /dev/null @@ -1,2225 +0,0 @@ -import { - require_node_path -} from "./chunk-M2MSWSHF.js"; -import { - __commonJS, - __require, - __toESM -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:node:fs -var require_node_fs = __commonJS({ - "browser-external:node:fs"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:fs" has been externalized for browser compatibility. Cannot access "node:fs.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:process -var require_node_process = __commonJS({ - "browser-external:node:process"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:process" has been externalized for browser compatibility. Cannot access "node:process.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// node_modules/rollup/dist/native.js -var require_native = __commonJS({ - "node_modules/rollup/dist/native.js"(exports, module) { - var { existsSync } = require_node_fs(); - var path = require_node_path(); - var { platform, arch, report } = require_node_process(); - var isMusl = () => !report.getReport().header.glibcVersionRuntime; - var bindingsByPlatformAndArch = { - android: { - arm: { base: "android-arm-eabi" }, - arm64: { base: "android-arm64" } - }, - darwin: { - arm64: { base: "darwin-arm64" }, - x64: { base: "darwin-x64" } - }, - linux: { - arm: { base: "linux-arm-gnueabihf", musl: "linux-arm-musleabihf" }, - arm64: { base: "linux-arm64-gnu", musl: "linux-arm64-musl" }, - ppc64: { base: "linux-powerpc64le-gnu", musl: null }, - riscv64: { base: "linux-riscv64-gnu", musl: null }, - s390x: { base: "linux-s390x-gnu", musl: null }, - x64: { base: "linux-x64-gnu", musl: "linux-x64-musl" } - }, - win32: { - arm64: { base: "win32-arm64-msvc" }, - ia32: { base: "win32-ia32-msvc" }, - x64: { base: "win32-x64-msvc" } - } - }; - var msvcLinkFilenameByArch = { - arm64: "vc_redist.arm64.exe", - ia32: "vc_redist.x86.exe", - x64: "vc_redist.x64.exe" - }; - var packageBase = getPackageBase(); - var localName = `./rollup.${packageBase}.node`; - var requireWithFriendlyError = (id) => { - try { - return __require(id); - } catch (error2) { - if (platform === "win32" && error2 instanceof Error && error2.code === "ERR_DLOPEN_FAILED" && error2.message.includes("The specified module could not be found")) { - const msvcDownloadLink = `https://aka.ms/vs/17/release/${msvcLinkFilenameByArch[arch]}`; - throw new Error( - `Failed to load module ${id}. Required DLL was not found. This error usually happens when Microsoft Visual C++ Redistributable is not installed. You can download it from ${msvcDownloadLink}`, - { cause: error2 } - ); - } - throw new Error( - `Cannot find module ${id}. npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). Please try \`npm i\` again after removing both package-lock.json and node_modules directory.`, - { cause: error2 } - ); - } - }; - var { parse: parse2, parseAsync: parseAsync2, xxhashBase64Url, xxhashBase36, xxhashBase16 } = requireWithFriendlyError( - existsSync(path.join(__dirname, localName)) ? localName : `@rollup/rollup-${packageBase}` - ); - function getPackageBase() { - var _a; - const imported = (_a = bindingsByPlatformAndArch[platform]) == null ? void 0 : _a[arch]; - if (!imported) { - throwUnsupportedError(false); - } - if ("musl" in imported && isMusl()) { - return imported.musl || throwUnsupportedError(true); - } - return imported.base; - } - function throwUnsupportedError(isMusl2) { - throw new Error( - `Your current platform "${platform}${isMusl2 ? " (musl)" : ""}" and architecture "${arch}" combination is not yet supported by the native Rollup build. Please use the WASM build "@rollup/wasm-node" instead. - -The following platform-architecture combinations are supported: -${Object.entries(bindingsByPlatformAndArch).flatMap( - ([platformName, architectures]) => Object.entries(architectures).flatMap(([architectureName, { musl }]) => { - const name = `${platformName}-${architectureName}`; - return musl ? [name, `${name} (musl)`] : [name]; - }) - ).join("\n")} - -If this is important to you, please consider supporting Rollup to make a native build for your platform and architecture available.` - ); - } - module.exports.parse = parse2; - module.exports.parseAsync = parseAsync2; - module.exports.xxhashBase64Url = xxhashBase64Url; - module.exports.xxhashBase36 = xxhashBase36; - module.exports.xxhashBase16 = xxhashBase16; - } -}); - -// browser-external:node:fs/promises -var require_promises = __commonJS({ - "browser-external:node:fs/promises"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:fs/promises" has been externalized for browser compatibility. Cannot access "node:fs/promises.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:perf_hooks -var require_node_perf_hooks = __commonJS({ - "browser-external:node:perf_hooks"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:perf_hooks" has been externalized for browser compatibility. Cannot access "node:perf_hooks.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:tty -var require_tty = __commonJS({ - "browser-external:tty"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "tty" has been externalized for browser compatibility. Cannot access "tty.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// node_modules/rollup/dist/es/shared/parseAst.js -var import_native = __toESM(require_native(), 1); -var import_node_path = __toESM(require_node_path(), 1); -var ArrowFunctionExpression = "ArrowFunctionExpression"; -var BlockStatement = "BlockStatement"; -var CallExpression = "CallExpression"; -var CatchClause = "CatchClause"; -var ExportDefaultDeclaration = "ExportDefaultDeclaration"; -var ExpressionStatement = "ExpressionStatement"; -var Identifier = "Identifier"; -var Literal = "Literal"; -var PanicError = "PanicError"; -var ParseError = "ParseError"; -var Program = "Program"; -var Property = "Property"; -var ReturnStatement = "ReturnStatement"; -var StaticBlock = "StaticBlock"; -var TemplateLiteral = "TemplateLiteral"; -var VariableDeclarator = "VariableDeclarator"; -var BLANK = Object.freeze(/* @__PURE__ */ Object.create(null)); -var EMPTY_OBJECT = Object.freeze({}); -var EMPTY_ARRAY = Object.freeze([]); -var EMPTY_SET = Object.freeze(new class extends Set { - add() { - throw new Error("Cannot add to empty set"); - } -}()); -var FIXED_STRINGS = [ - "var", - "let", - "const", - "init", - "get", - "set", - "constructor", - "method", - "-", - "+", - "!", - "~", - "typeof", - "void", - "delete", - "++", - "--", - "==", - "!=", - "===", - "!==", - "<", - "<=", - ">", - ">=", - "<<", - ">>", - ">>>", - "+", - "-", - "*", - "/", - "%", - "|", - "^", - "&", - "||", - "&&", - "in", - "instanceof", - "**", - "??", - "=", - "+=", - "-=", - "*=", - "/=", - "%=", - "<<=", - ">>=", - ">>>=", - "|=", - "^=", - "&=", - "**=", - "&&=", - "||=", - "??=", - "pure", - "noSideEffects", - "sourcemap", - "using", - "await using" -]; -var ANNOTATION_KEY = "_rollupAnnotations"; -var INVALID_ANNOTATION_KEY = "_rollupRemoved"; -var convertAnnotations = (position, buffer) => { - if (position === 0) - return EMPTY_ARRAY; - const length = buffer[position++]; - const list = []; - for (let index = 0; index < length; index++) { - list.push(convertAnnotation(buffer[position++], buffer)); - } - return list; -}; -var convertAnnotation = (position, buffer) => { - const start = buffer[position++]; - const end = buffer[position++]; - const type = FIXED_STRINGS[buffer[position]]; - return { end, start, type }; -}; -function rangeContains(range, index) { - return range.start <= index && index < range.end; -} -function getLocator(source, options = {}) { - const { offsetLine = 0, offsetColumn = 0 } = options; - let start = 0; - const ranges = source.split("\n").map((line, i2) => { - const end = start + line.length + 1; - const range = { start, end, line: i2 }; - start = end; - return range; - }); - let i = 0; - function locator(search, index) { - if (typeof search === "string") { - search = source.indexOf(search, index ?? 0); - } - if (search === -1) return void 0; - let range = ranges[i]; - const d = search >= range.end ? 1 : -1; - while (range) { - if (rangeContains(range, search)) { - return { - line: offsetLine + range.line, - column: offsetColumn + search - range.start, - character: search - }; - } - i += d; - range = ranges[i]; - } - } - return locator; -} -function locate(source, search, options) { - return getLocator(source, options)(search, options && options.startIndex); -} -function spaces(index) { - let result = ""; - while (index--) - result += " "; - return result; -} -function tabsToSpaces(value) { - return value.replace(/^\t+/, (match) => match.split(" ").join(" ")); -} -var LINE_TRUNCATE_LENGTH = 120; -var MIN_CHARACTERS_SHOWN_AFTER_LOCATION = 10; -var ELLIPSIS = "..."; -function getCodeFrame(source, line, column) { - let lines = source.split("\n"); - if (line > lines.length) - return ""; - const maxLineLength = Math.max(tabsToSpaces(lines[line - 1].slice(0, column)).length + MIN_CHARACTERS_SHOWN_AFTER_LOCATION + ELLIPSIS.length, LINE_TRUNCATE_LENGTH); - const frameStart = Math.max(0, line - 3); - let frameEnd = Math.min(line + 2, lines.length); - lines = lines.slice(frameStart, frameEnd); - while (!/\S/.test(lines[lines.length - 1])) { - lines.pop(); - frameEnd -= 1; - } - const digits = String(frameEnd).length; - return lines.map((sourceLine, index) => { - const isErrorLine = frameStart + index + 1 === line; - let lineNumber = String(index + frameStart + 1); - while (lineNumber.length < digits) - lineNumber = ` ${lineNumber}`; - let displayedLine = tabsToSpaces(sourceLine); - if (displayedLine.length > maxLineLength) { - displayedLine = `${displayedLine.slice(0, maxLineLength - ELLIPSIS.length)}${ELLIPSIS}`; - } - if (isErrorLine) { - const indicator = spaces(digits + 2 + tabsToSpaces(sourceLine.slice(0, column)).length) + "^"; - return `${lineNumber}: ${displayedLine} -${indicator}`; - } - return `${lineNumber}: ${displayedLine}`; - }).join("\n"); -} -var LOGLEVEL_SILENT = "silent"; -var LOGLEVEL_ERROR = "error"; -var LOGLEVEL_WARN = "warn"; -var LOGLEVEL_INFO = "info"; -var LOGLEVEL_DEBUG = "debug"; -var logLevelPriority = { - [LOGLEVEL_DEBUG]: 0, - [LOGLEVEL_INFO]: 1, - [LOGLEVEL_SILENT]: 3, - [LOGLEVEL_WARN]: 2 -}; -var ABSOLUTE_PATH_REGEX = /^(?:\/|(?:[A-Za-z]:)?[/\\|])/; -var RELATIVE_PATH_REGEX = /^\.?\.(\/|$)/; -function isAbsolute(path) { - return ABSOLUTE_PATH_REGEX.test(path); -} -function isRelative(path) { - return RELATIVE_PATH_REGEX.test(path); -} -var BACKSLASH_REGEX = /\\/g; -function normalize(path) { - return path.replace(BACKSLASH_REGEX, "/"); -} -function printQuotedStringList(list, verbs) { - const isSingleItem = list.length <= 1; - const quotedList = list.map((item) => `"${item}"`); - let output = isSingleItem ? quotedList[0] : `${quotedList.slice(0, -1).join(", ")} and ${quotedList.slice(-1)[0]}`; - if (verbs) { - output += ` ${isSingleItem ? verbs[0] : verbs[1]}`; - } - return output; -} -var ANY_SLASH_REGEX = /[/\\]/; -function relative(from, to) { - const fromParts = from.split(ANY_SLASH_REGEX).filter(Boolean); - const toParts = to.split(ANY_SLASH_REGEX).filter(Boolean); - if (fromParts[0] === ".") - fromParts.shift(); - if (toParts[0] === ".") - toParts.shift(); - while (fromParts[0] && toParts[0] && fromParts[0] === toParts[0]) { - fromParts.shift(); - toParts.shift(); - } - while (toParts[0] === ".." && fromParts.length > 0) { - toParts.shift(); - fromParts.pop(); - } - while (fromParts.pop()) { - toParts.unshift(".."); - } - return toParts.join("/"); -} -function getAliasName(id) { - const base = (0, import_node_path.basename)(id); - return base.slice(0, Math.max(0, base.length - (0, import_node_path.extname)(id).length)); -} -function relativeId(id) { - if (!isAbsolute(id)) - return id; - return relative((0, import_node_path.resolve)(), id); -} -function isPathFragment(name) { - return name[0] === "/" || name[0] === "." && (name[1] === "/" || name[1] === ".") || isAbsolute(name); -} -var UPPER_DIR_REGEX = /^(\.\.\/)*\.\.$/; -function getImportPath(importerId, targetPath, stripJsExtension, ensureFileName) { - while (targetPath.startsWith("../")) { - targetPath = targetPath.slice(3); - importerId = "_/" + importerId; - } - let relativePath = normalize(relative((0, import_node_path.dirname)(importerId), targetPath)); - if (stripJsExtension && relativePath.endsWith(".js")) { - relativePath = relativePath.slice(0, -3); - } - if (ensureFileName) { - if (relativePath === "") - return "../" + (0, import_node_path.basename)(targetPath); - if (UPPER_DIR_REGEX.test(relativePath)) { - return [...relativePath.split("/"), "..", (0, import_node_path.basename)(targetPath)].join("/"); - } - } - return relativePath ? relativePath.startsWith("..") ? relativePath : "./" + relativePath : "."; -} -function isValidUrl(url) { - try { - new URL(url); - } catch { - return false; - } - return true; -} -function getRollupUrl(snippet) { - return `https://rollupjs.org/${snippet}`; -} -function addTrailingSlashIfMissed(url) { - if (!url.endsWith("/")) { - return url + "/"; - } - return url; -} -var URL_AVOIDING_EVAL = "troubleshooting/#avoiding-eval"; -var URL_NAME_IS_NOT_EXPORTED = "troubleshooting/#error-name-is-not-exported-by-module"; -var URL_THIS_IS_UNDEFINED = "troubleshooting/#error-this-is-undefined"; -var URL_TREATING_MODULE_AS_EXTERNAL_DEPENDENCY = "troubleshooting/#warning-treating-module-as-external-dependency"; -var URL_SOURCEMAP_IS_LIKELY_TO_BE_INCORRECT = "troubleshooting/#warning-sourcemap-is-likely-to-be-incorrect"; -var URL_OUTPUT_AMD_ID = "configuration-options/#output-amd-id"; -var URL_OUTPUT_AMD_BASEPATH = "configuration-options/#output-amd-basepath"; -var URL_OUTPUT_DIR = "configuration-options/#output-dir"; -var URL_OUTPUT_EXPORTS = "configuration-options/#output-exports"; -var URL_OUTPUT_EXTEND = "configuration-options/#output-extend"; -var URL_OUTPUT_EXTERNALIMPORTATTRIBUTES = "configuration-options/#output-externalimportattributes"; -var URL_OUTPUT_FORMAT = "configuration-options/#output-format"; -var URL_OUTPUT_GENERATEDCODE = "configuration-options/#output-generatedcode"; -var URL_OUTPUT_GLOBALS = "configuration-options/#output-globals"; -var URL_OUTPUT_INLINEDYNAMICIMPORTS = "configuration-options/#output-inlinedynamicimports"; -var URL_OUTPUT_INTEROP = "configuration-options/#output-interop"; -var URL_OUTPUT_MANUALCHUNKS = "configuration-options/#output-manualchunks"; -var URL_OUTPUT_NAME = "configuration-options/#output-name"; -var URL_OUTPUT_SOURCEMAPBASEURL = "configuration-options/#output-sourcemapbaseurl"; -var URL_OUTPUT_SOURCEMAPFILE = "configuration-options/#output-sourcemapfile"; -var URL_PRESERVEENTRYSIGNATURES = "configuration-options/#preserveentrysignatures"; -var URL_TREESHAKE = "configuration-options/#treeshake"; -var URL_TREESHAKE_PURE = "configuration-options/#pure"; -var URL_TREESHAKE_NOSIDEEFFECTS = "configuration-options/#no-side-effects"; -var URL_TREESHAKE_MODULESIDEEFFECTS = "configuration-options/#treeshake-modulesideeffects"; -var URL_WATCH = "configuration-options/#watch"; -function error(base) { - throw base instanceof Error ? base : getRollupError(base); -} -function getRollupError(base) { - augmentLogMessage(base); - const errorInstance = Object.assign(new Error(base.message), base); - Object.defineProperty(errorInstance, "name", { - value: "RollupError", - writable: true - }); - return errorInstance; -} -function augmentCodeLocation(properties, pos, source, id) { - if (typeof pos === "object") { - const { line, column } = pos; - properties.loc = { column, file: id, line }; - } else { - properties.pos = pos; - const location = locate(source, pos, { offsetLine: 1 }); - if (!location) { - return; - } - const { line, column } = location; - properties.loc = { column, file: id, line }; - } - if (properties.frame === void 0) { - const { line, column } = properties.loc; - properties.frame = getCodeFrame(source, line, column); - } -} -var symbolAugmented = Symbol("augmented"); -function augmentLogMessage(log) { - var _a; - if (!(log.plugin || log.loc) || log[symbolAugmented]) { - return; - } - log[symbolAugmented] = true; - let prefix = ""; - if (log.plugin) { - prefix += `[plugin ${log.plugin}] `; - } - const id = log.id || ((_a = log.loc) == null ? void 0 : _a.file); - if (id) { - const position = log.loc ? ` (${log.loc.line}:${log.loc.column})` : ""; - prefix += `${relativeId(id)}${position}: `; - } - log.message = prefix + log.message; -} -var ADDON_ERROR = "ADDON_ERROR"; -var ALREADY_CLOSED = "ALREADY_CLOSED"; -var AMBIGUOUS_EXTERNAL_NAMESPACES = "AMBIGUOUS_EXTERNAL_NAMESPACES"; -var ANONYMOUS_PLUGIN_CACHE = "ANONYMOUS_PLUGIN_CACHE"; -var ASSET_NOT_FINALISED = "ASSET_NOT_FINALISED"; -var ASSET_NOT_FOUND = "ASSET_NOT_FOUND"; -var ASSET_SOURCE_ALREADY_SET = "ASSET_SOURCE_ALREADY_SET"; -var ASSET_SOURCE_MISSING = "ASSET_SOURCE_MISSING"; -var BAD_LOADER = "BAD_LOADER"; -var CANNOT_CALL_NAMESPACE = "CANNOT_CALL_NAMESPACE"; -var CANNOT_EMIT_FROM_OPTIONS_HOOK = "CANNOT_EMIT_FROM_OPTIONS_HOOK"; -var CHUNK_NOT_GENERATED = "CHUNK_NOT_GENERATED"; -var CHUNK_INVALID = "CHUNK_INVALID"; -var CIRCULAR_DEPENDENCY = "CIRCULAR_DEPENDENCY"; -var CIRCULAR_REEXPORT = "CIRCULAR_REEXPORT"; -var CONST_REASSIGN = "CONST_REASSIGN"; -var CYCLIC_CROSS_CHUNK_REEXPORT = "CYCLIC_CROSS_CHUNK_REEXPORT"; -var DEPRECATED_FEATURE = "DEPRECATED_FEATURE"; -var DUPLICATE_ARGUMENT_NAME = "DUPLICATE_ARGUMENT_NAME"; -var DUPLICATE_EXPORT = "DUPLICATE_EXPORT"; -var DUPLICATE_PLUGIN_NAME = "DUPLICATE_PLUGIN_NAME"; -var EMPTY_BUNDLE = "EMPTY_BUNDLE"; -var EVAL = "EVAL"; -var EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS = "EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS"; -var EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES = "EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES"; -var EXTERNAL_SYNTHETIC_EXPORTS = "EXTERNAL_SYNTHETIC_EXPORTS"; -var FILE_NAME_CONFLICT = "FILE_NAME_CONFLICT"; -var FILE_NOT_FOUND = "FILE_NOT_FOUND"; -var FIRST_SIDE_EFFECT = "FIRST_SIDE_EFFECT"; -var ILLEGAL_IDENTIFIER_AS_NAME = "ILLEGAL_IDENTIFIER_AS_NAME"; -var ILLEGAL_REASSIGNMENT = "ILLEGAL_REASSIGNMENT"; -var INCONSISTENT_IMPORT_ATTRIBUTES = "INCONSISTENT_IMPORT_ATTRIBUTES"; -var INVALID_ANNOTATION = "INVALID_ANNOTATION"; -var INPUT_HOOK_IN_OUTPUT_PLUGIN = "INPUT_HOOK_IN_OUTPUT_PLUGIN"; -var INVALID_CHUNK = "INVALID_CHUNK"; -var INVALID_EXPORT_OPTION = "INVALID_EXPORT_OPTION"; -var INVALID_EXTERNAL_ID = "INVALID_EXTERNAL_ID"; -var INVALID_IMPORT_ATTRIBUTE = "INVALID_IMPORT_ATTRIBUTE"; -var INVALID_LOG_POSITION = "INVALID_LOG_POSITION"; -var INVALID_OPTION = "INVALID_OPTION"; -var INVALID_PLUGIN_HOOK = "INVALID_PLUGIN_HOOK"; -var INVALID_ROLLUP_PHASE = "INVALID_ROLLUP_PHASE"; -var INVALID_SETASSETSOURCE = "INVALID_SETASSETSOURCE"; -var INVALID_TLA_FORMAT = "INVALID_TLA_FORMAT"; -var MISSING_EXPORT = "MISSING_EXPORT"; -var MISSING_GLOBAL_NAME = "MISSING_GLOBAL_NAME"; -var MISSING_IMPLICIT_DEPENDANT = "MISSING_IMPLICIT_DEPENDANT"; -var MISSING_NAME_OPTION_FOR_IIFE_EXPORT = "MISSING_NAME_OPTION_FOR_IIFE_EXPORT"; -var MISSING_NODE_BUILTINS = "MISSING_NODE_BUILTINS"; -var MISSING_OPTION = "MISSING_OPTION"; -var MIXED_EXPORTS = "MIXED_EXPORTS"; -var MODULE_LEVEL_DIRECTIVE = "MODULE_LEVEL_DIRECTIVE"; -var NAMESPACE_CONFLICT = "NAMESPACE_CONFLICT"; -var NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE = "NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE"; -var OPTIMIZE_CHUNK_STATUS = "OPTIMIZE_CHUNK_STATUS"; -var PARSE_ERROR = "PARSE_ERROR"; -var PLUGIN_ERROR = "PLUGIN_ERROR"; -var REDECLARATION_ERROR = "REDECLARATION_ERROR"; -var SHIMMED_EXPORT = "SHIMMED_EXPORT"; -var SOURCEMAP_BROKEN = "SOURCEMAP_BROKEN"; -var SOURCEMAP_ERROR = "SOURCEMAP_ERROR"; -var SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT = "SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT"; -var THIS_IS_UNDEFINED = "THIS_IS_UNDEFINED"; -var UNEXPECTED_NAMED_IMPORT = "UNEXPECTED_NAMED_IMPORT"; -var UNKNOWN_OPTION = "UNKNOWN_OPTION"; -var UNRESOLVED_ENTRY = "UNRESOLVED_ENTRY"; -var UNRESOLVED_IMPORT = "UNRESOLVED_IMPORT"; -var UNUSED_EXTERNAL_IMPORT = "UNUSED_EXTERNAL_IMPORT"; -var VALIDATION_ERROR = "VALIDATION_ERROR"; -function logAddonNotGenerated(message, hook, plugin) { - return { - code: ADDON_ERROR, - message: `Could not retrieve "${hook}". Check configuration of plugin "${plugin}". - Error Message: ${message}` - }; -} -function logAlreadyClosed() { - return { - code: ALREADY_CLOSED, - message: 'Bundle is already closed, no more calls to "generate" or "write" are allowed.' - }; -} -function logAmbiguousExternalNamespaces(binding, reexportingModule, usedModule, sources) { - return { - binding, - code: AMBIGUOUS_EXTERNAL_NAMESPACES, - ids: sources, - message: `Ambiguous external namespace resolution: "${relativeId(reexportingModule)}" re-exports "${binding}" from one of the external modules ${printQuotedStringList(sources.map((module) => relativeId(module)))}, guessing "${relativeId(usedModule)}".`, - reexporter: reexportingModule - }; -} -function logAnonymousPluginCache() { - return { - code: ANONYMOUS_PLUGIN_CACHE, - message: "A plugin is trying to use the Rollup cache but is not declaring a plugin name or cacheKey." - }; -} -function logAssetNotFinalisedForFileName(name) { - return { - code: ASSET_NOT_FINALISED, - message: `Plugin error - Unable to get file name for asset "${name}". Ensure that the source is set and that generate is called first. If you reference assets via import.meta.ROLLUP_FILE_URL_, you need to either have set their source after "renderStart" or need to provide an explicit "fileName" when emitting them.` - }; -} -function logAssetReferenceIdNotFoundForSetSource(assetReferenceId) { - return { - code: ASSET_NOT_FOUND, - message: `Plugin error - Unable to set the source for unknown asset "${assetReferenceId}".` - }; -} -function logAssetSourceAlreadySet(name) { - return { - code: ASSET_SOURCE_ALREADY_SET, - message: `Unable to set the source for asset "${name}", source already set.` - }; -} -function logNoAssetSourceSet(assetName) { - return { - code: ASSET_SOURCE_MISSING, - message: `Plugin error creating asset "${assetName}" - no asset source set.` - }; -} -function logBadLoader(id) { - return { - code: BAD_LOADER, - message: `Error loading "${relativeId(id)}": plugin load hook should return a string, a { code, map } object, or nothing/null.` - }; -} -function logCannotCallNamespace(name) { - return { - code: CANNOT_CALL_NAMESPACE, - message: `Cannot call a namespace ("${name}").` - }; -} -function logCannotEmitFromOptionsHook() { - return { - code: CANNOT_EMIT_FROM_OPTIONS_HOOK, - message: `Cannot emit files or set asset sources in the "outputOptions" hook, use the "renderStart" hook instead.` - }; -} -function logChunkNotGeneratedForFileName(name) { - return { - code: CHUNK_NOT_GENERATED, - message: `Plugin error - Unable to get file name for emitted chunk "${name}". You can only get file names once chunks have been generated after the "renderStart" hook.` - }; -} -function logChunkInvalid({ fileName, code }, { pos, message }) { - const errorProperties = { - code: CHUNK_INVALID, - message: `Chunk "${fileName}" is not valid JavaScript: ${message}.` - }; - augmentCodeLocation(errorProperties, pos, code, fileName); - return errorProperties; -} -function logCircularDependency(cyclePath) { - return { - code: CIRCULAR_DEPENDENCY, - ids: cyclePath, - message: `Circular dependency: ${cyclePath.map(relativeId).join(" -> ")}` - }; -} -function logCircularReexport(exportName, exporter) { - return { - code: CIRCULAR_REEXPORT, - exporter, - message: `"${exportName}" cannot be exported from "${relativeId(exporter)}" as it is a reexport that references itself.` - }; -} -function logCyclicCrossChunkReexport(exportName, exporter, reexporter, importer, preserveModules) { - return { - code: CYCLIC_CROSS_CHUNK_REEXPORT, - exporter, - id: importer, - message: `Export "${exportName}" of module "${relativeId(exporter)}" was reexported through module "${relativeId(reexporter)}" while both modules are dependencies of each other and will end up in different chunks by current Rollup settings. This scenario is not well supported at the moment as it will produce a circular dependency between chunks and will likely lead to broken execution order. -Either change the import in "${relativeId(importer)}" to point directly to the exporting module or ${preserveModules ? 'do not use "output.preserveModules"' : 'reconfigure "output.manualChunks"'} to ensure these modules end up in the same chunk.`, - reexporter - }; -} -function logDeprecation(deprecation, urlSnippet, plugin) { - return { - code: DEPRECATED_FEATURE, - message: deprecation, - url: getRollupUrl(urlSnippet), - ...{} - }; -} -function logConstVariableReassignError() { - return { - code: CONST_REASSIGN, - message: "Cannot reassign a variable declared with `const`" - }; -} -function logDuplicateArgumentNameError(name) { - return { - code: DUPLICATE_ARGUMENT_NAME, - message: `Duplicate argument name "${name}"` - }; -} -function logDuplicateExportError(name) { - return { code: DUPLICATE_EXPORT, message: `Duplicate export "${name}"` }; -} -function logDuplicatePluginName(plugin) { - return { - code: DUPLICATE_PLUGIN_NAME, - message: `The plugin name ${plugin} is being used twice in the same build. Plugin names must be distinct or provide a cacheKey (please post an issue to the plugin if you are a plugin user).` - }; -} -function logEmptyChunk(chunkName) { - return { - code: EMPTY_BUNDLE, - message: `Generated an empty chunk: "${chunkName}".`, - names: [chunkName] - }; -} -function logEval(id) { - return { - code: EVAL, - id, - message: `Use of eval in "${relativeId(id)}" is strongly discouraged as it poses security risks and may cause issues with minification.`, - url: getRollupUrl(URL_AVOIDING_EVAL) - }; -} -function logExternalSyntheticExports(id, importer) { - return { - code: EXTERNAL_SYNTHETIC_EXPORTS, - exporter: id, - message: `External "${id}" cannot have "syntheticNamedExports" enabled (imported by "${relativeId(importer)}").` - }; -} -function logFileNameConflict(fileName) { - return { - code: FILE_NAME_CONFLICT, - message: `The emitted file "${fileName}" overwrites a previously emitted file of the same name.` - }; -} -function logFileReferenceIdNotFoundForFilename(assetReferenceId) { - return { - code: FILE_NOT_FOUND, - message: `Plugin error - Unable to get file name for unknown file "${assetReferenceId}".` - }; -} -function logFirstSideEffect(source, id, { line, column }) { - return { - code: FIRST_SIDE_EFFECT, - message: `First side effect in ${relativeId(id)} is at (${line}:${column}) -${getCodeFrame(source, line, column)}` - }; -} -function logIllegalIdentifierAsName(name) { - return { - code: ILLEGAL_IDENTIFIER_AS_NAME, - message: `Given name "${name}" is not a legal JS identifier. If you need this, you can try "output.extend: true".`, - url: getRollupUrl(URL_OUTPUT_EXTEND) - }; -} -function logIllegalImportReassignment(name, importingId) { - return { - code: ILLEGAL_REASSIGNMENT, - message: `Illegal reassignment of import "${name}" in "${relativeId(importingId)}".` - }; -} -function logInconsistentImportAttributes(existingAttributes, newAttributes, source, importer) { - return { - code: INCONSISTENT_IMPORT_ATTRIBUTES, - message: `Module "${relativeId(importer)}" tried to import "${relativeId(source)}" with ${formatAttributes(newAttributes)} attributes, but it was already imported elsewhere with ${formatAttributes(existingAttributes)} attributes. Please ensure that import attributes for the same module are always consistent.` - }; -} -var formatAttributes = (attributes) => { - const entries = Object.entries(attributes); - if (entries.length === 0) - return "no"; - return entries.map(([key, value]) => `"${key}": "${value}"`).join(", "); -}; -function logInvalidAnnotation(comment, id, type) { - return { - code: INVALID_ANNOTATION, - id, - message: `A comment - -"${comment}" - -in "${relativeId(id)}" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.`, - url: getRollupUrl(type === "noSideEffects" ? URL_TREESHAKE_NOSIDEEFFECTS : URL_TREESHAKE_PURE) - }; -} -function logInputHookInOutputPlugin(pluginName, hookName) { - return { - code: INPUT_HOOK_IN_OUTPUT_PLUGIN, - message: `The "${hookName}" hook used by the output plugin ${pluginName} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.` - }; -} -function logCannotAssignModuleToChunk(moduleId, assignToAlias, currentAlias) { - return { - code: INVALID_CHUNK, - message: `Cannot assign "${relativeId(moduleId)}" to the "${assignToAlias}" chunk as it is already in the "${currentAlias}" chunk.` - }; -} -function logInvalidExportOptionValue(optionValue) { - return { - code: INVALID_EXPORT_OPTION, - message: `"output.exports" must be "default", "named", "none", "auto", or left unspecified (defaults to "auto"), received "${optionValue}".`, - url: getRollupUrl(URL_OUTPUT_EXPORTS) - }; -} -function logIncompatibleExportOptionValue(optionValue, keys, entryModule) { - return { - code: INVALID_EXPORT_OPTION, - message: `"${optionValue}" was specified for "output.exports", but entry module "${relativeId(entryModule)}" has the following exports: ${printQuotedStringList(keys)}`, - url: getRollupUrl(URL_OUTPUT_EXPORTS) - }; -} -function logInternalIdCannotBeExternal(source, importer) { - return { - code: INVALID_EXTERNAL_ID, - message: `"${source}" is imported as an external by "${relativeId(importer)}", but is already an existing non-external module id.` - }; -} -function logImportOptionsAreInvalid(importer) { - return { - code: INVALID_IMPORT_ATTRIBUTE, - message: `Rollup could not statically analyze the options argument of a dynamic import in "${relativeId(importer)}". Dynamic import options need to be an object with a nested attributes object.` - }; -} -function logImportAttributeIsInvalid(importer) { - return { - code: INVALID_IMPORT_ATTRIBUTE, - message: `Rollup could not statically analyze an import attribute of a dynamic import in "${relativeId(importer)}". Import attributes need to have string keys and values. The attribute will be removed.` - }; -} -function logInvalidLogPosition(plugin) { - return { - code: INVALID_LOG_POSITION, - message: `Plugin "${plugin}" tried to add a file position to a log or warning. This is only supported in the "transform" hook at the moment and will be ignored.` - }; -} -function logInvalidOption(option, urlSnippet, explanation, value) { - return { - code: INVALID_OPTION, - message: `Invalid value ${value === void 0 ? "" : `${JSON.stringify(value)} `}for option "${option}" - ${explanation}.`, - url: getRollupUrl(urlSnippet) - }; -} -function logInvalidAddonPluginHook(hook, plugin) { - return { - code: INVALID_PLUGIN_HOOK, - hook, - message: `Error running plugin hook "${hook}" for plugin "${plugin}", expected a string, a function hook or an object with a "handler" string or function.`, - plugin - }; -} -function logInvalidFunctionPluginHook(hook, plugin) { - return { - code: INVALID_PLUGIN_HOOK, - hook, - message: `Error running plugin hook "${hook}" for plugin "${plugin}", expected a function hook or an object with a "handler" function.`, - plugin - }; -} -function logInvalidRollupPhaseForChunkEmission() { - return { - code: INVALID_ROLLUP_PHASE, - message: `Cannot emit chunks after module loading has finished.` - }; -} -function logInvalidSetAssetSourceCall() { - return { - code: INVALID_SETASSETSOURCE, - message: `setAssetSource cannot be called in transform for caching reasons. Use emitFile with a source, or call setAssetSource in another hook.` - }; -} -function logInvalidFormatForTopLevelAwait(id, format) { - return { - code: INVALID_TLA_FORMAT, - id, - message: `Module format "${format}" does not support top-level await. Use the "es" or "system" output formats rather.` - }; -} -function logMissingEntryExport(binding, exporter) { - return { - binding, - code: MISSING_EXPORT, - exporter, - message: `Exported variable "${binding}" is not defined in "${relativeId(exporter)}".`, - url: getRollupUrl(URL_NAME_IS_NOT_EXPORTED) - }; -} -function logMissingExport(binding, importingModule, exporter) { - const isJson = (0, import_node_path.extname)(exporter) === ".json"; - return { - binding, - code: MISSING_EXPORT, - exporter, - id: importingModule, - message: `"${binding}" is not exported by "${relativeId(exporter)}", imported by "${relativeId(importingModule)}".${isJson ? " (Note that you need @rollup/plugin-json to import JSON files)" : ""}`, - url: getRollupUrl(URL_NAME_IS_NOT_EXPORTED) - }; -} -function logMissingGlobalName(externalId, guess) { - return { - code: MISSING_GLOBAL_NAME, - id: externalId, - message: `No name was provided for external module "${externalId}" in "output.globals" – guessing "${guess}".`, - names: [guess], - url: getRollupUrl(URL_OUTPUT_GLOBALS) - }; -} -function logImplicitDependantCannotBeExternal(unresolvedId, implicitlyLoadedBefore) { - return { - code: MISSING_IMPLICIT_DEPENDANT, - message: `Module "${relativeId(unresolvedId)}" that should be implicitly loaded before "${relativeId(implicitlyLoadedBefore)}" cannot be external.` - }; -} -function logUnresolvedImplicitDependant(unresolvedId, implicitlyLoadedBefore) { - return { - code: MISSING_IMPLICIT_DEPENDANT, - message: `Module "${relativeId(unresolvedId)}" that should be implicitly loaded before "${relativeId(implicitlyLoadedBefore)}" could not be resolved.` - }; -} -function logImplicitDependantIsNotIncluded(module) { - const implicitDependencies = [...module.implicitlyLoadedBefore].map((dependency) => relativeId(dependency.id)).sort(); - return { - code: MISSING_IMPLICIT_DEPENDANT, - message: `Module "${relativeId(module.id)}" that should be implicitly loaded before ${printQuotedStringList(implicitDependencies)} is not included in the module graph. Either it was not imported by an included module or only via a tree-shaken dynamic import, or no imported bindings were used and it had otherwise no side-effects.` - }; -} -function logMissingNameOptionForIifeExport() { - return { - code: MISSING_NAME_OPTION_FOR_IIFE_EXPORT, - message: `If you do not supply "output.name", you may not be able to access the exports of an IIFE bundle.`, - url: getRollupUrl(URL_OUTPUT_NAME) - }; -} -function logMissingNameOptionForUmdExport() { - return { - code: MISSING_NAME_OPTION_FOR_IIFE_EXPORT, - message: 'You must supply "output.name" for UMD bundles that have exports so that the exports are accessible in environments without a module loader.', - url: getRollupUrl(URL_OUTPUT_NAME) - }; -} -function logMissingNodeBuiltins(externalBuiltins) { - return { - code: MISSING_NODE_BUILTINS, - ids: externalBuiltins, - message: `Creating a browser bundle that depends on Node.js built-in modules (${printQuotedStringList(externalBuiltins)}). You might need to include https://github.com/FredKSchott/rollup-plugin-polyfill-node` - }; -} -function logMissingFileOrDirOption() { - return { - code: MISSING_OPTION, - message: 'You must specify "output.file" or "output.dir" for the build.', - url: getRollupUrl(URL_OUTPUT_DIR) - }; -} -function logMixedExport(facadeModuleId, name) { - return { - code: MIXED_EXPORTS, - id: facadeModuleId, - message: `Entry module "${relativeId(facadeModuleId)}" is using named and default exports together. Consumers of your bundle will have to use \`${name || "chunk"}.default\` to access the default export, which may not be what you want. Use \`output.exports: "named"\` to disable this warning.`, - url: getRollupUrl(URL_OUTPUT_EXPORTS) - }; -} -function logModuleLevelDirective(directive2, id) { - return { - code: MODULE_LEVEL_DIRECTIVE, - id, - message: `Module level directives cause errors when bundled, "${directive2}" in "${relativeId(id)}" was ignored.` - }; -} -function logNamespaceConflict(binding, reexportingModuleId, sources) { - return { - binding, - code: NAMESPACE_CONFLICT, - ids: sources, - message: `Conflicting namespaces: "${relativeId(reexportingModuleId)}" re-exports "${binding}" from one of the modules ${printQuotedStringList(sources.map((moduleId) => relativeId(moduleId)))} (will be ignored).`, - reexporter: reexportingModuleId - }; -} -function logNoTransformMapOrAstWithoutCode(pluginName) { - return { - code: NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE, - message: `The plugin "${pluginName}" returned a "map" or "ast" without returning a "code". This will be ignored.` - }; -} -function logOptimizeChunkStatus(chunks, smallChunks, pointInTime) { - return { - code: OPTIMIZE_CHUNK_STATUS, - message: `${pointInTime}, there are -${chunks} chunks, of which -${smallChunks} are below minChunkSize.` - }; -} -function logParseError(message, pos) { - return { code: PARSE_ERROR, message, pos }; -} -function logRedeclarationError(name) { - return { - code: REDECLARATION_ERROR, - message: `Identifier "${name}" has already been declared` - }; -} -function logModuleParseError(error2, moduleId) { - let message = error2.message.replace(/ \(\d+:\d+\)$/, ""); - if (moduleId.endsWith(".json")) { - message += " (Note that you need @rollup/plugin-json to import JSON files)"; - } else if (!moduleId.endsWith(".js")) { - message += " (Note that you need plugins to import files that are not JavaScript)"; - } - return { - cause: error2, - code: PARSE_ERROR, - id: moduleId, - message, - stack: error2.stack - }; -} -function logPluginError(error2, plugin, { hook, id } = {}) { - const code = error2.code; - if (!error2.pluginCode && code != null && (typeof code !== "string" || !code.startsWith("PLUGIN_"))) { - error2.pluginCode = code; - } - error2.code = PLUGIN_ERROR; - error2.plugin = plugin; - if (hook) { - error2.hook = hook; - } - if (id) { - error2.id = id; - } - return error2; -} -function logShimmedExport(id, binding) { - return { - binding, - code: SHIMMED_EXPORT, - exporter: id, - message: `Missing export "${binding}" has been shimmed in module "${relativeId(id)}".` - }; -} -function logSourcemapBroken(plugin) { - return { - code: SOURCEMAP_BROKEN, - message: `Sourcemap is likely to be incorrect: a plugin (${plugin}) was used to transform files, but didn't generate a sourcemap for the transformation. Consult the plugin documentation for help`, - plugin, - url: getRollupUrl(URL_SOURCEMAP_IS_LIKELY_TO_BE_INCORRECT) - }; -} -function logConflictingSourcemapSources(filename) { - return { - code: SOURCEMAP_BROKEN, - message: `Multiple conflicting contents for sourcemap source ${filename}` - }; -} -function logInvalidSourcemapForError(error2, id, column, line, pos) { - return { - cause: error2, - code: SOURCEMAP_ERROR, - id, - loc: { - column, - file: id, - line - }, - message: `Error when using sourcemap for reporting an error: ${error2.message}`, - pos - }; -} -function logSyntheticNamedExportsNeedNamespaceExport(id, syntheticNamedExportsOption) { - return { - code: SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT, - exporter: id, - message: `Module "${relativeId(id)}" that is marked with \`syntheticNamedExports: ${JSON.stringify(syntheticNamedExportsOption)}\` needs ${typeof syntheticNamedExportsOption === "string" && syntheticNamedExportsOption !== "default" ? `an explicit export named "${syntheticNamedExportsOption}"` : "a default export"} that does not reexport an unresolved named export of the same module.` - }; -} -function logThisIsUndefined() { - return { - code: THIS_IS_UNDEFINED, - message: `The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten`, - url: getRollupUrl(URL_THIS_IS_UNDEFINED) - }; -} -function logUnexpectedNamedImport(id, imported, isReexport) { - const importType = isReexport ? "reexport" : "import"; - return { - code: UNEXPECTED_NAMED_IMPORT, - exporter: id, - message: `The named export "${imported}" was ${importType}ed from the external module "${relativeId(id)}" even though its interop type is "defaultOnly". Either remove or change this ${importType} or change the value of the "output.interop" option.`, - url: getRollupUrl(URL_OUTPUT_INTEROP) - }; -} -function logUnexpectedNamespaceReexport(id) { - return { - code: UNEXPECTED_NAMED_IMPORT, - exporter: id, - message: `There was a namespace "*" reexport from the external module "${relativeId(id)}" even though its interop type is "defaultOnly". This will be ignored as namespace reexports only reexport named exports. If this is not intended, either remove or change this reexport or change the value of the "output.interop" option.`, - url: getRollupUrl(URL_OUTPUT_INTEROP) - }; -} -function logUnknownOption(optionType, unknownOptions, validOptions) { - return { - code: UNKNOWN_OPTION, - message: `Unknown ${optionType}: ${unknownOptions.join(", ")}. Allowed options: ${validOptions.join(", ")}` - }; -} -function logEntryCannotBeExternal(unresolvedId) { - return { - code: UNRESOLVED_ENTRY, - message: `Entry module "${relativeId(unresolvedId)}" cannot be external.` - }; -} -function logExternalModulesCannotBeIncludedInManualChunks(source) { - return { - code: EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS, - message: `"${source}" cannot be included in manualChunks because it is resolved as an external module by the "external" option or plugins.` - }; -} -function logExternalModulesCannotBeTransformedToModules(source) { - return { - code: EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES, - message: `${source} is resolved as a module now, but it was an external module before. Please check whether there are conflicts in your Rollup options "external" and "manualChunks", manualChunks cannot include external modules.` - }; -} -function logUnresolvedEntry(unresolvedId) { - return { - code: UNRESOLVED_ENTRY, - message: `Could not resolve entry module "${relativeId(unresolvedId)}".` - }; -} -function logUnresolvedImport(source, importer) { - return { - code: UNRESOLVED_IMPORT, - exporter: source, - id: importer, - message: `Could not resolve "${source}" from "${relativeId(importer)}"` - }; -} -function logUnresolvedImportTreatedAsExternal(source, importer) { - return { - code: UNRESOLVED_IMPORT, - exporter: source, - id: importer, - message: `"${source}" is imported by "${relativeId(importer)}", but could not be resolved – treating it as an external dependency.`, - url: getRollupUrl(URL_TREATING_MODULE_AS_EXTERNAL_DEPENDENCY) - }; -} -function logUnusedExternalImports(externalId, names, importers) { - return { - code: UNUSED_EXTERNAL_IMPORT, - exporter: externalId, - ids: importers, - message: `${printQuotedStringList(names, [ - "is", - "are" - ])} imported from external module "${externalId}" but never used in ${printQuotedStringList(importers.map((importer) => relativeId(importer)))}.`, - names - }; -} -function logFailedValidation(message) { - return { - code: VALIDATION_ERROR, - message - }; -} -function warnDeprecation(deprecation, urlSnippet, activeDeprecation, options, plugin) { - warnDeprecationWithOptions(deprecation, urlSnippet, activeDeprecation, options.onLog, options.strictDeprecations); -} -function warnDeprecationWithOptions(deprecation, urlSnippet, activeDeprecation, log, strictDeprecations, plugin) { - { - const warning = logDeprecation(deprecation, urlSnippet); - if (strictDeprecations) { - return error(warning); - } - log(LOGLEVEL_WARN, warning); - } -} -function convertProgram(buffer) { - const node = convertNode(0, buffer); - switch (node.type) { - case PanicError: { - return error(getRollupError(logParseError(node.message))); - } - case ParseError: { - return error(getRollupError(logParseError(node.message, node.start))); - } - default: { - return node; - } - } -} -var nodeConverters = [ - function panicError(position, buffer) { - return { - type: "PanicError", - start: buffer[position], - end: buffer[position + 1], - message: buffer.convertString(buffer[position + 2]) - }; - }, - function parseError(position, buffer) { - return { - type: "ParseError", - start: buffer[position], - end: buffer[position + 1], - message: buffer.convertString(buffer[position + 2]) - }; - }, - function arrayExpression(position, buffer) { - return { - type: "ArrayExpression", - start: buffer[position], - end: buffer[position + 1], - elements: convertNodeList(buffer[position + 2], buffer) - }; - }, - function arrayPattern(position, buffer) { - return { - type: "ArrayPattern", - start: buffer[position], - end: buffer[position + 1], - elements: convertNodeList(buffer[position + 2], buffer) - }; - }, - function arrowFunctionExpression(position, buffer) { - const flags = buffer[position + 2]; - const annotations = convertAnnotations(buffer[position + 3], buffer); - return { - type: "ArrowFunctionExpression", - start: buffer[position], - end: buffer[position + 1], - async: (flags & 1) === 1, - expression: (flags & 2) === 2, - generator: (flags & 4) === 4, - ...annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}, - params: convertNodeList(buffer[position + 4], buffer), - body: convertNode(buffer[position + 5], buffer), - id: null - }; - }, - function assignmentExpression(position, buffer) { - return { - type: "AssignmentExpression", - start: buffer[position], - end: buffer[position + 1], - operator: FIXED_STRINGS[buffer[position + 2]], - left: convertNode(buffer[position + 3], buffer), - right: convertNode(buffer[position + 4], buffer) - }; - }, - function assignmentPattern(position, buffer) { - return { - type: "AssignmentPattern", - start: buffer[position], - end: buffer[position + 1], - left: convertNode(buffer[position + 2], buffer), - right: convertNode(buffer[position + 3], buffer) - }; - }, - function awaitExpression(position, buffer) { - return { - type: "AwaitExpression", - start: buffer[position], - end: buffer[position + 1], - argument: convertNode(buffer[position + 2], buffer) - }; - }, - function binaryExpression(position, buffer) { - return { - type: "BinaryExpression", - start: buffer[position], - end: buffer[position + 1], - operator: FIXED_STRINGS[buffer[position + 2]], - left: convertNode(buffer[position + 3], buffer), - right: convertNode(buffer[position + 4], buffer) - }; - }, - function blockStatement(position, buffer) { - return { - type: "BlockStatement", - start: buffer[position], - end: buffer[position + 1], - body: convertNodeList(buffer[position + 2], buffer) - }; - }, - function breakStatement(position, buffer) { - const labelPosition = buffer[position + 2]; - return { - type: "BreakStatement", - start: buffer[position], - end: buffer[position + 1], - label: labelPosition === 0 ? null : convertNode(labelPosition, buffer) - }; - }, - function callExpression(position, buffer) { - const flags = buffer[position + 2]; - const annotations = convertAnnotations(buffer[position + 3], buffer); - return { - type: "CallExpression", - start: buffer[position], - end: buffer[position + 1], - optional: (flags & 1) === 1, - ...annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}, - callee: convertNode(buffer[position + 4], buffer), - arguments: convertNodeList(buffer[position + 5], buffer) - }; - }, - function catchClause(position, buffer) { - const parameterPosition = buffer[position + 2]; - return { - type: "CatchClause", - start: buffer[position], - end: buffer[position + 1], - param: parameterPosition === 0 ? null : convertNode(parameterPosition, buffer), - body: convertNode(buffer[position + 3], buffer) - }; - }, - function chainExpression(position, buffer) { - return { - type: "ChainExpression", - start: buffer[position], - end: buffer[position + 1], - expression: convertNode(buffer[position + 2], buffer) - }; - }, - function classBody(position, buffer) { - return { - type: "ClassBody", - start: buffer[position], - end: buffer[position + 1], - body: convertNodeList(buffer[position + 2], buffer) - }; - }, - function classDeclaration(position, buffer) { - const idPosition = buffer[position + 3]; - const superClassPosition = buffer[position + 4]; - return { - type: "ClassDeclaration", - start: buffer[position], - end: buffer[position + 1], - decorators: convertNodeList(buffer[position + 2], buffer), - id: idPosition === 0 ? null : convertNode(idPosition, buffer), - superClass: superClassPosition === 0 ? null : convertNode(superClassPosition, buffer), - body: convertNode(buffer[position + 5], buffer) - }; - }, - function classExpression(position, buffer) { - const idPosition = buffer[position + 3]; - const superClassPosition = buffer[position + 4]; - return { - type: "ClassExpression", - start: buffer[position], - end: buffer[position + 1], - decorators: convertNodeList(buffer[position + 2], buffer), - id: idPosition === 0 ? null : convertNode(idPosition, buffer), - superClass: superClassPosition === 0 ? null : convertNode(superClassPosition, buffer), - body: convertNode(buffer[position + 5], buffer) - }; - }, - function conditionalExpression(position, buffer) { - return { - type: "ConditionalExpression", - start: buffer[position], - end: buffer[position + 1], - test: convertNode(buffer[position + 2], buffer), - consequent: convertNode(buffer[position + 3], buffer), - alternate: convertNode(buffer[position + 4], buffer) - }; - }, - function continueStatement(position, buffer) { - const labelPosition = buffer[position + 2]; - return { - type: "ContinueStatement", - start: buffer[position], - end: buffer[position + 1], - label: labelPosition === 0 ? null : convertNode(labelPosition, buffer) - }; - }, - function debuggerStatement(position, buffer) { - return { - type: "DebuggerStatement", - start: buffer[position], - end: buffer[position + 1] - }; - }, - function decorator(position, buffer) { - return { - type: "Decorator", - start: buffer[position], - end: buffer[position + 1], - expression: convertNode(buffer[position + 2], buffer) - }; - }, - function directive(position, buffer) { - return { - type: "ExpressionStatement", - start: buffer[position], - end: buffer[position + 1], - directive: buffer.convertString(buffer[position + 2]), - expression: convertNode(buffer[position + 3], buffer) - }; - }, - function doWhileStatement(position, buffer) { - return { - type: "DoWhileStatement", - start: buffer[position], - end: buffer[position + 1], - body: convertNode(buffer[position + 2], buffer), - test: convertNode(buffer[position + 3], buffer) - }; - }, - function emptyStatement(position, buffer) { - return { - type: "EmptyStatement", - start: buffer[position], - end: buffer[position + 1] - }; - }, - function exportAllDeclaration(position, buffer) { - const exportedPosition = buffer[position + 2]; - return { - type: "ExportAllDeclaration", - start: buffer[position], - end: buffer[position + 1], - exported: exportedPosition === 0 ? null : convertNode(exportedPosition, buffer), - source: convertNode(buffer[position + 3], buffer), - attributes: convertNodeList(buffer[position + 4], buffer) - }; - }, - function exportDefaultDeclaration(position, buffer) { - return { - type: "ExportDefaultDeclaration", - start: buffer[position], - end: buffer[position + 1], - declaration: convertNode(buffer[position + 2], buffer) - }; - }, - function exportNamedDeclaration(position, buffer) { - const sourcePosition = buffer[position + 3]; - const declarationPosition = buffer[position + 5]; - return { - type: "ExportNamedDeclaration", - start: buffer[position], - end: buffer[position + 1], - specifiers: convertNodeList(buffer[position + 2], buffer), - source: sourcePosition === 0 ? null : convertNode(sourcePosition, buffer), - attributes: convertNodeList(buffer[position + 4], buffer), - declaration: declarationPosition === 0 ? null : convertNode(declarationPosition, buffer) - }; - }, - function exportSpecifier(position, buffer) { - const local = convertNode(buffer[position + 2], buffer); - const exportedPosition = buffer[position + 3]; - return { - type: "ExportSpecifier", - start: buffer[position], - end: buffer[position + 1], - local, - exported: exportedPosition === 0 ? { ...local } : convertNode(exportedPosition, buffer) - }; - }, - function expressionStatement(position, buffer) { - return { - type: "ExpressionStatement", - start: buffer[position], - end: buffer[position + 1], - expression: convertNode(buffer[position + 2], buffer) - }; - }, - function forInStatement(position, buffer) { - return { - type: "ForInStatement", - start: buffer[position], - end: buffer[position + 1], - left: convertNode(buffer[position + 2], buffer), - right: convertNode(buffer[position + 3], buffer), - body: convertNode(buffer[position + 4], buffer) - }; - }, - function forOfStatement(position, buffer) { - const flags = buffer[position + 2]; - return { - type: "ForOfStatement", - start: buffer[position], - end: buffer[position + 1], - await: (flags & 1) === 1, - left: convertNode(buffer[position + 3], buffer), - right: convertNode(buffer[position + 4], buffer), - body: convertNode(buffer[position + 5], buffer) - }; - }, - function forStatement(position, buffer) { - const initPosition = buffer[position + 2]; - const testPosition = buffer[position + 3]; - const updatePosition = buffer[position + 4]; - return { - type: "ForStatement", - start: buffer[position], - end: buffer[position + 1], - init: initPosition === 0 ? null : convertNode(initPosition, buffer), - test: testPosition === 0 ? null : convertNode(testPosition, buffer), - update: updatePosition === 0 ? null : convertNode(updatePosition, buffer), - body: convertNode(buffer[position + 5], buffer) - }; - }, - function functionDeclaration(position, buffer) { - const flags = buffer[position + 2]; - const annotations = convertAnnotations(buffer[position + 3], buffer); - const idPosition = buffer[position + 4]; - return { - type: "FunctionDeclaration", - start: buffer[position], - end: buffer[position + 1], - async: (flags & 1) === 1, - generator: (flags & 2) === 2, - ...annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}, - id: idPosition === 0 ? null : convertNode(idPosition, buffer), - params: convertNodeList(buffer[position + 5], buffer), - body: convertNode(buffer[position + 6], buffer), - expression: false - }; - }, - function functionExpression(position, buffer) { - const flags = buffer[position + 2]; - const annotations = convertAnnotations(buffer[position + 3], buffer); - const idPosition = buffer[position + 4]; - return { - type: "FunctionExpression", - start: buffer[position], - end: buffer[position + 1], - async: (flags & 1) === 1, - generator: (flags & 2) === 2, - ...annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}, - id: idPosition === 0 ? null : convertNode(idPosition, buffer), - params: convertNodeList(buffer[position + 5], buffer), - body: convertNode(buffer[position + 6], buffer), - expression: false - }; - }, - function identifier(position, buffer) { - return { - type: "Identifier", - start: buffer[position], - end: buffer[position + 1], - name: buffer.convertString(buffer[position + 2]) - }; - }, - function ifStatement(position, buffer) { - const alternatePosition = buffer[position + 4]; - return { - type: "IfStatement", - start: buffer[position], - end: buffer[position + 1], - test: convertNode(buffer[position + 2], buffer), - consequent: convertNode(buffer[position + 3], buffer), - alternate: alternatePosition === 0 ? null : convertNode(alternatePosition, buffer) - }; - }, - function importAttribute(position, buffer) { - return { - type: "ImportAttribute", - start: buffer[position], - end: buffer[position + 1], - key: convertNode(buffer[position + 2], buffer), - value: convertNode(buffer[position + 3], buffer) - }; - }, - function importDeclaration(position, buffer) { - return { - type: "ImportDeclaration", - start: buffer[position], - end: buffer[position + 1], - specifiers: convertNodeList(buffer[position + 2], buffer), - source: convertNode(buffer[position + 3], buffer), - attributes: convertNodeList(buffer[position + 4], buffer) - }; - }, - function importDefaultSpecifier(position, buffer) { - return { - type: "ImportDefaultSpecifier", - start: buffer[position], - end: buffer[position + 1], - local: convertNode(buffer[position + 2], buffer) - }; - }, - function importExpression(position, buffer) { - const optionsPosition = buffer[position + 3]; - return { - type: "ImportExpression", - start: buffer[position], - end: buffer[position + 1], - source: convertNode(buffer[position + 2], buffer), - options: optionsPosition === 0 ? null : convertNode(optionsPosition, buffer) - }; - }, - function importNamespaceSpecifier(position, buffer) { - return { - type: "ImportNamespaceSpecifier", - start: buffer[position], - end: buffer[position + 1], - local: convertNode(buffer[position + 2], buffer) - }; - }, - function importSpecifier(position, buffer) { - const importedPosition = buffer[position + 2]; - const local = convertNode(buffer[position + 3], buffer); - return { - type: "ImportSpecifier", - start: buffer[position], - end: buffer[position + 1], - imported: importedPosition === 0 ? { ...local } : convertNode(importedPosition, buffer), - local - }; - }, - function labeledStatement(position, buffer) { - return { - type: "LabeledStatement", - start: buffer[position], - end: buffer[position + 1], - label: convertNode(buffer[position + 2], buffer), - body: convertNode(buffer[position + 3], buffer) - }; - }, - function literalBigInt(position, buffer) { - const bigint = buffer.convertString(buffer[position + 2]); - return { - type: "Literal", - start: buffer[position], - end: buffer[position + 1], - bigint, - raw: buffer.convertString(buffer[position + 3]), - value: BigInt(bigint) - }; - }, - function literalBoolean(position, buffer) { - const flags = buffer[position + 2]; - const value = (flags & 1) === 1; - return { - type: "Literal", - start: buffer[position], - end: buffer[position + 1], - value, - raw: value ? "true" : "false" - }; - }, - function literalNull(position, buffer) { - return { - type: "Literal", - start: buffer[position], - end: buffer[position + 1], - raw: "null", - value: null - }; - }, - function literalNumber(position, buffer) { - const rawPosition = buffer[position + 2]; - return { - type: "Literal", - start: buffer[position], - end: buffer[position + 1], - raw: rawPosition === 0 ? void 0 : buffer.convertString(rawPosition), - value: new DataView(buffer.buffer).getFloat64(position + 3 << 2, true) - }; - }, - function literalRegExp(position, buffer) { - const flags = buffer.convertString(buffer[position + 2]); - const pattern = buffer.convertString(buffer[position + 3]); - return { - type: "Literal", - start: buffer[position], - end: buffer[position + 1], - raw: `/${pattern}/${flags}`, - regex: { flags, pattern }, - value: new RegExp(pattern, flags) - }; - }, - function literalString(position, buffer) { - const rawPosition = buffer[position + 3]; - return { - type: "Literal", - start: buffer[position], - end: buffer[position + 1], - value: buffer.convertString(buffer[position + 2]), - raw: rawPosition === 0 ? void 0 : buffer.convertString(rawPosition) - }; - }, - function logicalExpression(position, buffer) { - return { - type: "LogicalExpression", - start: buffer[position], - end: buffer[position + 1], - operator: FIXED_STRINGS[buffer[position + 2]], - left: convertNode(buffer[position + 3], buffer), - right: convertNode(buffer[position + 4], buffer) - }; - }, - function memberExpression(position, buffer) { - const flags = buffer[position + 2]; - return { - type: "MemberExpression", - start: buffer[position], - end: buffer[position + 1], - computed: (flags & 1) === 1, - optional: (flags & 2) === 2, - object: convertNode(buffer[position + 3], buffer), - property: convertNode(buffer[position + 4], buffer) - }; - }, - function metaProperty(position, buffer) { - return { - type: "MetaProperty", - start: buffer[position], - end: buffer[position + 1], - meta: convertNode(buffer[position + 2], buffer), - property: convertNode(buffer[position + 3], buffer) - }; - }, - function methodDefinition(position, buffer) { - const flags = buffer[position + 2]; - return { - type: "MethodDefinition", - start: buffer[position], - end: buffer[position + 1], - static: (flags & 1) === 1, - computed: (flags & 2) === 2, - decorators: convertNodeList(buffer[position + 3], buffer), - key: convertNode(buffer[position + 4], buffer), - value: convertNode(buffer[position + 5], buffer), - kind: FIXED_STRINGS[buffer[position + 6]] - }; - }, - function newExpression(position, buffer) { - const annotations = convertAnnotations(buffer[position + 2], buffer); - return { - type: "NewExpression", - start: buffer[position], - end: buffer[position + 1], - ...annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}, - callee: convertNode(buffer[position + 3], buffer), - arguments: convertNodeList(buffer[position + 4], buffer) - }; - }, - function objectExpression(position, buffer) { - return { - type: "ObjectExpression", - start: buffer[position], - end: buffer[position + 1], - properties: convertNodeList(buffer[position + 2], buffer) - }; - }, - function objectPattern(position, buffer) { - return { - type: "ObjectPattern", - start: buffer[position], - end: buffer[position + 1], - properties: convertNodeList(buffer[position + 2], buffer) - }; - }, - function privateIdentifier(position, buffer) { - return { - type: "PrivateIdentifier", - start: buffer[position], - end: buffer[position + 1], - name: buffer.convertString(buffer[position + 2]) - }; - }, - function program(position, buffer) { - const invalidAnnotations = convertAnnotations(buffer[position + 3], buffer); - return { - type: "Program", - start: buffer[position], - end: buffer[position + 1], - body: convertNodeList(buffer[position + 2], buffer), - ...invalidAnnotations.length > 0 ? { [INVALID_ANNOTATION_KEY]: invalidAnnotations } : {}, - sourceType: "module" - }; - }, - function property(position, buffer) { - const flags = buffer[position + 2]; - const keyPosition = buffer[position + 3]; - const value = convertNode(buffer[position + 4], buffer); - return { - type: "Property", - start: buffer[position], - end: buffer[position + 1], - method: (flags & 1) === 1, - shorthand: (flags & 2) === 2, - computed: (flags & 4) === 4, - key: keyPosition === 0 ? { ...value } : convertNode(keyPosition, buffer), - value, - kind: FIXED_STRINGS[buffer[position + 5]] - }; - }, - function propertyDefinition(position, buffer) { - const flags = buffer[position + 2]; - const valuePosition = buffer[position + 5]; - return { - type: "PropertyDefinition", - start: buffer[position], - end: buffer[position + 1], - static: (flags & 1) === 1, - computed: (flags & 2) === 2, - decorators: convertNodeList(buffer[position + 3], buffer), - key: convertNode(buffer[position + 4], buffer), - value: valuePosition === 0 ? null : convertNode(valuePosition, buffer) - }; - }, - function restElement(position, buffer) { - return { - type: "RestElement", - start: buffer[position], - end: buffer[position + 1], - argument: convertNode(buffer[position + 2], buffer) - }; - }, - function returnStatement(position, buffer) { - const argumentPosition = buffer[position + 2]; - return { - type: "ReturnStatement", - start: buffer[position], - end: buffer[position + 1], - argument: argumentPosition === 0 ? null : convertNode(argumentPosition, buffer) - }; - }, - function sequenceExpression(position, buffer) { - return { - type: "SequenceExpression", - start: buffer[position], - end: buffer[position + 1], - expressions: convertNodeList(buffer[position + 2], buffer) - }; - }, - function spreadElement(position, buffer) { - return { - type: "SpreadElement", - start: buffer[position], - end: buffer[position + 1], - argument: convertNode(buffer[position + 2], buffer) - }; - }, - function staticBlock(position, buffer) { - return { - type: "StaticBlock", - start: buffer[position], - end: buffer[position + 1], - body: convertNodeList(buffer[position + 2], buffer) - }; - }, - function superElement(position, buffer) { - return { - type: "Super", - start: buffer[position], - end: buffer[position + 1] - }; - }, - function switchCase(position, buffer) { - const testPosition = buffer[position + 2]; - return { - type: "SwitchCase", - start: buffer[position], - end: buffer[position + 1], - test: testPosition === 0 ? null : convertNode(testPosition, buffer), - consequent: convertNodeList(buffer[position + 3], buffer) - }; - }, - function switchStatement(position, buffer) { - return { - type: "SwitchStatement", - start: buffer[position], - end: buffer[position + 1], - discriminant: convertNode(buffer[position + 2], buffer), - cases: convertNodeList(buffer[position + 3], buffer) - }; - }, - function taggedTemplateExpression(position, buffer) { - return { - type: "TaggedTemplateExpression", - start: buffer[position], - end: buffer[position + 1], - tag: convertNode(buffer[position + 2], buffer), - quasi: convertNode(buffer[position + 3], buffer) - }; - }, - function templateElement(position, buffer) { - const flags = buffer[position + 2]; - const cookedPosition = buffer[position + 3]; - const cooked = cookedPosition === 0 ? void 0 : buffer.convertString(cookedPosition); - const raw = buffer.convertString(buffer[position + 4]); - return { - type: "TemplateElement", - start: buffer[position], - end: buffer[position + 1], - tail: (flags & 1) === 1, - value: { cooked, raw } - }; - }, - function templateLiteral(position, buffer) { - return { - type: "TemplateLiteral", - start: buffer[position], - end: buffer[position + 1], - quasis: convertNodeList(buffer[position + 2], buffer), - expressions: convertNodeList(buffer[position + 3], buffer) - }; - }, - function thisExpression(position, buffer) { - return { - type: "ThisExpression", - start: buffer[position], - end: buffer[position + 1] - }; - }, - function throwStatement(position, buffer) { - return { - type: "ThrowStatement", - start: buffer[position], - end: buffer[position + 1], - argument: convertNode(buffer[position + 2], buffer) - }; - }, - function tryStatement(position, buffer) { - const handlerPosition = buffer[position + 3]; - const finalizerPosition = buffer[position + 4]; - return { - type: "TryStatement", - start: buffer[position], - end: buffer[position + 1], - block: convertNode(buffer[position + 2], buffer), - handler: handlerPosition === 0 ? null : convertNode(handlerPosition, buffer), - finalizer: finalizerPosition === 0 ? null : convertNode(finalizerPosition, buffer) - }; - }, - function unaryExpression(position, buffer) { - return { - type: "UnaryExpression", - start: buffer[position], - end: buffer[position + 1], - operator: FIXED_STRINGS[buffer[position + 2]], - argument: convertNode(buffer[position + 3], buffer), - prefix: true - }; - }, - function updateExpression(position, buffer) { - const flags = buffer[position + 2]; - return { - type: "UpdateExpression", - start: buffer[position], - end: buffer[position + 1], - prefix: (flags & 1) === 1, - operator: FIXED_STRINGS[buffer[position + 3]], - argument: convertNode(buffer[position + 4], buffer) - }; - }, - function variableDeclaration(position, buffer) { - return { - type: "VariableDeclaration", - start: buffer[position], - end: buffer[position + 1], - kind: FIXED_STRINGS[buffer[position + 2]], - declarations: convertNodeList(buffer[position + 3], buffer) - }; - }, - function variableDeclarator(position, buffer) { - const initPosition = buffer[position + 3]; - return { - type: "VariableDeclarator", - start: buffer[position], - end: buffer[position + 1], - id: convertNode(buffer[position + 2], buffer), - init: initPosition === 0 ? null : convertNode(initPosition, buffer) - }; - }, - function whileStatement(position, buffer) { - return { - type: "WhileStatement", - start: buffer[position], - end: buffer[position + 1], - test: convertNode(buffer[position + 2], buffer), - body: convertNode(buffer[position + 3], buffer) - }; - }, - function yieldExpression(position, buffer) { - const flags = buffer[position + 2]; - const argumentPosition = buffer[position + 3]; - return { - type: "YieldExpression", - start: buffer[position], - end: buffer[position + 1], - delegate: (flags & 1) === 1, - argument: argumentPosition === 0 ? null : convertNode(argumentPosition, buffer) - }; - } -]; -function convertNode(position, buffer) { - const nodeType = buffer[position]; - const converter = nodeConverters[nodeType]; - if (!converter) { - console.trace(); - throw new Error(`Unknown node type: ${nodeType}`); - } - return converter(position + 1, buffer); -} -function convertNodeList(position, buffer) { - if (position === 0) - return EMPTY_ARRAY; - const length = buffer[position++]; - const list = []; - for (let index = 0; index < length; index++) { - const nodePosition = buffer[position++]; - list.push(nodePosition ? convertNode(nodePosition, buffer) : null); - } - return list; -} -function getAstBuffer(astBuffer) { - const array = new Uint32Array(astBuffer.buffer); - let convertString; - if (typeof Buffer !== "undefined" && astBuffer instanceof Buffer) { - convertString = (position) => { - const length = array[position++]; - const bytePosition = position << 2; - return astBuffer.toString("utf8", bytePosition, bytePosition + length); - }; - } else { - const textDecoder = new TextDecoder(); - convertString = (position) => { - const length = array[position++]; - const bytePosition = position << 2; - return textDecoder.decode(astBuffer.subarray(bytePosition, bytePosition + length)); - }; - } - return Object.assign(array, { convertString }); -} -var parseAst = (input, { allowReturnOutsideFunction = false } = {}) => convertProgram(getAstBuffer((0, import_native.parse)(input, allowReturnOutsideFunction))); -var parseAstAsync = async (input, { allowReturnOutsideFunction = false, signal } = {}) => convertProgram(getAstBuffer(await (0, import_native.parseAsync)(input, allowReturnOutsideFunction, signal))); - -export { - require_node_fs, - require_node_process, - require_native, - ArrowFunctionExpression, - BlockStatement, - CallExpression, - CatchClause, - ExportDefaultDeclaration, - ExpressionStatement, - Identifier, - Literal, - Program, - Property, - ReturnStatement, - StaticBlock, - TemplateLiteral, - VariableDeclarator, - BLANK, - EMPTY_OBJECT, - EMPTY_ARRAY, - EMPTY_SET, - FIXED_STRINGS, - ANNOTATION_KEY, - INVALID_ANNOTATION_KEY, - convertAnnotations, - locate, - LOGLEVEL_ERROR, - LOGLEVEL_WARN, - LOGLEVEL_INFO, - LOGLEVEL_DEBUG, - logLevelPriority, - isAbsolute, - isRelative, - normalize, - printQuotedStringList, - relative, - getAliasName, - relativeId, - isPathFragment, - getImportPath, - isValidUrl, - addTrailingSlashIfMissed, - URL_OUTPUT_AMD_ID, - URL_OUTPUT_AMD_BASEPATH, - URL_OUTPUT_DIR, - URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, - URL_OUTPUT_FORMAT, - URL_OUTPUT_GENERATEDCODE, - URL_OUTPUT_INLINEDYNAMICIMPORTS, - URL_OUTPUT_INTEROP, - URL_OUTPUT_MANUALCHUNKS, - URL_OUTPUT_SOURCEMAPBASEURL, - URL_OUTPUT_SOURCEMAPFILE, - URL_PRESERVEENTRYSIGNATURES, - URL_TREESHAKE, - URL_TREESHAKE_MODULESIDEEFFECTS, - URL_WATCH, - error, - getRollupError, - augmentCodeLocation, - augmentLogMessage, - logAddonNotGenerated, - logAlreadyClosed, - logAmbiguousExternalNamespaces, - logAnonymousPluginCache, - logAssetNotFinalisedForFileName, - logAssetReferenceIdNotFoundForSetSource, - logAssetSourceAlreadySet, - logNoAssetSourceSet, - logBadLoader, - logCannotCallNamespace, - logCannotEmitFromOptionsHook, - logChunkNotGeneratedForFileName, - logChunkInvalid, - logCircularDependency, - logCircularReexport, - logCyclicCrossChunkReexport, - logConstVariableReassignError, - logDuplicateArgumentNameError, - logDuplicateExportError, - logDuplicatePluginName, - logEmptyChunk, - logEval, - logExternalSyntheticExports, - logFileNameConflict, - logFileReferenceIdNotFoundForFilename, - logFirstSideEffect, - logIllegalIdentifierAsName, - logIllegalImportReassignment, - logInconsistentImportAttributes, - logInvalidAnnotation, - logInputHookInOutputPlugin, - logCannotAssignModuleToChunk, - logInvalidExportOptionValue, - logIncompatibleExportOptionValue, - logInternalIdCannotBeExternal, - logImportOptionsAreInvalid, - logImportAttributeIsInvalid, - logInvalidLogPosition, - logInvalidOption, - logInvalidAddonPluginHook, - logInvalidFunctionPluginHook, - logInvalidRollupPhaseForChunkEmission, - logInvalidSetAssetSourceCall, - logInvalidFormatForTopLevelAwait, - logMissingEntryExport, - logMissingExport, - logMissingGlobalName, - logImplicitDependantCannotBeExternal, - logUnresolvedImplicitDependant, - logImplicitDependantIsNotIncluded, - logMissingNameOptionForIifeExport, - logMissingNameOptionForUmdExport, - logMissingNodeBuiltins, - logMissingFileOrDirOption, - logMixedExport, - logModuleLevelDirective, - logNamespaceConflict, - logNoTransformMapOrAstWithoutCode, - logOptimizeChunkStatus, - logParseError, - logRedeclarationError, - logModuleParseError, - logPluginError, - logShimmedExport, - logSourcemapBroken, - logConflictingSourcemapSources, - logInvalidSourcemapForError, - logSyntheticNamedExportsNeedNamespaceExport, - logThisIsUndefined, - logUnexpectedNamedImport, - logUnexpectedNamespaceReexport, - logUnknownOption, - logEntryCannotBeExternal, - logExternalModulesCannotBeIncludedInManualChunks, - logExternalModulesCannotBeTransformedToModules, - logUnresolvedEntry, - logUnresolvedImport, - logUnresolvedImportTreatedAsExternal, - logUnusedExternalImports, - logFailedValidation, - warnDeprecation, - convertNode, - getAstBuffer, - parseAst, - parseAstAsync, - require_promises, - require_node_perf_hooks, - require_tty -}; -/*! Bundled license information: - -rollup/dist/es/shared/parseAst.js: - (* - @license - Rollup.js v4.19.1 - Sat, 27 Jul 2024 04:53:31 GMT - commit 8b967917c2923dc6a02ca1238261387aefa2cb2f - - https://github.com/rollup/rollup - - Released under the MIT License. - *) -*/ -//# sourceMappingURL=chunk-I6YKGN4K.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js.map b/site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js.map deleted file mode 100644 index ba2c7d5..0000000 --- a/site/game/node_modules/.vite/deps/chunk-I6YKGN4K.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:node:fs", "browser-external:node:process", "../../rollup/dist/native.js", "browser-external:node:fs/promises", "browser-external:node:perf_hooks", "browser-external:tty", "../../rollup/dist/es/shared/parseAst.js"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:fs\" has been externalized for browser compatibility. Cannot access \"node:fs.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:process\" has been externalized for browser compatibility. Cannot access \"node:process.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "const { existsSync } = require('node:fs');\nconst path = require('node:path');\nconst { platform, arch, report } = require('node:process');\n\nconst isMusl = () => !report.getReport().header.glibcVersionRuntime;\n\nconst bindingsByPlatformAndArch = {\n\tandroid: {\n\t\tarm: { base: 'android-arm-eabi' },\n\t\tarm64: { base: 'android-arm64' }\n\t},\n\tdarwin: {\n\t\tarm64: { base: 'darwin-arm64' },\n\t\tx64: { base: 'darwin-x64' }\n\t},\n\tlinux: {\n\t\tarm: { base: 'linux-arm-gnueabihf', musl: 'linux-arm-musleabihf' },\n\t\tarm64: { base: 'linux-arm64-gnu', musl: 'linux-arm64-musl' },\n\t\tppc64: { base: 'linux-powerpc64le-gnu', musl: null },\n\t\triscv64: { base: 'linux-riscv64-gnu', musl: null },\n\t\ts390x: { base: 'linux-s390x-gnu', musl: null },\n\t\tx64: { base: 'linux-x64-gnu', musl: 'linux-x64-musl' }\n\t},\n\twin32: {\n\t\tarm64: { base: 'win32-arm64-msvc' },\n\t\tia32: { base: 'win32-ia32-msvc' },\n\t\tx64: { base: 'win32-x64-msvc' }\n\t}\n};\n\nconst msvcLinkFilenameByArch = {\n\tarm64: 'vc_redist.arm64.exe',\n\tia32: 'vc_redist.x86.exe',\n\tx64: 'vc_redist.x64.exe'\n};\n\nconst packageBase = getPackageBase();\nconst localName = `./rollup.${packageBase}.node`;\nconst requireWithFriendlyError = id => {\n\ttry {\n\t\treturn require(id);\n\t} catch (error) {\n\t\tif (\n\t\t\tplatform === 'win32' &&\n\t\t\terror instanceof Error &&\n\t\t\terror.code === 'ERR_DLOPEN_FAILED' &&\n\t\t\terror.message.includes('The specified module could not be found')\n\t\t) {\n\t\t\tconst msvcDownloadLink = `https://aka.ms/vs/17/release/${msvcLinkFilenameByArch[arch]}`;\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to load module ${id}. ` +\n\t\t\t\t\t'Required DLL was not found. ' +\n\t\t\t\t\t'This error usually happens when Microsoft Visual C++ Redistributable is not installed. ' +\n\t\t\t\t\t`You can download it from ${msvcDownloadLink}`,\n\t\t\t\t{ cause: error }\n\t\t\t);\n\t\t}\n\n\t\tthrow new Error(\n\t\t\t`Cannot find module ${id}. ` +\n\t\t\t\t`npm has a bug related to optional dependencies (https://github.com/npm/cli/issues/4828). ` +\n\t\t\t\t'Please try `npm i` again after removing both package-lock.json and node_modules directory.',\n\t\t\t{ cause: error }\n\t\t);\n\t}\n};\n\nconst { parse, parseAsync, xxhashBase64Url, xxhashBase36, xxhashBase16 } = requireWithFriendlyError(\n\texistsSync(path.join(__dirname, localName)) ? localName : `@rollup/rollup-${packageBase}`\n);\n\nfunction getPackageBase() {\n\tconst imported = bindingsByPlatformAndArch[platform]?.[arch];\n\tif (!imported) {\n\t\tthrowUnsupportedError(false);\n\t}\n\tif ('musl' in imported && isMusl()) {\n\t\treturn imported.musl || throwUnsupportedError(true);\n\t}\n\treturn imported.base;\n}\n\nfunction throwUnsupportedError(isMusl) {\n\tthrow new Error(\n\t\t`Your current platform \"${platform}${isMusl ? ' (musl)' : ''}\" and architecture \"${arch}\" combination is not yet supported by the native Rollup build. Please use the WASM build \"@rollup/wasm-node\" instead.\n\nThe following platform-architecture combinations are supported:\n${Object.entries(bindingsByPlatformAndArch)\n\t.flatMap(([platformName, architectures]) =>\n\t\tObject.entries(architectures).flatMap(([architectureName, { musl }]) => {\n\t\t\tconst name = `${platformName}-${architectureName}`;\n\t\t\treturn musl ? [name, `${name} (musl)`] : [name];\n\t\t})\n\t)\n\t.join('\\n')}\n\nIf this is important to you, please consider supporting Rollup to make a native build for your platform and architecture available.`\n\t);\n}\n\nmodule.exports.parse = parse;\nmodule.exports.parseAsync = parseAsync;\nmodule.exports.xxhashBase64Url = xxhashBase64Url;\nmodule.exports.xxhashBase36 = xxhashBase36;\nmodule.exports.xxhashBase16 = xxhashBase16;\n", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:fs/promises\" has been externalized for browser compatibility. Cannot access \"node:fs/promises.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:perf_hooks\" has been externalized for browser compatibility. Cannot access \"node:perf_hooks.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"tty\" has been externalized for browser compatibility. Cannot access \"tty.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "/*\n @license\n\tRollup.js v4.19.1\n\tSat, 27 Jul 2024 04:53:31 GMT - commit 8b967917c2923dc6a02ca1238261387aefa2cb2f\n\n\thttps://github.com/rollup/rollup\n\n\tReleased under the MIT License.\n*/\nimport { parse, parseAsync } from '../../native.js';\nimport { resolve, basename, extname, dirname } from 'node:path';\n\n// This file is generated by scripts/generate-node-types.js.\n// Do not edit this file directly.\nconst ArrowFunctionExpression = 'ArrowFunctionExpression';\nconst BlockStatement = 'BlockStatement';\nconst CallExpression = 'CallExpression';\nconst CatchClause = 'CatchClause';\nconst ExportDefaultDeclaration = 'ExportDefaultDeclaration';\nconst ExpressionStatement = 'ExpressionStatement';\nconst Identifier = 'Identifier';\nconst Literal = 'Literal';\nconst PanicError = 'PanicError';\nconst ParseError = 'ParseError';\nconst Program = 'Program';\nconst Property = 'Property';\nconst ReturnStatement = 'ReturnStatement';\nconst StaticBlock = 'StaticBlock';\nconst TemplateLiteral = 'TemplateLiteral';\nconst VariableDeclarator = 'VariableDeclarator';\n\nconst BLANK = Object.freeze(Object.create(null));\nconst EMPTY_OBJECT = Object.freeze({});\nconst EMPTY_ARRAY = Object.freeze([]);\nconst EMPTY_SET = Object.freeze(new (class extends Set {\n add() {\n throw new Error('Cannot add to empty set');\n }\n})());\n\n// This file is generated by scripts/generate-string-constants.js.\n// Do not edit this file directly.\nconst FIXED_STRINGS = [\n 'var',\n 'let',\n 'const',\n 'init',\n 'get',\n 'set',\n 'constructor',\n 'method',\n '-',\n '+',\n '!',\n '~',\n 'typeof',\n 'void',\n 'delete',\n '++',\n '--',\n '==',\n '!=',\n '===',\n '!==',\n '<',\n '<=',\n '>',\n '>=',\n '<<',\n '>>',\n '>>>',\n '+',\n '-',\n '*',\n '/',\n '%',\n '|',\n '^',\n '&',\n '||',\n '&&',\n 'in',\n 'instanceof',\n '**',\n '??',\n '=',\n '+=',\n '-=',\n '*=',\n '/=',\n '%=',\n '<<=',\n '>>=',\n '>>>=',\n '|=',\n '^=',\n '&=',\n '**=',\n '&&=',\n '||=',\n '??=',\n 'pure',\n 'noSideEffects',\n 'sourcemap',\n 'using',\n 'await using'\n];\n\nconst ANNOTATION_KEY = '_rollupAnnotations';\nconst INVALID_ANNOTATION_KEY = '_rollupRemoved';\nconst convertAnnotations = (position, buffer) => {\n if (position === 0)\n return EMPTY_ARRAY;\n const length = buffer[position++];\n const list = [];\n for (let index = 0; index < length; index++) {\n list.push(convertAnnotation(buffer[position++], buffer));\n }\n return list;\n};\nconst convertAnnotation = (position, buffer) => {\n const start = buffer[position++];\n const end = buffer[position++];\n const type = FIXED_STRINGS[buffer[position]];\n return { end, start, type };\n};\n\n/** @typedef {import('./types').Location} Location */\n\n/**\n * @param {import('./types').Range} range\n * @param {number} index\n */\nfunction rangeContains(range, index) {\n\treturn range.start <= index && index < range.end;\n}\n\n/**\n * @param {string} source\n * @param {import('./types').Options} [options]\n */\nfunction getLocator(source, options = {}) {\n\tconst { offsetLine = 0, offsetColumn = 0 } = options;\n\n\tlet start = 0;\n\tconst ranges = source.split('\\n').map((line, i) => {\n\t\tconst end = start + line.length + 1;\n\n\t\t/** @type {import('./types').Range} */\n\t\tconst range = { start, end, line: i };\n\n\t\tstart = end;\n\t\treturn range;\n\t});\n\n\tlet i = 0;\n\n\t/**\n\t * @param {string | number} search\n\t * @param {number} [index]\n\t * @returns {Location | undefined}\n\t */\n\tfunction locator(search, index) {\n\t\tif (typeof search === 'string') {\n\t\t\tsearch = source.indexOf(search, index ?? 0);\n\t\t}\n\n\t\tif (search === -1) return undefined;\n\n\t\tlet range = ranges[i];\n\n\t\tconst d = search >= range.end ? 1 : -1;\n\n\t\twhile (range) {\n\t\t\tif (rangeContains(range, search)) {\n\t\t\t\treturn {\n\t\t\t\t\tline: offsetLine + range.line,\n\t\t\t\t\tcolumn: offsetColumn + search - range.start,\n\t\t\t\t\tcharacter: search\n\t\t\t\t};\n\t\t\t}\n\n\t\t\ti += d;\n\t\t\trange = ranges[i];\n\t\t}\n\t}\n\n\treturn locator;\n}\n\n/**\n * @param {string} source\n * @param {string | number} search\n * @param {import('./types').Options} [options]\n * @returns {Location | undefined}\n */\nfunction locate(source, search, options) {\n\treturn getLocator(source, options)(search, options && options.startIndex);\n}\n\nfunction spaces(index) {\n let result = '';\n while (index--)\n result += ' ';\n return result;\n}\nfunction tabsToSpaces(value) {\n return value.replace(/^\\t+/, match => match.split('\\t').join(' '));\n}\nconst LINE_TRUNCATE_LENGTH = 120;\nconst MIN_CHARACTERS_SHOWN_AFTER_LOCATION = 10;\nconst ELLIPSIS = '...';\nfunction getCodeFrame(source, line, column) {\n let lines = source.split('\\n');\n // Needed if a plugin did not generate correct sourcemaps\n if (line > lines.length)\n return '';\n const maxLineLength = Math.max(tabsToSpaces(lines[line - 1].slice(0, column)).length +\n MIN_CHARACTERS_SHOWN_AFTER_LOCATION +\n ELLIPSIS.length, LINE_TRUNCATE_LENGTH);\n const frameStart = Math.max(0, line - 3);\n let frameEnd = Math.min(line + 2, lines.length);\n lines = lines.slice(frameStart, frameEnd);\n while (!/\\S/.test(lines[lines.length - 1])) {\n lines.pop();\n frameEnd -= 1;\n }\n const digits = String(frameEnd).length;\n return lines\n .map((sourceLine, index) => {\n const isErrorLine = frameStart + index + 1 === line;\n let lineNumber = String(index + frameStart + 1);\n while (lineNumber.length < digits)\n lineNumber = ` ${lineNumber}`;\n let displayedLine = tabsToSpaces(sourceLine);\n if (displayedLine.length > maxLineLength) {\n displayedLine = `${displayedLine.slice(0, maxLineLength - ELLIPSIS.length)}${ELLIPSIS}`;\n }\n if (isErrorLine) {\n const indicator = spaces(digits + 2 + tabsToSpaces(sourceLine.slice(0, column)).length) + '^';\n return `${lineNumber}: ${displayedLine}\\n${indicator}`;\n }\n return `${lineNumber}: ${displayedLine}`;\n })\n .join('\\n');\n}\n\nconst LOGLEVEL_SILENT = 'silent';\nconst LOGLEVEL_ERROR = 'error';\nconst LOGLEVEL_WARN = 'warn';\nconst LOGLEVEL_INFO = 'info';\nconst LOGLEVEL_DEBUG = 'debug';\nconst logLevelPriority = {\n [LOGLEVEL_DEBUG]: 0,\n [LOGLEVEL_INFO]: 1,\n [LOGLEVEL_SILENT]: 3,\n [LOGLEVEL_WARN]: 2\n};\n\nconst ABSOLUTE_PATH_REGEX = /^(?:\\/|(?:[A-Za-z]:)?[/\\\\|])/;\nconst RELATIVE_PATH_REGEX = /^\\.?\\.(\\/|$)/;\nfunction isAbsolute(path) {\n return ABSOLUTE_PATH_REGEX.test(path);\n}\nfunction isRelative(path) {\n return RELATIVE_PATH_REGEX.test(path);\n}\nconst BACKSLASH_REGEX = /\\\\/g;\nfunction normalize(path) {\n return path.replace(BACKSLASH_REGEX, '/');\n}\n\nfunction printQuotedStringList(list, verbs) {\n const isSingleItem = list.length <= 1;\n const quotedList = list.map(item => `\"${item}\"`);\n let output = isSingleItem\n ? quotedList[0]\n : `${quotedList.slice(0, -1).join(', ')} and ${quotedList.slice(-1)[0]}`;\n if (verbs) {\n output += ` ${isSingleItem ? verbs[0] : verbs[1]}`;\n }\n return output;\n}\n\nconst ANY_SLASH_REGEX = /[/\\\\]/;\nfunction relative(from, to) {\n const fromParts = from.split(ANY_SLASH_REGEX).filter(Boolean);\n const toParts = to.split(ANY_SLASH_REGEX).filter(Boolean);\n if (fromParts[0] === '.')\n fromParts.shift();\n if (toParts[0] === '.')\n toParts.shift();\n while (fromParts[0] && toParts[0] && fromParts[0] === toParts[0]) {\n fromParts.shift();\n toParts.shift();\n }\n while (toParts[0] === '..' && fromParts.length > 0) {\n toParts.shift();\n fromParts.pop();\n }\n while (fromParts.pop()) {\n toParts.unshift('..');\n }\n return toParts.join('/');\n}\n\nfunction getAliasName(id) {\n const base = basename(id);\n return base.slice(0, Math.max(0, base.length - extname(id).length));\n}\nfunction relativeId(id) {\n if (!isAbsolute(id))\n return id;\n return relative(resolve(), id);\n}\nfunction isPathFragment(name) {\n // starting with \"/\", \"./\", \"../\", \"C:/\"\n return (name[0] === '/' || (name[0] === '.' && (name[1] === '/' || name[1] === '.')) || isAbsolute(name));\n}\nconst UPPER_DIR_REGEX = /^(\\.\\.\\/)*\\.\\.$/;\nfunction getImportPath(importerId, targetPath, stripJsExtension, ensureFileName) {\n while (targetPath.startsWith('../')) {\n targetPath = targetPath.slice(3);\n importerId = '_/' + importerId;\n }\n let relativePath = normalize(relative(dirname(importerId), targetPath));\n if (stripJsExtension && relativePath.endsWith('.js')) {\n relativePath = relativePath.slice(0, -3);\n }\n if (ensureFileName) {\n if (relativePath === '')\n return '../' + basename(targetPath);\n if (UPPER_DIR_REGEX.test(relativePath)) {\n return [...relativePath.split('/'), '..', basename(targetPath)].join('/');\n }\n }\n return relativePath ? (relativePath.startsWith('..') ? relativePath : './' + relativePath) : '.';\n}\n\nfunction isValidUrl(url) {\n try {\n new URL(url);\n }\n catch {\n return false;\n }\n return true;\n}\nfunction getRollupUrl(snippet) {\n return `https://rollupjs.org/${snippet}`;\n}\nfunction addTrailingSlashIfMissed(url) {\n if (!url.endsWith('/')) {\n return url + '/';\n }\n return url;\n}\n\n// troubleshooting\nconst URL_AVOIDING_EVAL = 'troubleshooting/#avoiding-eval';\nconst URL_NAME_IS_NOT_EXPORTED = 'troubleshooting/#error-name-is-not-exported-by-module';\nconst URL_THIS_IS_UNDEFINED = 'troubleshooting/#error-this-is-undefined';\nconst URL_TREATING_MODULE_AS_EXTERNAL_DEPENDENCY = 'troubleshooting/#warning-treating-module-as-external-dependency';\nconst URL_SOURCEMAP_IS_LIKELY_TO_BE_INCORRECT = 'troubleshooting/#warning-sourcemap-is-likely-to-be-incorrect';\nconst URL_OUTPUT_AMD_ID = 'configuration-options/#output-amd-id';\nconst URL_OUTPUT_AMD_BASEPATH = 'configuration-options/#output-amd-basepath';\nconst URL_OUTPUT_DIR = 'configuration-options/#output-dir';\nconst URL_OUTPUT_EXPORTS = 'configuration-options/#output-exports';\nconst URL_OUTPUT_EXTEND = 'configuration-options/#output-extend';\nconst URL_OUTPUT_EXTERNALIMPORTATTRIBUTES = 'configuration-options/#output-externalimportattributes';\nconst URL_OUTPUT_FORMAT = 'configuration-options/#output-format';\nconst URL_OUTPUT_GENERATEDCODE = 'configuration-options/#output-generatedcode';\nconst URL_OUTPUT_GLOBALS = 'configuration-options/#output-globals';\nconst URL_OUTPUT_INLINEDYNAMICIMPORTS = 'configuration-options/#output-inlinedynamicimports';\nconst URL_OUTPUT_INTEROP = 'configuration-options/#output-interop';\nconst URL_OUTPUT_MANUALCHUNKS = 'configuration-options/#output-manualchunks';\nconst URL_OUTPUT_NAME = 'configuration-options/#output-name';\nconst URL_OUTPUT_SOURCEMAPBASEURL = 'configuration-options/#output-sourcemapbaseurl';\nconst URL_OUTPUT_SOURCEMAPFILE = 'configuration-options/#output-sourcemapfile';\nconst URL_PRESERVEENTRYSIGNATURES = 'configuration-options/#preserveentrysignatures';\nconst URL_TREESHAKE = 'configuration-options/#treeshake';\nconst URL_TREESHAKE_PURE = 'configuration-options/#pure';\nconst URL_TREESHAKE_NOSIDEEFFECTS = 'configuration-options/#no-side-effects';\nconst URL_TREESHAKE_MODULESIDEEFFECTS = 'configuration-options/#treeshake-modulesideeffects';\nconst URL_WATCH = 'configuration-options/#watch';\n\nfunction error(base) {\n throw base instanceof Error ? base : getRollupError(base);\n}\nfunction getRollupError(base) {\n augmentLogMessage(base);\n const errorInstance = Object.assign(new Error(base.message), base);\n Object.defineProperty(errorInstance, 'name', {\n value: 'RollupError',\n writable: true\n });\n return errorInstance;\n}\nfunction augmentCodeLocation(properties, pos, source, id) {\n if (typeof pos === 'object') {\n const { line, column } = pos;\n properties.loc = { column, file: id, line };\n }\n else {\n properties.pos = pos;\n const location = locate(source, pos, { offsetLine: 1 });\n if (!location) {\n return;\n }\n const { line, column } = location;\n properties.loc = { column, file: id, line };\n }\n if (properties.frame === undefined) {\n const { line, column } = properties.loc;\n properties.frame = getCodeFrame(source, line, column);\n }\n}\nconst symbolAugmented = Symbol('augmented');\nfunction augmentLogMessage(log) {\n // Make sure to only augment the log message once\n if (!(log.plugin || log.loc) || log[symbolAugmented]) {\n return;\n }\n log[symbolAugmented] = true;\n let prefix = '';\n if (log.plugin) {\n prefix += `[plugin ${log.plugin}] `;\n }\n const id = log.id || log.loc?.file;\n if (id) {\n const position = log.loc ? ` (${log.loc.line}:${log.loc.column})` : '';\n prefix += `${relativeId(id)}${position}: `;\n }\n log.message = prefix + log.message;\n}\n// Error codes should be sorted alphabetically while errors should be sorted by\n// error code below\nconst ADDON_ERROR = 'ADDON_ERROR', ALREADY_CLOSED = 'ALREADY_CLOSED', AMBIGUOUS_EXTERNAL_NAMESPACES = 'AMBIGUOUS_EXTERNAL_NAMESPACES', ANONYMOUS_PLUGIN_CACHE = 'ANONYMOUS_PLUGIN_CACHE', ASSET_NOT_FINALISED = 'ASSET_NOT_FINALISED', ASSET_NOT_FOUND = 'ASSET_NOT_FOUND', ASSET_SOURCE_ALREADY_SET = 'ASSET_SOURCE_ALREADY_SET', ASSET_SOURCE_MISSING = 'ASSET_SOURCE_MISSING', BAD_LOADER = 'BAD_LOADER', CANNOT_CALL_NAMESPACE = 'CANNOT_CALL_NAMESPACE', CANNOT_EMIT_FROM_OPTIONS_HOOK = 'CANNOT_EMIT_FROM_OPTIONS_HOOK', CHUNK_NOT_GENERATED = 'CHUNK_NOT_GENERATED', CHUNK_INVALID = 'CHUNK_INVALID', CIRCULAR_DEPENDENCY = 'CIRCULAR_DEPENDENCY', CIRCULAR_REEXPORT = 'CIRCULAR_REEXPORT', CONST_REASSIGN = 'CONST_REASSIGN', CYCLIC_CROSS_CHUNK_REEXPORT = 'CYCLIC_CROSS_CHUNK_REEXPORT', DEPRECATED_FEATURE = 'DEPRECATED_FEATURE', DUPLICATE_ARGUMENT_NAME = 'DUPLICATE_ARGUMENT_NAME', DUPLICATE_EXPORT = 'DUPLICATE_EXPORT', DUPLICATE_PLUGIN_NAME = 'DUPLICATE_PLUGIN_NAME', EMPTY_BUNDLE = 'EMPTY_BUNDLE', EVAL = 'EVAL', EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS = 'EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS', EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES = 'EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES', EXTERNAL_SYNTHETIC_EXPORTS = 'EXTERNAL_SYNTHETIC_EXPORTS', FILE_NAME_CONFLICT = 'FILE_NAME_CONFLICT', FILE_NOT_FOUND = 'FILE_NOT_FOUND', FIRST_SIDE_EFFECT = 'FIRST_SIDE_EFFECT', ILLEGAL_IDENTIFIER_AS_NAME = 'ILLEGAL_IDENTIFIER_AS_NAME', ILLEGAL_REASSIGNMENT = 'ILLEGAL_REASSIGNMENT', INCONSISTENT_IMPORT_ATTRIBUTES = 'INCONSISTENT_IMPORT_ATTRIBUTES', INVALID_ANNOTATION = 'INVALID_ANNOTATION', INPUT_HOOK_IN_OUTPUT_PLUGIN = 'INPUT_HOOK_IN_OUTPUT_PLUGIN', INVALID_CHUNK = 'INVALID_CHUNK', INVALID_EXPORT_OPTION = 'INVALID_EXPORT_OPTION', INVALID_EXTERNAL_ID = 'INVALID_EXTERNAL_ID', INVALID_IMPORT_ATTRIBUTE = 'INVALID_IMPORT_ATTRIBUTE', INVALID_LOG_POSITION = 'INVALID_LOG_POSITION', INVALID_OPTION = 'INVALID_OPTION', INVALID_PLUGIN_HOOK = 'INVALID_PLUGIN_HOOK', INVALID_ROLLUP_PHASE = 'INVALID_ROLLUP_PHASE', INVALID_SETASSETSOURCE = 'INVALID_SETASSETSOURCE', INVALID_TLA_FORMAT = 'INVALID_TLA_FORMAT', MISSING_EXPORT = 'MISSING_EXPORT', MISSING_GLOBAL_NAME = 'MISSING_GLOBAL_NAME', MISSING_IMPLICIT_DEPENDANT = 'MISSING_IMPLICIT_DEPENDANT', MISSING_NAME_OPTION_FOR_IIFE_EXPORT = 'MISSING_NAME_OPTION_FOR_IIFE_EXPORT', MISSING_NODE_BUILTINS = 'MISSING_NODE_BUILTINS', MISSING_OPTION = 'MISSING_OPTION', MIXED_EXPORTS = 'MIXED_EXPORTS', MODULE_LEVEL_DIRECTIVE = 'MODULE_LEVEL_DIRECTIVE', NAMESPACE_CONFLICT = 'NAMESPACE_CONFLICT', NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE = 'NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE', OPTIMIZE_CHUNK_STATUS = 'OPTIMIZE_CHUNK_STATUS', PARSE_ERROR = 'PARSE_ERROR', PLUGIN_ERROR = 'PLUGIN_ERROR', REDECLARATION_ERROR = 'REDECLARATION_ERROR', SHIMMED_EXPORT = 'SHIMMED_EXPORT', SOURCEMAP_BROKEN = 'SOURCEMAP_BROKEN', SOURCEMAP_ERROR = 'SOURCEMAP_ERROR', SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT = 'SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT', THIS_IS_UNDEFINED = 'THIS_IS_UNDEFINED', UNEXPECTED_NAMED_IMPORT = 'UNEXPECTED_NAMED_IMPORT', UNKNOWN_OPTION = 'UNKNOWN_OPTION', UNRESOLVED_ENTRY = 'UNRESOLVED_ENTRY', UNRESOLVED_IMPORT = 'UNRESOLVED_IMPORT', UNUSED_EXTERNAL_IMPORT = 'UNUSED_EXTERNAL_IMPORT', VALIDATION_ERROR = 'VALIDATION_ERROR';\nfunction logAddonNotGenerated(message, hook, plugin) {\n return {\n code: ADDON_ERROR,\n message: `Could not retrieve \"${hook}\". Check configuration of plugin \"${plugin}\".\n\\tError Message: ${message}`\n };\n}\nfunction logAlreadyClosed() {\n return {\n code: ALREADY_CLOSED,\n message: 'Bundle is already closed, no more calls to \"generate\" or \"write\" are allowed.'\n };\n}\nfunction logAmbiguousExternalNamespaces(binding, reexportingModule, usedModule, sources) {\n return {\n binding,\n code: AMBIGUOUS_EXTERNAL_NAMESPACES,\n ids: sources,\n message: `Ambiguous external namespace resolution: \"${relativeId(reexportingModule)}\" re-exports \"${binding}\" from one of the external modules ${printQuotedStringList(sources.map(module => relativeId(module)))}, guessing \"${relativeId(usedModule)}\".`,\n reexporter: reexportingModule\n };\n}\nfunction logAnonymousPluginCache() {\n return {\n code: ANONYMOUS_PLUGIN_CACHE,\n message: 'A plugin is trying to use the Rollup cache but is not declaring a plugin name or cacheKey.'\n };\n}\nfunction logAssetNotFinalisedForFileName(name) {\n return {\n code: ASSET_NOT_FINALISED,\n message: `Plugin error - Unable to get file name for asset \"${name}\". Ensure that the source is set and that generate is called first. If you reference assets via import.meta.ROLLUP_FILE_URL_, you need to either have set their source after \"renderStart\" or need to provide an explicit \"fileName\" when emitting them.`\n };\n}\nfunction logAssetReferenceIdNotFoundForSetSource(assetReferenceId) {\n return {\n code: ASSET_NOT_FOUND,\n message: `Plugin error - Unable to set the source for unknown asset \"${assetReferenceId}\".`\n };\n}\nfunction logAssetSourceAlreadySet(name) {\n return {\n code: ASSET_SOURCE_ALREADY_SET,\n message: `Unable to set the source for asset \"${name}\", source already set.`\n };\n}\nfunction logNoAssetSourceSet(assetName) {\n return {\n code: ASSET_SOURCE_MISSING,\n message: `Plugin error creating asset \"${assetName}\" - no asset source set.`\n };\n}\nfunction logBadLoader(id) {\n return {\n code: BAD_LOADER,\n message: `Error loading \"${relativeId(id)}\": plugin load hook should return a string, a { code, map } object, or nothing/null.`\n };\n}\nfunction logCannotCallNamespace(name) {\n return {\n code: CANNOT_CALL_NAMESPACE,\n message: `Cannot call a namespace (\"${name}\").`\n };\n}\nfunction logCannotEmitFromOptionsHook() {\n return {\n code: CANNOT_EMIT_FROM_OPTIONS_HOOK,\n message: `Cannot emit files or set asset sources in the \"outputOptions\" hook, use the \"renderStart\" hook instead.`\n };\n}\nfunction logChunkNotGeneratedForFileName(name) {\n return {\n code: CHUNK_NOT_GENERATED,\n message: `Plugin error - Unable to get file name for emitted chunk \"${name}\". You can only get file names once chunks have been generated after the \"renderStart\" hook.`\n };\n}\nfunction logChunkInvalid({ fileName, code }, { pos, message }) {\n const errorProperties = {\n code: CHUNK_INVALID,\n message: `Chunk \"${fileName}\" is not valid JavaScript: ${message}.`\n };\n augmentCodeLocation(errorProperties, pos, code, fileName);\n return errorProperties;\n}\nfunction logCircularDependency(cyclePath) {\n return {\n code: CIRCULAR_DEPENDENCY,\n ids: cyclePath,\n message: `Circular dependency: ${cyclePath.map(relativeId).join(' -> ')}`\n };\n}\nfunction logCircularReexport(exportName, exporter) {\n return {\n code: CIRCULAR_REEXPORT,\n exporter,\n message: `\"${exportName}\" cannot be exported from \"${relativeId(exporter)}\" as it is a reexport that references itself.`\n };\n}\nfunction logCyclicCrossChunkReexport(exportName, exporter, reexporter, importer, preserveModules) {\n return {\n code: CYCLIC_CROSS_CHUNK_REEXPORT,\n exporter,\n id: importer,\n message: `Export \"${exportName}\" of module \"${relativeId(exporter)}\" was reexported through module \"${relativeId(reexporter)}\" while both modules are dependencies of each other and will end up in different chunks by current Rollup settings. This scenario is not well supported at the moment as it will produce a circular dependency between chunks and will likely lead to broken execution order.\\nEither change the import in \"${relativeId(importer)}\" to point directly to the exporting module or ${preserveModules ? 'do not use \"output.preserveModules\"' : 'reconfigure \"output.manualChunks\"'} to ensure these modules end up in the same chunk.`,\n reexporter\n };\n}\nfunction logDeprecation(deprecation, urlSnippet, plugin) {\n return {\n code: DEPRECATED_FEATURE,\n message: deprecation,\n url: getRollupUrl(urlSnippet),\n ...({})\n };\n}\nfunction logConstVariableReassignError() {\n return {\n code: CONST_REASSIGN,\n message: 'Cannot reassign a variable declared with `const`'\n };\n}\nfunction logDuplicateArgumentNameError(name) {\n return {\n code: DUPLICATE_ARGUMENT_NAME,\n message: `Duplicate argument name \"${name}\"`\n };\n}\nfunction logDuplicateExportError(name) {\n return { code: DUPLICATE_EXPORT, message: `Duplicate export \"${name}\"` };\n}\nfunction logDuplicatePluginName(plugin) {\n return {\n code: DUPLICATE_PLUGIN_NAME,\n message: `The plugin name ${plugin} is being used twice in the same build. Plugin names must be distinct or provide a cacheKey (please post an issue to the plugin if you are a plugin user).`\n };\n}\nfunction logEmptyChunk(chunkName) {\n return {\n code: EMPTY_BUNDLE,\n message: `Generated an empty chunk: \"${chunkName}\".`,\n names: [chunkName]\n };\n}\nfunction logEval(id) {\n return {\n code: EVAL,\n id,\n message: `Use of eval in \"${relativeId(id)}\" is strongly discouraged as it poses security risks and may cause issues with minification.`,\n url: getRollupUrl(URL_AVOIDING_EVAL)\n };\n}\nfunction logExternalSyntheticExports(id, importer) {\n return {\n code: EXTERNAL_SYNTHETIC_EXPORTS,\n exporter: id,\n message: `External \"${id}\" cannot have \"syntheticNamedExports\" enabled (imported by \"${relativeId(importer)}\").`\n };\n}\nfunction logFileNameConflict(fileName) {\n return {\n code: FILE_NAME_CONFLICT,\n message: `The emitted file \"${fileName}\" overwrites a previously emitted file of the same name.`\n };\n}\nfunction logFileReferenceIdNotFoundForFilename(assetReferenceId) {\n return {\n code: FILE_NOT_FOUND,\n message: `Plugin error - Unable to get file name for unknown file \"${assetReferenceId}\".`\n };\n}\nfunction logFirstSideEffect(source, id, { line, column }) {\n return {\n code: FIRST_SIDE_EFFECT,\n message: `First side effect in ${relativeId(id)} is at (${line}:${column})\\n${getCodeFrame(source, line, column)}`\n };\n}\nfunction logIllegalIdentifierAsName(name) {\n return {\n code: ILLEGAL_IDENTIFIER_AS_NAME,\n message: `Given name \"${name}\" is not a legal JS identifier. If you need this, you can try \"output.extend: true\".`,\n url: getRollupUrl(URL_OUTPUT_EXTEND)\n };\n}\nfunction logIllegalImportReassignment(name, importingId) {\n return {\n code: ILLEGAL_REASSIGNMENT,\n message: `Illegal reassignment of import \"${name}\" in \"${relativeId(importingId)}\".`\n };\n}\nfunction logInconsistentImportAttributes(existingAttributes, newAttributes, source, importer) {\n return {\n code: INCONSISTENT_IMPORT_ATTRIBUTES,\n message: `Module \"${relativeId(importer)}\" tried to import \"${relativeId(source)}\" with ${formatAttributes(newAttributes)} attributes, but it was already imported elsewhere with ${formatAttributes(existingAttributes)} attributes. Please ensure that import attributes for the same module are always consistent.`\n };\n}\nconst formatAttributes = (attributes) => {\n const entries = Object.entries(attributes);\n if (entries.length === 0)\n return 'no';\n return entries.map(([key, value]) => `\"${key}\": \"${value}\"`).join(', ');\n};\nfunction logInvalidAnnotation(comment, id, type) {\n return {\n code: INVALID_ANNOTATION,\n id,\n message: `A comment\\n\\n\"${comment}\"\\n\\nin \"${relativeId(id)}\" contains an annotation that Rollup cannot interpret due to the position of the comment. The comment will be removed to avoid issues.`,\n url: getRollupUrl(type === 'noSideEffects' ? URL_TREESHAKE_NOSIDEEFFECTS : URL_TREESHAKE_PURE)\n };\n}\nfunction logInputHookInOutputPlugin(pluginName, hookName) {\n return {\n code: INPUT_HOOK_IN_OUTPUT_PLUGIN,\n message: `The \"${hookName}\" hook used by the output plugin ${pluginName} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.`\n };\n}\nfunction logCannotAssignModuleToChunk(moduleId, assignToAlias, currentAlias) {\n return {\n code: INVALID_CHUNK,\n message: `Cannot assign \"${relativeId(moduleId)}\" to the \"${assignToAlias}\" chunk as it is already in the \"${currentAlias}\" chunk.`\n };\n}\nfunction logInvalidExportOptionValue(optionValue) {\n return {\n code: INVALID_EXPORT_OPTION,\n message: `\"output.exports\" must be \"default\", \"named\", \"none\", \"auto\", or left unspecified (defaults to \"auto\"), received \"${optionValue}\".`,\n url: getRollupUrl(URL_OUTPUT_EXPORTS)\n };\n}\nfunction logIncompatibleExportOptionValue(optionValue, keys, entryModule) {\n return {\n code: INVALID_EXPORT_OPTION,\n message: `\"${optionValue}\" was specified for \"output.exports\", but entry module \"${relativeId(entryModule)}\" has the following exports: ${printQuotedStringList(keys)}`,\n url: getRollupUrl(URL_OUTPUT_EXPORTS)\n };\n}\nfunction logInternalIdCannotBeExternal(source, importer) {\n return {\n code: INVALID_EXTERNAL_ID,\n message: `\"${source}\" is imported as an external by \"${relativeId(importer)}\", but is already an existing non-external module id.`\n };\n}\nfunction logImportOptionsAreInvalid(importer) {\n return {\n code: INVALID_IMPORT_ATTRIBUTE,\n message: `Rollup could not statically analyze the options argument of a dynamic import in \"${relativeId(importer)}\". Dynamic import options need to be an object with a nested attributes object.`\n };\n}\nfunction logImportAttributeIsInvalid(importer) {\n return {\n code: INVALID_IMPORT_ATTRIBUTE,\n message: `Rollup could not statically analyze an import attribute of a dynamic import in \"${relativeId(importer)}\". Import attributes need to have string keys and values. The attribute will be removed.`\n };\n}\nfunction logInvalidLogPosition(plugin) {\n return {\n code: INVALID_LOG_POSITION,\n message: `Plugin \"${plugin}\" tried to add a file position to a log or warning. This is only supported in the \"transform\" hook at the moment and will be ignored.`\n };\n}\nfunction logInvalidOption(option, urlSnippet, explanation, value) {\n return {\n code: INVALID_OPTION,\n message: `Invalid value ${value === undefined ? '' : `${JSON.stringify(value)} `}for option \"${option}\" - ${explanation}.`,\n url: getRollupUrl(urlSnippet)\n };\n}\nfunction logInvalidAddonPluginHook(hook, plugin) {\n return {\n code: INVALID_PLUGIN_HOOK,\n hook,\n message: `Error running plugin hook \"${hook}\" for plugin \"${plugin}\", expected a string, a function hook or an object with a \"handler\" string or function.`,\n plugin\n };\n}\nfunction logInvalidFunctionPluginHook(hook, plugin) {\n return {\n code: INVALID_PLUGIN_HOOK,\n hook,\n message: `Error running plugin hook \"${hook}\" for plugin \"${plugin}\", expected a function hook or an object with a \"handler\" function.`,\n plugin\n };\n}\nfunction logInvalidRollupPhaseForChunkEmission() {\n return {\n code: INVALID_ROLLUP_PHASE,\n message: `Cannot emit chunks after module loading has finished.`\n };\n}\nfunction logInvalidSetAssetSourceCall() {\n return {\n code: INVALID_SETASSETSOURCE,\n message: `setAssetSource cannot be called in transform for caching reasons. Use emitFile with a source, or call setAssetSource in another hook.`\n };\n}\nfunction logInvalidFormatForTopLevelAwait(id, format) {\n return {\n code: INVALID_TLA_FORMAT,\n id,\n message: `Module format \"${format}\" does not support top-level await. Use the \"es\" or \"system\" output formats rather.`\n };\n}\nfunction logMissingEntryExport(binding, exporter) {\n return {\n binding,\n code: MISSING_EXPORT,\n exporter,\n message: `Exported variable \"${binding}\" is not defined in \"${relativeId(exporter)}\".`,\n url: getRollupUrl(URL_NAME_IS_NOT_EXPORTED)\n };\n}\nfunction logMissingExport(binding, importingModule, exporter) {\n const isJson = extname(exporter) === '.json';\n return {\n binding,\n code: MISSING_EXPORT,\n exporter,\n id: importingModule,\n message: `\"${binding}\" is not exported by \"${relativeId(exporter)}\", imported by \"${relativeId(importingModule)}\".${isJson ? ' (Note that you need @rollup/plugin-json to import JSON files)' : ''}`,\n url: getRollupUrl(URL_NAME_IS_NOT_EXPORTED)\n };\n}\nfunction logMissingGlobalName(externalId, guess) {\n return {\n code: MISSING_GLOBAL_NAME,\n id: externalId,\n message: `No name was provided for external module \"${externalId}\" in \"output.globals\" – guessing \"${guess}\".`,\n names: [guess],\n url: getRollupUrl(URL_OUTPUT_GLOBALS)\n };\n}\nfunction logImplicitDependantCannotBeExternal(unresolvedId, implicitlyLoadedBefore) {\n return {\n code: MISSING_IMPLICIT_DEPENDANT,\n message: `Module \"${relativeId(unresolvedId)}\" that should be implicitly loaded before \"${relativeId(implicitlyLoadedBefore)}\" cannot be external.`\n };\n}\nfunction logUnresolvedImplicitDependant(unresolvedId, implicitlyLoadedBefore) {\n return {\n code: MISSING_IMPLICIT_DEPENDANT,\n message: `Module \"${relativeId(unresolvedId)}\" that should be implicitly loaded before \"${relativeId(implicitlyLoadedBefore)}\" could not be resolved.`\n };\n}\nfunction logImplicitDependantIsNotIncluded(module) {\n const implicitDependencies = [...module.implicitlyLoadedBefore]\n .map(dependency => relativeId(dependency.id))\n .sort();\n return {\n code: MISSING_IMPLICIT_DEPENDANT,\n message: `Module \"${relativeId(module.id)}\" that should be implicitly loaded before ${printQuotedStringList(implicitDependencies)} is not included in the module graph. Either it was not imported by an included module or only via a tree-shaken dynamic import, or no imported bindings were used and it had otherwise no side-effects.`\n };\n}\nfunction logMissingNameOptionForIifeExport() {\n return {\n code: MISSING_NAME_OPTION_FOR_IIFE_EXPORT,\n message: `If you do not supply \"output.name\", you may not be able to access the exports of an IIFE bundle.`,\n url: getRollupUrl(URL_OUTPUT_NAME)\n };\n}\nfunction logMissingNameOptionForUmdExport() {\n return {\n code: MISSING_NAME_OPTION_FOR_IIFE_EXPORT,\n message: 'You must supply \"output.name\" for UMD bundles that have exports so that the exports are accessible in environments without a module loader.',\n url: getRollupUrl(URL_OUTPUT_NAME)\n };\n}\nfunction logMissingNodeBuiltins(externalBuiltins) {\n return {\n code: MISSING_NODE_BUILTINS,\n ids: externalBuiltins,\n message: `Creating a browser bundle that depends on Node.js built-in modules (${printQuotedStringList(externalBuiltins)}). You might need to include https://github.com/FredKSchott/rollup-plugin-polyfill-node`\n };\n}\n// eslint-disable-next-line unicorn/prevent-abbreviations\nfunction logMissingFileOrDirOption() {\n return {\n code: MISSING_OPTION,\n message: 'You must specify \"output.file\" or \"output.dir\" for the build.',\n url: getRollupUrl(URL_OUTPUT_DIR)\n };\n}\nfunction logMixedExport(facadeModuleId, name) {\n return {\n code: MIXED_EXPORTS,\n id: facadeModuleId,\n message: `Entry module \"${relativeId(facadeModuleId)}\" is using named and default exports together. Consumers of your bundle will have to use \\`${name || 'chunk'}.default\\` to access the default export, which may not be what you want. Use \\`output.exports: \"named\"\\` to disable this warning.`,\n url: getRollupUrl(URL_OUTPUT_EXPORTS)\n };\n}\nfunction logModuleLevelDirective(directive, id) {\n return {\n code: MODULE_LEVEL_DIRECTIVE,\n id,\n message: `Module level directives cause errors when bundled, \"${directive}\" in \"${relativeId(id)}\" was ignored.`\n };\n}\nfunction logNamespaceConflict(binding, reexportingModuleId, sources) {\n return {\n binding,\n code: NAMESPACE_CONFLICT,\n ids: sources,\n message: `Conflicting namespaces: \"${relativeId(reexportingModuleId)}\" re-exports \"${binding}\" from one of the modules ${printQuotedStringList(sources.map(moduleId => relativeId(moduleId)))} (will be ignored).`,\n reexporter: reexportingModuleId\n };\n}\nfunction logNoTransformMapOrAstWithoutCode(pluginName) {\n return {\n code: NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE,\n message: `The plugin \"${pluginName}\" returned a \"map\" or \"ast\" without returning ` +\n 'a \"code\". This will be ignored.'\n };\n}\nfunction logOptimizeChunkStatus(chunks, smallChunks, pointInTime) {\n return {\n code: OPTIMIZE_CHUNK_STATUS,\n message: `${pointInTime}, there are\\n` +\n `${chunks} chunks, of which\\n` +\n `${smallChunks} are below minChunkSize.`\n };\n}\nfunction logParseError(message, pos) {\n return { code: PARSE_ERROR, message, pos };\n}\nfunction logRedeclarationError(name) {\n return {\n code: REDECLARATION_ERROR,\n message: `Identifier \"${name}\" has already been declared`\n };\n}\nfunction logModuleParseError(error, moduleId) {\n let message = error.message.replace(/ \\(\\d+:\\d+\\)$/, '');\n if (moduleId.endsWith('.json')) {\n message += ' (Note that you need @rollup/plugin-json to import JSON files)';\n }\n else if (!moduleId.endsWith('.js')) {\n message += ' (Note that you need plugins to import files that are not JavaScript)';\n }\n return {\n cause: error,\n code: PARSE_ERROR,\n id: moduleId,\n message,\n stack: error.stack\n };\n}\nfunction logPluginError(error, plugin, { hook, id } = {}) {\n const code = error.code;\n if (!error.pluginCode &&\n code != null &&\n (typeof code !== 'string' || !code.startsWith('PLUGIN_'))) {\n error.pluginCode = code;\n }\n error.code = PLUGIN_ERROR;\n error.plugin = plugin;\n if (hook) {\n error.hook = hook;\n }\n if (id) {\n error.id = id;\n }\n return error;\n}\nfunction logShimmedExport(id, binding) {\n return {\n binding,\n code: SHIMMED_EXPORT,\n exporter: id,\n message: `Missing export \"${binding}\" has been shimmed in module \"${relativeId(id)}\".`\n };\n}\nfunction logSourcemapBroken(plugin) {\n return {\n code: SOURCEMAP_BROKEN,\n message: `Sourcemap is likely to be incorrect: a plugin (${plugin}) was used to transform files, but didn't generate a sourcemap for the transformation. Consult the plugin documentation for help`,\n plugin,\n url: getRollupUrl(URL_SOURCEMAP_IS_LIKELY_TO_BE_INCORRECT)\n };\n}\nfunction logConflictingSourcemapSources(filename) {\n return {\n code: SOURCEMAP_BROKEN,\n message: `Multiple conflicting contents for sourcemap source ${filename}`\n };\n}\nfunction logInvalidSourcemapForError(error, id, column, line, pos) {\n return {\n cause: error,\n code: SOURCEMAP_ERROR,\n id,\n loc: {\n column,\n file: id,\n line\n },\n message: `Error when using sourcemap for reporting an error: ${error.message}`,\n pos\n };\n}\nfunction logSyntheticNamedExportsNeedNamespaceExport(id, syntheticNamedExportsOption) {\n return {\n code: SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT,\n exporter: id,\n message: `Module \"${relativeId(id)}\" that is marked with \\`syntheticNamedExports: ${JSON.stringify(syntheticNamedExportsOption)}\\` needs ${typeof syntheticNamedExportsOption === 'string' && syntheticNamedExportsOption !== 'default'\n ? `an explicit export named \"${syntheticNamedExportsOption}\"`\n : 'a default export'} that does not reexport an unresolved named export of the same module.`\n };\n}\nfunction logThisIsUndefined() {\n return {\n code: THIS_IS_UNDEFINED,\n message: `The 'this' keyword is equivalent to 'undefined' at the top level of an ES module, and has been rewritten`,\n url: getRollupUrl(URL_THIS_IS_UNDEFINED)\n };\n}\nfunction logUnexpectedNamedImport(id, imported, isReexport) {\n const importType = isReexport ? 'reexport' : 'import';\n return {\n code: UNEXPECTED_NAMED_IMPORT,\n exporter: id,\n message: `The named export \"${imported}\" was ${importType}ed from the external module \"${relativeId(id)}\" even though its interop type is \"defaultOnly\". Either remove or change this ${importType} or change the value of the \"output.interop\" option.`,\n url: getRollupUrl(URL_OUTPUT_INTEROP)\n };\n}\nfunction logUnexpectedNamespaceReexport(id) {\n return {\n code: UNEXPECTED_NAMED_IMPORT,\n exporter: id,\n message: `There was a namespace \"*\" reexport from the external module \"${relativeId(id)}\" even though its interop type is \"defaultOnly\". This will be ignored as namespace reexports only reexport named exports. If this is not intended, either remove or change this reexport or change the value of the \"output.interop\" option.`,\n url: getRollupUrl(URL_OUTPUT_INTEROP)\n };\n}\nfunction logUnknownOption(optionType, unknownOptions, validOptions) {\n return {\n code: UNKNOWN_OPTION,\n message: `Unknown ${optionType}: ${unknownOptions.join(', ')}. Allowed options: ${validOptions.join(', ')}`\n };\n}\nfunction logEntryCannotBeExternal(unresolvedId) {\n return {\n code: UNRESOLVED_ENTRY,\n message: `Entry module \"${relativeId(unresolvedId)}\" cannot be external.`\n };\n}\nfunction logExternalModulesCannotBeIncludedInManualChunks(source) {\n return {\n code: EXTERNAL_MODULES_CANNOT_BE_INCLUDED_IN_MANUAL_CHUNKS,\n message: `\"${source}\" cannot be included in manualChunks because it is resolved as an external module by the \"external\" option or plugins.`\n };\n}\nfunction logExternalModulesCannotBeTransformedToModules(source) {\n return {\n code: EXTERNAL_MODULES_CANNOT_BE_TRANSFORMED_TO_MODULES,\n message: `${source} is resolved as a module now, but it was an external module before. Please check whether there are conflicts in your Rollup options \"external\" and \"manualChunks\", manualChunks cannot include external modules.`\n };\n}\nfunction logUnresolvedEntry(unresolvedId) {\n return {\n code: UNRESOLVED_ENTRY,\n message: `Could not resolve entry module \"${relativeId(unresolvedId)}\".`\n };\n}\nfunction logUnresolvedImport(source, importer) {\n return {\n code: UNRESOLVED_IMPORT,\n exporter: source,\n id: importer,\n message: `Could not resolve \"${source}\" from \"${relativeId(importer)}\"`\n };\n}\nfunction logUnresolvedImportTreatedAsExternal(source, importer) {\n return {\n code: UNRESOLVED_IMPORT,\n exporter: source,\n id: importer,\n message: `\"${source}\" is imported by \"${relativeId(importer)}\", but could not be resolved – treating it as an external dependency.`,\n url: getRollupUrl(URL_TREATING_MODULE_AS_EXTERNAL_DEPENDENCY)\n };\n}\nfunction logUnusedExternalImports(externalId, names, importers) {\n return {\n code: UNUSED_EXTERNAL_IMPORT,\n exporter: externalId,\n ids: importers,\n message: `${printQuotedStringList(names, [\n 'is',\n 'are'\n ])} imported from external module \"${externalId}\" but never used in ${printQuotedStringList(importers.map(importer => relativeId(importer)))}.`,\n names\n };\n}\nfunction logFailedValidation(message) {\n return {\n code: VALIDATION_ERROR,\n message\n };\n}\nfunction warnDeprecation(deprecation, urlSnippet, activeDeprecation, options, plugin) {\n warnDeprecationWithOptions(deprecation, urlSnippet, activeDeprecation, options.onLog, options.strictDeprecations);\n}\nfunction warnDeprecationWithOptions(deprecation, urlSnippet, activeDeprecation, log, strictDeprecations, plugin) {\n {\n const warning = logDeprecation(deprecation, urlSnippet);\n if (strictDeprecations) {\n return error(warning);\n }\n log(LOGLEVEL_WARN, warning);\n }\n}\n\n// This file is generated by scripts/generate-buffer-to-ast.js.\n// Do not edit this file directly.\nfunction convertProgram(buffer) {\n const node = convertNode(0, buffer);\n switch (node.type) {\n case PanicError: {\n return error(getRollupError(logParseError(node.message)));\n }\n case ParseError: {\n return error(getRollupError(logParseError(node.message, node.start)));\n }\n default: {\n return node;\n }\n }\n}\n/* eslint-disable sort-keys */\nconst nodeConverters = [\n function panicError(position, buffer) {\n return {\n type: 'PanicError',\n start: buffer[position],\n end: buffer[position + 1],\n message: buffer.convertString(buffer[position + 2])\n };\n },\n function parseError(position, buffer) {\n return {\n type: 'ParseError',\n start: buffer[position],\n end: buffer[position + 1],\n message: buffer.convertString(buffer[position + 2])\n };\n },\n function arrayExpression(position, buffer) {\n return {\n type: 'ArrayExpression',\n start: buffer[position],\n end: buffer[position + 1],\n elements: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function arrayPattern(position, buffer) {\n return {\n type: 'ArrayPattern',\n start: buffer[position],\n end: buffer[position + 1],\n elements: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function arrowFunctionExpression(position, buffer) {\n const flags = buffer[position + 2];\n const annotations = convertAnnotations(buffer[position + 3], buffer);\n return {\n type: 'ArrowFunctionExpression',\n start: buffer[position],\n end: buffer[position + 1],\n async: (flags & 1) === 1,\n expression: (flags & 2) === 2,\n generator: (flags & 4) === 4,\n ...(annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}),\n params: convertNodeList(buffer[position + 4], buffer),\n body: convertNode(buffer[position + 5], buffer),\n id: null\n };\n },\n function assignmentExpression(position, buffer) {\n return {\n type: 'AssignmentExpression',\n start: buffer[position],\n end: buffer[position + 1],\n operator: FIXED_STRINGS[buffer[position + 2]],\n left: convertNode(buffer[position + 3], buffer),\n right: convertNode(buffer[position + 4], buffer)\n };\n },\n function assignmentPattern(position, buffer) {\n return {\n type: 'AssignmentPattern',\n start: buffer[position],\n end: buffer[position + 1],\n left: convertNode(buffer[position + 2], buffer),\n right: convertNode(buffer[position + 3], buffer)\n };\n },\n function awaitExpression(position, buffer) {\n return {\n type: 'AwaitExpression',\n start: buffer[position],\n end: buffer[position + 1],\n argument: convertNode(buffer[position + 2], buffer)\n };\n },\n function binaryExpression(position, buffer) {\n return {\n type: 'BinaryExpression',\n start: buffer[position],\n end: buffer[position + 1],\n operator: FIXED_STRINGS[buffer[position + 2]],\n left: convertNode(buffer[position + 3], buffer),\n right: convertNode(buffer[position + 4], buffer)\n };\n },\n function blockStatement(position, buffer) {\n return {\n type: 'BlockStatement',\n start: buffer[position],\n end: buffer[position + 1],\n body: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function breakStatement(position, buffer) {\n const labelPosition = buffer[position + 2];\n return {\n type: 'BreakStatement',\n start: buffer[position],\n end: buffer[position + 1],\n label: labelPosition === 0 ? null : convertNode(labelPosition, buffer)\n };\n },\n function callExpression(position, buffer) {\n const flags = buffer[position + 2];\n const annotations = convertAnnotations(buffer[position + 3], buffer);\n return {\n type: 'CallExpression',\n start: buffer[position],\n end: buffer[position + 1],\n optional: (flags & 1) === 1,\n ...(annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}),\n callee: convertNode(buffer[position + 4], buffer),\n arguments: convertNodeList(buffer[position + 5], buffer)\n };\n },\n function catchClause(position, buffer) {\n const parameterPosition = buffer[position + 2];\n return {\n type: 'CatchClause',\n start: buffer[position],\n end: buffer[position + 1],\n param: parameterPosition === 0 ? null : convertNode(parameterPosition, buffer),\n body: convertNode(buffer[position + 3], buffer)\n };\n },\n function chainExpression(position, buffer) {\n return {\n type: 'ChainExpression',\n start: buffer[position],\n end: buffer[position + 1],\n expression: convertNode(buffer[position + 2], buffer)\n };\n },\n function classBody(position, buffer) {\n return {\n type: 'ClassBody',\n start: buffer[position],\n end: buffer[position + 1],\n body: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function classDeclaration(position, buffer) {\n const idPosition = buffer[position + 3];\n const superClassPosition = buffer[position + 4];\n return {\n type: 'ClassDeclaration',\n start: buffer[position],\n end: buffer[position + 1],\n decorators: convertNodeList(buffer[position + 2], buffer),\n id: idPosition === 0 ? null : convertNode(idPosition, buffer),\n superClass: superClassPosition === 0 ? null : convertNode(superClassPosition, buffer),\n body: convertNode(buffer[position + 5], buffer)\n };\n },\n function classExpression(position, buffer) {\n const idPosition = buffer[position + 3];\n const superClassPosition = buffer[position + 4];\n return {\n type: 'ClassExpression',\n start: buffer[position],\n end: buffer[position + 1],\n decorators: convertNodeList(buffer[position + 2], buffer),\n id: idPosition === 0 ? null : convertNode(idPosition, buffer),\n superClass: superClassPosition === 0 ? null : convertNode(superClassPosition, buffer),\n body: convertNode(buffer[position + 5], buffer)\n };\n },\n function conditionalExpression(position, buffer) {\n return {\n type: 'ConditionalExpression',\n start: buffer[position],\n end: buffer[position + 1],\n test: convertNode(buffer[position + 2], buffer),\n consequent: convertNode(buffer[position + 3], buffer),\n alternate: convertNode(buffer[position + 4], buffer)\n };\n },\n function continueStatement(position, buffer) {\n const labelPosition = buffer[position + 2];\n return {\n type: 'ContinueStatement',\n start: buffer[position],\n end: buffer[position + 1],\n label: labelPosition === 0 ? null : convertNode(labelPosition, buffer)\n };\n },\n function debuggerStatement(position, buffer) {\n return {\n type: 'DebuggerStatement',\n start: buffer[position],\n end: buffer[position + 1]\n };\n },\n function decorator(position, buffer) {\n return {\n type: 'Decorator',\n start: buffer[position],\n end: buffer[position + 1],\n expression: convertNode(buffer[position + 2], buffer)\n };\n },\n function directive(position, buffer) {\n return {\n type: 'ExpressionStatement',\n start: buffer[position],\n end: buffer[position + 1],\n directive: buffer.convertString(buffer[position + 2]),\n expression: convertNode(buffer[position + 3], buffer)\n };\n },\n function doWhileStatement(position, buffer) {\n return {\n type: 'DoWhileStatement',\n start: buffer[position],\n end: buffer[position + 1],\n body: convertNode(buffer[position + 2], buffer),\n test: convertNode(buffer[position + 3], buffer)\n };\n },\n function emptyStatement(position, buffer) {\n return {\n type: 'EmptyStatement',\n start: buffer[position],\n end: buffer[position + 1]\n };\n },\n function exportAllDeclaration(position, buffer) {\n const exportedPosition = buffer[position + 2];\n return {\n type: 'ExportAllDeclaration',\n start: buffer[position],\n end: buffer[position + 1],\n exported: exportedPosition === 0 ? null : convertNode(exportedPosition, buffer),\n source: convertNode(buffer[position + 3], buffer),\n attributes: convertNodeList(buffer[position + 4], buffer)\n };\n },\n function exportDefaultDeclaration(position, buffer) {\n return {\n type: 'ExportDefaultDeclaration',\n start: buffer[position],\n end: buffer[position + 1],\n declaration: convertNode(buffer[position + 2], buffer)\n };\n },\n function exportNamedDeclaration(position, buffer) {\n const sourcePosition = buffer[position + 3];\n const declarationPosition = buffer[position + 5];\n return {\n type: 'ExportNamedDeclaration',\n start: buffer[position],\n end: buffer[position + 1],\n specifiers: convertNodeList(buffer[position + 2], buffer),\n source: sourcePosition === 0 ? null : convertNode(sourcePosition, buffer),\n attributes: convertNodeList(buffer[position + 4], buffer),\n declaration: declarationPosition === 0 ? null : convertNode(declarationPosition, buffer)\n };\n },\n function exportSpecifier(position, buffer) {\n const local = convertNode(buffer[position + 2], buffer);\n const exportedPosition = buffer[position + 3];\n return {\n type: 'ExportSpecifier',\n start: buffer[position],\n end: buffer[position + 1],\n local,\n exported: exportedPosition === 0 ? { ...local } : convertNode(exportedPosition, buffer)\n };\n },\n function expressionStatement(position, buffer) {\n return {\n type: 'ExpressionStatement',\n start: buffer[position],\n end: buffer[position + 1],\n expression: convertNode(buffer[position + 2], buffer)\n };\n },\n function forInStatement(position, buffer) {\n return {\n type: 'ForInStatement',\n start: buffer[position],\n end: buffer[position + 1],\n left: convertNode(buffer[position + 2], buffer),\n right: convertNode(buffer[position + 3], buffer),\n body: convertNode(buffer[position + 4], buffer)\n };\n },\n function forOfStatement(position, buffer) {\n const flags = buffer[position + 2];\n return {\n type: 'ForOfStatement',\n start: buffer[position],\n end: buffer[position + 1],\n await: (flags & 1) === 1,\n left: convertNode(buffer[position + 3], buffer),\n right: convertNode(buffer[position + 4], buffer),\n body: convertNode(buffer[position + 5], buffer)\n };\n },\n function forStatement(position, buffer) {\n const initPosition = buffer[position + 2];\n const testPosition = buffer[position + 3];\n const updatePosition = buffer[position + 4];\n return {\n type: 'ForStatement',\n start: buffer[position],\n end: buffer[position + 1],\n init: initPosition === 0 ? null : convertNode(initPosition, buffer),\n test: testPosition === 0 ? null : convertNode(testPosition, buffer),\n update: updatePosition === 0 ? null : convertNode(updatePosition, buffer),\n body: convertNode(buffer[position + 5], buffer)\n };\n },\n function functionDeclaration(position, buffer) {\n const flags = buffer[position + 2];\n const annotations = convertAnnotations(buffer[position + 3], buffer);\n const idPosition = buffer[position + 4];\n return {\n type: 'FunctionDeclaration',\n start: buffer[position],\n end: buffer[position + 1],\n async: (flags & 1) === 1,\n generator: (flags & 2) === 2,\n ...(annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}),\n id: idPosition === 0 ? null : convertNode(idPosition, buffer),\n params: convertNodeList(buffer[position + 5], buffer),\n body: convertNode(buffer[position + 6], buffer),\n expression: false\n };\n },\n function functionExpression(position, buffer) {\n const flags = buffer[position + 2];\n const annotations = convertAnnotations(buffer[position + 3], buffer);\n const idPosition = buffer[position + 4];\n return {\n type: 'FunctionExpression',\n start: buffer[position],\n end: buffer[position + 1],\n async: (flags & 1) === 1,\n generator: (flags & 2) === 2,\n ...(annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}),\n id: idPosition === 0 ? null : convertNode(idPosition, buffer),\n params: convertNodeList(buffer[position + 5], buffer),\n body: convertNode(buffer[position + 6], buffer),\n expression: false\n };\n },\n function identifier(position, buffer) {\n return {\n type: 'Identifier',\n start: buffer[position],\n end: buffer[position + 1],\n name: buffer.convertString(buffer[position + 2])\n };\n },\n function ifStatement(position, buffer) {\n const alternatePosition = buffer[position + 4];\n return {\n type: 'IfStatement',\n start: buffer[position],\n end: buffer[position + 1],\n test: convertNode(buffer[position + 2], buffer),\n consequent: convertNode(buffer[position + 3], buffer),\n alternate: alternatePosition === 0 ? null : convertNode(alternatePosition, buffer)\n };\n },\n function importAttribute(position, buffer) {\n return {\n type: 'ImportAttribute',\n start: buffer[position],\n end: buffer[position + 1],\n key: convertNode(buffer[position + 2], buffer),\n value: convertNode(buffer[position + 3], buffer)\n };\n },\n function importDeclaration(position, buffer) {\n return {\n type: 'ImportDeclaration',\n start: buffer[position],\n end: buffer[position + 1],\n specifiers: convertNodeList(buffer[position + 2], buffer),\n source: convertNode(buffer[position + 3], buffer),\n attributes: convertNodeList(buffer[position + 4], buffer)\n };\n },\n function importDefaultSpecifier(position, buffer) {\n return {\n type: 'ImportDefaultSpecifier',\n start: buffer[position],\n end: buffer[position + 1],\n local: convertNode(buffer[position + 2], buffer)\n };\n },\n function importExpression(position, buffer) {\n const optionsPosition = buffer[position + 3];\n return {\n type: 'ImportExpression',\n start: buffer[position],\n end: buffer[position + 1],\n source: convertNode(buffer[position + 2], buffer),\n options: optionsPosition === 0 ? null : convertNode(optionsPosition, buffer)\n };\n },\n function importNamespaceSpecifier(position, buffer) {\n return {\n type: 'ImportNamespaceSpecifier',\n start: buffer[position],\n end: buffer[position + 1],\n local: convertNode(buffer[position + 2], buffer)\n };\n },\n function importSpecifier(position, buffer) {\n const importedPosition = buffer[position + 2];\n const local = convertNode(buffer[position + 3], buffer);\n return {\n type: 'ImportSpecifier',\n start: buffer[position],\n end: buffer[position + 1],\n imported: importedPosition === 0 ? { ...local } : convertNode(importedPosition, buffer),\n local\n };\n },\n function labeledStatement(position, buffer) {\n return {\n type: 'LabeledStatement',\n start: buffer[position],\n end: buffer[position + 1],\n label: convertNode(buffer[position + 2], buffer),\n body: convertNode(buffer[position + 3], buffer)\n };\n },\n function literalBigInt(position, buffer) {\n const bigint = buffer.convertString(buffer[position + 2]);\n return {\n type: 'Literal',\n start: buffer[position],\n end: buffer[position + 1],\n bigint,\n raw: buffer.convertString(buffer[position + 3]),\n value: BigInt(bigint)\n };\n },\n function literalBoolean(position, buffer) {\n const flags = buffer[position + 2];\n const value = (flags & 1) === 1;\n return {\n type: 'Literal',\n start: buffer[position],\n end: buffer[position + 1],\n value,\n raw: value ? 'true' : 'false'\n };\n },\n function literalNull(position, buffer) {\n return {\n type: 'Literal',\n start: buffer[position],\n end: buffer[position + 1],\n raw: 'null',\n value: null\n };\n },\n function literalNumber(position, buffer) {\n const rawPosition = buffer[position + 2];\n return {\n type: 'Literal',\n start: buffer[position],\n end: buffer[position + 1],\n raw: rawPosition === 0 ? undefined : buffer.convertString(rawPosition),\n value: new DataView(buffer.buffer).getFloat64((position + 3) << 2, true)\n };\n },\n function literalRegExp(position, buffer) {\n const flags = buffer.convertString(buffer[position + 2]);\n const pattern = buffer.convertString(buffer[position + 3]);\n return {\n type: 'Literal',\n start: buffer[position],\n end: buffer[position + 1],\n raw: `/${pattern}/${flags}`,\n regex: { flags, pattern },\n value: new RegExp(pattern, flags)\n };\n },\n function literalString(position, buffer) {\n const rawPosition = buffer[position + 3];\n return {\n type: 'Literal',\n start: buffer[position],\n end: buffer[position + 1],\n value: buffer.convertString(buffer[position + 2]),\n raw: rawPosition === 0 ? undefined : buffer.convertString(rawPosition)\n };\n },\n function logicalExpression(position, buffer) {\n return {\n type: 'LogicalExpression',\n start: buffer[position],\n end: buffer[position + 1],\n operator: FIXED_STRINGS[buffer[position + 2]],\n left: convertNode(buffer[position + 3], buffer),\n right: convertNode(buffer[position + 4], buffer)\n };\n },\n function memberExpression(position, buffer) {\n const flags = buffer[position + 2];\n return {\n type: 'MemberExpression',\n start: buffer[position],\n end: buffer[position + 1],\n computed: (flags & 1) === 1,\n optional: (flags & 2) === 2,\n object: convertNode(buffer[position + 3], buffer),\n property: convertNode(buffer[position + 4], buffer)\n };\n },\n function metaProperty(position, buffer) {\n return {\n type: 'MetaProperty',\n start: buffer[position],\n end: buffer[position + 1],\n meta: convertNode(buffer[position + 2], buffer),\n property: convertNode(buffer[position + 3], buffer)\n };\n },\n function methodDefinition(position, buffer) {\n const flags = buffer[position + 2];\n return {\n type: 'MethodDefinition',\n start: buffer[position],\n end: buffer[position + 1],\n static: (flags & 1) === 1,\n computed: (flags & 2) === 2,\n decorators: convertNodeList(buffer[position + 3], buffer),\n key: convertNode(buffer[position + 4], buffer),\n value: convertNode(buffer[position + 5], buffer),\n kind: FIXED_STRINGS[buffer[position + 6]]\n };\n },\n function newExpression(position, buffer) {\n const annotations = convertAnnotations(buffer[position + 2], buffer);\n return {\n type: 'NewExpression',\n start: buffer[position],\n end: buffer[position + 1],\n ...(annotations.length > 0 ? { [ANNOTATION_KEY]: annotations } : {}),\n callee: convertNode(buffer[position + 3], buffer),\n arguments: convertNodeList(buffer[position + 4], buffer)\n };\n },\n function objectExpression(position, buffer) {\n return {\n type: 'ObjectExpression',\n start: buffer[position],\n end: buffer[position + 1],\n properties: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function objectPattern(position, buffer) {\n return {\n type: 'ObjectPattern',\n start: buffer[position],\n end: buffer[position + 1],\n properties: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function privateIdentifier(position, buffer) {\n return {\n type: 'PrivateIdentifier',\n start: buffer[position],\n end: buffer[position + 1],\n name: buffer.convertString(buffer[position + 2])\n };\n },\n function program(position, buffer) {\n const invalidAnnotations = convertAnnotations(buffer[position + 3], buffer);\n return {\n type: 'Program',\n start: buffer[position],\n end: buffer[position + 1],\n body: convertNodeList(buffer[position + 2], buffer),\n ...(invalidAnnotations.length > 0 ? { [INVALID_ANNOTATION_KEY]: invalidAnnotations } : {}),\n sourceType: 'module'\n };\n },\n function property(position, buffer) {\n const flags = buffer[position + 2];\n const keyPosition = buffer[position + 3];\n const value = convertNode(buffer[position + 4], buffer);\n return {\n type: 'Property',\n start: buffer[position],\n end: buffer[position + 1],\n method: (flags & 1) === 1,\n shorthand: (flags & 2) === 2,\n computed: (flags & 4) === 4,\n key: keyPosition === 0 ? { ...value } : convertNode(keyPosition, buffer),\n value,\n kind: FIXED_STRINGS[buffer[position + 5]]\n };\n },\n function propertyDefinition(position, buffer) {\n const flags = buffer[position + 2];\n const valuePosition = buffer[position + 5];\n return {\n type: 'PropertyDefinition',\n start: buffer[position],\n end: buffer[position + 1],\n static: (flags & 1) === 1,\n computed: (flags & 2) === 2,\n decorators: convertNodeList(buffer[position + 3], buffer),\n key: convertNode(buffer[position + 4], buffer),\n value: valuePosition === 0 ? null : convertNode(valuePosition, buffer)\n };\n },\n function restElement(position, buffer) {\n return {\n type: 'RestElement',\n start: buffer[position],\n end: buffer[position + 1],\n argument: convertNode(buffer[position + 2], buffer)\n };\n },\n function returnStatement(position, buffer) {\n const argumentPosition = buffer[position + 2];\n return {\n type: 'ReturnStatement',\n start: buffer[position],\n end: buffer[position + 1],\n argument: argumentPosition === 0 ? null : convertNode(argumentPosition, buffer)\n };\n },\n function sequenceExpression(position, buffer) {\n return {\n type: 'SequenceExpression',\n start: buffer[position],\n end: buffer[position + 1],\n expressions: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function spreadElement(position, buffer) {\n return {\n type: 'SpreadElement',\n start: buffer[position],\n end: buffer[position + 1],\n argument: convertNode(buffer[position + 2], buffer)\n };\n },\n function staticBlock(position, buffer) {\n return {\n type: 'StaticBlock',\n start: buffer[position],\n end: buffer[position + 1],\n body: convertNodeList(buffer[position + 2], buffer)\n };\n },\n function superElement(position, buffer) {\n return {\n type: 'Super',\n start: buffer[position],\n end: buffer[position + 1]\n };\n },\n function switchCase(position, buffer) {\n const testPosition = buffer[position + 2];\n return {\n type: 'SwitchCase',\n start: buffer[position],\n end: buffer[position + 1],\n test: testPosition === 0 ? null : convertNode(testPosition, buffer),\n consequent: convertNodeList(buffer[position + 3], buffer)\n };\n },\n function switchStatement(position, buffer) {\n return {\n type: 'SwitchStatement',\n start: buffer[position],\n end: buffer[position + 1],\n discriminant: convertNode(buffer[position + 2], buffer),\n cases: convertNodeList(buffer[position + 3], buffer)\n };\n },\n function taggedTemplateExpression(position, buffer) {\n return {\n type: 'TaggedTemplateExpression',\n start: buffer[position],\n end: buffer[position + 1],\n tag: convertNode(buffer[position + 2], buffer),\n quasi: convertNode(buffer[position + 3], buffer)\n };\n },\n function templateElement(position, buffer) {\n const flags = buffer[position + 2];\n const cookedPosition = buffer[position + 3];\n const cooked = cookedPosition === 0 ? undefined : buffer.convertString(cookedPosition);\n const raw = buffer.convertString(buffer[position + 4]);\n return {\n type: 'TemplateElement',\n start: buffer[position],\n end: buffer[position + 1],\n tail: (flags & 1) === 1,\n value: { cooked, raw }\n };\n },\n function templateLiteral(position, buffer) {\n return {\n type: 'TemplateLiteral',\n start: buffer[position],\n end: buffer[position + 1],\n quasis: convertNodeList(buffer[position + 2], buffer),\n expressions: convertNodeList(buffer[position + 3], buffer)\n };\n },\n function thisExpression(position, buffer) {\n return {\n type: 'ThisExpression',\n start: buffer[position],\n end: buffer[position + 1]\n };\n },\n function throwStatement(position, buffer) {\n return {\n type: 'ThrowStatement',\n start: buffer[position],\n end: buffer[position + 1],\n argument: convertNode(buffer[position + 2], buffer)\n };\n },\n function tryStatement(position, buffer) {\n const handlerPosition = buffer[position + 3];\n const finalizerPosition = buffer[position + 4];\n return {\n type: 'TryStatement',\n start: buffer[position],\n end: buffer[position + 1],\n block: convertNode(buffer[position + 2], buffer),\n handler: handlerPosition === 0 ? null : convertNode(handlerPosition, buffer),\n finalizer: finalizerPosition === 0 ? null : convertNode(finalizerPosition, buffer)\n };\n },\n function unaryExpression(position, buffer) {\n return {\n type: 'UnaryExpression',\n start: buffer[position],\n end: buffer[position + 1],\n operator: FIXED_STRINGS[buffer[position + 2]],\n argument: convertNode(buffer[position + 3], buffer),\n prefix: true\n };\n },\n function updateExpression(position, buffer) {\n const flags = buffer[position + 2];\n return {\n type: 'UpdateExpression',\n start: buffer[position],\n end: buffer[position + 1],\n prefix: (flags & 1) === 1,\n operator: FIXED_STRINGS[buffer[position + 3]],\n argument: convertNode(buffer[position + 4], buffer)\n };\n },\n function variableDeclaration(position, buffer) {\n return {\n type: 'VariableDeclaration',\n start: buffer[position],\n end: buffer[position + 1],\n kind: FIXED_STRINGS[buffer[position + 2]],\n declarations: convertNodeList(buffer[position + 3], buffer)\n };\n },\n function variableDeclarator(position, buffer) {\n const initPosition = buffer[position + 3];\n return {\n type: 'VariableDeclarator',\n start: buffer[position],\n end: buffer[position + 1],\n id: convertNode(buffer[position + 2], buffer),\n init: initPosition === 0 ? null : convertNode(initPosition, buffer)\n };\n },\n function whileStatement(position, buffer) {\n return {\n type: 'WhileStatement',\n start: buffer[position],\n end: buffer[position + 1],\n test: convertNode(buffer[position + 2], buffer),\n body: convertNode(buffer[position + 3], buffer)\n };\n },\n function yieldExpression(position, buffer) {\n const flags = buffer[position + 2];\n const argumentPosition = buffer[position + 3];\n return {\n type: 'YieldExpression',\n start: buffer[position],\n end: buffer[position + 1],\n delegate: (flags & 1) === 1,\n argument: argumentPosition === 0 ? null : convertNode(argumentPosition, buffer)\n };\n }\n];\nfunction convertNode(position, buffer) {\n const nodeType = buffer[position];\n const converter = nodeConverters[nodeType];\n /* istanbul ignore if: This should never be executed but is a safeguard against faulty buffers */\n if (!converter) {\n console.trace();\n throw new Error(`Unknown node type: ${nodeType}`);\n }\n return converter(position + 1, buffer);\n}\nfunction convertNodeList(position, buffer) {\n if (position === 0)\n return EMPTY_ARRAY;\n const length = buffer[position++];\n const list = [];\n for (let index = 0; index < length; index++) {\n const nodePosition = buffer[position++];\n list.push(nodePosition ? convertNode(nodePosition, buffer) : null);\n }\n return list;\n}\n\nfunction getAstBuffer(astBuffer) {\n const array = new Uint32Array(astBuffer.buffer);\n let convertString;\n if (typeof Buffer !== 'undefined' && astBuffer instanceof Buffer) {\n convertString = (position) => {\n const length = array[position++];\n const bytePosition = position << 2;\n return astBuffer.toString('utf8', bytePosition, bytePosition + length);\n };\n }\n else {\n const textDecoder = new TextDecoder();\n convertString = (position) => {\n const length = array[position++];\n const bytePosition = position << 2;\n return textDecoder.decode(astBuffer.subarray(bytePosition, bytePosition + length));\n };\n }\n return Object.assign(array, { convertString });\n}\n\nconst parseAst = (input, { allowReturnOutsideFunction = false } = {}) => convertProgram(getAstBuffer(parse(input, allowReturnOutsideFunction)));\nconst parseAstAsync = async (input, { allowReturnOutsideFunction = false, signal } = {}) => convertProgram(getAstBuffer(await parseAsync(input, allowReturnOutsideFunction, signal)));\n\nexport { ANNOTATION_KEY, ArrowFunctionExpression, BLANK, BlockStatement, CallExpression, CatchClause, EMPTY_ARRAY, EMPTY_OBJECT, EMPTY_SET, ExportDefaultDeclaration, ExpressionStatement, FIXED_STRINGS, INVALID_ANNOTATION_KEY, Identifier, LOGLEVEL_DEBUG, LOGLEVEL_ERROR, LOGLEVEL_INFO, LOGLEVEL_WARN, Literal, Program, Property, ReturnStatement, StaticBlock, TemplateLiteral, URL_OUTPUT_AMD_BASEPATH, URL_OUTPUT_AMD_ID, URL_OUTPUT_DIR, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, URL_OUTPUT_FORMAT, URL_OUTPUT_GENERATEDCODE, URL_OUTPUT_INLINEDYNAMICIMPORTS, URL_OUTPUT_INTEROP, URL_OUTPUT_MANUALCHUNKS, URL_OUTPUT_SOURCEMAPBASEURL, URL_OUTPUT_SOURCEMAPFILE, URL_PRESERVEENTRYSIGNATURES, URL_TREESHAKE, URL_TREESHAKE_MODULESIDEEFFECTS, URL_WATCH, VariableDeclarator, addTrailingSlashIfMissed, augmentCodeLocation, augmentLogMessage, convertAnnotations, convertNode, error, getAliasName, getAstBuffer, getImportPath, getRollupError, isAbsolute, isPathFragment, isRelative, isValidUrl, locate, logAddonNotGenerated, logAlreadyClosed, logAmbiguousExternalNamespaces, logAnonymousPluginCache, logAssetNotFinalisedForFileName, logAssetReferenceIdNotFoundForSetSource, logAssetSourceAlreadySet, logBadLoader, logCannotAssignModuleToChunk, logCannotCallNamespace, logCannotEmitFromOptionsHook, logChunkInvalid, logChunkNotGeneratedForFileName, logCircularDependency, logCircularReexport, logConflictingSourcemapSources, logConstVariableReassignError, logCyclicCrossChunkReexport, logDuplicateArgumentNameError, logDuplicateExportError, logDuplicatePluginName, logEmptyChunk, logEntryCannotBeExternal, logEval, logExternalModulesCannotBeIncludedInManualChunks, logExternalModulesCannotBeTransformedToModules, logExternalSyntheticExports, logFailedValidation, logFileNameConflict, logFileReferenceIdNotFoundForFilename, logFirstSideEffect, logIllegalIdentifierAsName, logIllegalImportReassignment, logImplicitDependantCannotBeExternal, logImplicitDependantIsNotIncluded, logImportAttributeIsInvalid, logImportOptionsAreInvalid, logIncompatibleExportOptionValue, logInconsistentImportAttributes, logInputHookInOutputPlugin, logInternalIdCannotBeExternal, logInvalidAddonPluginHook, logInvalidAnnotation, logInvalidExportOptionValue, logInvalidFormatForTopLevelAwait, logInvalidFunctionPluginHook, logInvalidLogPosition, logInvalidOption, logInvalidRollupPhaseForChunkEmission, logInvalidSetAssetSourceCall, logInvalidSourcemapForError, logLevelPriority, logMissingEntryExport, logMissingExport, logMissingFileOrDirOption, logMissingGlobalName, logMissingNameOptionForIifeExport, logMissingNameOptionForUmdExport, logMissingNodeBuiltins, logMixedExport, logModuleLevelDirective, logModuleParseError, logNamespaceConflict, logNoAssetSourceSet, logNoTransformMapOrAstWithoutCode, logOptimizeChunkStatus, logParseError, logPluginError, logRedeclarationError, logShimmedExport, logSourcemapBroken, logSyntheticNamedExportsNeedNamespaceExport, logThisIsUndefined, logUnexpectedNamedImport, logUnexpectedNamespaceReexport, logUnknownOption, logUnresolvedEntry, logUnresolvedImplicitDependant, logUnresolvedImport, logUnresolvedImportTreatedAsExternal, logUnusedExternalImports, normalize, parseAst, parseAstAsync, printQuotedStringList, relative, relativeId, warnDeprecation };\n"], - "mappings": "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", - "names": ["error", "parse", "parseAsync", "isMusl", "i", "directive", "error"] -} diff --git a/site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js b/site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js deleted file mode 100644 index ddda5d2..0000000 --- a/site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js +++ /dev/null @@ -1,77 +0,0 @@ -import { - __commonJS -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:os -var require_os = __commonJS({ - "browser-external:os"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "os" has been externalized for browser compatibility. Cannot access "os.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:util -var require_util = __commonJS({ - "browser-external:util"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "util" has been externalized for browser compatibility. Cannot access "util.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:events -var require_events = __commonJS({ - "browser-external:events"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "events" has been externalized for browser compatibility. Cannot access "events.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:stream -var require_stream = __commonJS({ - "browser-external:stream"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "stream" has been externalized for browser compatibility. Cannot access "stream.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:os -var require_node_os = __commonJS({ - "browser-external:node:os"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:os" has been externalized for browser compatibility. Cannot access "node:os.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -export { - require_os, - require_util, - require_events, - require_stream, - require_node_os -}; -//# sourceMappingURL=chunk-KPGLAEFU.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js.map b/site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js.map deleted file mode 100644 index d9f4e36..0000000 --- a/site/game/node_modules/.vite/deps/chunk-KPGLAEFU.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:os", "browser-external:util", "browser-external:events", "browser-external:stream", "browser-external:node:os"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"os\" has been externalized for browser compatibility. Cannot access \"os.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"util\" has been externalized for browser compatibility. Cannot access \"util.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"events\" has been externalized for browser compatibility. Cannot access \"events.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"stream\" has been externalized for browser compatibility. Cannot access \"stream.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))", "module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:os\" has been externalized for browser compatibility. Cannot access \"node:os.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))"], - "mappings": ";;;;;AAAA;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,kFAAkF,GAAG,qIAAqI;AAAA,QACzO;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;;;ACXF;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,sFAAsF,GAAG,qIAAqI;AAAA,QAC7O;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;;;ACXF;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,0FAA0F,GAAG,qIAAqI;AAAA,QACjP;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;;;ACXF;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,0FAA0F,GAAG,qIAAqI;AAAA,QACjP;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;;;ACXF;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,4FAA4F,GAAG,qIAAqI;AAAA,QACnP;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js b/site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js deleted file mode 100644 index 7d60626..0000000 --- a/site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js +++ /dev/null @@ -1,21 +0,0 @@ -import { - __commonJS -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:node:path -var require_node_path = __commonJS({ - "browser-external:node:path"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:path" has been externalized for browser compatibility. Cannot access "node:path.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -export { - require_node_path -}; -//# sourceMappingURL=chunk-M2MSWSHF.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js.map b/site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js.map deleted file mode 100644 index ed8f18d..0000000 --- a/site/game/node_modules/.vite/deps/chunk-M2MSWSHF.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:node:path"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:path\" has been externalized for browser compatibility. Cannot access \"node:path.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))"], - "mappings": ";;;;;AAAA;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,gGAAgG,GAAG,qIAAqI;AAAA,QACvP;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js b/site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js deleted file mode 100644 index 2a70062..0000000 --- a/site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js +++ /dev/null @@ -1,21 +0,0 @@ -import { - __commonJS -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:url -var require_url = __commonJS({ - "browser-external:url"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "url" has been externalized for browser compatibility. Cannot access "url.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -export { - require_url -}; -//# sourceMappingURL=chunk-MPVQUUHK.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js.map b/site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js.map deleted file mode 100644 index 0c61861..0000000 --- a/site/game/node_modules/.vite/deps/chunk-MPVQUUHK.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:url"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"url\" has been externalized for browser compatibility. Cannot access \"url.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))"], - "mappings": ";;;;;AAAA;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,oFAAoF,GAAG,qIAAqI;AAAA,QAC3O;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js b/site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js deleted file mode 100644 index cd59ada..0000000 --- a/site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js +++ /dev/null @@ -1,21 +0,0 @@ -import { - __commonJS -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:node:https -var require_node_https = __commonJS({ - "browser-external:node:https"(exports, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:https" has been externalized for browser compatibility. Cannot access "node:https.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -export { - require_node_https -}; -//# sourceMappingURL=chunk-OZBCPRVH.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js.map b/site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js.map deleted file mode 100644 index 4ab46fe..0000000 --- a/site/game/node_modules/.vite/deps/chunk-OZBCPRVH.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["browser-external:node:https"], - "sourcesContent": ["module.exports = Object.create(new Proxy({}, {\n get(_, key) {\n if (\n key !== '__esModule' &&\n key !== '__proto__' &&\n key !== 'constructor' &&\n key !== 'splice'\n ) {\n console.warn(`Module \"node:https\" has been externalized for browser compatibility. Cannot access \"node:https.${key}\" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)\n }\n }\n}))"], - "mappings": ";;;;;AAAA;AAAA;AAAA,WAAO,UAAU,OAAO,OAAO,IAAI,MAAM,CAAC,GAAG;AAAA,MAC3C,IAAI,GAAG,KAAK;AACV,YACE,QAAQ,gBACR,QAAQ,eACR,QAAQ,iBACR,QAAQ,UACR;AACA,kBAAQ,KAAK,kGAAkG,GAAG,qIAAqI;AAAA,QACzP;AAAA,MACF;AAAA,IACF,CAAC,CAAC;AAAA;AAAA;", - "names": [] -} diff --git a/site/game/node_modules/.vite/deps/chunk-PTYCI75C.js b/site/game/node_modules/.vite/deps/chunk-PTYCI75C.js deleted file mode 100644 index b0eea5a..0000000 --- a/site/game/node_modules/.vite/deps/chunk-PTYCI75C.js +++ /dev/null @@ -1,18921 +0,0 @@ -import { - ANNOTATION_KEY, - ArrowFunctionExpression, - BLANK, - BlockStatement, - CallExpression, - CatchClause, - EMPTY_ARRAY, - EMPTY_OBJECT, - EMPTY_SET, - ExportDefaultDeclaration, - ExpressionStatement, - FIXED_STRINGS, - INVALID_ANNOTATION_KEY, - Identifier, - LOGLEVEL_DEBUG, - LOGLEVEL_ERROR, - LOGLEVEL_INFO, - LOGLEVEL_WARN, - Literal, - Program, - Property, - ReturnStatement, - StaticBlock, - TemplateLiteral, - URL_OUTPUT_AMD_BASEPATH, - URL_OUTPUT_AMD_ID, - URL_OUTPUT_DIR, - URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, - URL_OUTPUT_FORMAT, - URL_OUTPUT_GENERATEDCODE, - URL_OUTPUT_INLINEDYNAMICIMPORTS, - URL_OUTPUT_INTEROP, - URL_OUTPUT_MANUALCHUNKS, - URL_OUTPUT_SOURCEMAPBASEURL, - URL_OUTPUT_SOURCEMAPFILE, - URL_PRESERVEENTRYSIGNATURES, - URL_TREESHAKE, - URL_TREESHAKE_MODULESIDEEFFECTS, - URL_WATCH, - VariableDeclarator, - addTrailingSlashIfMissed, - augmentCodeLocation, - augmentLogMessage, - convertAnnotations, - convertNode, - error, - getAliasName, - getAstBuffer, - getImportPath, - getRollupError, - isAbsolute, - isPathFragment, - isRelative, - isValidUrl, - locate, - logAddonNotGenerated, - logAlreadyClosed, - logAmbiguousExternalNamespaces, - logAnonymousPluginCache, - logAssetNotFinalisedForFileName, - logAssetReferenceIdNotFoundForSetSource, - logAssetSourceAlreadySet, - logBadLoader, - logCannotAssignModuleToChunk, - logCannotCallNamespace, - logCannotEmitFromOptionsHook, - logChunkInvalid, - logChunkNotGeneratedForFileName, - logCircularDependency, - logCircularReexport, - logConflictingSourcemapSources, - logConstVariableReassignError, - logCyclicCrossChunkReexport, - logDuplicateArgumentNameError, - logDuplicateExportError, - logDuplicatePluginName, - logEmptyChunk, - logEntryCannotBeExternal, - logEval, - logExternalModulesCannotBeIncludedInManualChunks, - logExternalModulesCannotBeTransformedToModules, - logExternalSyntheticExports, - logFailedValidation, - logFileNameConflict, - logFileReferenceIdNotFoundForFilename, - logFirstSideEffect, - logIllegalIdentifierAsName, - logIllegalImportReassignment, - logImplicitDependantCannotBeExternal, - logImplicitDependantIsNotIncluded, - logImportAttributeIsInvalid, - logImportOptionsAreInvalid, - logIncompatibleExportOptionValue, - logInconsistentImportAttributes, - logInputHookInOutputPlugin, - logInternalIdCannotBeExternal, - logInvalidAddonPluginHook, - logInvalidAnnotation, - logInvalidExportOptionValue, - logInvalidFormatForTopLevelAwait, - logInvalidFunctionPluginHook, - logInvalidLogPosition, - logInvalidOption, - logInvalidRollupPhaseForChunkEmission, - logInvalidSetAssetSourceCall, - logInvalidSourcemapForError, - logLevelPriority, - logMissingEntryExport, - logMissingExport, - logMissingFileOrDirOption, - logMissingGlobalName, - logMissingNameOptionForIifeExport, - logMissingNameOptionForUmdExport, - logMissingNodeBuiltins, - logMixedExport, - logModuleLevelDirective, - logModuleParseError, - logNamespaceConflict, - logNoAssetSourceSet, - logNoTransformMapOrAstWithoutCode, - logOptimizeChunkStatus, - logParseError, - logPluginError, - logRedeclarationError, - logShimmedExport, - logSourcemapBroken, - logSyntheticNamedExportsNeedNamespaceExport, - logThisIsUndefined, - logUnexpectedNamedImport, - logUnexpectedNamespaceReexport, - logUnknownOption, - logUnresolvedEntry, - logUnresolvedImplicitDependant, - logUnresolvedImport, - logUnresolvedImportTreatedAsExternal, - logUnusedExternalImports, - normalize, - parseAst, - printQuotedStringList, - relative, - relativeId, - require_native, - require_node_perf_hooks, - require_node_process, - require_promises, - require_tty, - warnDeprecation -} from "./chunk-I6YKGN4K.js"; -import { - require_path -} from "./chunk-4XRL7ZXG.js"; -import { - require_node_path -} from "./chunk-M2MSWSHF.js"; -import { - __toESM -} from "./chunk-ZSMWDLMK.js"; - -// node_modules/rollup/dist/es/shared/node-entry.js -var import_node_path = __toESM(require_node_path(), 1); -var import_path = __toESM(require_path(), 1); -var import_native = __toESM(require_native(), 1); -var import_node_process = __toESM(require_node_process(), 1); -var import_node_perf_hooks = __toESM(require_node_perf_hooks(), 1); -var import_promises = __toESM(require_promises(), 1); -var tty = __toESM(require_tty(), 1); -var version = "4.19.1"; -var comma = ",".charCodeAt(0); -var semicolon = ";".charCodeAt(0); -var chars$1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; -var intToChar = new Uint8Array(64); -var charToInt = new Uint8Array(128); -for (let i = 0; i < chars$1.length; i++) { - const c = chars$1.charCodeAt(i); - intToChar[i] = c; - charToInt[c] = i; -} -function decodeInteger(reader, relative3) { - let value = 0; - let shift = 0; - let integer = 0; - do { - const c = reader.next(); - integer = charToInt[c]; - value |= (integer & 31) << shift; - shift += 5; - } while (integer & 32); - const shouldNegate = value & 1; - value >>>= 1; - if (shouldNegate) { - value = -2147483648 | -value; - } - return relative3 + value; -} -function encodeInteger(builder, num, relative3) { - let delta = num - relative3; - delta = delta < 0 ? -delta << 1 | 1 : delta << 1; - do { - let clamped = delta & 31; - delta >>>= 5; - if (delta > 0) - clamped |= 32; - builder.write(intToChar[clamped]); - } while (delta > 0); - return num; -} -function hasMoreVlq(reader, max) { - if (reader.pos >= max) - return false; - return reader.peek() !== comma; -} -var bufLength = 1024 * 16; -var td = typeof TextDecoder !== "undefined" ? new TextDecoder() : typeof Buffer !== "undefined" ? { - decode(buf) { - const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength); - return out.toString(); - } -} : { - decode(buf) { - let out = ""; - for (let i = 0; i < buf.length; i++) { - out += String.fromCharCode(buf[i]); - } - return out; - } -}; -var StringWriter = class { - constructor() { - this.pos = 0; - this.out = ""; - this.buffer = new Uint8Array(bufLength); - } - write(v) { - const { buffer } = this; - buffer[this.pos++] = v; - if (this.pos === bufLength) { - this.out += td.decode(buffer); - this.pos = 0; - } - } - flush() { - const { buffer, out, pos } = this; - return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out; - } -}; -var StringReader = class { - constructor(buffer) { - this.pos = 0; - this.buffer = buffer; - } - next() { - return this.buffer.charCodeAt(this.pos++); - } - peek() { - return this.buffer.charCodeAt(this.pos); - } - indexOf(char) { - const { buffer, pos } = this; - const idx = buffer.indexOf(char, pos); - return idx === -1 ? buffer.length : idx; - } -}; -function decode(mappings) { - const { length } = mappings; - const reader = new StringReader(mappings); - const decoded = []; - let genColumn = 0; - let sourcesIndex = 0; - let sourceLine = 0; - let sourceColumn = 0; - let namesIndex = 0; - do { - const semi = reader.indexOf(";"); - const line = []; - let sorted = true; - let lastCol = 0; - genColumn = 0; - while (reader.pos < semi) { - let seg; - genColumn = decodeInteger(reader, genColumn); - if (genColumn < lastCol) - sorted = false; - lastCol = genColumn; - if (hasMoreVlq(reader, semi)) { - sourcesIndex = decodeInteger(reader, sourcesIndex); - sourceLine = decodeInteger(reader, sourceLine); - sourceColumn = decodeInteger(reader, sourceColumn); - if (hasMoreVlq(reader, semi)) { - namesIndex = decodeInteger(reader, namesIndex); - seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]; - } else { - seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]; - } - } else { - seg = [genColumn]; - } - line.push(seg); - reader.pos++; - } - if (!sorted) - sort(line); - decoded.push(line); - reader.pos = semi + 1; - } while (reader.pos <= length); - return decoded; -} -function sort(line) { - line.sort(sortComparator); -} -function sortComparator(a, b) { - return a[0] - b[0]; -} -function encode(decoded) { - const writer = new StringWriter(); - let sourcesIndex = 0; - let sourceLine = 0; - let sourceColumn = 0; - let namesIndex = 0; - for (let i = 0; i < decoded.length; i++) { - const line = decoded[i]; - if (i > 0) - writer.write(semicolon); - if (line.length === 0) - continue; - let genColumn = 0; - for (let j = 0; j < line.length; j++) { - const segment = line[j]; - if (j > 0) - writer.write(comma); - genColumn = encodeInteger(writer, segment[0], genColumn); - if (segment.length === 1) - continue; - sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex); - sourceLine = encodeInteger(writer, segment[2], sourceLine); - sourceColumn = encodeInteger(writer, segment[3], sourceColumn); - if (segment.length === 4) - continue; - namesIndex = encodeInteger(writer, segment[4], namesIndex); - } - } - return writer.flush(); -} -var BitSet = class _BitSet { - constructor(arg) { - this.bits = arg instanceof _BitSet ? arg.bits.slice() : []; - } - add(n2) { - this.bits[n2 >> 5] |= 1 << (n2 & 31); - } - has(n2) { - return !!(this.bits[n2 >> 5] & 1 << (n2 & 31)); - } -}; -var Chunk$1 = class Chunk { - constructor(start, end, content) { - this.start = start; - this.end = end; - this.original = content; - this.intro = ""; - this.outro = ""; - this.content = content; - this.storeName = false; - this.edited = false; - { - this.previous = null; - this.next = null; - } - } - appendLeft(content) { - this.outro += content; - } - appendRight(content) { - this.intro = this.intro + content; - } - clone() { - const chunk = new Chunk(this.start, this.end, this.original); - chunk.intro = this.intro; - chunk.outro = this.outro; - chunk.content = this.content; - chunk.storeName = this.storeName; - chunk.edited = this.edited; - return chunk; - } - contains(index) { - return this.start < index && index < this.end; - } - eachNext(fn) { - let chunk = this; - while (chunk) { - fn(chunk); - chunk = chunk.next; - } - } - eachPrevious(fn) { - let chunk = this; - while (chunk) { - fn(chunk); - chunk = chunk.previous; - } - } - edit(content, storeName, contentOnly) { - this.content = content; - if (!contentOnly) { - this.intro = ""; - this.outro = ""; - } - this.storeName = storeName; - this.edited = true; - return this; - } - prependLeft(content) { - this.outro = content + this.outro; - } - prependRight(content) { - this.intro = content + this.intro; - } - reset() { - this.intro = ""; - this.outro = ""; - if (this.edited) { - this.content = this.original; - this.storeName = false; - this.edited = false; - } - } - split(index) { - const sliceIndex = index - this.start; - const originalBefore = this.original.slice(0, sliceIndex); - const originalAfter = this.original.slice(sliceIndex); - this.original = originalBefore; - const newChunk = new Chunk(index, this.end, originalAfter); - newChunk.outro = this.outro; - this.outro = ""; - this.end = index; - if (this.edited) { - newChunk.edit("", false); - this.content = ""; - } else { - this.content = originalBefore; - } - newChunk.next = this.next; - if (newChunk.next) newChunk.next.previous = newChunk; - newChunk.previous = this; - this.next = newChunk; - return newChunk; - } - toString() { - return this.intro + this.content + this.outro; - } - trimEnd(rx) { - this.outro = this.outro.replace(rx, ""); - if (this.outro.length) return true; - const trimmed = this.content.replace(rx, ""); - if (trimmed.length) { - if (trimmed !== this.content) { - this.split(this.start + trimmed.length).edit("", void 0, true); - if (this.edited) { - this.edit(trimmed, this.storeName, true); - } - } - return true; - } else { - this.edit("", void 0, true); - this.intro = this.intro.replace(rx, ""); - if (this.intro.length) return true; - } - } - trimStart(rx) { - this.intro = this.intro.replace(rx, ""); - if (this.intro.length) return true; - const trimmed = this.content.replace(rx, ""); - if (trimmed.length) { - if (trimmed !== this.content) { - const newChunk = this.split(this.end - trimmed.length); - if (this.edited) { - newChunk.edit(trimmed, this.storeName, true); - } - this.edit("", void 0, true); - } - return true; - } else { - this.edit("", void 0, true); - this.outro = this.outro.replace(rx, ""); - if (this.outro.length) return true; - } - } -}; -function getBtoa() { - if (typeof globalThis !== "undefined" && typeof globalThis.btoa === "function") { - return (str) => globalThis.btoa(unescape(encodeURIComponent(str))); - } else if (typeof Buffer === "function") { - return (str) => Buffer.from(str, "utf-8").toString("base64"); - } else { - return () => { - throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported."); - }; - } -} -var btoa = getBtoa(); -var SourceMap = class { - constructor(properties) { - this.version = 3; - this.file = properties.file; - this.sources = properties.sources; - this.sourcesContent = properties.sourcesContent; - this.names = properties.names; - this.mappings = encode(properties.mappings); - if (typeof properties.x_google_ignoreList !== "undefined") { - this.x_google_ignoreList = properties.x_google_ignoreList; - } - } - toString() { - return JSON.stringify(this); - } - toUrl() { - return "data:application/json;charset=utf-8;base64," + btoa(this.toString()); - } -}; -function guessIndent(code) { - const lines = code.split("\n"); - const tabbed = lines.filter((line) => /^\t+/.test(line)); - const spaced = lines.filter((line) => /^ {2,}/.test(line)); - if (tabbed.length === 0 && spaced.length === 0) { - return null; - } - if (tabbed.length >= spaced.length) { - return " "; - } - const min = spaced.reduce((previous, current) => { - const numSpaces = /^ +/.exec(current)[0].length; - return Math.min(numSpaces, previous); - }, Infinity); - return new Array(min + 1).join(" "); -} -function getRelativePath(from, to) { - const fromParts = from.split(/[/\\]/); - const toParts = to.split(/[/\\]/); - fromParts.pop(); - while (fromParts[0] === toParts[0]) { - fromParts.shift(); - toParts.shift(); - } - if (fromParts.length) { - let i = fromParts.length; - while (i--) fromParts[i] = ".."; - } - return fromParts.concat(toParts).join("/"); -} -var toString = Object.prototype.toString; -function isObject$1(thing) { - return toString.call(thing) === "[object Object]"; -} -function getLocator(source) { - const originalLines = source.split("\n"); - const lineOffsets = []; - for (let i = 0, pos = 0; i < originalLines.length; i++) { - lineOffsets.push(pos); - pos += originalLines[i].length + 1; - } - return function locate2(index) { - let i = 0; - let j = lineOffsets.length; - while (i < j) { - const m = i + j >> 1; - if (index < lineOffsets[m]) { - j = m; - } else { - i = m + 1; - } - } - const line = i - 1; - const column = index - lineOffsets[line]; - return { line, column }; - }; -} -var wordRegex = /\w/; -var Mappings = class { - constructor(hires) { - this.hires = hires; - this.generatedCodeLine = 0; - this.generatedCodeColumn = 0; - this.raw = []; - this.rawSegments = this.raw[this.generatedCodeLine] = []; - this.pending = null; - } - addEdit(sourceIndex, content, loc, nameIndex) { - if (content.length) { - const contentLengthMinusOne = content.length - 1; - let contentLineEnd = content.indexOf("\n", 0); - let previousContentLineEnd = -1; - while (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) { - const segment2 = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; - if (nameIndex >= 0) { - segment2.push(nameIndex); - } - this.rawSegments.push(segment2); - this.generatedCodeLine += 1; - this.raw[this.generatedCodeLine] = this.rawSegments = []; - this.generatedCodeColumn = 0; - previousContentLineEnd = contentLineEnd; - contentLineEnd = content.indexOf("\n", contentLineEnd + 1); - } - const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; - if (nameIndex >= 0) { - segment.push(nameIndex); - } - this.rawSegments.push(segment); - this.advance(content.slice(previousContentLineEnd + 1)); - } else if (this.pending) { - this.rawSegments.push(this.pending); - this.advance(content); - } - this.pending = null; - } - addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) { - let originalCharIndex = chunk.start; - let first = true; - let charInHiresBoundary = false; - while (originalCharIndex < chunk.end) { - if (this.hires || first || sourcemapLocations.has(originalCharIndex)) { - const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column]; - if (this.hires === "boundary") { - if (wordRegex.test(original[originalCharIndex])) { - if (!charInHiresBoundary) { - this.rawSegments.push(segment); - charInHiresBoundary = true; - } - } else { - this.rawSegments.push(segment); - charInHiresBoundary = false; - } - } else { - this.rawSegments.push(segment); - } - } - if (original[originalCharIndex] === "\n") { - loc.line += 1; - loc.column = 0; - this.generatedCodeLine += 1; - this.raw[this.generatedCodeLine] = this.rawSegments = []; - this.generatedCodeColumn = 0; - first = true; - } else { - loc.column += 1; - this.generatedCodeColumn += 1; - first = false; - } - originalCharIndex += 1; - } - this.pending = null; - } - advance(str) { - if (!str) return; - const lines = str.split("\n"); - if (lines.length > 1) { - for (let i = 0; i < lines.length - 1; i++) { - this.generatedCodeLine++; - this.raw[this.generatedCodeLine] = this.rawSegments = []; - } - this.generatedCodeColumn = 0; - } - this.generatedCodeColumn += lines[lines.length - 1].length; - } -}; -var n = "\n"; -var warned = { - insertLeft: false, - insertRight: false, - storeName: false -}; -var MagicString = class _MagicString { - constructor(string, options = {}) { - const chunk = new Chunk$1(0, string.length, string); - Object.defineProperties(this, { - original: { writable: true, value: string }, - outro: { writable: true, value: "" }, - intro: { writable: true, value: "" }, - firstChunk: { writable: true, value: chunk }, - lastChunk: { writable: true, value: chunk }, - lastSearchedChunk: { writable: true, value: chunk }, - byStart: { writable: true, value: {} }, - byEnd: { writable: true, value: {} }, - filename: { writable: true, value: options.filename }, - indentExclusionRanges: { writable: true, value: options.indentExclusionRanges }, - sourcemapLocations: { writable: true, value: new BitSet() }, - storedNames: { writable: true, value: {} }, - indentStr: { writable: true, value: void 0 }, - ignoreList: { writable: true, value: options.ignoreList } - }); - this.byStart[0] = chunk; - this.byEnd[string.length] = chunk; - } - addSourcemapLocation(char) { - this.sourcemapLocations.add(char); - } - append(content) { - if (typeof content !== "string") throw new TypeError("outro content must be a string"); - this.outro += content; - return this; - } - appendLeft(index, content) { - if (typeof content !== "string") throw new TypeError("inserted content must be a string"); - this._split(index); - const chunk = this.byEnd[index]; - if (chunk) { - chunk.appendLeft(content); - } else { - this.intro += content; - } - return this; - } - appendRight(index, content) { - if (typeof content !== "string") throw new TypeError("inserted content must be a string"); - this._split(index); - const chunk = this.byStart[index]; - if (chunk) { - chunk.appendRight(content); - } else { - this.outro += content; - } - return this; - } - clone() { - const cloned = new _MagicString(this.original, { filename: this.filename }); - let originalChunk = this.firstChunk; - let clonedChunk = cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone(); - while (originalChunk) { - cloned.byStart[clonedChunk.start] = clonedChunk; - cloned.byEnd[clonedChunk.end] = clonedChunk; - const nextOriginalChunk = originalChunk.next; - const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone(); - if (nextClonedChunk) { - clonedChunk.next = nextClonedChunk; - nextClonedChunk.previous = clonedChunk; - clonedChunk = nextClonedChunk; - } - originalChunk = nextOriginalChunk; - } - cloned.lastChunk = clonedChunk; - if (this.indentExclusionRanges) { - cloned.indentExclusionRanges = this.indentExclusionRanges.slice(); - } - cloned.sourcemapLocations = new BitSet(this.sourcemapLocations); - cloned.intro = this.intro; - cloned.outro = this.outro; - return cloned; - } - generateDecodedMap(options) { - options = options || {}; - const sourceIndex = 0; - const names = Object.keys(this.storedNames); - const mappings = new Mappings(options.hires); - const locate2 = getLocator(this.original); - if (this.intro) { - mappings.advance(this.intro); - } - this.firstChunk.eachNext((chunk) => { - const loc = locate2(chunk.start); - if (chunk.intro.length) mappings.advance(chunk.intro); - if (chunk.edited) { - mappings.addEdit( - sourceIndex, - chunk.content, - loc, - chunk.storeName ? names.indexOf(chunk.original) : -1 - ); - } else { - mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations); - } - if (chunk.outro.length) mappings.advance(chunk.outro); - }); - return { - file: options.file ? options.file.split(/[/\\]/).pop() : void 0, - sources: [ - options.source ? getRelativePath(options.file || "", options.source) : options.file || "" - ], - sourcesContent: options.includeContent ? [this.original] : void 0, - names, - mappings: mappings.raw, - x_google_ignoreList: this.ignoreList ? [sourceIndex] : void 0 - }; - } - generateMap(options) { - return new SourceMap(this.generateDecodedMap(options)); - } - _ensureindentStr() { - if (this.indentStr === void 0) { - this.indentStr = guessIndent(this.original); - } - } - _getRawIndentString() { - this._ensureindentStr(); - return this.indentStr; - } - getIndentString() { - this._ensureindentStr(); - return this.indentStr === null ? " " : this.indentStr; - } - indent(indentStr, options) { - const pattern = /^[^\r\n]/gm; - if (isObject$1(indentStr)) { - options = indentStr; - indentStr = void 0; - } - if (indentStr === void 0) { - this._ensureindentStr(); - indentStr = this.indentStr || " "; - } - if (indentStr === "") return this; - options = options || {}; - const isExcluded = {}; - if (options.exclude) { - const exclusions = typeof options.exclude[0] === "number" ? [options.exclude] : options.exclude; - exclusions.forEach((exclusion) => { - for (let i = exclusion[0]; i < exclusion[1]; i += 1) { - isExcluded[i] = true; - } - }); - } - let shouldIndentNextCharacter = options.indentStart !== false; - const replacer = (match) => { - if (shouldIndentNextCharacter) return `${indentStr}${match}`; - shouldIndentNextCharacter = true; - return match; - }; - this.intro = this.intro.replace(pattern, replacer); - let charIndex = 0; - let chunk = this.firstChunk; - while (chunk) { - const end = chunk.end; - if (chunk.edited) { - if (!isExcluded[charIndex]) { - chunk.content = chunk.content.replace(pattern, replacer); - if (chunk.content.length) { - shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === "\n"; - } - } - } else { - charIndex = chunk.start; - while (charIndex < end) { - if (!isExcluded[charIndex]) { - const char = this.original[charIndex]; - if (char === "\n") { - shouldIndentNextCharacter = true; - } else if (char !== "\r" && shouldIndentNextCharacter) { - shouldIndentNextCharacter = false; - if (charIndex === chunk.start) { - chunk.prependRight(indentStr); - } else { - this._splitChunk(chunk, charIndex); - chunk = chunk.next; - chunk.prependRight(indentStr); - } - } - } - charIndex += 1; - } - } - charIndex = chunk.end; - chunk = chunk.next; - } - this.outro = this.outro.replace(pattern, replacer); - return this; - } - insert() { - throw new Error( - "magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)" - ); - } - insertLeft(index, content) { - if (!warned.insertLeft) { - console.warn( - "magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead" - ); - warned.insertLeft = true; - } - return this.appendLeft(index, content); - } - insertRight(index, content) { - if (!warned.insertRight) { - console.warn( - "magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead" - ); - warned.insertRight = true; - } - return this.prependRight(index, content); - } - move(start, end, index) { - if (index >= start && index <= end) throw new Error("Cannot move a selection inside itself"); - this._split(start); - this._split(end); - this._split(index); - const first = this.byStart[start]; - const last = this.byEnd[end]; - const oldLeft = first.previous; - const oldRight = last.next; - const newRight = this.byStart[index]; - if (!newRight && last === this.lastChunk) return this; - const newLeft = newRight ? newRight.previous : this.lastChunk; - if (oldLeft) oldLeft.next = oldRight; - if (oldRight) oldRight.previous = oldLeft; - if (newLeft) newLeft.next = first; - if (newRight) newRight.previous = last; - if (!first.previous) this.firstChunk = last.next; - if (!last.next) { - this.lastChunk = first.previous; - this.lastChunk.next = null; - } - first.previous = newLeft; - last.next = newRight || null; - if (!newLeft) this.firstChunk = first; - if (!newRight) this.lastChunk = last; - return this; - } - overwrite(start, end, content, options) { - options = options || {}; - return this.update(start, end, content, { ...options, overwrite: !options.contentOnly }); - } - update(start, end, content, options) { - if (typeof content !== "string") throw new TypeError("replacement content must be a string"); - while (start < 0) start += this.original.length; - while (end < 0) end += this.original.length; - if (end > this.original.length) throw new Error("end is out of bounds"); - if (start === end) - throw new Error( - "Cannot overwrite a zero-length range – use appendLeft or prependRight instead" - ); - this._split(start); - this._split(end); - if (options === true) { - if (!warned.storeName) { - console.warn( - "The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string" - ); - warned.storeName = true; - } - options = { storeName: true }; - } - const storeName = options !== void 0 ? options.storeName : false; - const overwrite = options !== void 0 ? options.overwrite : false; - if (storeName) { - const original = this.original.slice(start, end); - Object.defineProperty(this.storedNames, original, { - writable: true, - value: true, - enumerable: true - }); - } - const first = this.byStart[start]; - const last = this.byEnd[end]; - if (first) { - let chunk = first; - while (chunk !== last) { - if (chunk.next !== this.byStart[chunk.end]) { - throw new Error("Cannot overwrite across a split point"); - } - chunk = chunk.next; - chunk.edit("", false); - } - first.edit(content, storeName, !overwrite); - } else { - const newChunk = new Chunk$1(start, end, "").edit(content, storeName); - last.next = newChunk; - newChunk.previous = last; - } - return this; - } - prepend(content) { - if (typeof content !== "string") throw new TypeError("outro content must be a string"); - this.intro = content + this.intro; - return this; - } - prependLeft(index, content) { - if (typeof content !== "string") throw new TypeError("inserted content must be a string"); - this._split(index); - const chunk = this.byEnd[index]; - if (chunk) { - chunk.prependLeft(content); - } else { - this.intro = content + this.intro; - } - return this; - } - prependRight(index, content) { - if (typeof content !== "string") throw new TypeError("inserted content must be a string"); - this._split(index); - const chunk = this.byStart[index]; - if (chunk) { - chunk.prependRight(content); - } else { - this.outro = content + this.outro; - } - return this; - } - remove(start, end) { - while (start < 0) start += this.original.length; - while (end < 0) end += this.original.length; - if (start === end) return this; - if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds"); - if (start > end) throw new Error("end must be greater than start"); - this._split(start); - this._split(end); - let chunk = this.byStart[start]; - while (chunk) { - chunk.intro = ""; - chunk.outro = ""; - chunk.edit(""); - chunk = end > chunk.end ? this.byStart[chunk.end] : null; - } - return this; - } - reset(start, end) { - while (start < 0) start += this.original.length; - while (end < 0) end += this.original.length; - if (start === end) return this; - if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds"); - if (start > end) throw new Error("end must be greater than start"); - this._split(start); - this._split(end); - let chunk = this.byStart[start]; - while (chunk) { - chunk.reset(); - chunk = end > chunk.end ? this.byStart[chunk.end] : null; - } - return this; - } - lastChar() { - if (this.outro.length) return this.outro[this.outro.length - 1]; - let chunk = this.lastChunk; - do { - if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1]; - if (chunk.content.length) return chunk.content[chunk.content.length - 1]; - if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1]; - } while (chunk = chunk.previous); - if (this.intro.length) return this.intro[this.intro.length - 1]; - return ""; - } - lastLine() { - let lineIndex = this.outro.lastIndexOf(n); - if (lineIndex !== -1) return this.outro.substr(lineIndex + 1); - let lineStr = this.outro; - let chunk = this.lastChunk; - do { - if (chunk.outro.length > 0) { - lineIndex = chunk.outro.lastIndexOf(n); - if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr; - lineStr = chunk.outro + lineStr; - } - if (chunk.content.length > 0) { - lineIndex = chunk.content.lastIndexOf(n); - if (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr; - lineStr = chunk.content + lineStr; - } - if (chunk.intro.length > 0) { - lineIndex = chunk.intro.lastIndexOf(n); - if (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr; - lineStr = chunk.intro + lineStr; - } - } while (chunk = chunk.previous); - lineIndex = this.intro.lastIndexOf(n); - if (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr; - return this.intro + lineStr; - } - slice(start = 0, end = this.original.length) { - while (start < 0) start += this.original.length; - while (end < 0) end += this.original.length; - let result = ""; - let chunk = this.firstChunk; - while (chunk && (chunk.start > start || chunk.end <= start)) { - if (chunk.start < end && chunk.end >= end) { - return result; - } - chunk = chunk.next; - } - if (chunk && chunk.edited && chunk.start !== start) - throw new Error(`Cannot use replaced character ${start} as slice start anchor.`); - const startChunk = chunk; - while (chunk) { - if (chunk.intro && (startChunk !== chunk || chunk.start === start)) { - result += chunk.intro; - } - const containsEnd = chunk.start < end && chunk.end >= end; - if (containsEnd && chunk.edited && chunk.end !== end) - throw new Error(`Cannot use replaced character ${end} as slice end anchor.`); - const sliceStart = startChunk === chunk ? start - chunk.start : 0; - const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length; - result += chunk.content.slice(sliceStart, sliceEnd); - if (chunk.outro && (!containsEnd || chunk.end === end)) { - result += chunk.outro; - } - if (containsEnd) { - break; - } - chunk = chunk.next; - } - return result; - } - // TODO deprecate this? not really very useful - snip(start, end) { - const clone = this.clone(); - clone.remove(0, start); - clone.remove(end, clone.original.length); - return clone; - } - _split(index) { - if (this.byStart[index] || this.byEnd[index]) return; - let chunk = this.lastSearchedChunk; - const searchForward = index > chunk.end; - while (chunk) { - if (chunk.contains(index)) return this._splitChunk(chunk, index); - chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start]; - } - } - _splitChunk(chunk, index) { - if (chunk.edited && chunk.content.length) { - const loc = getLocator(this.original)(index); - throw new Error( - `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")` - ); - } - const newChunk = chunk.split(index); - this.byEnd[index] = chunk; - this.byStart[index] = newChunk; - this.byEnd[newChunk.end] = newChunk; - if (chunk === this.lastChunk) this.lastChunk = newChunk; - this.lastSearchedChunk = chunk; - return true; - } - toString() { - let str = this.intro; - let chunk = this.firstChunk; - while (chunk) { - str += chunk.toString(); - chunk = chunk.next; - } - return str + this.outro; - } - isEmpty() { - let chunk = this.firstChunk; - do { - if (chunk.intro.length && chunk.intro.trim() || chunk.content.length && chunk.content.trim() || chunk.outro.length && chunk.outro.trim()) - return false; - } while (chunk = chunk.next); - return true; - } - length() { - let chunk = this.firstChunk; - let length = 0; - do { - length += chunk.intro.length + chunk.content.length + chunk.outro.length; - } while (chunk = chunk.next); - return length; - } - trimLines() { - return this.trim("[\\r\\n]"); - } - trim(charType) { - return this.trimStart(charType).trimEnd(charType); - } - trimEndAborted(charType) { - const rx = new RegExp((charType || "\\s") + "+$"); - this.outro = this.outro.replace(rx, ""); - if (this.outro.length) return true; - let chunk = this.lastChunk; - do { - const end = chunk.end; - const aborted = chunk.trimEnd(rx); - if (chunk.end !== end) { - if (this.lastChunk === chunk) { - this.lastChunk = chunk.next; - } - this.byEnd[chunk.end] = chunk; - this.byStart[chunk.next.start] = chunk.next; - this.byEnd[chunk.next.end] = chunk.next; - } - if (aborted) return true; - chunk = chunk.previous; - } while (chunk); - return false; - } - trimEnd(charType) { - this.trimEndAborted(charType); - return this; - } - trimStartAborted(charType) { - const rx = new RegExp("^" + (charType || "\\s") + "+"); - this.intro = this.intro.replace(rx, ""); - if (this.intro.length) return true; - let chunk = this.firstChunk; - do { - const end = chunk.end; - const aborted = chunk.trimStart(rx); - if (chunk.end !== end) { - if (chunk === this.lastChunk) this.lastChunk = chunk.next; - this.byEnd[chunk.end] = chunk; - this.byStart[chunk.next.start] = chunk.next; - this.byEnd[chunk.next.end] = chunk.next; - } - if (aborted) return true; - chunk = chunk.next; - } while (chunk); - return false; - } - trimStart(charType) { - this.trimStartAborted(charType); - return this; - } - hasChanged() { - return this.original !== this.toString(); - } - _replaceRegexp(searchValue, replacement) { - function getReplacement(match, str) { - if (typeof replacement === "string") { - return replacement.replace(/\$(\$|&|\d+)/g, (_, i) => { - if (i === "$") return "$"; - if (i === "&") return match[0]; - const num = +i; - if (num < match.length) return match[+i]; - return `$${i}`; - }); - } else { - return replacement(...match, match.index, str, match.groups); - } - } - function matchAll(re, str) { - let match; - const matches = []; - while (match = re.exec(str)) { - matches.push(match); - } - return matches; - } - if (searchValue.global) { - const matches = matchAll(searchValue, this.original); - matches.forEach((match) => { - if (match.index != null) { - const replacement2 = getReplacement(match, this.original); - if (replacement2 !== match[0]) { - this.overwrite( - match.index, - match.index + match[0].length, - replacement2 - ); - } - } - }); - } else { - const match = this.original.match(searchValue); - if (match && match.index != null) { - const replacement2 = getReplacement(match, this.original); - if (replacement2 !== match[0]) { - this.overwrite( - match.index, - match.index + match[0].length, - replacement2 - ); - } - } - } - return this; - } - _replaceString(string, replacement) { - const { original } = this; - const index = original.indexOf(string); - if (index !== -1) { - this.overwrite(index, index + string.length, replacement); - } - return this; - } - replace(searchValue, replacement) { - if (typeof searchValue === "string") { - return this._replaceString(searchValue, replacement); - } - return this._replaceRegexp(searchValue, replacement); - } - _replaceAllString(string, replacement) { - const { original } = this; - const stringLength = string.length; - for (let index = original.indexOf(string); index !== -1; index = original.indexOf(string, index + stringLength)) { - const previous = original.slice(index, index + stringLength); - if (previous !== replacement) - this.overwrite(index, index + stringLength, replacement); - } - return this; - } - replaceAll(searchValue, replacement) { - if (typeof searchValue === "string") { - return this._replaceAllString(searchValue, replacement); - } - if (!searchValue.global) { - throw new TypeError( - "MagicString.prototype.replaceAll called with a non-global RegExp argument" - ); - } - return this._replaceRegexp(searchValue, replacement); - } -}; -var hasOwnProp = Object.prototype.hasOwnProperty; -var Bundle$1 = class Bundle { - constructor(options = {}) { - this.intro = options.intro || ""; - this.separator = options.separator !== void 0 ? options.separator : "\n"; - this.sources = []; - this.uniqueSources = []; - this.uniqueSourceIndexByFilename = {}; - } - addSource(source) { - if (source instanceof MagicString) { - return this.addSource({ - content: source, - filename: source.filename, - separator: this.separator - }); - } - if (!isObject$1(source) || !source.content) { - throw new Error( - "bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`" - ); - } - ["filename", "ignoreList", "indentExclusionRanges", "separator"].forEach((option) => { - if (!hasOwnProp.call(source, option)) source[option] = source.content[option]; - }); - if (source.separator === void 0) { - source.separator = this.separator; - } - if (source.filename) { - if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) { - this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length; - this.uniqueSources.push({ filename: source.filename, content: source.content.original }); - } else { - const uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]]; - if (source.content.original !== uniqueSource.content) { - throw new Error(`Illegal source: same filename (${source.filename}), different contents`); - } - } - } - this.sources.push(source); - return this; - } - append(str, options) { - this.addSource({ - content: new MagicString(str), - separator: options && options.separator || "" - }); - return this; - } - clone() { - const bundle = new Bundle({ - intro: this.intro, - separator: this.separator - }); - this.sources.forEach((source) => { - bundle.addSource({ - filename: source.filename, - content: source.content.clone(), - separator: source.separator - }); - }); - return bundle; - } - generateDecodedMap(options = {}) { - const names = []; - let x_google_ignoreList = void 0; - this.sources.forEach((source) => { - Object.keys(source.content.storedNames).forEach((name) => { - if (!~names.indexOf(name)) names.push(name); - }); - }); - const mappings = new Mappings(options.hires); - if (this.intro) { - mappings.advance(this.intro); - } - this.sources.forEach((source, i) => { - if (i > 0) { - mappings.advance(this.separator); - } - const sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1; - const magicString = source.content; - const locate2 = getLocator(magicString.original); - if (magicString.intro) { - mappings.advance(magicString.intro); - } - magicString.firstChunk.eachNext((chunk) => { - const loc = locate2(chunk.start); - if (chunk.intro.length) mappings.advance(chunk.intro); - if (source.filename) { - if (chunk.edited) { - mappings.addEdit( - sourceIndex, - chunk.content, - loc, - chunk.storeName ? names.indexOf(chunk.original) : -1 - ); - } else { - mappings.addUneditedChunk( - sourceIndex, - chunk, - magicString.original, - loc, - magicString.sourcemapLocations - ); - } - } else { - mappings.advance(chunk.content); - } - if (chunk.outro.length) mappings.advance(chunk.outro); - }); - if (magicString.outro) { - mappings.advance(magicString.outro); - } - if (source.ignoreList && sourceIndex !== -1) { - if (x_google_ignoreList === void 0) { - x_google_ignoreList = []; - } - x_google_ignoreList.push(sourceIndex); - } - }); - return { - file: options.file ? options.file.split(/[/\\]/).pop() : void 0, - sources: this.uniqueSources.map((source) => { - return options.file ? getRelativePath(options.file, source.filename) : source.filename; - }), - sourcesContent: this.uniqueSources.map((source) => { - return options.includeContent ? source.content : null; - }), - names, - mappings: mappings.raw, - x_google_ignoreList - }; - } - generateMap(options) { - return new SourceMap(this.generateDecodedMap(options)); - } - getIndentString() { - const indentStringCounts = {}; - this.sources.forEach((source) => { - const indentStr = source.content._getRawIndentString(); - if (indentStr === null) return; - if (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0; - indentStringCounts[indentStr] += 1; - }); - return Object.keys(indentStringCounts).sort((a, b) => { - return indentStringCounts[a] - indentStringCounts[b]; - })[0] || " "; - } - indent(indentStr) { - if (!arguments.length) { - indentStr = this.getIndentString(); - } - if (indentStr === "") return this; - let trailingNewline = !this.intro || this.intro.slice(-1) === "\n"; - this.sources.forEach((source, i) => { - const separator = source.separator !== void 0 ? source.separator : this.separator; - const indentStart = trailingNewline || i > 0 && /\r?\n$/.test(separator); - source.content.indent(indentStr, { - exclude: source.indentExclusionRanges, - indentStart - //: trailingNewline || /\r?\n$/.test( separator ) //true///\r?\n/.test( separator ) - }); - trailingNewline = source.content.lastChar() === "\n"; - }); - if (this.intro) { - this.intro = indentStr + this.intro.replace(/^[^\n]/gm, (match, index) => { - return index > 0 ? indentStr + match : match; - }); - } - return this; - } - prepend(str) { - this.intro = str + this.intro; - return this; - } - toString() { - const body = this.sources.map((source, i) => { - const separator = source.separator !== void 0 ? source.separator : this.separator; - const str = (i > 0 ? separator : "") + source.content.toString(); - return str; - }).join(""); - return this.intro + body; - } - isEmpty() { - if (this.intro.length && this.intro.trim()) return false; - if (this.sources.some((source) => !source.content.isEmpty())) return false; - return true; - } - length() { - return this.sources.reduce( - (length, source) => length + source.content.length(), - this.intro.length - ); - } - trimLines() { - return this.trim("[\\r\\n]"); - } - trim(charType) { - return this.trimStart(charType).trimEnd(charType); - } - trimStart(charType) { - const rx = new RegExp("^" + (charType || "\\s") + "+"); - this.intro = this.intro.replace(rx, ""); - if (!this.intro) { - let source; - let i = 0; - do { - source = this.sources[i++]; - if (!source) { - break; - } - } while (!source.content.trimStartAborted(charType)); - } - return this; - } - trimEnd(charType) { - const rx = new RegExp((charType || "\\s") + "+$"); - let source; - let i = this.sources.length - 1; - do { - source = this.sources[i--]; - if (!source) { - this.intro = this.intro.replace(rx, ""); - break; - } - } while (!source.content.trimEndAborted(charType)); - return this; - } -}; -var needsEscapeRegEx = /[\n\r'\\\u2028\u2029]/; -var quoteNewlineRegEx = /([\n\r'\u2028\u2029])/g; -var backSlashRegEx = /\\/g; -function escapeId(id) { - if (!needsEscapeRegEx.test(id)) - return id; - return id.replace(backSlashRegEx, "\\\\").replace(quoteNewlineRegEx, "\\$1"); -} -var ExternalChunk = class { - constructor(module, options, inputBase) { - this.options = options; - this.inputBase = inputBase; - this.defaultVariableName = ""; - this.namespaceVariableName = ""; - this.variableName = ""; - this.fileName = null; - this.importAttributes = null; - this.id = module.id; - this.moduleInfo = module.info; - this.renormalizeRenderPath = module.renormalizeRenderPath; - this.suggestedVariableName = module.suggestedVariableName; - } - getFileName() { - if (this.fileName) { - return this.fileName; - } - const { paths } = this.options; - return this.fileName = (typeof paths === "function" ? paths(this.id) : paths[this.id]) || (this.renormalizeRenderPath ? normalize((0, import_node_path.relative)(this.inputBase, this.id)) : this.id); - } - getImportAttributes(snippets) { - return this.importAttributes || (this.importAttributes = formatAttributes(this.options.format === "es" && this.options.externalImportAttributes && this.moduleInfo.attributes, snippets)); - } - getImportPath(importer) { - return escapeId(this.renormalizeRenderPath ? getImportPath(importer, this.getFileName(), this.options.format === "amd", false) : this.getFileName()); - } -}; -function formatAttributes(attributes, { getObject }) { - if (!attributes) { - return null; - } - const assertionEntries = Object.entries(attributes).map(([key, value]) => [key, `'${value}'`]); - if (assertionEntries.length > 0) { - return getObject(assertionEntries, { lineBreakIndent: null }); - } - return null; -} -function getOrCreate(map, key, init2) { - const existing = map.get(key); - if (existing !== void 0) { - return existing; - } - const value = init2(); - map.set(key, value); - return value; -} -function getNewSet() { - return /* @__PURE__ */ new Set(); -} -function getNewArray() { - return []; -} -var UnknownKey = Symbol("Unknown Key"); -var UnknownNonAccessorKey = Symbol("Unknown Non-Accessor Key"); -var UnknownInteger = Symbol("Unknown Integer"); -var SymbolToStringTag = Symbol("Symbol.toStringTag"); -var EMPTY_PATH = []; -var UNKNOWN_PATH = [UnknownKey]; -var UNKNOWN_NON_ACCESSOR_PATH = [UnknownNonAccessorKey]; -var UNKNOWN_INTEGER_PATH = [UnknownInteger]; -var EntitiesKey = Symbol("Entities"); -var PathTracker = class { - constructor() { - this.entityPaths = Object.create(null, { - [EntitiesKey]: { value: /* @__PURE__ */ new Set() } - }); - } - trackEntityAtPathAndGetIfTracked(path2, entity) { - const trackedEntities = this.getEntities(path2); - if (trackedEntities.has(entity)) - return true; - trackedEntities.add(entity); - return false; - } - withTrackedEntityAtPath(path2, entity, onUntracked, returnIfTracked) { - const trackedEntities = this.getEntities(path2); - if (trackedEntities.has(entity)) - return returnIfTracked; - trackedEntities.add(entity); - const result = onUntracked(); - trackedEntities.delete(entity); - return result; - } - getEntities(path2) { - let currentPaths = this.entityPaths; - for (const pathSegment of path2) { - currentPaths = currentPaths[pathSegment] = currentPaths[pathSegment] || Object.create(null, { [EntitiesKey]: { value: /* @__PURE__ */ new Set() } }); - } - return currentPaths[EntitiesKey]; - } -}; -var SHARED_RECURSION_TRACKER = new PathTracker(); -var DiscriminatedPathTracker = class { - constructor() { - this.entityPaths = Object.create(null, { - [EntitiesKey]: { value: /* @__PURE__ */ new Map() } - }); - } - trackEntityAtPathAndGetIfTracked(path2, discriminator, entity) { - let currentPaths = this.entityPaths; - for (const pathSegment of path2) { - currentPaths = currentPaths[pathSegment] = currentPaths[pathSegment] || Object.create(null, { [EntitiesKey]: { value: /* @__PURE__ */ new Map() } }); - } - const trackedEntities = getOrCreate(currentPaths[EntitiesKey], discriminator, getNewSet); - if (trackedEntities.has(entity)) - return true; - trackedEntities.add(entity); - return false; - } -}; -function isFlagSet(flags, flag) { - return (flags & flag) !== 0; -} -function setFlag(flags, flag, value) { - return flags & ~flag | -value & flag; -} -var UnknownValue = Symbol("Unknown Value"); -var UnknownTruthyValue = Symbol("Unknown Truthy Value"); -var ExpressionEntity = class { - constructor() { - this.flags = 0; - } - get included() { - return isFlagSet( - this.flags, - 1 - /* Flag.included */ - ); - } - set included(value) { - this.flags = setFlag(this.flags, 1, value); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, _path, _recursionTracker) { - deoptimizeInteraction(interaction); - } - deoptimizePath(_path) { - } - /** - * If possible it returns a stringifyable literal value for this node that - * can be used for inlining or comparing values. Otherwise, it should return - * UnknownValue. - */ - getLiteralValueAtPath(_path, _recursionTracker, _origin) { - return UnknownValue; - } - getReturnExpressionWhenCalledAtPath(_path, _interaction, _recursionTracker, _origin) { - return UNKNOWN_RETURN_EXPRESSION; - } - hasEffectsOnInteractionAtPath(_path, _interaction, _context) { - return true; - } - include(_context, _includeChildrenRecursively, _options) { - this.included = true; - } - includeCallArguments(context, parameters) { - for (const argument of parameters) { - argument.include(context, false); - } - } - shouldBeIncluded(_context) { - return true; - } -}; -var UNKNOWN_EXPRESSION = new class UnknownExpression extends ExpressionEntity { -}(); -var UNKNOWN_RETURN_EXPRESSION = [ - UNKNOWN_EXPRESSION, - false -]; -var deoptimizeInteraction = (interaction) => { - for (const argument of interaction.args) { - argument == null ? void 0 : argument.deoptimizePath(UNKNOWN_PATH); - } -}; -var INTERACTION_ACCESSED = 0; -var INTERACTION_ASSIGNED = 1; -var INTERACTION_CALLED = 2; -var NODE_INTERACTION_UNKNOWN_ACCESS = { - args: [null], - type: INTERACTION_ACCESSED -}; -var NODE_INTERACTION_UNKNOWN_ASSIGNMENT = { - args: [null, UNKNOWN_EXPRESSION], - type: INTERACTION_ASSIGNED -}; -var NODE_INTERACTION_UNKNOWN_CALL = { - args: [null], - type: INTERACTION_CALLED, - withNew: false -}; -var Variable = class extends ExpressionEntity { - markReassigned() { - this.isReassigned = true; - } - constructor(name) { - super(); - this.name = name; - this.alwaysRendered = false; - this.forbiddenNames = null; - this.initReached = false; - this.isId = false; - this.kind = null; - this.renderBaseName = null; - this.renderName = null; - this.isReassigned = false; - this.onlyFunctionCallUsed = true; - } - /** - * Binds identifiers that reference this variable to this variable. - * Necessary to be able to change variable names. - */ - addReference(_identifier) { - } - /** - * Check if the identifier variable is only used as function call - * @returns true if the variable is only used as function call - */ - getOnlyFunctionCallUsed() { - return this.onlyFunctionCallUsed; - } - /** - * Collect the places where the identifier variable is used - * @param usedPlace Where the variable is used - */ - addUsedPlace(usedPlace) { - const isFunctionCall = usedPlace.parent.type === CallExpression && usedPlace.parent.callee === usedPlace; - if (!isFunctionCall && usedPlace.parent.type !== ExportDefaultDeclaration) { - this.onlyFunctionCallUsed = false; - } - } - /** - * Prevent this variable from being renamed to this name to avoid name - * collisions - */ - forbidName(name) { - (this.forbiddenNames || (this.forbiddenNames = /* @__PURE__ */ new Set())).add(name); - } - getBaseVariableName() { - var _a; - return ((_a = this.renderedLikeHoisted) == null ? void 0 : _a.getBaseVariableName()) || this.renderBaseName || this.renderName || this.name; - } - getName(getPropertyAccess, useOriginalName) { - if (useOriginalName == null ? void 0 : useOriginalName(this)) { - return this.name; - } - if (this.renderedLikeHoisted) { - return this.renderedLikeHoisted.getName(getPropertyAccess, useOriginalName); - } - const name = this.renderName || this.name; - return this.renderBaseName ? `${this.renderBaseName}${getPropertyAccess(name)}` : name; - } - hasEffectsOnInteractionAtPath(path2, { type }, _context) { - return type !== INTERACTION_ACCESSED || path2.length > 0; - } - /** - * Marks this variable as being part of the bundle, which is usually the case when one of - * its identifiers becomes part of the bundle. Returns true if it has not been included - * previously. - * Once a variable is included, it should take care all its declarations are included. - */ - include() { - var _a; - this.included = true; - (_a = this.renderedLikeHoisted) == null ? void 0 : _a.include(); - } - /** - * Links the rendered name of this variable to another variable and includes - * this variable if the other variable is included. - */ - renderLikeHoisted(variable) { - this.renderedLikeHoisted = variable; - } - markCalledFromTryStatement() { - } - setRenderNames(baseName, name) { - this.renderBaseName = baseName; - this.renderName = name; - } -}; -var ExternalVariable = class extends Variable { - constructor(module, name) { - super(name); - this.referenced = false; - this.module = module; - this.isNamespace = name === "*"; - } - addReference(identifier2) { - this.referenced = true; - if (this.name === "default" || this.name === "*") { - this.module.suggestName(identifier2.name); - } - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return type !== INTERACTION_ACCESSED || path2.length > (this.isNamespace ? 1 : 0); - } - include() { - super.include(); - this.module.used = true; - } -}; -function cacheObjectGetters(object, getterProperties) { - for (const property2 of getterProperties) { - const propertyGetter = Object.getOwnPropertyDescriptor(object, property2).get; - Object.defineProperty(object, property2, { - get() { - const value = propertyGetter.call(object); - Object.defineProperty(object, property2, { value }); - return value; - } - }); - } -} -var RESERVED_NAMES = /* @__PURE__ */ new Set([ - "await", - "break", - "case", - "catch", - "class", - "const", - "continue", - "debugger", - "default", - "delete", - "do", - "else", - "enum", - "eval", - "export", - "extends", - "false", - "finally", - "for", - "function", - "if", - "implements", - "import", - "in", - "instanceof", - "interface", - "let", - "NaN", - "new", - "null", - "package", - "private", - "protected", - "public", - "return", - "static", - "super", - "switch", - "this", - "throw", - "true", - "try", - "typeof", - "undefined", - "var", - "void", - "while", - "with", - "yield" -]); -var illegalCharacters = /[^\w$]/g; -var startsWithDigit = (value) => /\d/.test(value[0]); -var needsEscape = (value) => startsWithDigit(value) || RESERVED_NAMES.has(value) || value === "arguments"; -function isLegal(value) { - if (needsEscape(value)) { - return false; - } - return !illegalCharacters.test(value); -} -function makeLegal(value) { - value = value.replace(/-(\w)/g, (_, letter) => letter.toUpperCase()).replace(illegalCharacters, "_"); - if (needsEscape(value)) - value = `_${value}`; - return value || "_"; -} -var VALID_IDENTIFIER_REGEXP = /^[$_\p{ID_Start}][$\u200C\u200D\p{ID_Continue}]*$/u; -var NUMBER_REGEXP = /^(?:0|[1-9]\d*)$/; -function stringifyObjectKeyIfNeeded(key) { - if (VALID_IDENTIFIER_REGEXP.test(key)) { - return key === "__proto__" ? '["__proto__"]' : key; - } - if (NUMBER_REGEXP.test(key) && +key <= Number.MAX_SAFE_INTEGER) { - return key; - } - return JSON.stringify(key); -} -function stringifyIdentifierIfNeeded(key) { - if (VALID_IDENTIFIER_REGEXP.test(key)) { - return key; - } - return JSON.stringify(key); -} -var ExternalModule = class { - constructor(options, id, moduleSideEffects, meta, renormalizeRenderPath, attributes) { - this.options = options; - this.id = id; - this.renormalizeRenderPath = renormalizeRenderPath; - this.dynamicImporters = []; - this.execIndex = Infinity; - this.exportedVariables = /* @__PURE__ */ new Map(); - this.importers = []; - this.reexported = false; - this.used = false; - this.declarations = /* @__PURE__ */ new Map(); - this.mostCommonSuggestion = 0; - this.nameSuggestions = /* @__PURE__ */ new Map(); - this.suggestedVariableName = makeLegal(id.split(/[/\\]/).pop()); - const { importers, dynamicImporters } = this; - this.info = { - ast: null, - attributes, - code: null, - dynamicallyImportedIdResolutions: EMPTY_ARRAY, - dynamicallyImportedIds: EMPTY_ARRAY, - get dynamicImporters() { - return dynamicImporters.sort(); - }, - exportedBindings: null, - exports: null, - hasDefaultExport: null, - id, - implicitlyLoadedAfterOneOf: EMPTY_ARRAY, - implicitlyLoadedBefore: EMPTY_ARRAY, - importedIdResolutions: EMPTY_ARRAY, - importedIds: EMPTY_ARRAY, - get importers() { - return importers.sort(); - }, - isEntry: false, - isExternal: true, - isIncluded: null, - meta, - moduleSideEffects, - syntheticNamedExports: false - }; - } - cacheInfoGetters() { - cacheObjectGetters(this.info, ["dynamicImporters", "importers"]); - } - getVariableForExportName(name) { - const declaration = this.declarations.get(name); - if (declaration) - return [declaration]; - const externalVariable = new ExternalVariable(this, name); - this.declarations.set(name, externalVariable); - this.exportedVariables.set(externalVariable, name); - return [externalVariable]; - } - suggestName(name) { - const value = (this.nameSuggestions.get(name) ?? 0) + 1; - this.nameSuggestions.set(name, value); - if (value > this.mostCommonSuggestion) { - this.mostCommonSuggestion = value; - this.suggestedVariableName = name; - } - } - warnUnusedImports() { - const unused = [...this.declarations].filter(([name, declaration]) => name !== "*" && !declaration.included && !this.reexported && !declaration.referenced).map(([name]) => name); - if (unused.length === 0) - return; - const importersSet = /* @__PURE__ */ new Set(); - for (const name of unused) { - for (const importer of this.declarations.get(name).module.importers) { - importersSet.add(importer); - } - } - const importersArray = [...importersSet]; - this.options.onLog(LOGLEVEL_WARN, logUnusedExternalImports(this.id, unused, importersArray)); - } -}; -function getDefaultExportFromCjs(x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; -} -function getAugmentedNamespace(n2) { - if (n2.__esModule) return n2; - var f = n2.default; - if (typeof f == "function") { - var a = function a2() { - if (this instanceof a2) { - return Reflect.construct(f, arguments, this.constructor); - } - return f.apply(this, arguments); - }; - a.prototype = f.prototype; - } else a = {}; - Object.defineProperty(a, "__esModule", { value: true }); - Object.keys(n2).forEach(function(k) { - var d = Object.getOwnPropertyDescriptor(n2, k); - Object.defineProperty(a, k, d.get ? d : { - enumerable: true, - get: function() { - return n2[k]; - } - }); - }); - return a; -} -var utils$3 = {}; -var path$1 = import_path.default; -var WIN_SLASH = "\\\\/"; -var WIN_NO_SLASH = `[^${WIN_SLASH}]`; -var DOT_LITERAL = "\\."; -var PLUS_LITERAL = "\\+"; -var QMARK_LITERAL = "\\?"; -var SLASH_LITERAL = "\\/"; -var ONE_CHAR = "(?=.)"; -var QMARK = "[^/]"; -var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; -var START_ANCHOR = `(?:^|${SLASH_LITERAL})`; -var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; -var NO_DOT = `(?!${DOT_LITERAL})`; -var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; -var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; -var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; -var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; -var STAR = `${QMARK}*?`; -var POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR, - START_ANCHOR -}; -var WINDOWS_CHARS = { - ...POSIX_CHARS, - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` -}; -var POSIX_REGEX_SOURCE$1 = { - alnum: "a-zA-Z0-9", - alpha: "a-zA-Z", - ascii: "\\x00-\\x7F", - blank: " \\t", - cntrl: "\\x00-\\x1F\\x7F", - digit: "0-9", - graph: "\\x21-\\x7E", - lower: "a-z", - print: "\\x20-\\x7E ", - punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", - space: " \\t\\r\\n\\v\\f", - upper: "A-Z", - word: "A-Za-z0-9_", - xdigit: "A-Fa-f0-9" -}; -var constants$2 = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, - // regular expressions - REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, - REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, - REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, - REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, - REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, - REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - "***": "*", - "**/**": "**", - "**/**/**": "**" - }, - // Digits - CHAR_0: 48, - /* 0 */ - CHAR_9: 57, - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 65, - /* A */ - CHAR_LOWERCASE_A: 97, - /* a */ - CHAR_UPPERCASE_Z: 90, - /* Z */ - CHAR_LOWERCASE_Z: 122, - /* z */ - CHAR_LEFT_PARENTHESES: 40, - /* ( */ - CHAR_RIGHT_PARENTHESES: 41, - /* ) */ - CHAR_ASTERISK: 42, - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, - /* & */ - CHAR_AT: 64, - /* @ */ - CHAR_BACKWARD_SLASH: 92, - /* \ */ - CHAR_CARRIAGE_RETURN: 13, - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, - /* ^ */ - CHAR_COLON: 58, - /* : */ - CHAR_COMMA: 44, - /* , */ - CHAR_DOT: 46, - /* . */ - CHAR_DOUBLE_QUOTE: 34, - /* " */ - CHAR_EQUAL: 61, - /* = */ - CHAR_EXCLAMATION_MARK: 33, - /* ! */ - CHAR_FORM_FEED: 12, - /* \f */ - CHAR_FORWARD_SLASH: 47, - /* / */ - CHAR_GRAVE_ACCENT: 96, - /* ` */ - CHAR_HASH: 35, - /* # */ - CHAR_HYPHEN_MINUS: 45, - /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, - /* < */ - CHAR_LEFT_CURLY_BRACE: 123, - /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, - /* [ */ - CHAR_LINE_FEED: 10, - /* \n */ - CHAR_NO_BREAK_SPACE: 160, - /* \u00A0 */ - CHAR_PERCENT: 37, - /* % */ - CHAR_PLUS: 43, - /* + */ - CHAR_QUESTION_MARK: 63, - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, - /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, - /* ] */ - CHAR_SEMICOLON: 59, - /* ; */ - CHAR_SINGLE_QUOTE: 39, - /* ' */ - CHAR_SPACE: 32, - /* */ - CHAR_TAB: 9, - /* \t */ - CHAR_UNDERSCORE: 95, - /* _ */ - CHAR_VERTICAL_LINE: 124, - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, - /* \uFEFF */ - SEP: path$1.sep, - /** - * Create EXTGLOB_CHARS - */ - extglobChars(chars2) { - return { - "!": { type: "negate", open: "(?:(?!(?:", close: `))${chars2.STAR})` }, - "?": { type: "qmark", open: "(?:", close: ")?" }, - "+": { type: "plus", open: "(?:", close: ")+" }, - "*": { type: "star", open: "(?:", close: ")*" }, - "@": { type: "at", open: "(?:", close: ")" } - }; - }, - /** - * Create GLOB_CHARS - */ - globChars(win322) { - return win322 === true ? WINDOWS_CHARS : POSIX_CHARS; - } -}; -(function(exports) { - const path2 = import_path.default; - const win322 = process.platform === "win32"; - const { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL - } = constants$2; - exports.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); - exports.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str); - exports.isRegexChar = (str) => str.length === 1 && exports.hasRegexChars(str); - exports.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); - exports.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, "/"); - exports.removeBackslashes = (str) => { - return str.replace(REGEX_REMOVE_BACKSLASH, (match) => { - return match === "\\" ? "" : match; - }); - }; - exports.supportsLookbehinds = () => { - const segs = process.version.slice(1).split(".").map(Number); - if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { - return true; - } - return false; - }; - exports.isWindows = (options) => { - if (options && typeof options.windows === "boolean") { - return options.windows; - } - return win322 === true || path2.sep === "\\"; - }; - exports.escapeLast = (input, char, lastIdx) => { - const idx = input.lastIndexOf(char, lastIdx); - if (idx === -1) return input; - if (input[idx - 1] === "\\") return exports.escapeLast(input, char, idx - 1); - return `${input.slice(0, idx)}\\${input.slice(idx)}`; - }; - exports.removePrefix = (input, state = {}) => { - let output = input; - if (output.startsWith("./")) { - output = output.slice(2); - state.prefix = "./"; - } - return output; - }; - exports.wrapOutput = (input, state = {}, options = {}) => { - const prepend = options.contains ? "" : "^"; - const append = options.contains ? "" : "$"; - let output = `${prepend}(?:${input})${append}`; - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; - } - return output; - }; -})(utils$3); -var utils$2 = utils$3; -var { - CHAR_ASTERISK, - /* * */ - CHAR_AT, - /* @ */ - CHAR_BACKWARD_SLASH, - /* \ */ - CHAR_COMMA, - /* , */ - CHAR_DOT, - /* . */ - CHAR_EXCLAMATION_MARK, - /* ! */ - CHAR_FORWARD_SLASH, - /* / */ - CHAR_LEFT_CURLY_BRACE, - /* { */ - CHAR_LEFT_PARENTHESES, - /* ( */ - CHAR_LEFT_SQUARE_BRACKET, - /* [ */ - CHAR_PLUS, - /* + */ - CHAR_QUESTION_MARK, - /* ? */ - CHAR_RIGHT_CURLY_BRACE, - /* } */ - CHAR_RIGHT_PARENTHESES, - /* ) */ - CHAR_RIGHT_SQUARE_BRACKET - /* ] */ -} = constants$2; -var isPathSeparator = (code) => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; -}; -var depth = (token) => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; - } -}; -var scan$1 = (input, options) => { - const opts = options || {}; - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; - let str = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob = false; - let isExtglob = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let negatedExtglob = false; - let finished = false; - let braces = 0; - let prev; - let code; - let token = { value: "", depth: 0, isGlob: false }; - const eos = () => index >= length; - const peek = () => str.charCodeAt(index + 1); - const advance = () => { - prev = code; - return str.charCodeAt(++index); - }; - while (index < length) { - code = advance(); - let next; - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - if (code === CHAR_LEFT_CURLY_BRACE) { - braceEscaped = true; - } - continue; - } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) { - braces++; - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (code === CHAR_LEFT_CURLY_BRACE) { - braces++; - continue; - } - if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (braceEscaped !== true && code === CHAR_COMMA) { - isBrace = token.isBrace = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_RIGHT_CURLY_BRACE) { - braces--; - if (braces === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } - } - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { value: "", depth: 0, isGlob: false }; - if (finished === true) continue; - if (prev === CHAR_DOT && index === start + 1) { - start += 2; - continue; - } - lastIndex = index + 1; - continue; - } - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - isExtglob = token.isExtglob = true; - finished = true; - if (code === CHAR_EXCLAMATION_MARK && index === start) { - negatedExtglob = true; - } - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES) { - isGlob = token.isGlob = true; - finished = true; - break; - } - } - continue; - } - break; - } - } - if (code === CHAR_ASTERISK) { - if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_QUESTION_MARK) { - isGlob = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_LEFT_SQUARE_BRACKET) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET) { - isBracket = token.isBracket = true; - isGlob = token.isGlob = true; - finished = true; - break; - } - } - if (scanToEnd === true) { - continue; - } - break; - } - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; - } - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) { - isGlob = token.isGlob = true; - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES) { - finished = true; - break; - } - } - continue; - } - break; - } - if (isGlob === true) { - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - } - if (opts.noext === true) { - isExtglob = false; - isGlob = false; - } - let base2 = str; - let prefix = ""; - let glob = ""; - if (start > 0) { - prefix = str.slice(0, start); - str = str.slice(start); - lastIndex -= start; - } - if (base2 && isGlob === true && lastIndex > 0) { - base2 = str.slice(0, lastIndex); - glob = str.slice(lastIndex); - } else if (isGlob === true) { - base2 = ""; - glob = str; - } else { - base2 = str; - } - if (base2 && base2 !== "" && base2 !== "/" && base2 !== str) { - if (isPathSeparator(base2.charCodeAt(base2.length - 1))) { - base2 = base2.slice(0, -1); - } - } - if (opts.unescape === true) { - if (glob) glob = utils$2.removeBackslashes(glob); - if (base2 && backslashes === true) { - base2 = utils$2.removeBackslashes(base2); - } - } - const state = { - prefix, - input, - start, - base: base2, - glob, - isBrace, - isBracket, - isGlob, - isExtglob, - isGlobstar, - negated, - negatedExtglob - }; - if (opts.tokens === true) { - state.maxDepth = 0; - if (!isPathSeparator(code)) { - tokens.push(token); - } - state.tokens = tokens; - } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; - for (let idx = 0; idx < slashes.length; idx++) { - const n2 = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx]; - const value = input.slice(n2, i); - if (opts.tokens) { - if (idx === 0 && start !== 0) { - tokens[idx].isPrefix = true; - tokens[idx].value = prefix; - } else { - tokens[idx].value = value; - } - depth(tokens[idx]); - state.maxDepth += tokens[idx].depth; - } - if (idx !== 0 || value !== "") { - parts.push(value); - } - prevIndex = i; - } - if (prevIndex && prevIndex + 1 < input.length) { - const value = input.slice(prevIndex + 1); - parts.push(value); - if (opts.tokens) { - tokens[tokens.length - 1].value = value; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; - } - } - state.slashes = slashes; - state.parts = parts; - } - return state; -}; -var scan_1 = scan$1; -var constants$1 = constants$2; -var utils$1 = utils$3; -var { - MAX_LENGTH, - POSIX_REGEX_SOURCE, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS -} = constants$1; -var expandRange = (args, options) => { - if (typeof options.expandRange === "function") { - return options.expandRange(...args, options); - } - args.sort(); - const value = `[${args.join("-")}]`; - return value; -}; -var syntaxError = (type, char) => { - return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; -}; -var parse$1 = (input, options) => { - if (typeof input !== "string") { - throw new TypeError("Expected a string"); - } - input = REPLACEMENTS[input] || input; - const opts = { ...options }; - const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - let len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); - } - const bos = { type: "bos", value: "", output: opts.prepend || "" }; - const tokens = [bos]; - const capture = opts.capture ? "" : "?:"; - const win322 = utils$1.isWindows(options); - const PLATFORM_CHARS = constants$1.globChars(win322); - const EXTGLOB_CHARS = constants$1.extglobChars(PLATFORM_CHARS); - const { - DOT_LITERAL: DOT_LITERAL2, - PLUS_LITERAL: PLUS_LITERAL2, - SLASH_LITERAL: SLASH_LITERAL2, - ONE_CHAR: ONE_CHAR2, - DOTS_SLASH: DOTS_SLASH2, - NO_DOT: NO_DOT2, - NO_DOT_SLASH: NO_DOT_SLASH2, - NO_DOTS_SLASH: NO_DOTS_SLASH2, - QMARK: QMARK2, - QMARK_NO_DOT: QMARK_NO_DOT2, - STAR: STAR2, - START_ANCHOR: START_ANCHOR2 - } = PLATFORM_CHARS; - const globstar = (opts2) => { - return `(${capture}(?:(?!${START_ANCHOR2}${opts2.dot ? DOTS_SLASH2 : DOT_LITERAL2}).)*?)`; - }; - const nodot = opts.dot ? "" : NO_DOT2; - const qmarkNoDot = opts.dot ? QMARK2 : QMARK_NO_DOT2; - let star = opts.bash === true ? globstar(opts) : STAR2; - if (opts.capture) { - star = `(${star})`; - } - if (typeof opts.noext === "boolean") { - opts.noextglob = opts.noext; - } - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: "", - output: "", - prefix: "", - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; - input = utils$1.removePrefix(input, state); - len = input.length; - const extglobs = []; - const braces = []; - const stack = []; - let prev = bos; - let value; - const eos = () => state.index === len - 1; - const peek = state.peek = (n2 = 1) => input[state.index + n2]; - const advance = state.advance = () => input[++state.index] || ""; - const remaining = () => input.slice(state.index + 1); - const consume = (value2 = "", num = 0) => { - state.consumed += value2; - state.index += num; - }; - const append = (token) => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); - }; - const negate = () => { - let count = 1; - while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) { - advance(); - state.start++; - count++; - } - if (count % 2 === 0) { - return false; - } - state.negated = true; - state.start++; - return true; - }; - const increment = (type) => { - state[type]++; - stack.push(type); - }; - const decrement = (type) => { - state[type]--; - stack.pop(); - }; - const push = (tok) => { - if (prev.type === "globstar") { - const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"); - const isExtglob = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); - if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = "star"; - prev.value = "*"; - prev.output = star; - state.output += prev.output; - } - } - if (extglobs.length && tok.type !== "paren") { - extglobs[extglobs.length - 1].inner += tok.value; - } - if (tok.value || tok.output) append(tok); - if (prev && prev.type === "text" && tok.type === "text") { - prev.value += tok.value; - prev.output = (prev.output || "") + tok.value; - return; - } - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; - const extglobOpen = (type, value2) => { - const token = { ...EXTGLOB_CHARS[value2], conditions: 1, inner: "" }; - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? "(" : "") + token.open; - increment("parens"); - push({ type, value: value2, output: state.output ? "" : ONE_CHAR2 }); - push({ type: "paren", extglob: true, value: advance(), output }); - extglobs.push(token); - }; - const extglobClose = (token) => { - let output = token.close + (opts.capture ? ")" : ""); - let rest; - if (token.type === "negate") { - let extglobStar = star; - if (token.inner && token.inner.length > 1 && token.inner.includes("/")) { - extglobStar = globstar(opts); - } - if (extglobStar !== star || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } - if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { - const expression = parse$1(rest, { ...options, fastpaths: false }).output; - output = token.close = `)${expression})${extglobStar})`; - } - if (token.prev.type === "bos") { - state.negatedExtglob = true; - } - } - push({ type: "paren", extglob: true, value, output }); - decrement("parens"); - }; - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars2, first, rest, index) => { - if (first === "\\") { - backslashes = true; - return m; - } - if (first === "?") { - if (esc) { - return esc + first + (rest ? QMARK2.repeat(rest.length) : ""); - } - if (index === 0) { - return qmarkNoDot + (rest ? QMARK2.repeat(rest.length) : ""); - } - return QMARK2.repeat(chars2.length); - } - if (first === ".") { - return DOT_LITERAL2.repeat(chars2.length); - } - if (first === "*") { - if (esc) { - return esc + first + (rest ? star : ""); - } - return star; - } - return esc ? m : `\\${m}`; - }); - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ""); - } else { - output = output.replace(/\\+/g, (m) => { - return m.length % 2 === 0 ? "\\\\" : m ? "\\" : ""; - }); - } - } - if (output === input && opts.contains === true) { - state.output = input; - return state; - } - state.output = utils$1.wrapOutput(output, state, options); - return state; - } - while (!eos()) { - value = advance(); - if (value === "\0") { - continue; - } - if (value === "\\") { - const next = peek(); - if (next === "/" && opts.bash !== true) { - continue; - } - if (next === "." || next === ";") { - continue; - } - if (!next) { - value += "\\"; - push({ type: "text", value }); - continue; - } - const match = /^\\+/.exec(remaining()); - let slashes = 0; - if (match && match[0].length > 2) { - slashes = match[0].length; - state.index += slashes; - if (slashes % 2 !== 0) { - value += "\\"; - } - } - if (opts.unescape === true) { - value = advance(); - } else { - value += advance(); - } - if (state.brackets === 0) { - push({ type: "text", value }); - continue; - } - } - if (state.brackets > 0 && (value !== "]" || prev.value === "[" || prev.value === "[^")) { - if (opts.posix !== false && value === ":") { - const inner = prev.value.slice(1); - if (inner.includes("[")) { - prev.posix = true; - if (inner.includes(":")) { - const idx = prev.value.lastIndexOf("["); - const pre = prev.value.slice(0, idx); - const rest2 = prev.value.slice(idx + 2); - const posix2 = POSIX_REGEX_SOURCE[rest2]; - if (posix2) { - prev.value = pre + posix2; - state.backtrack = true; - advance(); - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR2; - } - continue; - } - } - } - } - if (value === "[" && peek() !== ":" || value === "-" && peek() === "]") { - value = `\\${value}`; - } - if (value === "]" && (prev.value === "[" || prev.value === "[^")) { - value = `\\${value}`; - } - if (opts.posix === true && value === "!" && prev.value === "[") { - value = "^"; - } - prev.value += value; - append({ value }); - continue; - } - if (state.quotes === 1 && value !== '"') { - value = utils$1.escapeRegex(value); - prev.value += value; - append({ value }); - continue; - } - if (value === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; - if (opts.keepQuotes === true) { - push({ type: "text", value }); - } - continue; - } - if (value === "(") { - increment("parens"); - push({ type: "paren", value }); - continue; - } - if (value === ")") { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "(")); - } - const extglob = extglobs[extglobs.length - 1]; - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } - push({ type: "paren", value, output: state.parens ? ")" : "\\)" }); - decrement("parens"); - continue; - } - if (value === "[") { - if (opts.nobracket === true || !remaining().includes("]")) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("closing", "]")); - } - value = `\\${value}`; - } else { - increment("brackets"); - } - push({ type: "bracket", value }); - continue; - } - if (value === "]") { - if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) { - push({ type: "text", value, output: `\\${value}` }); - continue; - } - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "[")); - } - push({ type: "text", value, output: `\\${value}` }); - continue; - } - decrement("brackets"); - const prevValue = prev.value.slice(1); - if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) { - value = `/${value}`; - } - prev.value += value; - append({ value }); - if (opts.literalBrackets === false || utils$1.hasRegexChars(prevValue)) { - continue; - } - const escaped = utils$1.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); - if (opts.literalBrackets === true) { - state.output += escaped; - prev.value = escaped; - continue; - } - prev.value = `(${capture}${escaped}|${prev.value})`; - state.output += prev.value; - continue; - } - if (value === "{" && opts.nobrace !== true) { - increment("braces"); - const open = { - type: "brace", - value, - output: "(", - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; - braces.push(open); - push(open); - continue; - } - if (value === "}") { - const brace = braces[braces.length - 1]; - if (opts.nobrace === true || !brace) { - push({ type: "text", value, output: value }); - continue; - } - let output = ")"; - if (brace.dots === true) { - const arr = tokens.slice(); - const range = []; - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); - if (arr[i].type === "brace") { - break; - } - if (arr[i].type !== "dots") { - range.unshift(arr[i].value); - } - } - output = expandRange(range, opts); - state.backtrack = true; - } - if (brace.comma !== true && brace.dots !== true) { - const out = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = "\\{"; - value = output = "\\}"; - state.output = out; - for (const t of toks) { - state.output += t.output || t.value; - } - } - push({ type: "brace", value, output }); - decrement("braces"); - braces.pop(); - continue; - } - if (value === "|") { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; - } - push({ type: "text", value }); - continue; - } - if (value === ",") { - let output = value; - const brace = braces[braces.length - 1]; - if (brace && stack[stack.length - 1] === "braces") { - brace.comma = true; - output = "|"; - } - push({ type: "comma", value, output }); - continue; - } - if (value === "/") { - if (prev.type === "dot" && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ""; - state.output = ""; - tokens.pop(); - prev = bos; - continue; - } - push({ type: "slash", value, output: SLASH_LITERAL2 }); - continue; - } - if (value === ".") { - if (state.braces > 0 && prev.type === "dot") { - if (prev.value === ".") prev.output = DOT_LITERAL2; - const brace = braces[braces.length - 1]; - prev.type = "dots"; - prev.output += value; - prev.value += value; - brace.dots = true; - continue; - } - if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { - push({ type: "text", value, output: DOT_LITERAL2 }); - continue; - } - push({ type: "dot", value, output: DOT_LITERAL2 }); - continue; - } - if (value === "?") { - const isGroup = prev && prev.value === "("; - if (!isGroup && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("qmark", value); - continue; - } - if (prev && prev.type === "paren") { - const next = peek(); - let output = value; - if (next === "<" && !utils$1.supportsLookbehinds()) { - throw new Error("Node.js v10 or higher is required for regex lookbehinds"); - } - if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) { - output = `\\${value}`; - } - push({ type: "text", value, output }); - continue; - } - if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) { - push({ type: "qmark", value, output: QMARK_NO_DOT2 }); - continue; - } - push({ type: "qmark", value, output: QMARK2 }); - continue; - } - if (value === "!") { - if (opts.noextglob !== true && peek() === "(") { - if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) { - extglobOpen("negate", value); - continue; - } - } - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } - } - if (value === "+") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("plus", value); - continue; - } - if (prev && prev.value === "(" || opts.regex === false) { - push({ type: "plus", value, output: PLUS_LITERAL2 }); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { - push({ type: "plus", value }); - continue; - } - push({ type: "plus", value: PLUS_LITERAL2 }); - continue; - } - if (value === "@") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - push({ type: "at", extglob: true, value, output: "" }); - continue; - } - push({ type: "text", value }); - continue; - } - if (value !== "*") { - if (value === "$" || value === "^") { - value = `\\${value}`; - } - const match = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - if (match) { - value += match[0]; - state.index += match[0].length; - } - push({ type: "text", value }); - continue; - } - if (prev && (prev.type === "globstar" || prev.star === true)) { - prev.type = "star"; - prev.star = true; - prev.value += value; - prev.output = star; - state.backtrack = true; - state.globstar = true; - consume(value); - continue; - } - let rest = remaining(); - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen("star", value); - continue; - } - if (prev.type === "star") { - if (opts.noglobstar === true) { - consume(value); - continue; - } - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === "slash" || prior.type === "bos"; - const afterStar = before && (before.type === "star" || before.type === "globstar"); - if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) { - push({ type: "star", value, output: "" }); - continue; - } - const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"); - const isExtglob = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); - if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob) { - push({ type: "star", value, output: "" }); - continue; - } - while (rest.slice(0, 3) === "/**") { - const after = input[state.index + 4]; - if (after && after !== "/") { - break; - } - rest = rest.slice(3); - consume("/**", 3); - } - if (prior.type === "bos" && eos()) { - prev.type = "globstar"; - prev.value += value; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"); - prev.value += value; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { - const end = rest[1] !== void 0 ? "|$" : ""; - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = `${globstar(opts)}${SLASH_LITERAL2}|${SLASH_LITERAL2}${end})`; - prev.value += value; - state.output += prior.output + prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: "slash", value: "/", output: "" }); - continue; - } - if (prior.type === "bos" && rest[0] === "/") { - prev.type = "globstar"; - prev.value += value; - prev.output = `(?:^|${SLASH_LITERAL2}|${globstar(opts)}${SLASH_LITERAL2})`; - state.output = prev.output; - state.globstar = true; - consume(value + advance()); - push({ type: "slash", value: "/", output: "" }); - continue; - } - state.output = state.output.slice(0, -prev.output.length); - prev.type = "globstar"; - prev.output = globstar(opts); - prev.value += value; - state.output += prev.output; - state.globstar = true; - consume(value); - continue; - } - const token = { type: "star", value, output: star }; - if (opts.bash === true) { - token.output = ".*?"; - if (prev.type === "bos" || prev.type === "slash") { - token.output = nodot + token.output; - } - push(token); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) { - token.output = value; - push(token); - continue; - } - if (state.index === state.start || prev.type === "slash" || prev.type === "dot") { - if (prev.type === "dot") { - state.output += NO_DOT_SLASH2; - prev.output += NO_DOT_SLASH2; - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH2; - prev.output += NO_DOTS_SLASH2; - } else { - state.output += nodot; - prev.output += nodot; - } - if (peek() !== "*") { - state.output += ONE_CHAR2; - prev.output += ONE_CHAR2; - } - } - push(token); - } - while (state.brackets > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "]")); - state.output = utils$1.escapeLast(state.output, "["); - decrement("brackets"); - } - while (state.parens > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", ")")); - state.output = utils$1.escapeLast(state.output, "("); - decrement("parens"); - } - while (state.braces > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "}")); - state.output = utils$1.escapeLast(state.output, "{"); - decrement("braces"); - } - if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) { - push({ type: "maybe_slash", value: "", output: `${SLASH_LITERAL2}?` }); - } - if (state.backtrack === true) { - state.output = ""; - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; - if (token.suffix) { - state.output += token.suffix; - } - } - } - return state; -}; -parse$1.fastpaths = (input, options) => { - const opts = { ...options }; - const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH; - const len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); - } - input = REPLACEMENTS[input] || input; - const win322 = utils$1.isWindows(options); - const { - DOT_LITERAL: DOT_LITERAL2, - SLASH_LITERAL: SLASH_LITERAL2, - ONE_CHAR: ONE_CHAR2, - DOTS_SLASH: DOTS_SLASH2, - NO_DOT: NO_DOT2, - NO_DOTS: NO_DOTS2, - NO_DOTS_SLASH: NO_DOTS_SLASH2, - STAR: STAR2, - START_ANCHOR: START_ANCHOR2 - } = constants$1.globChars(win322); - const nodot = opts.dot ? NO_DOTS2 : NO_DOT2; - const slashDot = opts.dot ? NO_DOTS_SLASH2 : NO_DOT2; - const capture = opts.capture ? "" : "?:"; - const state = { negated: false, prefix: "" }; - let star = opts.bash === true ? ".*?" : STAR2; - if (opts.capture) { - star = `(${star})`; - } - const globstar = (opts2) => { - if (opts2.noglobstar === true) return star; - return `(${capture}(?:(?!${START_ANCHOR2}${opts2.dot ? DOTS_SLASH2 : DOT_LITERAL2}).)*?)`; - }; - const create = (str) => { - switch (str) { - case "*": - return `${nodot}${ONE_CHAR2}${star}`; - case ".*": - return `${DOT_LITERAL2}${ONE_CHAR2}${star}`; - case "*.*": - return `${nodot}${star}${DOT_LITERAL2}${ONE_CHAR2}${star}`; - case "*/*": - return `${nodot}${star}${SLASH_LITERAL2}${ONE_CHAR2}${slashDot}${star}`; - case "**": - return nodot + globstar(opts); - case "**/*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL2})?${slashDot}${ONE_CHAR2}${star}`; - case "**/*.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL2})?${slashDot}${star}${DOT_LITERAL2}${ONE_CHAR2}${star}`; - case "**/.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL2})?${DOT_LITERAL2}${ONE_CHAR2}${star}`; - default: { - const match = /^(.*?)\.(\w+)$/.exec(str); - if (!match) return; - const source2 = create(match[1]); - if (!source2) return; - return source2 + DOT_LITERAL2 + match[2]; - } - } - }; - const output = utils$1.removePrefix(input, state); - let source = create(output); - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL2}?`; - } - return source; -}; -var parse_1 = parse$1; -var path = import_path.default; -var scan = scan_1; -var parse = parse_1; -var utils = utils$3; -var constants = constants$2; -var isObject = (val) => val && typeof val === "object" && !Array.isArray(val); -var picomatch$1 = (glob, options, returnState = false) => { - if (Array.isArray(glob)) { - const fns = glob.map((input) => picomatch$1(input, options, returnState)); - const arrayMatcher = (str) => { - for (const isMatch of fns) { - const state2 = isMatch(str); - if (state2) return state2; - } - return false; - }; - return arrayMatcher; - } - const isState = isObject(glob) && glob.tokens && glob.input; - if (glob === "" || typeof glob !== "string" && !isState) { - throw new TypeError("Expected pattern to be a non-empty string"); - } - const opts = options || {}; - const posix2 = utils.isWindows(options); - const regex = isState ? picomatch$1.compileRe(glob, options) : picomatch$1.makeRe(glob, options, false, true); - const state = regex.state; - delete regex.state; - let isIgnored = () => false; - if (opts.ignore) { - const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null }; - isIgnored = picomatch$1(opts.ignore, ignoreOpts, returnState); - } - const matcher = (input, returnObject = false) => { - const { isMatch, match, output } = picomatch$1.test(input, regex, options, { glob, posix: posix2 }); - const result = { glob, state, regex, posix: posix2, input, output, match, isMatch }; - if (typeof opts.onResult === "function") { - opts.onResult(result); - } - if (isMatch === false) { - result.isMatch = false; - return returnObject ? result : false; - } - if (isIgnored(input)) { - if (typeof opts.onIgnore === "function") { - opts.onIgnore(result); - } - result.isMatch = false; - return returnObject ? result : false; - } - if (typeof opts.onMatch === "function") { - opts.onMatch(result); - } - return returnObject ? result : true; - }; - if (returnState) { - matcher.state = state; - } - return matcher; -}; -picomatch$1.test = (input, regex, options, { glob, posix: posix2 } = {}) => { - if (typeof input !== "string") { - throw new TypeError("Expected input to be a string"); - } - if (input === "") { - return { isMatch: false, output: "" }; - } - const opts = options || {}; - const format = opts.format || (posix2 ? utils.toPosixSlashes : null); - let match = input === glob; - let output = match && format ? format(input) : input; - if (match === false) { - output = format ? format(input) : input; - match = output === glob; - } - if (match === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match = picomatch$1.matchBase(input, regex, options, posix2); - } else { - match = regex.exec(output); - } - } - return { isMatch: Boolean(match), match, output }; -}; -picomatch$1.matchBase = (input, glob, options, posix2 = utils.isWindows(options)) => { - const regex = glob instanceof RegExp ? glob : picomatch$1.makeRe(glob, options); - return regex.test(path.basename(input)); -}; -picomatch$1.isMatch = (str, patterns, options) => picomatch$1(patterns, options)(str); -picomatch$1.parse = (pattern, options) => { - if (Array.isArray(pattern)) return pattern.map((p) => picomatch$1.parse(p, options)); - return parse(pattern, { ...options, fastpaths: false }); -}; -picomatch$1.scan = (input, options) => scan(input, options); -picomatch$1.compileRe = (state, options, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return state.output; - } - const opts = options || {}; - const prepend = opts.contains ? "" : "^"; - const append = opts.contains ? "" : "$"; - let source = `${prepend}(?:${state.output})${append}`; - if (state && state.negated === true) { - source = `^(?!${source}).*$`; - } - const regex = picomatch$1.toRegex(source, options); - if (returnState === true) { - regex.state = state; - } - return regex; -}; -picomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = false) => { - if (!input || typeof input !== "string") { - throw new TypeError("Expected a non-empty string"); - } - let parsed = { negated: false, fastpaths: true }; - if (options.fastpaths !== false && (input[0] === "." || input[0] === "*")) { - parsed.output = parse.fastpaths(input, options); - } - if (!parsed.output) { - parsed = parse(input, options); - } - return picomatch$1.compileRe(parsed, options, returnOutput, returnState); -}; -picomatch$1.toRegex = (source, options) => { - try { - const opts = options || {}; - return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); - } catch (err) { - if (options && options.debug === true) throw err; - return /$^/; - } -}; -picomatch$1.constants = constants; -var picomatch_1 = picomatch$1; -var picomatch = picomatch_1; -var pm = getDefaultExportFromCjs(picomatch); -var extractors = { - ArrayPattern(names, param) { - for (const element of param.elements) { - if (element) - extractors[element.type](names, element); - } - }, - AssignmentPattern(names, param) { - extractors[param.left.type](names, param.left); - }, - Identifier(names, param) { - names.push(param.name); - }, - MemberExpression() { - }, - ObjectPattern(names, param) { - for (const prop of param.properties) { - if (prop.type === "RestElement") { - extractors.RestElement(names, prop); - } else { - extractors[prop.value.type](names, prop.value); - } - } - }, - RestElement(names, param) { - extractors[param.argument.type](names, param.argument); - } -}; -var extractAssignedNames = function extractAssignedNames2(param) { - const names = []; - extractors[param.type](names, param); - return names; -}; -function isArray(arg) { - return Array.isArray(arg); -} -function ensureArray$1(thing) { - if (isArray(thing)) - return thing; - if (thing == null) - return []; - return [thing]; -} -var normalizePath = function normalizePath2(filename) { - return filename.split(import_path.win32.sep).join(import_path.posix.sep); -}; -function getMatcherString(id, resolutionBase) { - if (resolutionBase === false || (0, import_path.isAbsolute)(id) || id.startsWith("**")) { - return normalizePath(id); - } - const basePath = normalizePath((0, import_path.resolve)(resolutionBase || "")).replace(/[-^$*+?.()|[\]{}]/g, "\\$&"); - return import_path.posix.join(basePath, normalizePath(id)); -} -var createFilter = function createFilter2(include, exclude, options) { - const resolutionBase = options && options.resolve; - const getMatcher = (id) => id instanceof RegExp ? id : { - test: (what) => { - const pattern = getMatcherString(id, resolutionBase); - const fn = pm(pattern, { dot: true }); - const result = fn(what); - return result; - } - }; - const includeMatchers = ensureArray$1(include).map(getMatcher); - const excludeMatchers = ensureArray$1(exclude).map(getMatcher); - return function result(id) { - if (typeof id !== "string") - return false; - if (/\0/.test(id)) - return false; - const pathId = normalizePath(id); - for (let i = 0; i < excludeMatchers.length; ++i) { - const matcher = excludeMatchers[i]; - if (matcher.test(pathId)) - return false; - } - for (let i = 0; i < includeMatchers.length; ++i) { - const matcher = includeMatchers[i]; - if (matcher.test(pathId)) - return true; - } - return !includeMatchers.length; - }; -}; -var reservedWords = "break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public"; -var builtins = "arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl"; -var forbiddenIdentifiers = new Set(`${reservedWords} ${builtins}`.split(" ")); -forbiddenIdentifiers.add(""); -function createInclusionContext() { - return { - brokenFlow: false, - hasBreak: false, - hasContinue: false, - includedCallArguments: /* @__PURE__ */ new Set(), - includedLabels: /* @__PURE__ */ new Set() - }; -} -function createHasEffectsContext() { - return { - accessed: new PathTracker(), - assigned: new PathTracker(), - brokenFlow: false, - called: new DiscriminatedPathTracker(), - hasBreak: false, - hasContinue: false, - ignore: { - breaks: false, - continues: false, - labels: /* @__PURE__ */ new Set(), - returnYield: false, - this: false - }, - includedLabels: /* @__PURE__ */ new Set(), - instantiated: new DiscriminatedPathTracker(), - replacedVariableInits: /* @__PURE__ */ new Map() - }; -} -function assembleMemberDescriptions(memberDescriptions, inheritedDescriptions = null) { - return Object.create(inheritedDescriptions, memberDescriptions); -} -var UNDEFINED_EXPRESSION = new class UndefinedExpression extends ExpressionEntity { - getLiteralValueAtPath() { - return void 0; - } -}(); -var returnsUnknown = { - value: { - hasEffectsWhenCalled: null, - returns: UNKNOWN_EXPRESSION - } -}; -var UNKNOWN_LITERAL_BOOLEAN = new class UnknownBoolean extends ExpressionEntity { - getReturnExpressionWhenCalledAtPath(path2) { - if (path2.length === 1) { - return getMemberReturnExpressionWhenCalled(literalBooleanMembers, path2[0]); - } - return UNKNOWN_RETURN_EXPRESSION; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (interaction.type === INTERACTION_ACCESSED) { - return path2.length > 1; - } - if (interaction.type === INTERACTION_CALLED && path2.length === 1) { - return hasMemberEffectWhenCalled(literalBooleanMembers, path2[0], interaction, context); - } - return true; - } -}(); -var returnsBoolean = { - value: { - hasEffectsWhenCalled: null, - returns: UNKNOWN_LITERAL_BOOLEAN - } -}; -var UNKNOWN_LITERAL_NUMBER = new class UnknownNumber extends ExpressionEntity { - getReturnExpressionWhenCalledAtPath(path2) { - if (path2.length === 1) { - return getMemberReturnExpressionWhenCalled(literalNumberMembers, path2[0]); - } - return UNKNOWN_RETURN_EXPRESSION; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (interaction.type === INTERACTION_ACCESSED) { - return path2.length > 1; - } - if (interaction.type === INTERACTION_CALLED && path2.length === 1) { - return hasMemberEffectWhenCalled(literalNumberMembers, path2[0], interaction, context); - } - return true; - } -}(); -var returnsNumber = { - value: { - hasEffectsWhenCalled: null, - returns: UNKNOWN_LITERAL_NUMBER - } -}; -var UNKNOWN_LITERAL_STRING = new class UnknownString extends ExpressionEntity { - getReturnExpressionWhenCalledAtPath(path2) { - if (path2.length === 1) { - return getMemberReturnExpressionWhenCalled(literalStringMembers, path2[0]); - } - return UNKNOWN_RETURN_EXPRESSION; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (interaction.type === INTERACTION_ACCESSED) { - return path2.length > 1; - } - if (interaction.type === INTERACTION_CALLED && path2.length === 1) { - return hasMemberEffectWhenCalled(literalStringMembers, path2[0], interaction, context); - } - return true; - } -}(); -var returnsString = { - value: { - hasEffectsWhenCalled: null, - returns: UNKNOWN_LITERAL_STRING - } -}; -var stringReplace = { - value: { - hasEffectsWhenCalled({ args }, context) { - const argument1 = args[2]; - return args.length < 3 || typeof argument1.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, { - deoptimizeCache() { - } - }) === "symbol" && argument1.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, context); - }, - returns: UNKNOWN_LITERAL_STRING - } -}; -var objectMembers = assembleMemberDescriptions({ - hasOwnProperty: returnsBoolean, - isPrototypeOf: returnsBoolean, - propertyIsEnumerable: returnsBoolean, - toLocaleString: returnsString, - toString: returnsString, - valueOf: returnsUnknown -}); -var literalBooleanMembers = assembleMemberDescriptions({ - valueOf: returnsBoolean -}, objectMembers); -var literalNumberMembers = assembleMemberDescriptions({ - toExponential: returnsString, - toFixed: returnsString, - toLocaleString: returnsString, - toPrecision: returnsString, - valueOf: returnsNumber -}, objectMembers); -var literalRegExpMembers = assembleMemberDescriptions({ - exec: returnsUnknown, - test: returnsBoolean -}, objectMembers); -var literalStringMembers = assembleMemberDescriptions({ - anchor: returnsString, - at: returnsUnknown, - big: returnsString, - blink: returnsString, - bold: returnsString, - charAt: returnsString, - charCodeAt: returnsNumber, - codePointAt: returnsUnknown, - concat: returnsString, - endsWith: returnsBoolean, - fixed: returnsString, - fontcolor: returnsString, - fontsize: returnsString, - includes: returnsBoolean, - indexOf: returnsNumber, - italics: returnsString, - lastIndexOf: returnsNumber, - link: returnsString, - localeCompare: returnsNumber, - match: returnsUnknown, - matchAll: returnsUnknown, - normalize: returnsString, - padEnd: returnsString, - padStart: returnsString, - repeat: returnsString, - replace: stringReplace, - replaceAll: stringReplace, - search: returnsNumber, - slice: returnsString, - small: returnsString, - split: returnsUnknown, - startsWith: returnsBoolean, - strike: returnsString, - sub: returnsString, - substr: returnsString, - substring: returnsString, - sup: returnsString, - toLocaleLowerCase: returnsString, - toLocaleUpperCase: returnsString, - toLowerCase: returnsString, - toString: returnsString, - // overrides the toString() method of the Object object; it does not inherit Object.prototype.toString() - toUpperCase: returnsString, - trim: returnsString, - trimEnd: returnsString, - trimLeft: returnsString, - trimRight: returnsString, - trimStart: returnsString, - valueOf: returnsString -}, objectMembers); -function getLiteralMembersForValue(value) { - if (value instanceof RegExp) { - return literalRegExpMembers; - } - switch (typeof value) { - case "boolean": { - return literalBooleanMembers; - } - case "number": { - return literalNumberMembers; - } - case "string": { - return literalStringMembers; - } - } - return /* @__PURE__ */ Object.create(null); -} -function hasMemberEffectWhenCalled(members, memberName, interaction, context) { - var _a, _b; - if (typeof memberName !== "string" || !members[memberName]) { - return true; - } - return ((_b = (_a = members[memberName]).hasEffectsWhenCalled) == null ? void 0 : _b.call(_a, interaction, context)) || false; -} -function getMemberReturnExpressionWhenCalled(members, memberName) { - if (typeof memberName !== "string" || !members[memberName]) - return UNKNOWN_RETURN_EXPRESSION; - return [members[memberName].returns, false]; -} -var childNodeKeys = { - ArrayExpression: ["elements"], - ArrayPattern: ["elements"], - ArrowFunctionExpression: ["params", "body"], - AssignmentExpression: ["left", "right"], - AssignmentPattern: ["left", "right"], - AwaitExpression: ["argument"], - BinaryExpression: ["left", "right"], - BlockStatement: ["body"], - BreakStatement: ["label"], - CallExpression: ["callee", "arguments"], - CatchClause: ["param", "body"], - ChainExpression: ["expression"], - ClassBody: ["body"], - ClassDeclaration: ["decorators", "id", "superClass", "body"], - ClassExpression: ["decorators", "id", "superClass", "body"], - ConditionalExpression: ["test", "consequent", "alternate"], - ContinueStatement: ["label"], - DebuggerStatement: [], - Decorator: ["expression"], - DoWhileStatement: ["body", "test"], - EmptyStatement: [], - ExportAllDeclaration: ["exported", "source", "attributes"], - ExportDefaultDeclaration: ["declaration"], - ExportNamedDeclaration: ["specifiers", "source", "attributes", "declaration"], - ExportSpecifier: ["local", "exported"], - ExpressionStatement: ["expression"], - ForInStatement: ["left", "right", "body"], - ForOfStatement: ["left", "right", "body"], - ForStatement: ["init", "test", "update", "body"], - FunctionDeclaration: ["id", "params", "body"], - FunctionExpression: ["id", "params", "body"], - Identifier: [], - IfStatement: ["test", "consequent", "alternate"], - ImportAttribute: ["key", "value"], - ImportDeclaration: ["specifiers", "source", "attributes"], - ImportDefaultSpecifier: ["local"], - ImportExpression: ["source", "options"], - ImportNamespaceSpecifier: ["local"], - ImportSpecifier: ["imported", "local"], - LabeledStatement: ["label", "body"], - Literal: [], - LogicalExpression: ["left", "right"], - MemberExpression: ["object", "property"], - MetaProperty: ["meta", "property"], - MethodDefinition: ["decorators", "key", "value"], - NewExpression: ["callee", "arguments"], - ObjectExpression: ["properties"], - ObjectPattern: ["properties"], - PanicError: [], - ParseError: [], - PrivateIdentifier: [], - Program: ["body"], - Property: ["key", "value"], - PropertyDefinition: ["decorators", "key", "value"], - RestElement: ["argument"], - ReturnStatement: ["argument"], - SequenceExpression: ["expressions"], - SpreadElement: ["argument"], - StaticBlock: ["body"], - Super: [], - SwitchCase: ["test", "consequent"], - SwitchStatement: ["discriminant", "cases"], - TaggedTemplateExpression: ["tag", "quasi"], - TemplateElement: [], - TemplateLiteral: ["quasis", "expressions"], - ThisExpression: [], - ThrowStatement: ["argument"], - TryStatement: ["block", "handler", "finalizer"], - UnaryExpression: ["argument"], - UpdateExpression: ["argument"], - VariableDeclaration: ["declarations"], - VariableDeclarator: ["id", "init"], - WhileStatement: ["test", "body"], - YieldExpression: ["argument"] -}; -var INCLUDE_PARAMETERS = "variables"; -var IS_SKIPPED_CHAIN = Symbol("IS_SKIPPED_CHAIN"); -var NodeBase = class extends ExpressionEntity { - /** - * Nodes can apply custom deoptimizations once they become part of the - * executed code. To do this, they must initialize this as false, implement - * applyDeoptimizations and call this from include and hasEffects if they have - * custom handlers - */ - get deoptimized() { - return isFlagSet( - this.flags, - 2 - /* Flag.deoptimized */ - ); - } - set deoptimized(value) { - this.flags = setFlag(this.flags, 2, value); - } - constructor(parent, parentScope) { - super(); - this.parent = parent; - this.scope = parentScope; - this.createScope(parentScope); - } - addExportedVariables(_variables, _exportNamesByVariable) { - } - /** - * Override this to bind assignments to variables and do any initialisations - * that require the scopes to be populated with variables. - */ - bind() { - for (const key of childNodeKeys[this.type]) { - const value = this[key]; - if (Array.isArray(value)) { - for (const child of value) { - child == null ? void 0 : child.bind(); - } - } else if (value) { - value.bind(); - } - } - } - /** - * Override if this node should receive a different scope than the parent - * scope. - */ - createScope(parentScope) { - this.scope = parentScope; - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - for (const key of childNodeKeys[this.type]) { - const value = this[key]; - if (value === null) - continue; - if (Array.isArray(value)) { - for (const child of value) { - if (child == null ? void 0 : child.hasEffects(context)) - return true; - } - } else if (value.hasEffects(context)) - return true; - } - return false; - } - hasEffectsAsAssignmentTarget(context, _checkAccess) { - return this.hasEffects(context) || this.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.assignmentInteraction, context); - } - include(context, includeChildrenRecursively, _options) { - if (!this.deoptimized) - this.applyDeoptimizations(); - this.included = true; - for (const key of childNodeKeys[this.type]) { - const value = this[key]; - if (value === null) - continue; - if (Array.isArray(value)) { - for (const child of value) { - child == null ? void 0 : child.include(context, includeChildrenRecursively); - } - } else { - value.include(context, includeChildrenRecursively); - } - } - } - includeAsAssignmentTarget(context, includeChildrenRecursively, _deoptimizeAccess) { - this.include(context, includeChildrenRecursively); - } - /** - * Override to perform special initialisation steps after the scope is - * initialised - */ - initialise() { - this.scope.context.magicString.addSourcemapLocation(this.start); - this.scope.context.magicString.addSourcemapLocation(this.end); - } - parseNode(esTreeNode) { - var _a; - for (const [key, value] of Object.entries(esTreeNode)) { - if (this.hasOwnProperty(key)) - continue; - if (key.charCodeAt(0) === 95) { - if (key === ANNOTATION_KEY) { - this.annotations = value; - } else if (key === INVALID_ANNOTATION_KEY) { - this.invalidAnnotations = value; - } - } else if (typeof value !== "object" || value === null) { - this[key] = value; - } else if (Array.isArray(value)) { - this[key] = []; - for (const child of value) { - this[key].push(child === null ? null : new (this.scope.context.getNodeConstructor(child.type))(this, this.scope).parseNode(child)); - } - } else { - this[key] = new (this.scope.context.getNodeConstructor(value.type))(this, this.scope).parseNode(value); - } - } - childNodeKeys[_a = esTreeNode.type] || (childNodeKeys[_a] = createChildNodeKeysForNode(esTreeNode)); - this.initialise(); - return this; - } - removeAnnotations(code) { - if (this.annotations) { - for (const annotation of this.annotations) { - code.remove(annotation.start, annotation.end); - } - } - } - render(code, options) { - for (const key of childNodeKeys[this.type]) { - const value = this[key]; - if (value === null) - continue; - if (Array.isArray(value)) { - for (const child of value) { - child == null ? void 0 : child.render(code, options); - } - } else { - value.render(code, options); - } - } - } - setAssignedValue(value) { - this.assignmentInteraction = { args: [null, value], type: INTERACTION_ASSIGNED }; - } - shouldBeIncluded(context) { - return this.included || !context.brokenFlow && this.hasEffects(createHasEffectsContext()); - } - /** - * Just deoptimize everything by default so that when e.g. we do not track - * something properly, it is deoptimized. - * @protected - */ - applyDeoptimizations() { - this.deoptimized = true; - for (const key of childNodeKeys[this.type]) { - const value = this[key]; - if (value === null) - continue; - if (Array.isArray(value)) { - for (const child of value) { - child == null ? void 0 : child.deoptimizePath(UNKNOWN_PATH); - } - } else { - value.deoptimizePath(UNKNOWN_PATH); - } - } - this.scope.context.requestTreeshakingPass(); - } -}; -function createChildNodeKeysForNode(esTreeNode) { - return Object.keys(esTreeNode).filter( - (key) => typeof esTreeNode[key] === "object" && key.charCodeAt(0) !== 95 - /* _ */ - ); -} -var SpreadElement = class extends NodeBase { - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - if (path2.length > 0) { - this.argument.deoptimizeArgumentsOnInteractionAtPath(interaction, [UnknownKey, ...path2], recursionTracker); - } - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - const { propertyReadSideEffects } = this.scope.context.options.treeshake; - return this.argument.hasEffects(context) || propertyReadSideEffects && (propertyReadSideEffects === "always" || this.argument.hasEffectsOnInteractionAtPath(UNKNOWN_PATH, NODE_INTERACTION_UNKNOWN_ACCESS, context)); - } - applyDeoptimizations() { - this.deoptimized = true; - this.argument.deoptimizePath([UnknownKey, UnknownKey]); - this.scope.context.requestTreeshakingPass(); - } -}; -var Method = class extends ExpressionEntity { - constructor(description) { - super(); - this.description = description; - } - deoptimizeArgumentsOnInteractionAtPath({ args, type }, path2) { - var _a; - if (type === INTERACTION_CALLED && path2.length === 0) { - if (this.description.mutatesSelfAsArray) { - (_a = args[0]) == null ? void 0 : _a.deoptimizePath(UNKNOWN_INTEGER_PATH); - } - if (this.description.mutatesArgs) { - for (let index = 1; index < args.length; index++) { - args[index].deoptimizePath(UNKNOWN_PATH); - } - } - } - } - getReturnExpressionWhenCalledAtPath(path2, { args }) { - if (path2.length > 0) { - return UNKNOWN_RETURN_EXPRESSION; - } - return [ - this.description.returnsPrimitive || (this.description.returns === "self" ? args[0] || UNKNOWN_EXPRESSION : this.description.returns()), - false - ]; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - var _a, _b; - const { type } = interaction; - if (path2.length > (type === INTERACTION_ACCESSED ? 1 : 0)) { - return true; - } - if (type === INTERACTION_CALLED) { - const { args } = interaction; - if (this.description.mutatesSelfAsArray === true && ((_a = args[0]) == null ? void 0 : _a.hasEffectsOnInteractionAtPath(UNKNOWN_INTEGER_PATH, NODE_INTERACTION_UNKNOWN_ASSIGNMENT, context))) { - return true; - } - if (this.description.callsArgs) { - for (const argumentIndex of this.description.callsArgs) { - if ((_b = args[argumentIndex + 1]) == null ? void 0 : _b.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, context)) { - return true; - } - } - } - } - return false; - } -}; -var METHOD_RETURNS_BOOLEAN = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: false, - returns: null, - returnsPrimitive: UNKNOWN_LITERAL_BOOLEAN - }) -]; -var METHOD_RETURNS_STRING = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: false, - returns: null, - returnsPrimitive: UNKNOWN_LITERAL_STRING - }) -]; -var METHOD_RETURNS_NUMBER = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: false, - returns: null, - returnsPrimitive: UNKNOWN_LITERAL_NUMBER - }) -]; -var METHOD_RETURNS_UNKNOWN = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: false, - returns: null, - returnsPrimitive: UNKNOWN_EXPRESSION - }) -]; -var INTEGER_REG_EXP = /^\d+$/; -var ObjectEntity = class extends ExpressionEntity { - get hasLostTrack() { - return isFlagSet( - this.flags, - 2048 - /* Flag.hasLostTrack */ - ); - } - set hasLostTrack(value) { - this.flags = setFlag(this.flags, 2048, value); - } - get hasUnknownDeoptimizedInteger() { - return isFlagSet( - this.flags, - 4096 - /* Flag.hasUnknownDeoptimizedInteger */ - ); - } - set hasUnknownDeoptimizedInteger(value) { - this.flags = setFlag(this.flags, 4096, value); - } - get hasUnknownDeoptimizedProperty() { - return isFlagSet( - this.flags, - 8192 - /* Flag.hasUnknownDeoptimizedProperty */ - ); - } - set hasUnknownDeoptimizedProperty(value) { - this.flags = setFlag(this.flags, 8192, value); - } - // If a PropertyMap is used, this will be taken as propertiesAndGettersByKey - // and we assume there are no setters or getters - constructor(properties, prototypeExpression, immutable = false) { - super(); - this.prototypeExpression = prototypeExpression; - this.immutable = immutable; - this.additionalExpressionsToBeDeoptimized = /* @__PURE__ */ new Set(); - this.allProperties = []; - this.deoptimizedPaths = /* @__PURE__ */ Object.create(null); - this.expressionsToBeDeoptimizedByKey = /* @__PURE__ */ Object.create(null); - this.gettersByKey = /* @__PURE__ */ Object.create(null); - this.propertiesAndGettersByKey = /* @__PURE__ */ Object.create(null); - this.propertiesAndSettersByKey = /* @__PURE__ */ Object.create(null); - this.settersByKey = /* @__PURE__ */ Object.create(null); - this.unknownIntegerProps = []; - this.unmatchableGetters = []; - this.unmatchablePropertiesAndGetters = []; - this.unmatchableSetters = []; - if (Array.isArray(properties)) { - this.buildPropertyMaps(properties); - } else { - this.propertiesAndGettersByKey = this.propertiesAndSettersByKey = properties; - for (const propertiesForKey of Object.values(properties)) { - this.allProperties.push(...propertiesForKey); - } - } - } - deoptimizeAllProperties(noAccessors) { - var _a; - const isDeoptimized = this.hasLostTrack || this.hasUnknownDeoptimizedProperty; - if (noAccessors) { - this.hasUnknownDeoptimizedProperty = true; - } else { - this.hasLostTrack = true; - } - if (isDeoptimized) { - return; - } - for (const properties of [ - ...Object.values(this.propertiesAndGettersByKey), - ...Object.values(this.settersByKey) - ]) { - for (const property2 of properties) { - property2.deoptimizePath(UNKNOWN_PATH); - } - } - (_a = this.prototypeExpression) == null ? void 0 : _a.deoptimizePath([UnknownKey, UnknownKey]); - this.deoptimizeCachedEntities(); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - var _a; - const [key, ...subPath] = path2; - const { args, type } = interaction; - if (this.hasLostTrack || // single paths that are deoptimized will not become getters or setters - (type === INTERACTION_CALLED || path2.length > 1) && (this.hasUnknownDeoptimizedProperty || typeof key === "string" && this.deoptimizedPaths[key])) { - deoptimizeInteraction(interaction); - return; - } - const [propertiesForExactMatchByKey, relevantPropertiesByKey, relevantUnmatchableProperties] = type === INTERACTION_CALLED || path2.length > 1 ? [ - this.propertiesAndGettersByKey, - this.propertiesAndGettersByKey, - this.unmatchablePropertiesAndGetters - ] : type === INTERACTION_ACCESSED ? [this.propertiesAndGettersByKey, this.gettersByKey, this.unmatchableGetters] : [this.propertiesAndSettersByKey, this.settersByKey, this.unmatchableSetters]; - if (typeof key === "string") { - if (propertiesForExactMatchByKey[key]) { - const properties = relevantPropertiesByKey[key]; - if (properties) { - for (const property2 of properties) { - property2.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker); - } - } - if (!this.immutable) { - for (const argument of args) { - if (argument) { - this.additionalExpressionsToBeDeoptimized.add(argument); - } - } - } - return; - } - for (const property2 of relevantUnmatchableProperties) { - property2.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker); - } - if (INTEGER_REG_EXP.test(key)) { - for (const property2 of this.unknownIntegerProps) { - property2.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker); - } - } - } else { - for (const properties of [ - ...Object.values(relevantPropertiesByKey), - relevantUnmatchableProperties - ]) { - for (const property2 of properties) { - property2.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker); - } - } - for (const property2 of this.unknownIntegerProps) { - property2.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker); - } - } - if (!this.immutable) { - for (const argument of args) { - if (argument) { - this.additionalExpressionsToBeDeoptimized.add(argument); - } - } - } - (_a = this.prototypeExpression) == null ? void 0 : _a.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizeIntegerProperties() { - if (this.hasLostTrack || this.hasUnknownDeoptimizedProperty || this.hasUnknownDeoptimizedInteger) { - return; - } - this.hasUnknownDeoptimizedInteger = true; - for (const [key, propertiesAndGetters] of Object.entries(this.propertiesAndGettersByKey)) { - if (INTEGER_REG_EXP.test(key)) { - for (const property2 of propertiesAndGetters) { - property2.deoptimizePath(UNKNOWN_PATH); - } - } - } - this.deoptimizeCachedIntegerEntities(); - } - // Assumption: If only a specific path is deoptimized, no accessors are created - deoptimizePath(path2) { - var _a; - if (this.hasLostTrack || this.immutable) { - return; - } - const key = path2[0]; - if (path2.length === 1) { - if (key === UnknownInteger) { - return this.deoptimizeIntegerProperties(); - } else if (typeof key !== "string") { - return this.deoptimizeAllProperties(key === UnknownNonAccessorKey); - } - if (!this.deoptimizedPaths[key]) { - this.deoptimizedPaths[key] = true; - const expressionsToBeDeoptimized = this.expressionsToBeDeoptimizedByKey[key]; - if (expressionsToBeDeoptimized) { - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizeCache(); - } - } - } - } - const subPath = path2.length === 1 ? UNKNOWN_PATH : path2.slice(1); - for (const property2 of typeof key === "string" ? [ - ...this.propertiesAndGettersByKey[key] || this.unmatchablePropertiesAndGetters, - ...this.settersByKey[key] || this.unmatchableSetters - ] : this.allProperties) { - property2.deoptimizePath(subPath); - } - (_a = this.prototypeExpression) == null ? void 0 : _a.deoptimizePath(path2.length === 1 ? [...path2, UnknownKey] : path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - if (path2.length === 0) { - return UnknownTruthyValue; - } - const key = path2[0]; - const expressionAtPath = this.getMemberExpressionAndTrackDeopt(key, origin); - if (expressionAtPath) { - return expressionAtPath.getLiteralValueAtPath(path2.slice(1), recursionTracker, origin); - } - if (this.prototypeExpression) { - return this.prototypeExpression.getLiteralValueAtPath(path2, recursionTracker, origin); - } - if (path2.length === 1) { - return void 0; - } - return UnknownValue; - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - if (path2.length === 0) { - return UNKNOWN_RETURN_EXPRESSION; - } - const [key, ...subPath] = path2; - const expressionAtPath = this.getMemberExpressionAndTrackDeopt(key, origin); - if (expressionAtPath) { - return expressionAtPath.getReturnExpressionWhenCalledAtPath(subPath, interaction, recursionTracker, origin); - } - if (this.prototypeExpression) { - return this.prototypeExpression.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - return UNKNOWN_RETURN_EXPRESSION; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - const [key, ...subPath] = path2; - if (subPath.length > 0 || interaction.type === INTERACTION_CALLED) { - const expressionAtPath = this.getMemberExpression(key); - if (expressionAtPath) { - return expressionAtPath.hasEffectsOnInteractionAtPath(subPath, interaction, context); - } - if (this.prototypeExpression) { - return this.prototypeExpression.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - return true; - } - if (key === UnknownNonAccessorKey) - return false; - if (this.hasLostTrack) - return true; - const [propertiesAndAccessorsByKey, accessorsByKey, unmatchableAccessors] = interaction.type === INTERACTION_ACCESSED ? [this.propertiesAndGettersByKey, this.gettersByKey, this.unmatchableGetters] : [this.propertiesAndSettersByKey, this.settersByKey, this.unmatchableSetters]; - if (typeof key === "string") { - if (propertiesAndAccessorsByKey[key]) { - const accessors = accessorsByKey[key]; - if (accessors) { - for (const accessor of accessors) { - if (accessor.hasEffectsOnInteractionAtPath(subPath, interaction, context)) - return true; - } - } - return false; - } - for (const accessor of unmatchableAccessors) { - if (accessor.hasEffectsOnInteractionAtPath(subPath, interaction, context)) { - return true; - } - } - } else { - for (const accessors of [...Object.values(accessorsByKey), unmatchableAccessors]) { - for (const accessor of accessors) { - if (accessor.hasEffectsOnInteractionAtPath(subPath, interaction, context)) - return true; - } - } - } - if (this.prototypeExpression) { - return this.prototypeExpression.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - return false; - } - buildPropertyMaps(properties) { - const { allProperties, propertiesAndGettersByKey, propertiesAndSettersByKey, settersByKey, gettersByKey, unknownIntegerProps, unmatchablePropertiesAndGetters, unmatchableGetters, unmatchableSetters } = this; - const unmatchablePropertiesAndSetters = []; - for (let index = properties.length - 1; index >= 0; index--) { - const { key, kind, property: property2 } = properties[index]; - allProperties.push(property2); - if (typeof key === "string") { - if (kind === "set") { - if (!propertiesAndSettersByKey[key]) { - propertiesAndSettersByKey[key] = [property2, ...unmatchablePropertiesAndSetters]; - settersByKey[key] = [property2, ...unmatchableSetters]; - } - } else if (kind === "get") { - if (!propertiesAndGettersByKey[key]) { - propertiesAndGettersByKey[key] = [property2, ...unmatchablePropertiesAndGetters]; - gettersByKey[key] = [property2, ...unmatchableGetters]; - } - } else { - if (!propertiesAndSettersByKey[key]) { - propertiesAndSettersByKey[key] = [property2, ...unmatchablePropertiesAndSetters]; - } - if (!propertiesAndGettersByKey[key]) { - propertiesAndGettersByKey[key] = [property2, ...unmatchablePropertiesAndGetters]; - } - } - } else { - if (key === UnknownInteger) { - unknownIntegerProps.push(property2); - continue; - } - if (kind === "set") - unmatchableSetters.push(property2); - if (kind === "get") - unmatchableGetters.push(property2); - if (kind !== "get") - unmatchablePropertiesAndSetters.push(property2); - if (kind !== "set") - unmatchablePropertiesAndGetters.push(property2); - } - } - } - deoptimizeCachedEntities() { - for (const expressionsToBeDeoptimized of Object.values(this.expressionsToBeDeoptimizedByKey)) { - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizeCache(); - } - } - for (const expression of this.additionalExpressionsToBeDeoptimized) { - expression.deoptimizePath(UNKNOWN_PATH); - } - } - deoptimizeCachedIntegerEntities() { - for (const [key, expressionsToBeDeoptimized] of Object.entries(this.expressionsToBeDeoptimizedByKey)) { - if (INTEGER_REG_EXP.test(key)) { - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizeCache(); - } - } - } - for (const expression of this.additionalExpressionsToBeDeoptimized) { - expression.deoptimizePath(UNKNOWN_INTEGER_PATH); - } - } - getMemberExpression(key) { - if (this.hasLostTrack || this.hasUnknownDeoptimizedProperty || typeof key !== "string" || this.hasUnknownDeoptimizedInteger && INTEGER_REG_EXP.test(key) || this.deoptimizedPaths[key]) { - return UNKNOWN_EXPRESSION; - } - const properties = this.propertiesAndGettersByKey[key]; - if ((properties == null ? void 0 : properties.length) === 1) { - return properties[0]; - } - if (properties || this.unmatchablePropertiesAndGetters.length > 0 || this.unknownIntegerProps.length > 0 && INTEGER_REG_EXP.test(key)) { - return UNKNOWN_EXPRESSION; - } - return null; - } - getMemberExpressionAndTrackDeopt(key, origin) { - if (typeof key !== "string") { - return UNKNOWN_EXPRESSION; - } - const expression = this.getMemberExpression(key); - if (!(expression === UNKNOWN_EXPRESSION || this.immutable)) { - const expressionsToBeDeoptimized = this.expressionsToBeDeoptimizedByKey[key] = this.expressionsToBeDeoptimizedByKey[key] || []; - expressionsToBeDeoptimized.push(origin); - } - return expression; - } -}; -var isInteger = (property2) => typeof property2 === "string" && /^\d+$/.test(property2); -var OBJECT_PROTOTYPE_FALLBACK = new class ObjectPrototypeFallbackExpression extends ExpressionEntity { - deoptimizeArgumentsOnInteractionAtPath(interaction, path2) { - if (interaction.type === INTERACTION_CALLED && path2.length === 1 && !isInteger(path2[0])) { - deoptimizeInteraction(interaction); - } - } - getLiteralValueAtPath(path2) { - return path2.length === 1 && isInteger(path2[0]) ? void 0 : UnknownValue; - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return path2.length > 1 || type === INTERACTION_CALLED; - } -}(); -var OBJECT_PROTOTYPE = new ObjectEntity({ - __proto__: null, - hasOwnProperty: METHOD_RETURNS_BOOLEAN, - isPrototypeOf: METHOD_RETURNS_BOOLEAN, - propertyIsEnumerable: METHOD_RETURNS_BOOLEAN, - toLocaleString: METHOD_RETURNS_STRING, - toString: METHOD_RETURNS_STRING, - valueOf: METHOD_RETURNS_UNKNOWN -}, OBJECT_PROTOTYPE_FALLBACK, true); -var NEW_ARRAY_PROPERTIES = [ - { key: UnknownInteger, kind: "init", property: UNKNOWN_EXPRESSION }, - { key: "length", kind: "init", property: UNKNOWN_LITERAL_NUMBER } -]; -var METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN = [ - new Method({ - callsArgs: [0], - mutatesArgs: false, - mutatesSelfAsArray: "deopt-only", - returns: null, - returnsPrimitive: UNKNOWN_LITERAL_BOOLEAN - }) -]; -var METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER = [ - new Method({ - callsArgs: [0], - mutatesArgs: false, - mutatesSelfAsArray: "deopt-only", - returns: null, - returnsPrimitive: UNKNOWN_LITERAL_NUMBER - }) -]; -var METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: true, - returns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE), - returnsPrimitive: null - }) -]; -var METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: "deopt-only", - returns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE), - returnsPrimitive: null - }) -]; -var METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY = [ - new Method({ - callsArgs: [0], - mutatesArgs: false, - mutatesSelfAsArray: "deopt-only", - returns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE), - returnsPrimitive: null - }) -]; -var METHOD_MUTATES_SELF_AND_ARGS_RETURNS_NUMBER = [ - new Method({ - callsArgs: null, - mutatesArgs: true, - mutatesSelfAsArray: true, - returns: null, - returnsPrimitive: UNKNOWN_LITERAL_NUMBER - }) -]; -var METHOD_MUTATES_SELF_RETURNS_UNKNOWN = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: true, - returns: null, - returnsPrimitive: UNKNOWN_EXPRESSION - }) -]; -var METHOD_DEOPTS_SELF_RETURNS_UNKNOWN = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: "deopt-only", - returns: null, - returnsPrimitive: UNKNOWN_EXPRESSION - }) -]; -var METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN = [ - new Method({ - callsArgs: [0], - mutatesArgs: false, - mutatesSelfAsArray: "deopt-only", - returns: null, - returnsPrimitive: UNKNOWN_EXPRESSION - }) -]; -var METHOD_MUTATES_SELF_RETURNS_SELF = [ - new Method({ - callsArgs: null, - mutatesArgs: false, - mutatesSelfAsArray: true, - returns: "self", - returnsPrimitive: null - }) -]; -var METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF = [ - new Method({ - callsArgs: [0], - mutatesArgs: false, - mutatesSelfAsArray: true, - returns: "self", - returnsPrimitive: null - }) -]; -var ARRAY_PROTOTYPE = new ObjectEntity({ - __proto__: null, - // We assume that accessors have effects as we do not track the accessed value afterwards - at: METHOD_DEOPTS_SELF_RETURNS_UNKNOWN, - concat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY, - copyWithin: METHOD_MUTATES_SELF_RETURNS_SELF, - entries: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY, - every: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN, - fill: METHOD_MUTATES_SELF_RETURNS_SELF, - filter: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY, - find: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, - findIndex: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER, - findLast: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, - findLastIndex: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER, - flat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY, - flatMap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY, - forEach: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, - includes: METHOD_RETURNS_BOOLEAN, - indexOf: METHOD_RETURNS_NUMBER, - join: METHOD_RETURNS_STRING, - keys: METHOD_RETURNS_UNKNOWN, - lastIndexOf: METHOD_RETURNS_NUMBER, - map: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY, - pop: METHOD_MUTATES_SELF_RETURNS_UNKNOWN, - push: METHOD_MUTATES_SELF_AND_ARGS_RETURNS_NUMBER, - reduce: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, - reduceRight: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN, - reverse: METHOD_MUTATES_SELF_RETURNS_SELF, - shift: METHOD_MUTATES_SELF_RETURNS_UNKNOWN, - slice: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY, - some: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN, - sort: METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF, - splice: METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY, - toLocaleString: METHOD_RETURNS_STRING, - toString: METHOD_RETURNS_STRING, - unshift: METHOD_MUTATES_SELF_AND_ARGS_RETURNS_NUMBER, - values: METHOD_DEOPTS_SELF_RETURNS_UNKNOWN -}, OBJECT_PROTOTYPE, true); -var ArrayExpression = class extends NodeBase { - constructor() { - super(...arguments); - this.objectEntity = null; - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizePath(path2) { - this.getObjectEntity().deoptimizePath(path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.getObjectEntity().getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return this.getObjectEntity().hasEffectsOnInteractionAtPath(path2, interaction, context); - } - applyDeoptimizations() { - this.deoptimized = true; - let hasSpread = false; - for (let index = 0; index < this.elements.length; index++) { - const element = this.elements[index]; - if (element && (hasSpread || element instanceof SpreadElement)) { - hasSpread = true; - element.deoptimizePath(UNKNOWN_PATH); - } - } - this.scope.context.requestTreeshakingPass(); - } - getObjectEntity() { - if (this.objectEntity !== null) { - return this.objectEntity; - } - const properties = [ - { key: "length", kind: "init", property: UNKNOWN_LITERAL_NUMBER } - ]; - let hasSpread = false; - for (let index = 0; index < this.elements.length; index++) { - const element = this.elements[index]; - if (hasSpread || element instanceof SpreadElement) { - if (element) { - hasSpread = true; - properties.unshift({ key: UnknownInteger, kind: "init", property: element }); - } - } else if (element) { - properties.push({ key: String(index), kind: "init", property: element }); - } else { - properties.push({ key: String(index), kind: "init", property: UNDEFINED_EXPRESSION }); - } - } - return this.objectEntity = new ObjectEntity(properties, ARRAY_PROTOTYPE); - } -}; -var ArrayPattern = class extends NodeBase { - addExportedVariables(variables, exportNamesByVariable) { - for (const element of this.elements) { - element == null ? void 0 : element.addExportedVariables(variables, exportNamesByVariable); - } - } - declare(kind) { - const variables = []; - for (const element of this.elements) { - if (element !== null) { - variables.push(...element.declare(kind, UNKNOWN_EXPRESSION)); - } - } - return variables; - } - // Patterns can only be deoptimized at the empty path at the moment - deoptimizePath() { - for (const element of this.elements) { - element == null ? void 0 : element.deoptimizePath(EMPTY_PATH); - } - } - // Patterns are only checked at the empty path at the moment - hasEffectsOnInteractionAtPath(_path, interaction, context) { - for (const element of this.elements) { - if (element == null ? void 0 : element.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context)) - return true; - } - return false; - } - markDeclarationReached() { - for (const element of this.elements) { - element == null ? void 0 : element.markDeclarationReached(); - } - } -}; -function is_reference(node, parent) { - if (node.type === "MemberExpression") { - return !node.computed && is_reference(node.object, node); - } - if (node.type === "Identifier") { - if (!parent) return true; - switch (parent.type) { - case "MemberExpression": - return parent.computed || node === parent.object; - case "MethodDefinition": - return parent.computed; - case "PropertyDefinition": - return parent.computed || node === parent.value; - case "Property": - return parent.computed || node === parent.value; - case "ExportSpecifier": - case "ImportSpecifier": - return node === parent.local; - case "LabeledStatement": - case "BreakStatement": - case "ContinueStatement": - return false; - default: - return true; - } - } - return false; -} -var PureFunctionKey = Symbol("PureFunction"); -var getPureFunctions = ({ treeshake }) => { - const pureFunctions = /* @__PURE__ */ Object.create(null); - for (const functionName of treeshake ? treeshake.manualPureFunctions : []) { - let currentFunctions = pureFunctions; - for (const pathSegment of functionName.split(".")) { - currentFunctions = currentFunctions[pathSegment] || (currentFunctions[pathSegment] = /* @__PURE__ */ Object.create(null)); - } - currentFunctions[PureFunctionKey] = true; - } - return pureFunctions; -}; -var doNothing = () => { -}; -var ValueProperties = Symbol("Value Properties"); -var getTruthyLiteralValue = () => UnknownTruthyValue; -var returnFalse = () => false; -var returnTrue = () => true; -var PURE = { - deoptimizeArgumentsOnCall: doNothing, - getLiteralValue: getTruthyLiteralValue, - hasEffectsWhenCalled: returnFalse -}; -var IMPURE = { - deoptimizeArgumentsOnCall: doNothing, - getLiteralValue: getTruthyLiteralValue, - hasEffectsWhenCalled: returnTrue -}; -var PURE_WITH_ARRAY = { - deoptimizeArgumentsOnCall: doNothing, - getLiteralValue: getTruthyLiteralValue, - hasEffectsWhenCalled({ args }) { - return args.length > 1 && !(args[1] instanceof ArrayExpression); - } -}; -var GETTER_ACCESS = { - deoptimizeArgumentsOnCall: doNothing, - getLiteralValue: getTruthyLiteralValue, - hasEffectsWhenCalled({ args }, context) { - const [_thisArgument, firstArgument] = args; - return !(firstArgument instanceof ExpressionEntity) || firstArgument.hasEffectsOnInteractionAtPath(UNKNOWN_PATH, NODE_INTERACTION_UNKNOWN_ACCESS, context); - } -}; -var O = { - __proto__: null, - [ValueProperties]: IMPURE -}; -var PF = { - __proto__: null, - [ValueProperties]: PURE -}; -var PF_NO_GETTER = { - __proto__: null, - [ValueProperties]: GETTER_ACCESS -}; -var MUTATES_ARG_WITHOUT_ACCESSOR = { - __proto__: null, - [ValueProperties]: { - deoptimizeArgumentsOnCall({ args: [, firstArgument] }) { - firstArgument == null ? void 0 : firstArgument.deoptimizePath(UNKNOWN_PATH); - }, - getLiteralValue: getTruthyLiteralValue, - hasEffectsWhenCalled({ args }, context) { - return args.length <= 1 || args[1].hasEffectsOnInteractionAtPath(UNKNOWN_NON_ACCESSOR_PATH, NODE_INTERACTION_UNKNOWN_ASSIGNMENT, context); - } - } -}; -var C = { - __proto__: null, - [ValueProperties]: IMPURE, - prototype: O -}; -var PC = { - __proto__: null, - [ValueProperties]: PURE, - prototype: O -}; -var PC_WITH_ARRAY = { - __proto__: null, - [ValueProperties]: PURE_WITH_ARRAY, - prototype: O -}; -var ARRAY_TYPE = { - __proto__: null, - [ValueProperties]: PURE, - from: O, - of: PF, - prototype: O -}; -var INTL_MEMBER = { - __proto__: null, - [ValueProperties]: PURE, - supportedLocalesOf: PC -}; -var knownGlobals = { - // Placeholders for global objects to avoid shape mutations - global: O, - globalThis: O, - self: O, - window: O, - // Common globals - __proto__: null, - [ValueProperties]: IMPURE, - Array: { - __proto__: null, - [ValueProperties]: IMPURE, - from: O, - isArray: PF, - of: PF, - prototype: O - }, - ArrayBuffer: { - __proto__: null, - [ValueProperties]: PURE, - isView: PF, - prototype: O - }, - Atomics: O, - BigInt: C, - BigInt64Array: C, - BigUint64Array: C, - Boolean: PC, - constructor: C, - DataView: PC, - Date: { - __proto__: null, - [ValueProperties]: PURE, - now: PF, - parse: PF, - prototype: O, - UTC: PF - }, - decodeURI: PF, - decodeURIComponent: PF, - encodeURI: PF, - encodeURIComponent: PF, - Error: PC, - escape: PF, - eval: O, - EvalError: PC, - Float32Array: ARRAY_TYPE, - Float64Array: ARRAY_TYPE, - Function: C, - hasOwnProperty: O, - Infinity: O, - Int16Array: ARRAY_TYPE, - Int32Array: ARRAY_TYPE, - Int8Array: ARRAY_TYPE, - isFinite: PF, - isNaN: PF, - isPrototypeOf: O, - JSON: O, - Map: PC_WITH_ARRAY, - Math: { - __proto__: null, - [ValueProperties]: IMPURE, - abs: PF, - acos: PF, - acosh: PF, - asin: PF, - asinh: PF, - atan: PF, - atan2: PF, - atanh: PF, - cbrt: PF, - ceil: PF, - clz32: PF, - cos: PF, - cosh: PF, - exp: PF, - expm1: PF, - floor: PF, - fround: PF, - hypot: PF, - imul: PF, - log: PF, - log10: PF, - log1p: PF, - log2: PF, - max: PF, - min: PF, - pow: PF, - random: PF, - round: PF, - sign: PF, - sin: PF, - sinh: PF, - sqrt: PF, - tan: PF, - tanh: PF, - trunc: PF - }, - NaN: O, - Number: { - __proto__: null, - [ValueProperties]: PURE, - isFinite: PF, - isInteger: PF, - isNaN: PF, - isSafeInteger: PF, - parseFloat: PF, - parseInt: PF, - prototype: O - }, - Object: { - __proto__: null, - [ValueProperties]: PURE, - create: PF, - // Technically those can throw in certain situations, but we ignore this as - // code that relies on this will hopefully wrap this in a try-catch, which - // deoptimizes everything anyway - defineProperty: MUTATES_ARG_WITHOUT_ACCESSOR, - defineProperties: MUTATES_ARG_WITHOUT_ACCESSOR, - freeze: MUTATES_ARG_WITHOUT_ACCESSOR, - getOwnPropertyDescriptor: PF, - getOwnPropertyDescriptors: PF, - getOwnPropertyNames: PF, - getOwnPropertySymbols: PF, - getPrototypeOf: PF, - hasOwn: PF, - is: PF, - isExtensible: PF, - isFrozen: PF, - isSealed: PF, - keys: PF, - fromEntries: O, - entries: PF_NO_GETTER, - values: PF_NO_GETTER, - prototype: O - }, - parseFloat: PF, - parseInt: PF, - Promise: { - __proto__: null, - [ValueProperties]: IMPURE, - all: O, - allSettled: O, - any: O, - prototype: O, - race: O, - reject: O, - resolve: O - }, - propertyIsEnumerable: O, - Proxy: O, - RangeError: PC, - ReferenceError: PC, - Reflect: O, - RegExp: PC, - Set: PC_WITH_ARRAY, - SharedArrayBuffer: C, - String: { - __proto__: null, - [ValueProperties]: PURE, - fromCharCode: PF, - fromCodePoint: PF, - prototype: O, - raw: PF - }, - Symbol: { - __proto__: null, - [ValueProperties]: PURE, - for: PF, - keyFor: PF, - prototype: O, - toStringTag: { - __proto__: null, - [ValueProperties]: { - deoptimizeArgumentsOnCall: doNothing, - getLiteralValue() { - return SymbolToStringTag; - }, - hasEffectsWhenCalled: returnTrue - } - } - }, - SyntaxError: PC, - toLocaleString: O, - toString: O, - TypeError: PC, - Uint16Array: ARRAY_TYPE, - Uint32Array: ARRAY_TYPE, - Uint8Array: ARRAY_TYPE, - Uint8ClampedArray: ARRAY_TYPE, - // Technically, this is a global, but it needs special handling - // undefined: ?, - unescape: PF, - URIError: PC, - valueOf: O, - WeakMap: PC_WITH_ARRAY, - WeakSet: PC_WITH_ARRAY, - // Additional globals shared by Node and Browser that are not strictly part of the language - clearInterval: C, - clearTimeout: C, - console: { - __proto__: null, - [ValueProperties]: IMPURE, - assert: C, - clear: C, - count: C, - countReset: C, - debug: C, - dir: C, - dirxml: C, - error: C, - exception: C, - group: C, - groupCollapsed: C, - groupEnd: C, - info: C, - log: C, - table: C, - time: C, - timeEnd: C, - timeLog: C, - trace: C, - warn: C - }, - Intl: { - __proto__: null, - [ValueProperties]: IMPURE, - Collator: INTL_MEMBER, - DateTimeFormat: INTL_MEMBER, - DisplayNames: INTL_MEMBER, - ListFormat: INTL_MEMBER, - Locale: INTL_MEMBER, - NumberFormat: INTL_MEMBER, - PluralRules: INTL_MEMBER, - RelativeTimeFormat: INTL_MEMBER, - Segmenter: INTL_MEMBER - }, - setInterval: C, - setTimeout: C, - TextDecoder: C, - TextEncoder: C, - URL: { - __proto__: null, - [ValueProperties]: IMPURE, - prototype: O, - canParse: PF - }, - URLSearchParams: C, - // Browser specific globals - AbortController: C, - AbortSignal: C, - addEventListener: O, - alert: O, - AnalyserNode: C, - Animation: C, - AnimationEvent: C, - applicationCache: O, - ApplicationCache: C, - ApplicationCacheErrorEvent: C, - atob: O, - Attr: C, - Audio: C, - AudioBuffer: C, - AudioBufferSourceNode: C, - AudioContext: C, - AudioDestinationNode: C, - AudioListener: C, - AudioNode: C, - AudioParam: C, - AudioProcessingEvent: C, - AudioScheduledSourceNode: C, - AudioWorkletNode: C, - BarProp: C, - BaseAudioContext: C, - BatteryManager: C, - BeforeUnloadEvent: C, - BiquadFilterNode: C, - Blob: C, - BlobEvent: C, - blur: O, - BroadcastChannel: C, - btoa: O, - ByteLengthQueuingStrategy: C, - Cache: C, - caches: O, - CacheStorage: C, - cancelAnimationFrame: O, - cancelIdleCallback: O, - CanvasCaptureMediaStreamTrack: C, - CanvasGradient: C, - CanvasPattern: C, - CanvasRenderingContext2D: C, - ChannelMergerNode: C, - ChannelSplitterNode: C, - CharacterData: C, - clientInformation: O, - ClipboardEvent: C, - close: O, - closed: O, - CloseEvent: C, - Comment: C, - CompositionEvent: C, - confirm: O, - ConstantSourceNode: C, - ConvolverNode: C, - CountQueuingStrategy: C, - createImageBitmap: O, - Credential: C, - CredentialsContainer: C, - crypto: O, - Crypto: C, - CryptoKey: C, - CSS: C, - CSSConditionRule: C, - CSSFontFaceRule: C, - CSSGroupingRule: C, - CSSImportRule: C, - CSSKeyframeRule: C, - CSSKeyframesRule: C, - CSSMediaRule: C, - CSSNamespaceRule: C, - CSSPageRule: C, - CSSRule: C, - CSSRuleList: C, - CSSStyleDeclaration: C, - CSSStyleRule: C, - CSSStyleSheet: C, - CSSSupportsRule: C, - CustomElementRegistry: C, - customElements: O, - CustomEvent: { - __proto__: null, - [ValueProperties]: { - deoptimizeArgumentsOnCall({ args }) { - var _a; - (_a = args[2]) == null ? void 0 : _a.deoptimizePath(["detail"]); - }, - getLiteralValue: getTruthyLiteralValue, - hasEffectsWhenCalled: returnFalse - }, - prototype: O - }, - DataTransfer: C, - DataTransferItem: C, - DataTransferItemList: C, - defaultstatus: O, - defaultStatus: O, - DelayNode: C, - DeviceMotionEvent: C, - DeviceOrientationEvent: C, - devicePixelRatio: O, - dispatchEvent: O, - document: O, - Document: C, - DocumentFragment: C, - DocumentType: C, - DOMError: C, - DOMException: C, - DOMImplementation: C, - DOMMatrix: C, - DOMMatrixReadOnly: C, - DOMParser: C, - DOMPoint: C, - DOMPointReadOnly: C, - DOMQuad: C, - DOMRect: C, - DOMRectReadOnly: C, - DOMStringList: C, - DOMStringMap: C, - DOMTokenList: C, - DragEvent: C, - DynamicsCompressorNode: C, - Element: C, - ErrorEvent: C, - Event: C, - EventSource: C, - EventTarget: C, - external: O, - fetch: O, - File: C, - FileList: C, - FileReader: C, - find: O, - focus: O, - FocusEvent: C, - FontFace: C, - FontFaceSetLoadEvent: C, - FormData: C, - frames: O, - GainNode: C, - Gamepad: C, - GamepadButton: C, - GamepadEvent: C, - getComputedStyle: O, - getSelection: O, - HashChangeEvent: C, - Headers: C, - history: O, - History: C, - HTMLAllCollection: C, - HTMLAnchorElement: C, - HTMLAreaElement: C, - HTMLAudioElement: C, - HTMLBaseElement: C, - HTMLBodyElement: C, - HTMLBRElement: C, - HTMLButtonElement: C, - HTMLCanvasElement: C, - HTMLCollection: C, - HTMLContentElement: C, - HTMLDataElement: C, - HTMLDataListElement: C, - HTMLDetailsElement: C, - HTMLDialogElement: C, - HTMLDirectoryElement: C, - HTMLDivElement: C, - HTMLDListElement: C, - HTMLDocument: C, - HTMLElement: C, - HTMLEmbedElement: C, - HTMLFieldSetElement: C, - HTMLFontElement: C, - HTMLFormControlsCollection: C, - HTMLFormElement: C, - HTMLFrameElement: C, - HTMLFrameSetElement: C, - HTMLHeadElement: C, - HTMLHeadingElement: C, - HTMLHRElement: C, - HTMLHtmlElement: C, - HTMLIFrameElement: C, - HTMLImageElement: C, - HTMLInputElement: C, - HTMLLabelElement: C, - HTMLLegendElement: C, - HTMLLIElement: C, - HTMLLinkElement: C, - HTMLMapElement: C, - HTMLMarqueeElement: C, - HTMLMediaElement: C, - HTMLMenuElement: C, - HTMLMetaElement: C, - HTMLMeterElement: C, - HTMLModElement: C, - HTMLObjectElement: C, - HTMLOListElement: C, - HTMLOptGroupElement: C, - HTMLOptionElement: C, - HTMLOptionsCollection: C, - HTMLOutputElement: C, - HTMLParagraphElement: C, - HTMLParamElement: C, - HTMLPictureElement: C, - HTMLPreElement: C, - HTMLProgressElement: C, - HTMLQuoteElement: C, - HTMLScriptElement: C, - HTMLSelectElement: C, - HTMLShadowElement: C, - HTMLSlotElement: C, - HTMLSourceElement: C, - HTMLSpanElement: C, - HTMLStyleElement: C, - HTMLTableCaptionElement: C, - HTMLTableCellElement: C, - HTMLTableColElement: C, - HTMLTableElement: C, - HTMLTableRowElement: C, - HTMLTableSectionElement: C, - HTMLTemplateElement: C, - HTMLTextAreaElement: C, - HTMLTimeElement: C, - HTMLTitleElement: C, - HTMLTrackElement: C, - HTMLUListElement: C, - HTMLUnknownElement: C, - HTMLVideoElement: C, - IDBCursor: C, - IDBCursorWithValue: C, - IDBDatabase: C, - IDBFactory: C, - IDBIndex: C, - IDBKeyRange: C, - IDBObjectStore: C, - IDBOpenDBRequest: C, - IDBRequest: C, - IDBTransaction: C, - IDBVersionChangeEvent: C, - IdleDeadline: C, - IIRFilterNode: C, - Image: C, - ImageBitmap: C, - ImageBitmapRenderingContext: C, - ImageCapture: C, - ImageData: C, - indexedDB: O, - innerHeight: O, - innerWidth: O, - InputEvent: C, - IntersectionObserver: C, - IntersectionObserverEntry: C, - isSecureContext: O, - KeyboardEvent: C, - KeyframeEffect: C, - length: O, - localStorage: O, - location: O, - Location: C, - locationbar: O, - matchMedia: O, - MediaDeviceInfo: C, - MediaDevices: C, - MediaElementAudioSourceNode: C, - MediaEncryptedEvent: C, - MediaError: C, - MediaKeyMessageEvent: C, - MediaKeySession: C, - MediaKeyStatusMap: C, - MediaKeySystemAccess: C, - MediaList: C, - MediaQueryList: C, - MediaQueryListEvent: C, - MediaRecorder: C, - MediaSettingsRange: C, - MediaSource: C, - MediaStream: C, - MediaStreamAudioDestinationNode: C, - MediaStreamAudioSourceNode: C, - MediaStreamEvent: C, - MediaStreamTrack: C, - MediaStreamTrackEvent: C, - menubar: O, - MessageChannel: C, - MessageEvent: C, - MessagePort: C, - MIDIAccess: C, - MIDIConnectionEvent: C, - MIDIInput: C, - MIDIInputMap: C, - MIDIMessageEvent: C, - MIDIOutput: C, - MIDIOutputMap: C, - MIDIPort: C, - MimeType: C, - MimeTypeArray: C, - MouseEvent: C, - moveBy: O, - moveTo: O, - MutationEvent: C, - MutationObserver: C, - MutationRecord: C, - name: O, - NamedNodeMap: C, - NavigationPreloadManager: C, - navigator: O, - Navigator: C, - NetworkInformation: C, - Node: C, - NodeFilter: O, - NodeIterator: C, - NodeList: C, - Notification: C, - OfflineAudioCompletionEvent: C, - OfflineAudioContext: C, - offscreenBuffering: O, - OffscreenCanvas: C, - open: O, - openDatabase: O, - Option: C, - origin: O, - OscillatorNode: C, - outerHeight: O, - outerWidth: O, - PageTransitionEvent: C, - pageXOffset: O, - pageYOffset: O, - PannerNode: C, - parent: O, - Path2D: C, - PaymentAddress: C, - PaymentRequest: C, - PaymentRequestUpdateEvent: C, - PaymentResponse: C, - performance: O, - Performance: C, - PerformanceEntry: C, - PerformanceLongTaskTiming: C, - PerformanceMark: C, - PerformanceMeasure: C, - PerformanceNavigation: C, - PerformanceNavigationTiming: C, - PerformanceObserver: C, - PerformanceObserverEntryList: C, - PerformancePaintTiming: C, - PerformanceResourceTiming: C, - PerformanceTiming: C, - PeriodicWave: C, - Permissions: C, - PermissionStatus: C, - personalbar: O, - PhotoCapabilities: C, - Plugin: C, - PluginArray: C, - PointerEvent: C, - PopStateEvent: C, - postMessage: O, - Presentation: C, - PresentationAvailability: C, - PresentationConnection: C, - PresentationConnectionAvailableEvent: C, - PresentationConnectionCloseEvent: C, - PresentationConnectionList: C, - PresentationReceiver: C, - PresentationRequest: C, - print: O, - ProcessingInstruction: C, - ProgressEvent: C, - PromiseRejectionEvent: C, - prompt: O, - PushManager: C, - PushSubscription: C, - PushSubscriptionOptions: C, - queueMicrotask: O, - RadioNodeList: C, - Range: C, - ReadableStream: C, - RemotePlayback: C, - removeEventListener: O, - Request: C, - requestAnimationFrame: O, - requestIdleCallback: O, - resizeBy: O, - ResizeObserver: C, - ResizeObserverEntry: C, - resizeTo: O, - Response: C, - RTCCertificate: C, - RTCDataChannel: C, - RTCDataChannelEvent: C, - RTCDtlsTransport: C, - RTCIceCandidate: C, - RTCIceTransport: C, - RTCPeerConnection: C, - RTCPeerConnectionIceEvent: C, - RTCRtpReceiver: C, - RTCRtpSender: C, - RTCSctpTransport: C, - RTCSessionDescription: C, - RTCStatsReport: C, - RTCTrackEvent: C, - screen: O, - Screen: C, - screenLeft: O, - ScreenOrientation: C, - screenTop: O, - screenX: O, - screenY: O, - ScriptProcessorNode: C, - scroll: O, - scrollbars: O, - scrollBy: O, - scrollTo: O, - scrollX: O, - scrollY: O, - SecurityPolicyViolationEvent: C, - Selection: C, - ServiceWorker: C, - ServiceWorkerContainer: C, - ServiceWorkerRegistration: C, - sessionStorage: O, - ShadowRoot: C, - SharedWorker: C, - SourceBuffer: C, - SourceBufferList: C, - speechSynthesis: O, - SpeechSynthesisEvent: C, - SpeechSynthesisUtterance: C, - StaticRange: C, - status: O, - statusbar: O, - StereoPannerNode: C, - stop: O, - Storage: C, - StorageEvent: C, - StorageManager: C, - styleMedia: O, - StyleSheet: C, - StyleSheetList: C, - SubtleCrypto: C, - SVGAElement: C, - SVGAngle: C, - SVGAnimatedAngle: C, - SVGAnimatedBoolean: C, - SVGAnimatedEnumeration: C, - SVGAnimatedInteger: C, - SVGAnimatedLength: C, - SVGAnimatedLengthList: C, - SVGAnimatedNumber: C, - SVGAnimatedNumberList: C, - SVGAnimatedPreserveAspectRatio: C, - SVGAnimatedRect: C, - SVGAnimatedString: C, - SVGAnimatedTransformList: C, - SVGAnimateElement: C, - SVGAnimateMotionElement: C, - SVGAnimateTransformElement: C, - SVGAnimationElement: C, - SVGCircleElement: C, - SVGClipPathElement: C, - SVGComponentTransferFunctionElement: C, - SVGDefsElement: C, - SVGDescElement: C, - SVGDiscardElement: C, - SVGElement: C, - SVGEllipseElement: C, - SVGFEBlendElement: C, - SVGFEColorMatrixElement: C, - SVGFEComponentTransferElement: C, - SVGFECompositeElement: C, - SVGFEConvolveMatrixElement: C, - SVGFEDiffuseLightingElement: C, - SVGFEDisplacementMapElement: C, - SVGFEDistantLightElement: C, - SVGFEDropShadowElement: C, - SVGFEFloodElement: C, - SVGFEFuncAElement: C, - SVGFEFuncBElement: C, - SVGFEFuncGElement: C, - SVGFEFuncRElement: C, - SVGFEGaussianBlurElement: C, - SVGFEImageElement: C, - SVGFEMergeElement: C, - SVGFEMergeNodeElement: C, - SVGFEMorphologyElement: C, - SVGFEOffsetElement: C, - SVGFEPointLightElement: C, - SVGFESpecularLightingElement: C, - SVGFESpotLightElement: C, - SVGFETileElement: C, - SVGFETurbulenceElement: C, - SVGFilterElement: C, - SVGForeignObjectElement: C, - SVGGElement: C, - SVGGeometryElement: C, - SVGGradientElement: C, - SVGGraphicsElement: C, - SVGImageElement: C, - SVGLength: C, - SVGLengthList: C, - SVGLinearGradientElement: C, - SVGLineElement: C, - SVGMarkerElement: C, - SVGMaskElement: C, - SVGMatrix: C, - SVGMetadataElement: C, - SVGMPathElement: C, - SVGNumber: C, - SVGNumberList: C, - SVGPathElement: C, - SVGPatternElement: C, - SVGPoint: C, - SVGPointList: C, - SVGPolygonElement: C, - SVGPolylineElement: C, - SVGPreserveAspectRatio: C, - SVGRadialGradientElement: C, - SVGRect: C, - SVGRectElement: C, - SVGScriptElement: C, - SVGSetElement: C, - SVGStopElement: C, - SVGStringList: C, - SVGStyleElement: C, - SVGSVGElement: C, - SVGSwitchElement: C, - SVGSymbolElement: C, - SVGTextContentElement: C, - SVGTextElement: C, - SVGTextPathElement: C, - SVGTextPositioningElement: C, - SVGTitleElement: C, - SVGTransform: C, - SVGTransformList: C, - SVGTSpanElement: C, - SVGUnitTypes: C, - SVGUseElement: C, - SVGViewElement: C, - TaskAttributionTiming: C, - Text: C, - TextEvent: C, - TextMetrics: C, - TextTrack: C, - TextTrackCue: C, - TextTrackCueList: C, - TextTrackList: C, - TimeRanges: C, - toolbar: O, - top: O, - Touch: C, - TouchEvent: C, - TouchList: C, - TrackEvent: C, - TransitionEvent: C, - TreeWalker: C, - UIEvent: C, - ValidityState: C, - visualViewport: O, - VisualViewport: C, - VTTCue: C, - WaveShaperNode: C, - WebAssembly: O, - WebGL2RenderingContext: C, - WebGLActiveInfo: C, - WebGLBuffer: C, - WebGLContextEvent: C, - WebGLFramebuffer: C, - WebGLProgram: C, - WebGLQuery: C, - WebGLRenderbuffer: C, - WebGLRenderingContext: C, - WebGLSampler: C, - WebGLShader: C, - WebGLShaderPrecisionFormat: C, - WebGLSync: C, - WebGLTexture: C, - WebGLTransformFeedback: C, - WebGLUniformLocation: C, - WebGLVertexArrayObject: C, - WebSocket: C, - WheelEvent: C, - Window: C, - Worker: C, - WritableStream: C, - XMLDocument: C, - XMLHttpRequest: C, - XMLHttpRequestEventTarget: C, - XMLHttpRequestUpload: C, - XMLSerializer: C, - XPathEvaluator: C, - XPathExpression: C, - XPathResult: C, - XSLTProcessor: C -}; -for (const global of ["window", "global", "self", "globalThis"]) { - knownGlobals[global] = knownGlobals; -} -function getGlobalAtPath(path2) { - let currentGlobal = knownGlobals; - for (const pathSegment of path2) { - if (typeof pathSegment !== "string") { - return null; - } - currentGlobal = currentGlobal[pathSegment]; - if (!currentGlobal) { - return null; - } - } - return currentGlobal[ValueProperties]; -} -var GlobalVariable = class extends Variable { - constructor(name) { - super(name); - this.markReassigned(); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - switch (interaction.type) { - case INTERACTION_ACCESSED: - case INTERACTION_ASSIGNED: { - if (!getGlobalAtPath([this.name, ...path2].slice(0, -1))) { - super.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - return; - } - case INTERACTION_CALLED: { - const globalAtPath = getGlobalAtPath([this.name, ...path2]); - if (globalAtPath) { - globalAtPath.deoptimizeArgumentsOnCall(interaction); - } else { - super.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - return; - } - } - } - getLiteralValueAtPath(path2, _recursionTracker, _origin) { - const globalAtPath = getGlobalAtPath([this.name, ...path2]); - return globalAtPath ? globalAtPath.getLiteralValue() : UnknownValue; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - switch (interaction.type) { - case INTERACTION_ACCESSED: { - if (path2.length === 0) { - return this.name !== "undefined" && !getGlobalAtPath([this.name]); - } - return !getGlobalAtPath([this.name, ...path2].slice(0, -1)); - } - case INTERACTION_ASSIGNED: { - return true; - } - case INTERACTION_CALLED: { - const globalAtPath = getGlobalAtPath([this.name, ...path2]); - return !globalAtPath || globalAtPath.hasEffectsWhenCalled(interaction, context); - } - } - } -}; -var LocalVariable = class extends Variable { - constructor(name, declarator, init2, context, kind) { - super(name); - this.init = init2; - this.calledFromTryStatement = false; - this.additionalInitializers = null; - this.expressionsToBeDeoptimized = []; - this.declarations = declarator ? [declarator] : []; - this.deoptimizationTracker = context.deoptimizationTracker; - this.module = context.module; - this.kind = kind; - } - addDeclaration(identifier2, init2) { - this.declarations.push(identifier2); - this.markInitializersForDeoptimization().push(init2); - } - consolidateInitializers() { - if (this.additionalInitializers) { - for (const initializer of this.additionalInitializers) { - initializer.deoptimizePath(UNKNOWN_PATH); - } - this.additionalInitializers = null; - } - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - if (this.isReassigned) { - deoptimizeInteraction(interaction); - return; - } - recursionTracker.withTrackedEntityAtPath(path2, this.init, () => this.init.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker), void 0); - } - deoptimizePath(path2) { - if (this.isReassigned || this.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path2, this)) { - return; - } - if (path2.length === 0) { - this.markReassigned(); - const expressionsToBeDeoptimized = this.expressionsToBeDeoptimized; - this.expressionsToBeDeoptimized = EMPTY_ARRAY; - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizeCache(); - } - this.init.deoptimizePath(UNKNOWN_PATH); - } else { - this.init.deoptimizePath(path2); - } - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - if (this.isReassigned) { - return UnknownValue; - } - return recursionTracker.withTrackedEntityAtPath(path2, this.init, () => { - this.expressionsToBeDeoptimized.push(origin); - return this.init.getLiteralValueAtPath(path2, recursionTracker, origin); - }, UnknownValue); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - if (this.isReassigned) { - return UNKNOWN_RETURN_EXPRESSION; - } - return recursionTracker.withTrackedEntityAtPath(path2, this.init, () => { - this.expressionsToBeDeoptimized.push(origin); - return this.init.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - }, UNKNOWN_RETURN_EXPRESSION); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - switch (interaction.type) { - case INTERACTION_ACCESSED: { - if (this.isReassigned) - return true; - return !context.accessed.trackEntityAtPathAndGetIfTracked(path2, this) && this.init.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - case INTERACTION_ASSIGNED: { - if (this.included) - return true; - if (path2.length === 0) - return false; - if (this.isReassigned) - return true; - return !context.assigned.trackEntityAtPathAndGetIfTracked(path2, this) && this.init.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - case INTERACTION_CALLED: { - if (this.isReassigned) - return true; - return !(interaction.withNew ? context.instantiated : context.called).trackEntityAtPathAndGetIfTracked(path2, interaction.args, this) && this.init.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - } - } - include() { - if (!this.included) { - super.include(); - for (const declaration of this.declarations) { - if (!declaration.included) - declaration.include(createInclusionContext(), false); - let node = declaration.parent; - while (!node.included) { - node.included = true; - if (node.type === Program) - break; - node = node.parent; - } - } - } - } - includeCallArguments(context, parameters) { - if (this.isReassigned || context.includedCallArguments.has(this.init)) { - for (const argument of parameters) { - argument.include(context, false); - } - } else { - context.includedCallArguments.add(this.init); - this.init.includeCallArguments(context, parameters); - context.includedCallArguments.delete(this.init); - } - } - markCalledFromTryStatement() { - this.calledFromTryStatement = true; - } - markInitializersForDeoptimization() { - if (this.additionalInitializers === null) { - this.additionalInitializers = [this.init]; - this.init = UNKNOWN_EXPRESSION; - this.markReassigned(); - } - return this.additionalInitializers; - } -}; -var tdzVariableKinds = /* @__PURE__ */ new Set(["class", "const", "let", "var", "using", "await using"]); -var Identifier2 = class extends NodeBase { - constructor() { - super(...arguments); - this.variable = null; - this.isReferenceVariable = false; - } - get isTDZAccess() { - if (!isFlagSet( - this.flags, - 4 - /* Flag.tdzAccessDefined */ - )) { - return null; - } - return isFlagSet( - this.flags, - 8 - /* Flag.tdzAccess */ - ); - } - set isTDZAccess(value) { - this.flags = setFlag(this.flags, 4, true); - this.flags = setFlag(this.flags, 8, value); - } - addExportedVariables(variables, exportNamesByVariable) { - if (exportNamesByVariable.has(this.variable)) { - variables.push(this.variable); - } - } - bind() { - if (!this.variable && is_reference(this, this.parent)) { - this.variable = this.scope.findVariable(this.name); - this.variable.addReference(this); - this.isReferenceVariable = true; - } - } - declare(kind, init2) { - let variable; - const { treeshake } = this.scope.context.options; - switch (kind) { - case "var": { - variable = this.scope.addDeclaration(this, this.scope.context, init2, kind); - if (treeshake && treeshake.correctVarValueBeforeDeclaration) { - variable.markInitializersForDeoptimization(); - } - break; - } - case "function": { - variable = this.scope.addDeclaration(this, this.scope.context, init2, kind); - break; - } - case "let": - case "const": - case "using": - case "await using": - case "class": { - variable = this.scope.addDeclaration(this, this.scope.context, init2, kind); - break; - } - case "parameter": { - variable = this.scope.addParameterDeclaration(this); - break; - } - default: { - throw new Error(`Internal Error: Unexpected identifier kind ${kind}.`); - } - } - return [this.variable = variable]; - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizePath(path2) { - var _a; - if (path2.length === 0 && !this.scope.contains(this.name)) { - this.disallowImportReassignment(); - } - (_a = this.variable) == null ? void 0 : _a.deoptimizePath(path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.getVariableRespectingTDZ().getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - const [expression, isPure] = this.getVariableRespectingTDZ().getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - return [expression, isPure || this.isPureFunction(path2)]; - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - if (this.isPossibleTDZ() && this.variable.kind !== "var") { - return true; - } - return this.scope.context.options.treeshake.unknownGlobalSideEffects && this.variable instanceof GlobalVariable && !this.isPureFunction(EMPTY_PATH) && this.variable.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_ACCESS, context); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - switch (interaction.type) { - case INTERACTION_ACCESSED: { - return this.variable !== null && !this.isPureFunction(path2) && this.getVariableRespectingTDZ().hasEffectsOnInteractionAtPath(path2, interaction, context); - } - case INTERACTION_ASSIGNED: { - return (path2.length > 0 ? this.getVariableRespectingTDZ() : this.variable).hasEffectsOnInteractionAtPath(path2, interaction, context); - } - case INTERACTION_CALLED: { - return !this.isPureFunction(path2) && this.getVariableRespectingTDZ().hasEffectsOnInteractionAtPath(path2, interaction, context); - } - } - } - include() { - if (!this.deoptimized) - this.applyDeoptimizations(); - if (!this.included) { - this.included = true; - if (this.variable !== null) { - this.scope.context.includeVariableInModule(this.variable); - } - } - } - includeCallArguments(context, parameters) { - this.variable.includeCallArguments(context, parameters); - } - isPossibleTDZ() { - const cachedTdzAccess = this.isTDZAccess; - if (cachedTdzAccess !== null) - return cachedTdzAccess; - if (!(this.variable instanceof LocalVariable && this.variable.kind && tdzVariableKinds.has(this.variable.kind) && // we ignore possible TDZs due to circular module dependencies as - // otherwise we get many false positives - this.variable.module === this.scope.context.module)) { - return this.isTDZAccess = false; - } - let decl_id; - if (this.variable.declarations && this.variable.declarations.length === 1 && (decl_id = this.variable.declarations[0]) && this.start < decl_id.start && closestParentFunctionOrProgram(this) === closestParentFunctionOrProgram(decl_id)) { - return this.isTDZAccess = true; - } - if (!this.variable.initReached && this.scope.context.module.isExecuted) { - return this.isTDZAccess = true; - } - return this.isTDZAccess = false; - } - markDeclarationReached() { - this.variable.initReached = true; - } - render(code, { snippets: { getPropertyAccess }, useOriginalName }, { renderedParentType, isCalleeOfRenderedParent, isShorthandProperty } = BLANK) { - if (this.variable) { - const name = this.variable.getName(getPropertyAccess, useOriginalName); - if (name !== this.name) { - code.overwrite(this.start, this.end, name, { - contentOnly: true, - storeName: true - }); - if (isShorthandProperty) { - code.prependRight(this.start, `${this.name}: `); - } - } - if (name === "eval" && renderedParentType === CallExpression && isCalleeOfRenderedParent) { - code.appendRight(this.start, "0, "); - } - } - } - disallowImportReassignment() { - return this.scope.context.error(logIllegalImportReassignment(this.name, this.scope.context.module.id), this.start); - } - applyDeoptimizations() { - this.deoptimized = true; - if (this.variable instanceof LocalVariable) { - this.variable.consolidateInitializers(); - this.scope.context.requestTreeshakingPass(); - } - if (this.isReferenceVariable) { - this.variable.addUsedPlace(this); - this.scope.context.requestTreeshakingPass(); - } - } - getVariableRespectingTDZ() { - if (this.isPossibleTDZ()) { - return UNKNOWN_EXPRESSION; - } - return this.variable; - } - isPureFunction(path2) { - let currentPureFunction = this.scope.context.manualPureFunctions[this.name]; - for (const segment of path2) { - if (currentPureFunction) { - if (currentPureFunction[PureFunctionKey]) { - return true; - } - currentPureFunction = currentPureFunction[segment]; - } else { - return false; - } - } - return currentPureFunction == null ? void 0 : currentPureFunction[PureFunctionKey]; - } -}; -function closestParentFunctionOrProgram(node) { - while (node && !/^Program|Function/.test(node.type)) { - node = node.parent; - } - return node; -} -var MAX_TRACKED_INTERACTIONS = 20; -var NO_INTERACTIONS = EMPTY_ARRAY; -var UNKNOWN_DEOPTIMIZED_FIELD = /* @__PURE__ */ new Set([UnknownKey]); -var EMPTY_PATH_TRACKER = new PathTracker(); -var UNKNOWN_DEOPTIMIZED_ENTITY = /* @__PURE__ */ new Set([UNKNOWN_EXPRESSION]); -var ParameterVariable = class extends LocalVariable { - constructor(name, declarator, context) { - super(name, declarator, UNKNOWN_EXPRESSION, context, "parameter"); - this.deoptimizationInteractions = []; - this.deoptimizations = new PathTracker(); - this.deoptimizedFields = /* @__PURE__ */ new Set(); - this.entitiesToBeDeoptimized = /* @__PURE__ */ new Set(); - this.expressionsUseTheKnownValue = []; - this.knownValue = null; - this.knownValueLiteral = UnknownValue; - this.frozenValue = null; - } - addEntityToBeDeoptimized(entity) { - if (entity === UNKNOWN_EXPRESSION) { - if (!this.entitiesToBeDeoptimized.has(UNKNOWN_EXPRESSION)) { - this.entitiesToBeDeoptimized.add(UNKNOWN_EXPRESSION); - for (const { interaction } of this.deoptimizationInteractions) { - deoptimizeInteraction(interaction); - } - this.deoptimizationInteractions = NO_INTERACTIONS; - } - } else if (this.deoptimizedFields.has(UnknownKey)) { - entity.deoptimizePath(UNKNOWN_PATH); - } else if (!this.entitiesToBeDeoptimized.has(entity)) { - this.entitiesToBeDeoptimized.add(entity); - for (const field of this.deoptimizedFields) { - entity.deoptimizePath([field]); - } - for (const { interaction, path: path2 } of this.deoptimizationInteractions) { - entity.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, SHARED_RECURSION_TRACKER); - } - } - } - markReassigned() { - if (this.isReassigned) { - return; - } - super.markReassigned(); - for (const expression of this.expressionsUseTheKnownValue) { - expression.deoptimizeCache(); - } - this.expressionsUseTheKnownValue = EMPTY_ARRAY; - } - deoptimizeCache() { - this.markReassigned(); - } - /** - * Update the known value of the parameter variable. - * Must be called for every function call, so it can track all the arguments, - * and deoptimizeCache itself to mark reassigned if the argument is changed. - * @param argument The argument of the function call - */ - updateKnownValue(argument) { - if (this.isReassigned) { - return; - } - if (this.knownValue === null) { - this.knownValue = argument; - this.knownValueLiteral = argument.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - return; - } - if (this.knownValue === argument || this.knownValue instanceof Identifier2 && argument instanceof Identifier2 && this.knownValue.variable === argument.variable) { - return; - } - const oldValue = this.knownValueLiteral; - if (typeof oldValue === "symbol") { - this.markReassigned(); - return; - } - const newValue = argument.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - if (newValue !== oldValue) { - this.markReassigned(); - } - } - /** - * This function freezes the known value of the parameter variable, - * so the optimization starts with a certain ExpressionEntity. - * The optimization can be undone by calling `markReassigned`. - * @returns the frozen value - */ - getKnownValue() { - if (this.frozenValue === null) { - this.frozenValue = this.knownValue || UNKNOWN_EXPRESSION; - } - return this.frozenValue; - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - if (this.isReassigned) { - return UnknownValue; - } - const knownValue = this.getKnownValue(); - this.expressionsUseTheKnownValue.push(origin); - return recursionTracker.withTrackedEntityAtPath(path2, knownValue, () => knownValue.getLiteralValueAtPath(path2, recursionTracker, origin), UnknownValue); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (this.isReassigned || interaction.type === INTERACTION_ASSIGNED) { - return super.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - const knownValue = this.getKnownValue(); - return knownValue.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2) { - if (path2.length >= 2 || this.entitiesToBeDeoptimized.has(UNKNOWN_EXPRESSION) || this.deoptimizationInteractions.length >= MAX_TRACKED_INTERACTIONS || path2.length === 1 && (this.deoptimizedFields.has(UnknownKey) || interaction.type === INTERACTION_CALLED && this.deoptimizedFields.has(path2[0]))) { - deoptimizeInteraction(interaction); - return; - } - if (!this.deoptimizations.trackEntityAtPathAndGetIfTracked(path2, interaction.args)) { - for (const entity of this.entitiesToBeDeoptimized) { - entity.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, SHARED_RECURSION_TRACKER); - } - if (!this.entitiesToBeDeoptimized.has(UNKNOWN_EXPRESSION)) { - this.deoptimizationInteractions.push({ - interaction, - path: path2 - }); - } - } - } - deoptimizePath(path2) { - if (path2.length === 0) { - this.markReassigned(); - return; - } - if (this.deoptimizedFields.has(UnknownKey)) { - return; - } - const key = path2[0]; - if (this.deoptimizedFields.has(key)) { - return; - } - this.deoptimizedFields.add(key); - for (const entity of this.entitiesToBeDeoptimized) { - entity.deoptimizePath([key]); - } - if (key === UnknownKey) { - this.deoptimizationInteractions = NO_INTERACTIONS; - this.deoptimizations = EMPTY_PATH_TRACKER; - this.deoptimizedFields = UNKNOWN_DEOPTIMIZED_FIELD; - this.entitiesToBeDeoptimized = UNKNOWN_DEOPTIMIZED_ENTITY; - } - } - getReturnExpressionWhenCalledAtPath(path2) { - if (path2.length === 0) { - this.deoptimizePath(UNKNOWN_PATH); - } else if (!this.deoptimizedFields.has(path2[0])) { - this.deoptimizePath([path2[0]]); - } - return UNKNOWN_RETURN_EXPRESSION; - } -}; -var chars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$"; -var base = 64; -function toBase64(value) { - let outString = ""; - do { - const currentDigit = value % base; - value = value / base | 0; - outString = chars[currentDigit] + outString; - } while (value !== 0); - return outString; -} -function getSafeName(baseName, usedNames, forbiddenNames) { - let safeName = baseName; - let count = 1; - while (usedNames.has(safeName) || RESERVED_NAMES.has(safeName) || (forbiddenNames == null ? void 0 : forbiddenNames.has(safeName))) { - safeName = `${baseName}$${toBase64(count++)}`; - } - usedNames.add(safeName); - return safeName; -} -var Scope = class { - constructor() { - this.children = []; - this.variables = /* @__PURE__ */ new Map(); - } - /* - Redeclaration rules: - - var can redeclare var - - in function scopes, function and var can redeclare function and var - - var is hoisted across scopes, function remains in the scope it is declared - - var and function can redeclare function parameters, but parameters cannot redeclare parameters - - function cannot redeclare catch scope parameters - - var can redeclare catch scope parameters in a way - - if the parameter is an identifier and not a pattern - - then the variable is still declared in the hoisted outer scope, but the initializer is assigned to the parameter - - const, let, class, and function except in the cases above cannot redeclare anything - */ - addDeclaration(identifier2, context, init2, kind) { - var _a; - const name = identifier2.name; - const existingVariable = ((_a = this.hoistedVariables) == null ? void 0 : _a.get(name)) || this.variables.get(name); - if (existingVariable) { - const existingKind = existingVariable.kind; - if (kind === "var" && existingKind === "var") { - existingVariable.addDeclaration(identifier2, init2); - return existingVariable; - } - context.error(logRedeclarationError(name), identifier2.start); - } - const newVariable = new LocalVariable(identifier2.name, identifier2, init2, context, kind); - this.variables.set(name, newVariable); - return newVariable; - } - addHoistedVariable(name, variable) { - (this.hoistedVariables || (this.hoistedVariables = /* @__PURE__ */ new Map())).set(name, variable); - } - contains(name) { - return this.variables.has(name); - } - findVariable(_name) { - throw new Error("Internal Error: findVariable needs to be implemented by a subclass"); - } -}; -var ChildScope = class _ChildScope extends Scope { - constructor(parent, context) { - super(); - this.parent = parent; - this.context = context; - this.accessedOutsideVariables = /* @__PURE__ */ new Map(); - parent.children.push(this); - } - addAccessedDynamicImport(importExpression2) { - (this.accessedDynamicImports || (this.accessedDynamicImports = /* @__PURE__ */ new Set())).add(importExpression2); - if (this.parent instanceof _ChildScope) { - this.parent.addAccessedDynamicImport(importExpression2); - } - } - addAccessedGlobals(globals, accessedGlobalsByScope) { - const accessedGlobals = accessedGlobalsByScope.get(this) || /* @__PURE__ */ new Set(); - for (const name of globals) { - accessedGlobals.add(name); - } - accessedGlobalsByScope.set(this, accessedGlobals); - if (this.parent instanceof _ChildScope) { - this.parent.addAccessedGlobals(globals, accessedGlobalsByScope); - } - } - addNamespaceMemberAccess(name, variable) { - this.accessedOutsideVariables.set(name, variable); - this.parent.addNamespaceMemberAccess(name, variable); - } - addReturnExpression(expression) { - this.parent instanceof _ChildScope && this.parent.addReturnExpression(expression); - } - addUsedOutsideNames(usedNames, format, exportNamesByVariable, accessedGlobalsByScope) { - for (const variable of this.accessedOutsideVariables.values()) { - if (variable.included) { - usedNames.add(variable.getBaseVariableName()); - if (format === "system" && exportNamesByVariable.has(variable)) { - usedNames.add("exports"); - } - } - } - const accessedGlobals = accessedGlobalsByScope.get(this); - if (accessedGlobals) { - for (const name of accessedGlobals) { - usedNames.add(name); - } - } - } - contains(name) { - return this.variables.has(name) || this.parent.contains(name); - } - deconflict(format, exportNamesByVariable, accessedGlobalsByScope) { - const usedNames = /* @__PURE__ */ new Set(); - this.addUsedOutsideNames(usedNames, format, exportNamesByVariable, accessedGlobalsByScope); - if (this.accessedDynamicImports) { - for (const importExpression2 of this.accessedDynamicImports) { - if (importExpression2.inlineNamespace) { - usedNames.add(importExpression2.inlineNamespace.getBaseVariableName()); - } - } - } - for (const [name, variable] of this.variables) { - if (variable.included || variable.alwaysRendered) { - variable.setRenderNames(null, getSafeName(name, usedNames, variable.forbiddenNames)); - } - } - for (const scope of this.children) { - scope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope); - } - } - findLexicalBoundary() { - return this.parent.findLexicalBoundary(); - } - findVariable(name) { - const knownVariable = this.variables.get(name) || this.accessedOutsideVariables.get(name); - if (knownVariable) { - return knownVariable; - } - const variable = this.parent.findVariable(name); - this.accessedOutsideVariables.set(name, variable); - return variable; - } -}; -var CatchBodyScope = class extends ChildScope { - constructor(parent) { - super(parent, parent.context); - this.parent = parent; - } - addDeclaration(identifier2, context, init2, kind) { - var _a; - if (kind === "var") { - const name = identifier2.name; - const existingVariable = ((_a = this.hoistedVariables) == null ? void 0 : _a.get(name)) || this.variables.get(name); - if (existingVariable) { - const existingKind = existingVariable.kind; - if (existingKind === "parameter" && // If this is a destructured parameter, it is forbidden to redeclare - existingVariable.declarations[0].parent.type === CatchClause) { - const declaredVariable2 = this.parent.parent.addDeclaration(identifier2, context, UNDEFINED_EXPRESSION, kind); - existingVariable.renderLikeHoisted(declaredVariable2); - this.addHoistedVariable(name, declaredVariable2); - return declaredVariable2; - } - if (existingKind === "var") { - existingVariable.addDeclaration(identifier2, init2); - return existingVariable; - } - return context.error(logRedeclarationError(name), identifier2.start); - } - const declaredVariable = this.parent.parent.addDeclaration(identifier2, context, init2, kind); - declaredVariable.markInitializersForDeoptimization(); - this.addHoistedVariable(name, declaredVariable); - return declaredVariable; - } - return super.addDeclaration(identifier2, context, init2, kind); - } -}; -var FunctionBodyScope = class extends ChildScope { - constructor(parent) { - super(parent, parent.context); - } - // There is stuff that is only allowed in function scopes, i.e. functions can - // be redeclared, functions and var can redeclare each other - addDeclaration(identifier2, context, init2, kind) { - var _a; - const name = identifier2.name; - const existingVariable = ((_a = this.hoistedVariables) == null ? void 0 : _a.get(name)) || this.variables.get(name); - if (existingVariable) { - const existingKind = existingVariable.kind; - if ((kind === "var" || kind === "function") && (existingKind === "var" || existingKind === "function" || existingKind === "parameter")) { - existingVariable.addDeclaration(identifier2, init2); - return existingVariable; - } - context.error(logRedeclarationError(name), identifier2.start); - } - const newVariable = new LocalVariable(identifier2.name, identifier2, init2, context, kind); - this.variables.set(name, newVariable); - return newVariable; - } -}; -var ParameterScope = class extends ChildScope { - constructor(parent, isCatchScope) { - super(parent, parent.context); - this.parameters = []; - this.hasRest = false; - this.bodyScope = isCatchScope ? new CatchBodyScope(this) : new FunctionBodyScope(this); - } - /** - * Adds a parameter to this scope. Parameters must be added in the correct - * order, i.e. from left to right. - */ - addParameterDeclaration(identifier2) { - const { name, start } = identifier2; - const existingParameter = this.variables.get(name); - if (existingParameter) { - return this.context.error(logDuplicateArgumentNameError(name), start); - } - const variable = new ParameterVariable(name, identifier2, this.context); - this.variables.set(name, variable); - this.bodyScope.addHoistedVariable(name, variable); - return variable; - } - addParameterVariables(parameters, hasRest) { - this.parameters = parameters; - for (const parameterList of parameters) { - for (const parameter of parameterList) { - parameter.alwaysRendered = true; - } - } - this.hasRest = hasRest; - } - includeCallArguments(context, parameters) { - let calledFromTryStatement = false; - let argumentIncluded = false; - const restParameter = this.hasRest && this.parameters[this.parameters.length - 1]; - for (const checkedArgument of parameters) { - if (checkedArgument instanceof SpreadElement) { - for (const argument of parameters) { - argument.include(context, false); - } - break; - } - } - for (let index = parameters.length - 1; index >= 0; index--) { - const parameterVariables = this.parameters[index] || restParameter; - const argument = parameters[index]; - if (parameterVariables) { - calledFromTryStatement = false; - if (parameterVariables.length === 0) { - argumentIncluded = true; - } else { - for (const variable of parameterVariables) { - if (variable.included) { - argumentIncluded = true; - } - if (variable.calledFromTryStatement) { - calledFromTryStatement = true; - } - } - } - } - if (!argumentIncluded && argument.shouldBeIncluded(context)) { - argumentIncluded = true; - } - if (argumentIncluded) { - argument.include(context, calledFromTryStatement); - } - } - } -}; -var ReturnValueScope = class extends ParameterScope { - constructor() { - super(...arguments); - this.returnExpression = null; - this.returnExpressions = []; - } - addReturnExpression(expression) { - this.returnExpressions.push(expression); - } - getReturnExpression() { - if (this.returnExpression === null) - this.updateReturnExpression(); - return this.returnExpression; - } - updateReturnExpression() { - if (this.returnExpressions.length === 1) { - this.returnExpression = this.returnExpressions[0]; - } else { - this.returnExpression = UNKNOWN_EXPRESSION; - for (const expression of this.returnExpressions) { - expression.deoptimizePath(UNKNOWN_PATH); - } - } - } -}; -function treeshakeNode(node, code, start, end) { - code.remove(start, end); - node.removeAnnotations(code); -} -var NO_SEMICOLON = { isNoStatement: true }; -function findFirstOccurrenceOutsideComment(code, searchString, start = 0) { - let searchPos, charCodeAfterSlash; - searchPos = code.indexOf(searchString, start); - while (true) { - start = code.indexOf("/", start); - if (start === -1 || start >= searchPos) - return searchPos; - charCodeAfterSlash = code.charCodeAt(++start); - ++start; - start = charCodeAfterSlash === 47 ? code.indexOf("\n", start) + 1 : code.indexOf("*/", start) + 2; - if (start > searchPos) { - searchPos = code.indexOf(searchString, start); - } - } -} -var NON_WHITESPACE = /\S/g; -function findNonWhiteSpace(code, index) { - NON_WHITESPACE.lastIndex = index; - const result = NON_WHITESPACE.exec(code); - return result.index; -} -var WHITESPACE = /\s/; -function findLastWhiteSpaceReverse(code, start, end) { - while (true) { - if (start >= end) { - return end; - } - if (WHITESPACE.test(code[end - 1])) { - end--; - } else { - return end; - } - } -} -function findFirstLineBreakOutsideComment(code) { - let lineBreakPos, charCodeAfterSlash, start = 0; - lineBreakPos = code.indexOf("\n", start); - while (true) { - start = code.indexOf("/", start); - if (start === -1 || start > lineBreakPos) - return [lineBreakPos, lineBreakPos + 1]; - charCodeAfterSlash = code.charCodeAt(start + 1); - if (charCodeAfterSlash === 47) - return [start, lineBreakPos + 1]; - start = code.indexOf("*/", start + 2) + 2; - if (start > lineBreakPos) { - lineBreakPos = code.indexOf("\n", start); - } - } -} -function renderStatementList(statements, code, start, end, options) { - let currentNode, currentNodeStart, currentNodeNeedsBoundaries, nextNodeStart; - let nextNode = statements[0]; - let nextNodeNeedsBoundaries = !nextNode.included || nextNode.needsBoundaries; - if (nextNodeNeedsBoundaries) { - nextNodeStart = start + findFirstLineBreakOutsideComment(code.original.slice(start, nextNode.start))[1]; - } - for (let nextIndex = 1; nextIndex <= statements.length; nextIndex++) { - currentNode = nextNode; - currentNodeStart = nextNodeStart; - currentNodeNeedsBoundaries = nextNodeNeedsBoundaries; - nextNode = statements[nextIndex]; - nextNodeNeedsBoundaries = nextNode === void 0 ? false : !nextNode.included || nextNode.needsBoundaries; - if (currentNodeNeedsBoundaries || nextNodeNeedsBoundaries) { - nextNodeStart = currentNode.end + findFirstLineBreakOutsideComment(code.original.slice(currentNode.end, nextNode === void 0 ? end : nextNode.start))[1]; - if (currentNode.included) { - currentNodeNeedsBoundaries ? currentNode.render(code, options, { - end: nextNodeStart, - start: currentNodeStart - }) : currentNode.render(code, options); - } else { - treeshakeNode(currentNode, code, currentNodeStart, nextNodeStart); - } - } else { - currentNode.render(code, options); - } - } -} -function getCommaSeparatedNodesWithBoundaries(nodes, code, start, end) { - const splitUpNodes = []; - let node, nextNodeStart, contentEnd, char; - let separator = start - 1; - for (const nextNode of nodes) { - if (node !== void 0) { - separator = node.end + findFirstOccurrenceOutsideComment(code.original.slice(node.end, nextNode.start), ","); - } - nextNodeStart = contentEnd = separator + 1 + findFirstLineBreakOutsideComment(code.original.slice(separator + 1, nextNode.start))[1]; - while (char = code.original.charCodeAt(nextNodeStart), char === 32 || char === 9 || char === 10 || char === 13) - nextNodeStart++; - if (node !== void 0) { - splitUpNodes.push({ - contentEnd, - end: nextNodeStart, - node, - separator, - start - }); - } - node = nextNode; - start = nextNodeStart; - } - splitUpNodes.push({ - contentEnd: end, - end, - node, - separator: null, - start - }); - return splitUpNodes; -} -function removeLineBreaks(code, start, end) { - while (true) { - const [removeStart, removeEnd] = findFirstLineBreakOutsideComment(code.original.slice(start, end)); - if (removeStart === -1) { - break; - } - code.remove(start + removeStart, start += removeEnd); - } -} -var BlockScope = class extends ChildScope { - constructor(parent) { - super(parent, parent.context); - } - addDeclaration(identifier2, context, init2, kind) { - var _a; - if (kind === "var") { - const name = identifier2.name; - const existingVariable = ((_a = this.hoistedVariables) == null ? void 0 : _a.get(name)) || this.variables.get(name); - if (existingVariable) { - if (existingVariable.kind === "var" || kind === "var" && existingVariable.kind === "parameter") { - existingVariable.addDeclaration(identifier2, init2); - return existingVariable; - } - return context.error(logRedeclarationError(name), identifier2.start); - } - const declaredVariable = this.parent.addDeclaration(identifier2, context, init2, kind); - declaredVariable.markInitializersForDeoptimization(); - this.addHoistedVariable(name, declaredVariable); - return declaredVariable; - } - return super.addDeclaration(identifier2, context, init2, kind); - } -}; -var ExpressionStatement2 = class extends NodeBase { - initialise() { - super.initialise(); - if (this.directive && this.directive !== "use strict" && this.parent.type === Program) { - this.scope.context.log( - LOGLEVEL_WARN, - // This is necessary, because either way (deleting or not) can lead to errors. - logModuleLevelDirective(this.directive, this.scope.context.module.id), - this.start - ); - } - } - removeAnnotations(code) { - this.expression.removeAnnotations(code); - } - render(code, options) { - super.render(code, options); - if (code.original[this.end - 1] !== ";") { - code.appendLeft(this.end, ";"); - } - } - shouldBeIncluded(context) { - if (this.directive && this.directive !== "use strict") - return this.parent.type !== Program; - return super.shouldBeIncluded(context); - } - applyDeoptimizations() { - } -}; -var BlockStatement2 = class extends NodeBase { - get deoptimizeBody() { - return isFlagSet( - this.flags, - 32768 - /* Flag.deoptimizeBody */ - ); - } - set deoptimizeBody(value) { - this.flags = setFlag(this.flags, 32768, value); - } - get directlyIncluded() { - return isFlagSet( - this.flags, - 16384 - /* Flag.directlyIncluded */ - ); - } - set directlyIncluded(value) { - this.flags = setFlag(this.flags, 16384, value); - } - addImplicitReturnExpressionToScope() { - const lastStatement = this.body[this.body.length - 1]; - if (!lastStatement || lastStatement.type !== ReturnStatement) { - this.scope.addReturnExpression(UNKNOWN_EXPRESSION); - } - } - createScope(parentScope) { - this.scope = this.parent.preventChildBlockScope ? parentScope : new BlockScope(parentScope); - } - hasEffects(context) { - if (this.deoptimizeBody) - return true; - for (const node of this.body) { - if (context.brokenFlow) - break; - if (node.hasEffects(context)) - return true; - } - return false; - } - include(context, includeChildrenRecursively) { - if (!(this.deoptimizeBody && this.directlyIncluded)) { - this.included = true; - this.directlyIncluded = true; - if (this.deoptimizeBody) - includeChildrenRecursively = true; - for (const node of this.body) { - if (includeChildrenRecursively || node.shouldBeIncluded(context)) - node.include(context, includeChildrenRecursively); - } - } - } - initialise() { - super.initialise(); - const firstBodyStatement = this.body[0]; - this.deoptimizeBody = firstBodyStatement instanceof ExpressionStatement2 && firstBodyStatement.directive === "use asm"; - } - render(code, options) { - if (this.body.length > 0) { - renderStatementList(this.body, code, this.start + 1, this.end - 1, options); - } else { - super.render(code, options); - } - } -}; -var RestElement = class extends NodeBase { - constructor() { - super(...arguments); - this.declarationInit = null; - } - addExportedVariables(variables, exportNamesByVariable) { - this.argument.addExportedVariables(variables, exportNamesByVariable); - } - declare(kind, init2) { - this.declarationInit = init2; - return this.argument.declare(kind, UNKNOWN_EXPRESSION); - } - deoptimizePath(path2) { - path2.length === 0 && this.argument.deoptimizePath(EMPTY_PATH); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return path2.length > 0 || this.argument.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context); - } - markDeclarationReached() { - this.argument.markDeclarationReached(); - } - applyDeoptimizations() { - this.deoptimized = true; - if (this.declarationInit !== null) { - this.declarationInit.deoptimizePath([UnknownKey, UnknownKey]); - this.scope.context.requestTreeshakingPass(); - } - } -}; -var FunctionBase = class extends NodeBase { - constructor() { - super(...arguments); - this.objectEntity = null; - this.parameterVariableValuesDeoptimized = false; - } - get async() { - return isFlagSet( - this.flags, - 256 - /* Flag.async */ - ); - } - set async(value) { - this.flags = setFlag(this.flags, 256, value); - } - get deoptimizedReturn() { - return isFlagSet( - this.flags, - 512 - /* Flag.deoptimizedReturn */ - ); - } - set deoptimizedReturn(value) { - this.flags = setFlag(this.flags, 512, value); - } - get generator() { - return isFlagSet( - this.flags, - 4194304 - /* Flag.generator */ - ); - } - set generator(value) { - this.flags = setFlag(this.flags, 4194304, value); - } - updateParameterVariableValues(_arguments) { - for (let position = 0; position < this.params.length; position++) { - const parameter = this.params[position]; - if (!(parameter instanceof Identifier2)) { - continue; - } - const parameterVariable = parameter.variable; - const argument = _arguments[position + 1] ?? UNDEFINED_EXPRESSION; - parameterVariable.updateKnownValue(argument); - } - } - deoptimizeParameterVariableValues() { - for (const parameter of this.params) { - if (parameter instanceof Identifier2) { - const parameterVariable = parameter.variable; - parameterVariable.markReassigned(); - } - } - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - if (interaction.type === INTERACTION_CALLED) { - const { parameters } = this.scope; - const { args } = interaction; - let hasRest = false; - for (let position = 0; position < args.length - 1; position++) { - const parameter = this.params[position]; - const argument = args[position + 1]; - if (argument instanceof SpreadElement) { - this.deoptimizeParameterVariableValues(); - } - if (hasRest || parameter instanceof RestElement) { - hasRest = true; - argument.deoptimizePath(UNKNOWN_PATH); - } else if (parameter instanceof Identifier2) { - parameters[position][0].addEntityToBeDeoptimized(argument); - this.addArgumentToBeDeoptimized(argument); - } else if (parameter) { - argument.deoptimizePath(UNKNOWN_PATH); - } else { - this.addArgumentToBeDeoptimized(argument); - } - } - this.updateParameterVariableValues(args); - } else { - this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - } - deoptimizePath(path2) { - this.getObjectEntity().deoptimizePath(path2); - if (path2.length === 1 && path2[0] === UnknownKey) { - this.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH); - for (const parameterList of this.scope.parameters) { - for (const parameter of parameterList) { - parameter.deoptimizePath(UNKNOWN_PATH); - parameter.markReassigned(); - } - } - } - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.getObjectEntity().getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - if (path2.length > 0) { - return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - if (this.async) { - if (!this.deoptimizedReturn) { - this.deoptimizedReturn = true; - this.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH); - this.scope.context.requestTreeshakingPass(); - } - return UNKNOWN_RETURN_EXPRESSION; - } - return [this.scope.getReturnExpression(), false]; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (path2.length > 0 || interaction.type !== INTERACTION_CALLED) { - return this.getObjectEntity().hasEffectsOnInteractionAtPath(path2, interaction, context); - } - if (this.annotationNoSideEffects) { - return false; - } - if (this.async) { - const { propertyReadSideEffects } = this.scope.context.options.treeshake; - const returnExpression = this.scope.getReturnExpression(); - if (returnExpression.hasEffectsOnInteractionAtPath(["then"], NODE_INTERACTION_UNKNOWN_CALL, context) || propertyReadSideEffects && (propertyReadSideEffects === "always" || returnExpression.hasEffectsOnInteractionAtPath(["then"], NODE_INTERACTION_UNKNOWN_ACCESS, context))) { - return true; - } - } - for (const parameter of this.params) { - if (parameter.hasEffects(context)) - return true; - } - return false; - } - /** - * If the function (expression or declaration) is only used as function calls - */ - onlyFunctionCallUsed() { - let variable = null; - if (this.parent.type === VariableDeclarator) { - variable = this.parent.id.variable ?? null; - } - if (this.parent.type === ExportDefaultDeclaration) { - variable = this.parent.variable; - } - return (variable == null ? void 0 : variable.getOnlyFunctionCallUsed()) ?? false; - } - include(context, includeChildrenRecursively) { - if (!this.parameterVariableValuesDeoptimized && !this.onlyFunctionCallUsed()) { - this.parameterVariableValuesDeoptimized = true; - this.deoptimizeParameterVariableValues(); - } - if (!this.deoptimized) - this.applyDeoptimizations(); - this.included = true; - const { brokenFlow } = context; - context.brokenFlow = false; - this.body.include(context, includeChildrenRecursively); - context.brokenFlow = brokenFlow; - } - includeCallArguments(context, parameters) { - this.scope.includeCallArguments(context, parameters); - } - initialise() { - super.initialise(); - if (this.body instanceof BlockStatement2) { - this.body.addImplicitReturnExpressionToScope(); - } else { - this.scope.addReturnExpression(this.body); - } - if (this.annotations && this.scope.context.options.treeshake.annotations) { - this.annotationNoSideEffects = this.annotations.some((comment) => comment.type === "noSideEffects"); - } - } - parseNode(esTreeNode) { - const { body, params } = esTreeNode; - const { scope } = this; - const { bodyScope, context } = scope; - const parameters = this.params = params.map((parameter) => new (context.getNodeConstructor(parameter.type))(this, scope).parseNode(parameter)); - scope.addParameterVariables(parameters.map((parameter) => parameter.declare("parameter", UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement); - this.body = new (context.getNodeConstructor(body.type))(this, bodyScope).parseNode(body); - return super.parseNode(esTreeNode); - } - addArgumentToBeDeoptimized(_argument) { - } - applyDeoptimizations() { - } -}; -FunctionBase.prototype.preventChildBlockScope = true; -var ArrowFunctionExpression2 = class extends FunctionBase { - constructor() { - super(...arguments); - this.objectEntity = null; - } - get expression() { - return isFlagSet( - this.flags, - 8388608 - /* Flag.expression */ - ); - } - set expression(value) { - this.flags = setFlag(this.flags, 8388608, value); - } - createScope(parentScope) { - this.scope = new ReturnValueScope(parentScope, false); - } - hasEffects() { - if (!this.deoptimized) - this.applyDeoptimizations(); - return false; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (super.hasEffectsOnInteractionAtPath(path2, interaction, context)) { - return true; - } - if (this.annotationNoSideEffects) { - return false; - } - if (interaction.type === INTERACTION_CALLED) { - const { ignore, brokenFlow } = context; - context.ignore = { - breaks: false, - continues: false, - labels: /* @__PURE__ */ new Set(), - returnYield: true, - this: false - }; - if (this.body.hasEffects(context)) - return true; - context.ignore = ignore; - context.brokenFlow = brokenFlow; - } - return false; - } - onlyFunctionCallUsed() { - const isIIFE = this.parent.type === CallExpression && this.parent.callee === this; - return isIIFE || super.onlyFunctionCallUsed(); - } - include(context, includeChildrenRecursively) { - super.include(context, includeChildrenRecursively); - for (const parameter of this.params) { - if (!(parameter instanceof Identifier2)) { - parameter.include(context, includeChildrenRecursively); - } - } - } - getObjectEntity() { - if (this.objectEntity !== null) { - return this.objectEntity; - } - return this.objectEntity = new ObjectEntity([], OBJECT_PROTOTYPE); - } -}; -function getSystemExportStatement(exportedVariables, { exportNamesByVariable, snippets: { _, getObject, getPropertyAccess } }, modifier = "") { - if (exportedVariables.length === 1 && exportNamesByVariable.get(exportedVariables[0]).length === 1) { - const variable = exportedVariables[0]; - return `exports(${JSON.stringify(exportNamesByVariable.get(variable)[0])},${_}${variable.getName(getPropertyAccess)}${modifier})`; - } else { - const fields = []; - for (const variable of exportedVariables) { - for (const exportName of exportNamesByVariable.get(variable)) { - fields.push([exportName, variable.getName(getPropertyAccess) + modifier]); - } - } - return `exports(${getObject(fields, { lineBreakIndent: null })})`; - } -} -function renderSystemExportExpression(exportedVariable, expressionStart, expressionEnd, code, { exportNamesByVariable, snippets: { _ } }) { - code.prependRight(expressionStart, `exports(${JSON.stringify(exportNamesByVariable.get(exportedVariable)[0])},${_}`); - code.appendLeft(expressionEnd, ")"); -} -function renderSystemExportFunction(exportedVariables, expressionStart, expressionEnd, needsParens, code, options) { - const { _, getDirectReturnIifeLeft } = options.snippets; - code.prependRight(expressionStart, getDirectReturnIifeLeft(["v"], `${getSystemExportStatement(exportedVariables, options)},${_}v`, { needsArrowReturnParens: true, needsWrappedFunction: needsParens })); - code.appendLeft(expressionEnd, ")"); -} -function renderSystemExportSequenceAfterExpression(exportedVariable, expressionStart, expressionEnd, needsParens, code, options) { - const { _, getPropertyAccess } = options.snippets; - code.appendLeft(expressionEnd, `,${_}${getSystemExportStatement([exportedVariable], options)},${_}${exportedVariable.getName(getPropertyAccess)}`); - if (needsParens) { - code.prependRight(expressionStart, "("); - code.appendLeft(expressionEnd, ")"); - } -} -function renderSystemExportSequenceBeforeExpression(exportedVariable, expressionStart, expressionEnd, needsParens, code, options, modifier) { - const { _ } = options.snippets; - code.prependRight(expressionStart, `${getSystemExportStatement([exportedVariable], options, modifier)},${_}`); - if (needsParens) { - code.prependRight(expressionStart, "("); - code.appendLeft(expressionEnd, ")"); - } -} -var ObjectPattern = class extends NodeBase { - addExportedVariables(variables, exportNamesByVariable) { - for (const property2 of this.properties) { - if (property2.type === Property) { - property2.value.addExportedVariables(variables, exportNamesByVariable); - } else { - property2.argument.addExportedVariables(variables, exportNamesByVariable); - } - } - } - declare(kind, init2) { - const variables = []; - for (const property2 of this.properties) { - variables.push(...property2.declare(kind, init2)); - } - return variables; - } - deoptimizePath(path2) { - if (path2.length === 0) { - for (const property2 of this.properties) { - property2.deoptimizePath(path2); - } - } - } - hasEffectsOnInteractionAtPath(_path, interaction, context) { - for (const property2 of this.properties) { - if (property2.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context)) - return true; - } - return false; - } - markDeclarationReached() { - for (const property2 of this.properties) { - property2.markDeclarationReached(); - } - } -}; -var AssignmentExpression = class extends NodeBase { - hasEffects(context) { - const { deoptimized, left, operator, right } = this; - if (!deoptimized) - this.applyDeoptimizations(); - return right.hasEffects(context) || left.hasEffectsAsAssignmentTarget(context, operator !== "="); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return this.right.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - include(context, includeChildrenRecursively) { - const { deoptimized, left, right, operator } = this; - if (!deoptimized) - this.applyDeoptimizations(); - this.included = true; - if (includeChildrenRecursively || operator !== "=" || left.included || left.hasEffectsAsAssignmentTarget(createHasEffectsContext(), false)) { - left.includeAsAssignmentTarget(context, includeChildrenRecursively, operator !== "="); - } - right.include(context, includeChildrenRecursively); - } - initialise() { - super.initialise(); - if (this.left instanceof Identifier2) { - const variable = this.scope.variables.get(this.left.name); - if ((variable == null ? void 0 : variable.kind) === "const") { - this.scope.context.error(logConstVariableReassignError(), this.left.start); - } - } - this.left.setAssignedValue(this.right); - } - render(code, options, { preventASI, renderedParentType, renderedSurroundingElement } = BLANK) { - const { left, right, start, end, parent } = this; - if (left.included) { - left.render(code, options); - right.render(code, options); - } else { - const inclusionStart = findNonWhiteSpace(code.original, findFirstOccurrenceOutsideComment(code.original, "=", left.end) + 1); - code.remove(start, inclusionStart); - if (preventASI) { - removeLineBreaks(code, inclusionStart, right.start); - } - right.render(code, options, { - renderedParentType: renderedParentType || parent.type, - renderedSurroundingElement: renderedSurroundingElement || parent.type - }); - } - if (options.format === "system") { - if (left instanceof Identifier2) { - const variable = left.variable; - const exportNames = options.exportNamesByVariable.get(variable); - if (exportNames) { - if (exportNames.length === 1) { - renderSystemExportExpression(variable, start, end, code, options); - } else { - renderSystemExportSequenceAfterExpression(variable, start, end, parent.type !== ExpressionStatement, code, options); - } - return; - } - } else { - const systemPatternExports = []; - left.addExportedVariables(systemPatternExports, options.exportNamesByVariable); - if (systemPatternExports.length > 0) { - renderSystemExportFunction(systemPatternExports, start, end, renderedSurroundingElement === ExpressionStatement, code, options); - return; - } - } - } - if (left.included && left instanceof ObjectPattern && (renderedSurroundingElement === ExpressionStatement || renderedSurroundingElement === ArrowFunctionExpression)) { - code.appendRight(start, "("); - code.prependLeft(end, ")"); - } - } - applyDeoptimizations() { - this.deoptimized = true; - this.left.deoptimizePath(EMPTY_PATH); - this.right.deoptimizePath(UNKNOWN_PATH); - this.scope.context.requestTreeshakingPass(); - } -}; -var AssignmentPattern = class extends NodeBase { - addExportedVariables(variables, exportNamesByVariable) { - this.left.addExportedVariables(variables, exportNamesByVariable); - } - declare(kind, init2) { - return this.left.declare(kind, init2); - } - deoptimizePath(path2) { - path2.length === 0 && this.left.deoptimizePath(path2); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return path2.length > 0 || this.left.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context); - } - markDeclarationReached() { - this.left.markDeclarationReached(); - } - render(code, options, { isShorthandProperty } = BLANK) { - this.left.render(code, options, { isShorthandProperty }); - this.right.render(code, options); - } - applyDeoptimizations() { - this.deoptimized = true; - this.left.deoptimizePath(EMPTY_PATH); - this.right.deoptimizePath(UNKNOWN_PATH); - this.scope.context.requestTreeshakingPass(); - } -}; -var ArgumentsVariable = class extends LocalVariable { - constructor(context) { - super("arguments", null, UNKNOWN_EXPRESSION, context, "other"); - this.deoptimizedArguments = []; - } - addArgumentToBeDeoptimized(argument) { - if (this.included) { - argument.deoptimizePath(UNKNOWN_PATH); - } else { - this.deoptimizedArguments.push(argument); - } - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return type !== INTERACTION_ACCESSED || path2.length > 1; - } - include() { - super.include(); - for (const argument of this.deoptimizedArguments) { - argument.deoptimizePath(UNKNOWN_PATH); - } - this.deoptimizedArguments.length = 0; - } -}; -var ThisVariable = class extends ParameterVariable { - constructor(context) { - super("this", null, context); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return (context.replacedVariableInits.get(this) || UNKNOWN_EXPRESSION).hasEffectsOnInteractionAtPath(path2, interaction, context); - } -}; -var FunctionScope = class extends ReturnValueScope { - constructor(parent) { - const { context } = parent; - super(parent, false); - this.variables.set("arguments", this.argumentsVariable = new ArgumentsVariable(context)); - this.variables.set("this", this.thisVariable = new ThisVariable(context)); - } - findLexicalBoundary() { - return this; - } - includeCallArguments(context, parameters) { - super.includeCallArguments(context, parameters); - if (this.argumentsVariable.included) { - for (const argument of parameters) { - if (!argument.included) { - argument.include(context, false); - } - } - } - } -}; -var FunctionNode = class extends FunctionBase { - constructor() { - super(...arguments); - this.objectEntity = null; - } - createScope(parentScope) { - this.scope = new FunctionScope(parentScope); - this.constructedEntity = new ObjectEntity(/* @__PURE__ */ Object.create(null), OBJECT_PROTOTYPE); - this.scope.thisVariable.addEntityToBeDeoptimized(this.constructedEntity); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - super.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - if (interaction.type === INTERACTION_CALLED && path2.length === 0 && interaction.args[0]) { - this.scope.thisVariable.addEntityToBeDeoptimized(interaction.args[0]); - } - } - hasEffects(context) { - var _a; - if (!this.deoptimized) - this.applyDeoptimizations(); - if (this.annotationNoSideEffects) { - return false; - } - return !!((_a = this.id) == null ? void 0 : _a.hasEffects(context)); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (super.hasEffectsOnInteractionAtPath(path2, interaction, context)) - return true; - if (this.annotationNoSideEffects) { - return false; - } - if (interaction.type === INTERACTION_CALLED) { - const thisInit = context.replacedVariableInits.get(this.scope.thisVariable); - context.replacedVariableInits.set(this.scope.thisVariable, interaction.withNew ? this.constructedEntity : UNKNOWN_EXPRESSION); - const { brokenFlow, ignore, replacedVariableInits } = context; - context.ignore = { - breaks: false, - continues: false, - labels: /* @__PURE__ */ new Set(), - returnYield: true, - this: interaction.withNew - }; - if (this.body.hasEffects(context)) - return true; - context.brokenFlow = brokenFlow; - if (thisInit) { - replacedVariableInits.set(this.scope.thisVariable, thisInit); - } else { - replacedVariableInits.delete(this.scope.thisVariable); - } - context.ignore = ignore; - } - return false; - } - include(context, includeChildrenRecursively) { - var _a; - super.include(context, includeChildrenRecursively); - (_a = this.id) == null ? void 0 : _a.include(); - const hasArguments = this.scope.argumentsVariable.included; - for (const parameter of this.params) { - if (!(parameter instanceof Identifier2) || hasArguments) { - parameter.include(context, includeChildrenRecursively); - } - } - } - initialise() { - var _a; - super.initialise(); - (_a = this.id) == null ? void 0 : _a.declare("function", this); - } - addArgumentToBeDeoptimized(argument) { - this.scope.argumentsVariable.addArgumentToBeDeoptimized(argument); - } - getObjectEntity() { - if (this.objectEntity !== null) { - return this.objectEntity; - } - return this.objectEntity = new ObjectEntity([ - { - key: "prototype", - kind: "init", - property: new ObjectEntity([], OBJECT_PROTOTYPE) - } - ], OBJECT_PROTOTYPE); - } -}; -var AwaitExpression = class extends NodeBase { - hasEffects() { - if (!this.deoptimized) - this.applyDeoptimizations(); - return true; - } - include(context, includeChildrenRecursively) { - if (!this.deoptimized) - this.applyDeoptimizations(); - if (!this.included) { - this.included = true; - checkTopLevelAwait: if (!this.scope.context.usesTopLevelAwait) { - let parent = this.parent; - do { - if (parent instanceof FunctionNode || parent instanceof ArrowFunctionExpression2) - break checkTopLevelAwait; - } while (parent = parent.parent); - this.scope.context.usesTopLevelAwait = true; - } - } - this.argument.include(context, includeChildrenRecursively); - } -}; -var binaryOperators = { - "!=": (left, right) => left != right, - "!==": (left, right) => left !== right, - "%": (left, right) => left % right, - "&": (left, right) => left & right, - "*": (left, right) => left * right, - // At the moment, "**" will be transpiled to Math.pow - "**": (left, right) => left ** right, - "+": (left, right) => left + right, - "-": (left, right) => left - right, - "/": (left, right) => left / right, - "<": (left, right) => left < right, - "<<": (left, right) => left << right, - "<=": (left, right) => left <= right, - "==": (left, right) => left == right, - "===": (left, right) => left === right, - ">": (left, right) => left > right, - ">=": (left, right) => left >= right, - ">>": (left, right) => left >> right, - ">>>": (left, right) => left >>> right, - "^": (left, right) => left ^ right, - "|": (left, right) => left | right - // We use the fallback for cases where we return something unknown - // in: () => UnknownValue, - // instanceof: () => UnknownValue, -}; -var BinaryExpression = class extends NodeBase { - deoptimizeCache() { - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - if (path2.length > 0) - return UnknownValue; - const leftValue = this.left.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin); - if (typeof leftValue === "symbol") - return UnknownValue; - const rightValue = this.right.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin); - if (typeof rightValue === "symbol") - return UnknownValue; - const operatorFunction = binaryOperators[this.operator]; - if (!operatorFunction) - return UnknownValue; - return operatorFunction(leftValue, rightValue); - } - hasEffects(context) { - if (this.operator === "+" && this.parent instanceof ExpressionStatement2 && this.left.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this) === "") { - return true; - } - return super.hasEffects(context); - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return type !== INTERACTION_ACCESSED || path2.length > 1; - } - removeAnnotations(code) { - this.left.removeAnnotations(code); - } - render(code, options, { renderedSurroundingElement } = BLANK) { - this.left.render(code, options, { renderedSurroundingElement }); - this.right.render(code, options); - } -}; -var BreakStatement = class extends NodeBase { - hasEffects(context) { - if (this.label) { - if (!context.ignore.labels.has(this.label.name)) - return true; - context.includedLabels.add(this.label.name); - } else { - if (!context.ignore.breaks) - return true; - context.hasBreak = true; - } - context.brokenFlow = true; - return false; - } - include(context) { - this.included = true; - if (this.label) { - this.label.include(); - context.includedLabels.add(this.label.name); - } else { - context.hasBreak = true; - } - context.brokenFlow = true; - } -}; -function renderCallArguments(code, options, node) { - if (node.arguments.length > 0) { - if (node.arguments[node.arguments.length - 1].included) { - for (const argument of node.arguments) { - argument.render(code, options); - } - } else { - let lastIncludedIndex = node.arguments.length - 2; - while (lastIncludedIndex >= 0 && !node.arguments[lastIncludedIndex].included) { - lastIncludedIndex--; - } - if (lastIncludedIndex >= 0) { - for (let index = 0; index <= lastIncludedIndex; index++) { - node.arguments[index].render(code, options); - } - code.remove(findFirstOccurrenceOutsideComment(code.original, ",", node.arguments[lastIncludedIndex].end), node.end - 1); - } else { - code.remove(findFirstOccurrenceOutsideComment(code.original, "(", node.callee.end) + 1, node.end - 1); - } - } - } -} -var Literal2 = class extends NodeBase { - deoptimizeArgumentsOnInteractionAtPath() { - } - getLiteralValueAtPath(path2) { - if (path2.length > 0 || // unknown literals can also be null but do not start with an "n" - this.value === null && this.scope.context.code.charCodeAt(this.start) !== 110 || typeof this.value === "bigint" || // to support shims for regular expressions - this.scope.context.code.charCodeAt(this.start) === 47) { - return UnknownValue; - } - return this.value; - } - getReturnExpressionWhenCalledAtPath(path2) { - if (path2.length !== 1) - return UNKNOWN_RETURN_EXPRESSION; - return getMemberReturnExpressionWhenCalled(this.members, path2[0]); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - switch (interaction.type) { - case INTERACTION_ACCESSED: { - return path2.length > (this.value === null ? 0 : 1); - } - case INTERACTION_ASSIGNED: { - return true; - } - case INTERACTION_CALLED: { - if (this.included && this.value instanceof RegExp && (this.value.global || this.value.sticky)) { - return true; - } - return path2.length !== 1 || hasMemberEffectWhenCalled(this.members, path2[0], interaction, context); - } - } - } - initialise() { - super.initialise(); - this.members = getLiteralMembersForValue(this.value); - } - parseNode(esTreeNode) { - this.value = esTreeNode.value; - this.regex = esTreeNode.regex; - return super.parseNode(esTreeNode); - } - render(code) { - if (typeof this.value === "string") { - code.indentExclusionRanges.push([this.start + 1, this.end - 1]); - } - } -}; -function getChainElementLiteralValueAtPath(element, object, path2, recursionTracker, origin) { - if ("getLiteralValueAtPathAsChainElement" in object) { - const calleeValue = object.getLiteralValueAtPathAsChainElement(EMPTY_PATH, SHARED_RECURSION_TRACKER, origin); - if (calleeValue === IS_SKIPPED_CHAIN || element.optional && calleeValue == null) { - return IS_SKIPPED_CHAIN; - } - } else if (element.optional && object.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, origin) == null) { - return IS_SKIPPED_CHAIN; - } - return element.getLiteralValueAtPath(path2, recursionTracker, origin); -} -var MAX_PATH_DEPTH = 7; -function getResolvablePropertyKey(memberExpression2) { - return memberExpression2.computed ? getResolvableComputedPropertyKey(memberExpression2.property) : memberExpression2.property.name; -} -function getResolvableComputedPropertyKey(propertyKey) { - if (propertyKey instanceof Literal2) { - return String(propertyKey.value); - } - return null; -} -function getPathIfNotComputed(memberExpression2) { - const nextPathKey = memberExpression2.propertyKey; - const object = memberExpression2.object; - if (typeof nextPathKey === "string") { - if (object instanceof Identifier2) { - return [ - { key: object.name, pos: object.start }, - { key: nextPathKey, pos: memberExpression2.property.start } - ]; - } - if (object instanceof MemberExpression) { - const parentPath = getPathIfNotComputed(object); - return parentPath && [...parentPath, { key: nextPathKey, pos: memberExpression2.property.start }]; - } - } - return null; -} -function getStringFromPath(path2) { - let pathString = path2[0].key; - for (let index = 1; index < path2.length; index++) { - pathString += "." + path2[index].key; - } - return pathString; -} -var MemberExpression = class extends NodeBase { - constructor() { - super(...arguments); - this.variable = null; - this.expressionsToBeDeoptimized = []; - } - get computed() { - return isFlagSet( - this.flags, - 1024 - /* Flag.computed */ - ); - } - set computed(value) { - this.flags = setFlag(this.flags, 1024, value); - } - get optional() { - return isFlagSet( - this.flags, - 128 - /* Flag.optional */ - ); - } - set optional(value) { - this.flags = setFlag(this.flags, 128, value); - } - get assignmentDeoptimized() { - return isFlagSet( - this.flags, - 16 - /* Flag.assignmentDeoptimized */ - ); - } - set assignmentDeoptimized(value) { - this.flags = setFlag(this.flags, 16, value); - } - get bound() { - return isFlagSet( - this.flags, - 32 - /* Flag.bound */ - ); - } - set bound(value) { - this.flags = setFlag(this.flags, 32, value); - } - get isUndefined() { - return isFlagSet( - this.flags, - 64 - /* Flag.isUndefined */ - ); - } - set isUndefined(value) { - this.flags = setFlag(this.flags, 64, value); - } - bind() { - this.bound = true; - const path2 = getPathIfNotComputed(this); - const baseVariable = path2 && this.scope.findVariable(path2[0].key); - if (baseVariable == null ? void 0 : baseVariable.isNamespace) { - const resolvedVariable = resolveNamespaceVariables(baseVariable, path2.slice(1), this.scope.context); - if (!resolvedVariable) { - super.bind(); - } else if (resolvedVariable === "undefined") { - this.isUndefined = true; - } else { - this.variable = resolvedVariable; - this.scope.addNamespaceMemberAccess(getStringFromPath(path2), resolvedVariable); - } - } else { - super.bind(); - } - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - if (this.variable) { - this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } else if (!this.isUndefined) { - if (path2.length < MAX_PATH_DEPTH) { - this.object.deoptimizeArgumentsOnInteractionAtPath(interaction, [this.getPropertyKey(), ...path2], recursionTracker); - } else { - deoptimizeInteraction(interaction); - } - } - } - deoptimizeCache() { - const { expressionsToBeDeoptimized, object } = this; - this.expressionsToBeDeoptimized = EMPTY_ARRAY; - this.propertyKey = UnknownKey; - object.deoptimizePath(UNKNOWN_PATH); - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizeCache(); - } - } - deoptimizePath(path2) { - if (path2.length === 0) - this.disallowNamespaceReassignment(); - if (this.variable) { - this.variable.deoptimizePath(path2); - } else if (!this.isUndefined && path2.length < MAX_PATH_DEPTH) { - const propertyKey = this.getPropertyKey(); - this.object.deoptimizePath([ - propertyKey === UnknownKey ? UnknownNonAccessorKey : propertyKey, - ...path2 - ]); - } - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - if (this.variable) { - return this.variable.getLiteralValueAtPath(path2, recursionTracker, origin); - } - if (this.isUndefined) { - return void 0; - } - if (this.propertyKey !== UnknownKey && path2.length < MAX_PATH_DEPTH) { - this.expressionsToBeDeoptimized.push(origin); - return this.object.getLiteralValueAtPath([this.getPropertyKey(), ...path2], recursionTracker, origin); - } - return UnknownValue; - } - getLiteralValueAtPathAsChainElement(path2, recursionTracker, origin) { - return getChainElementLiteralValueAtPath(this, this.object, path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - if (this.variable) { - return this.variable.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - if (this.isUndefined) { - return [UNDEFINED_EXPRESSION, false]; - } - if (this.propertyKey !== UnknownKey && path2.length < MAX_PATH_DEPTH) { - this.expressionsToBeDeoptimized.push(origin); - return this.object.getReturnExpressionWhenCalledAtPath([this.getPropertyKey(), ...path2], interaction, recursionTracker, origin); - } - return UNKNOWN_RETURN_EXPRESSION; - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - return this.property.hasEffects(context) || this.object.hasEffects(context) || this.hasAccessEffect(context); - } - hasEffectsAsChainElement(context) { - if (this.variable || this.isUndefined) - return this.hasEffects(context); - const objectHasEffects = "hasEffectsAsChainElement" in this.object ? this.object.hasEffectsAsChainElement(context) : this.object.hasEffects(context); - if (objectHasEffects === IS_SKIPPED_CHAIN) - return IS_SKIPPED_CHAIN; - if (this.optional && this.object.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this) == null) { - return objectHasEffects || IS_SKIPPED_CHAIN; - } - if (!this.deoptimized) - this.applyDeoptimizations(); - return this.property.hasEffects(context) || this.hasAccessEffect(context); - } - hasEffectsAsAssignmentTarget(context, checkAccess) { - if (checkAccess && !this.deoptimized) - this.applyDeoptimizations(); - if (!this.assignmentDeoptimized) - this.applyAssignmentDeoptimization(); - return this.property.hasEffects(context) || this.object.hasEffects(context) || checkAccess && this.hasAccessEffect(context) || this.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.assignmentInteraction, context); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (this.variable) { - return this.variable.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - if (this.isUndefined) { - return true; - } - if (path2.length < MAX_PATH_DEPTH) { - return this.object.hasEffectsOnInteractionAtPath([this.getPropertyKey(), ...path2], interaction, context); - } - return true; - } - include(context, includeChildrenRecursively) { - if (!this.deoptimized) - this.applyDeoptimizations(); - this.includeProperties(context, includeChildrenRecursively); - } - includeAsAssignmentTarget(context, includeChildrenRecursively, deoptimizeAccess) { - if (!this.assignmentDeoptimized) - this.applyAssignmentDeoptimization(); - if (deoptimizeAccess) { - this.include(context, includeChildrenRecursively); - } else { - this.includeProperties(context, includeChildrenRecursively); - } - } - includeCallArguments(context, parameters) { - if (this.variable) { - this.variable.includeCallArguments(context, parameters); - } else { - super.includeCallArguments(context, parameters); - } - } - initialise() { - super.initialise(); - this.propertyKey = getResolvablePropertyKey(this); - this.accessInteraction = { args: [this.object], type: INTERACTION_ACCESSED }; - } - render(code, options, { renderedParentType, isCalleeOfRenderedParent, renderedSurroundingElement } = BLANK) { - if (this.variable || this.isUndefined) { - const { snippets: { getPropertyAccess } } = options; - let replacement = this.variable ? this.variable.getName(getPropertyAccess) : "undefined"; - if (renderedParentType && isCalleeOfRenderedParent) - replacement = "0, " + replacement; - code.overwrite(this.start, this.end, replacement, { - contentOnly: true, - storeName: true - }); - } else { - if (renderedParentType && isCalleeOfRenderedParent) { - code.appendRight(this.start, "0, "); - } - this.object.render(code, options, { renderedSurroundingElement }); - this.property.render(code, options); - } - } - setAssignedValue(value) { - this.assignmentInteraction = { - args: [this.object, value], - type: INTERACTION_ASSIGNED - }; - } - applyDeoptimizations() { - this.deoptimized = true; - const { propertyReadSideEffects } = this.scope.context.options.treeshake; - if ( - // Namespaces are not bound and should not be deoptimized - this.bound && propertyReadSideEffects && !(this.variable || this.isUndefined) - ) { - const propertyKey = this.getPropertyKey(); - this.object.deoptimizeArgumentsOnInteractionAtPath(this.accessInteraction, [propertyKey], SHARED_RECURSION_TRACKER); - this.scope.context.requestTreeshakingPass(); - } - if (this.variable) { - this.variable.addUsedPlace(this); - this.scope.context.requestTreeshakingPass(); - } - } - applyAssignmentDeoptimization() { - this.assignmentDeoptimized = true; - const { propertyReadSideEffects } = this.scope.context.options.treeshake; - if ( - // Namespaces are not bound and should not be deoptimized - this.bound && propertyReadSideEffects && !(this.variable || this.isUndefined) - ) { - this.object.deoptimizeArgumentsOnInteractionAtPath(this.assignmentInteraction, [this.getPropertyKey()], SHARED_RECURSION_TRACKER); - this.scope.context.requestTreeshakingPass(); - } - } - disallowNamespaceReassignment() { - if (this.object instanceof Identifier2) { - const variable = this.scope.findVariable(this.object.name); - if (variable.isNamespace) { - if (this.variable) { - this.scope.context.includeVariableInModule(this.variable); - } - this.scope.context.log(LOGLEVEL_WARN, logIllegalImportReassignment(this.object.name, this.scope.context.module.id), this.start); - } - } - } - getPropertyKey() { - if (this.propertyKey === null) { - this.propertyKey = UnknownKey; - const value = this.property.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - return this.propertyKey = value === SymbolToStringTag ? value : typeof value === "symbol" ? UnknownKey : String(value); - } - return this.propertyKey; - } - hasAccessEffect(context) { - const { propertyReadSideEffects } = this.scope.context.options.treeshake; - return !(this.variable || this.isUndefined) && propertyReadSideEffects && (propertyReadSideEffects === "always" || this.object.hasEffectsOnInteractionAtPath([this.getPropertyKey()], this.accessInteraction, context)); - } - includeProperties(context, includeChildrenRecursively) { - if (!this.included) { - this.included = true; - if (this.variable) { - this.scope.context.includeVariableInModule(this.variable); - } - } - this.object.include(context, includeChildrenRecursively); - this.property.include(context, includeChildrenRecursively); - } -}; -function resolveNamespaceVariables(baseVariable, path2, astContext) { - if (path2.length === 0) - return baseVariable; - if (!baseVariable.isNamespace || baseVariable instanceof ExternalVariable) - return null; - const exportName = path2[0].key; - const variable = baseVariable.context.traceExport(exportName); - if (!variable) { - if (path2.length === 1) { - const fileName = baseVariable.context.fileName; - astContext.log(LOGLEVEL_WARN, logMissingExport(exportName, astContext.module.id, fileName), path2[0].pos); - return "undefined"; - } - return null; - } - return resolveNamespaceVariables(variable, path2.slice(1), astContext); -} -var CallExpressionBase = class extends NodeBase { - constructor() { - super(...arguments); - this.returnExpression = null; - this.deoptimizableDependentExpressions = []; - this.expressionsToBeDeoptimized = /* @__PURE__ */ new Set(); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - const { args } = interaction; - const [returnExpression, isPure] = this.getReturnExpression(recursionTracker); - if (isPure) - return; - const deoptimizedExpressions = args.filter((expression) => !!expression && expression !== UNKNOWN_EXPRESSION); - if (deoptimizedExpressions.length === 0) - return; - if (returnExpression === UNKNOWN_EXPRESSION) { - for (const expression of deoptimizedExpressions) { - expression.deoptimizePath(UNKNOWN_PATH); - } - } else { - recursionTracker.withTrackedEntityAtPath(path2, returnExpression, () => { - for (const expression of deoptimizedExpressions) { - this.expressionsToBeDeoptimized.add(expression); - } - returnExpression.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - }, null); - } - } - deoptimizeCache() { - var _a; - if (((_a = this.returnExpression) == null ? void 0 : _a[0]) !== UNKNOWN_EXPRESSION) { - this.returnExpression = UNKNOWN_RETURN_EXPRESSION; - const { deoptimizableDependentExpressions, expressionsToBeDeoptimized } = this; - this.expressionsToBeDeoptimized = EMPTY_SET; - this.deoptimizableDependentExpressions = EMPTY_ARRAY; - for (const expression of deoptimizableDependentExpressions) { - expression.deoptimizeCache(); - } - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizePath(UNKNOWN_PATH); - } - } - } - deoptimizePath(path2) { - if (path2.length === 0 || this.scope.context.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path2, this)) { - return; - } - const [returnExpression] = this.getReturnExpression(); - if (returnExpression !== UNKNOWN_EXPRESSION) { - returnExpression.deoptimizePath(path2); - } - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - const [returnExpression] = this.getReturnExpression(recursionTracker); - if (returnExpression === UNKNOWN_EXPRESSION) { - return UnknownValue; - } - return recursionTracker.withTrackedEntityAtPath(path2, returnExpression, () => { - this.deoptimizableDependentExpressions.push(origin); - return returnExpression.getLiteralValueAtPath(path2, recursionTracker, origin); - }, UnknownValue); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - const returnExpression = this.getReturnExpression(recursionTracker); - if (returnExpression[0] === UNKNOWN_EXPRESSION) { - return returnExpression; - } - return recursionTracker.withTrackedEntityAtPath(path2, returnExpression, () => { - this.deoptimizableDependentExpressions.push(origin); - const [expression, isPure] = returnExpression[0].getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - return [expression, isPure || returnExpression[1]]; - }, UNKNOWN_RETURN_EXPRESSION); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - const { type } = interaction; - if (type === INTERACTION_CALLED) { - const { args, withNew } = interaction; - if ((withNew ? context.instantiated : context.called).trackEntityAtPathAndGetIfTracked(path2, args, this)) { - return false; - } - } else if ((type === INTERACTION_ASSIGNED ? context.assigned : context.accessed).trackEntityAtPathAndGetIfTracked(path2, this)) { - return false; - } - const [returnExpression, isPure] = this.getReturnExpression(); - return (type === INTERACTION_ASSIGNED || !isPure) && returnExpression.hasEffectsOnInteractionAtPath(path2, interaction, context); - } -}; -var CallExpression2 = class extends CallExpressionBase { - get optional() { - return isFlagSet( - this.flags, - 128 - /* Flag.optional */ - ); - } - set optional(value) { - this.flags = setFlag(this.flags, 128, value); - } - bind() { - super.bind(); - if (this.callee instanceof Identifier2) { - const variable = this.scope.findVariable(this.callee.name); - if (variable.isNamespace) { - this.scope.context.log(LOGLEVEL_WARN, logCannotCallNamespace(this.callee.name), this.start); - } - if (this.callee.name === "eval") { - this.scope.context.log(LOGLEVEL_WARN, logEval(this.scope.context.module.id), this.start); - } - } - this.interaction = { - args: [ - this.callee instanceof MemberExpression && !this.callee.variable ? this.callee.object : null, - ...this.arguments - ], - type: INTERACTION_CALLED, - withNew: false - }; - } - getLiteralValueAtPathAsChainElement(path2, recursionTracker, origin) { - return getChainElementLiteralValueAtPath(this, this.callee, path2, recursionTracker, origin); - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - for (const argument of this.arguments) { - if (argument.hasEffects(context)) - return true; - } - if (this.annotationPure) { - return false; - } - return this.callee.hasEffects(context) || this.callee.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context); - } - hasEffectsAsChainElement(context) { - const calleeHasEffects = "hasEffectsAsChainElement" in this.callee ? this.callee.hasEffectsAsChainElement(context) : this.callee.hasEffects(context); - if (calleeHasEffects === IS_SKIPPED_CHAIN) - return IS_SKIPPED_CHAIN; - if (this.optional && this.callee.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this) == null) { - return !this.annotationPure && calleeHasEffects || IS_SKIPPED_CHAIN; - } - if (!this.deoptimized) - this.applyDeoptimizations(); - for (const argument of this.arguments) { - if (argument.hasEffects(context)) - return true; - } - return !this.annotationPure && this.callee.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context); - } - include(context, includeChildrenRecursively) { - if (!this.deoptimized) - this.applyDeoptimizations(); - if (includeChildrenRecursively) { - super.include(context, includeChildrenRecursively); - if (includeChildrenRecursively === INCLUDE_PARAMETERS && this.callee instanceof Identifier2 && this.callee.variable) { - this.callee.variable.markCalledFromTryStatement(); - } - } else { - this.included = true; - this.callee.include(context, false); - } - this.callee.includeCallArguments(context, this.arguments); - } - initialise() { - super.initialise(); - if (this.annotations && this.scope.context.options.treeshake.annotations) { - this.annotationPure = this.annotations.some((comment) => comment.type === "pure"); - } - } - render(code, options, { renderedSurroundingElement } = BLANK) { - this.callee.render(code, options, { - isCalleeOfRenderedParent: true, - renderedSurroundingElement - }); - renderCallArguments(code, options, this); - } - applyDeoptimizations() { - this.deoptimized = true; - this.callee.deoptimizeArgumentsOnInteractionAtPath(this.interaction, EMPTY_PATH, SHARED_RECURSION_TRACKER); - this.scope.context.requestTreeshakingPass(); - } - getReturnExpression(recursionTracker = SHARED_RECURSION_TRACKER) { - if (this.returnExpression === null) { - this.returnExpression = UNKNOWN_RETURN_EXPRESSION; - return this.returnExpression = this.callee.getReturnExpressionWhenCalledAtPath(EMPTY_PATH, this.interaction, recursionTracker, this); - } - return this.returnExpression; - } -}; -var CatchClause2 = class extends NodeBase { - createScope(parentScope) { - this.scope = new ParameterScope(parentScope, true); - } - parseNode(esTreeNode) { - const { body, param, type } = esTreeNode; - this.type = type; - if (param) { - this.param = new (this.scope.context.getNodeConstructor(param.type))(this, this.scope).parseNode(param); - this.param.declare("parameter", UNKNOWN_EXPRESSION); - } - this.body = new BlockStatement2(this, this.scope.bodyScope).parseNode(body); - return super.parseNode(esTreeNode); - } -}; -CatchClause2.prototype.preventChildBlockScope = true; -var ChainExpression = class extends NodeBase { - // deoptimizations are not relevant as we are not caching values - deoptimizeCache() { - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - const literalValue = this.expression.getLiteralValueAtPathAsChainElement(path2, recursionTracker, origin); - return literalValue === IS_SKIPPED_CHAIN ? void 0 : literalValue; - } - hasEffects(context) { - return this.expression.hasEffectsAsChainElement(context) === true; - } - removeAnnotations(code) { - this.expression.removeAnnotations(code); - } - applyDeoptimizations() { - } -}; -var ClassBodyScope = class extends ChildScope { - constructor(parent, classNode) { - const { context } = parent; - super(parent, context); - this.variables.set("this", this.thisVariable = new LocalVariable("this", null, classNode, context, "other")); - this.instanceScope = new ChildScope(this, context); - this.instanceScope.variables.set("this", new ThisVariable(context)); - } - findLexicalBoundary() { - return this; - } -}; -var ClassBody = class extends NodeBase { - createScope(parentScope) { - this.scope = new ClassBodyScope(parentScope, this.parent); - } - include(context, includeChildrenRecursively) { - this.included = true; - this.scope.context.includeVariableInModule(this.scope.thisVariable); - for (const definition of this.body) { - definition.include(context, includeChildrenRecursively); - } - } - parseNode(esTreeNode) { - const body = this.body = []; - for (const definition of esTreeNode.body) { - body.push(new (this.scope.context.getNodeConstructor(definition.type))(this, definition.static ? this.scope : this.scope.instanceScope).parseNode(definition)); - } - return super.parseNode(esTreeNode); - } - applyDeoptimizations() { - } -}; -function checkEffectForNodes(nodes, context) { - for (const node of nodes) { - if (node.hasEffects(context)) { - return true; - } - } - return false; -} -var MethodBase = class extends NodeBase { - constructor() { - super(...arguments); - this.accessedValue = null; - } - get computed() { - return isFlagSet( - this.flags, - 1024 - /* Flag.computed */ - ); - } - set computed(value) { - this.flags = setFlag(this.flags, 1024, value); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - if (interaction.type === INTERACTION_ACCESSED && this.kind === "get" && path2.length === 0) { - return this.value.deoptimizeArgumentsOnInteractionAtPath({ - args: interaction.args, - type: INTERACTION_CALLED, - withNew: false - }, EMPTY_PATH, recursionTracker); - } - if (interaction.type === INTERACTION_ASSIGNED && this.kind === "set" && path2.length === 0) { - return this.value.deoptimizeArgumentsOnInteractionAtPath({ - args: interaction.args, - type: INTERACTION_CALLED, - withNew: false - }, EMPTY_PATH, recursionTracker); - } - this.getAccessedValue()[0].deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - // As getter properties directly receive their values from fixed function - // expressions, there is no known situation where a getter is deoptimized. - deoptimizeCache() { - } - deoptimizePath(path2) { - this.getAccessedValue()[0].deoptimizePath(path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.getAccessedValue()[0].getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - return this.getAccessedValue()[0].getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - hasEffects(context) { - return this.key.hasEffects(context); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (this.kind === "get" && interaction.type === INTERACTION_ACCESSED && path2.length === 0) { - return this.value.hasEffectsOnInteractionAtPath(EMPTY_PATH, { - args: interaction.args, - type: INTERACTION_CALLED, - withNew: false - }, context); - } - if (this.kind === "set" && interaction.type === INTERACTION_ASSIGNED) { - return this.value.hasEffectsOnInteractionAtPath(EMPTY_PATH, { - args: interaction.args, - type: INTERACTION_CALLED, - withNew: false - }, context); - } - return this.getAccessedValue()[0].hasEffectsOnInteractionAtPath(path2, interaction, context); - } - applyDeoptimizations() { - } - getAccessedValue() { - if (this.accessedValue === null) { - if (this.kind === "get") { - this.accessedValue = UNKNOWN_RETURN_EXPRESSION; - return this.accessedValue = this.value.getReturnExpressionWhenCalledAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, SHARED_RECURSION_TRACKER, this); - } else { - return this.accessedValue = [this.value, false]; - } - } - return this.accessedValue; - } -}; -var MethodDefinition = class extends MethodBase { - hasEffects(context) { - return super.hasEffects(context) || checkEffectForNodes(this.decorators, context); - } - applyDeoptimizations() { - } -}; -var StaticBlock2 = class extends NodeBase { - createScope(parentScope) { - this.scope = new BlockScope(parentScope); - } - hasEffects(context) { - for (const node of this.body) { - if (node.hasEffects(context)) - return true; - } - return false; - } - include(context, includeChildrenRecursively) { - this.included = true; - for (const node of this.body) { - if (includeChildrenRecursively || node.shouldBeIncluded(context)) - node.include(context, includeChildrenRecursively); - } - } - render(code, options) { - if (this.body.length > 0) { - const bodyStartPos = findFirstOccurrenceOutsideComment(code.original.slice(this.start, this.end), "{") + 1; - renderStatementList(this.body, code, this.start + bodyStartPos, this.end - 1, options); - } else { - super.render(code, options); - } - } -}; -function isStaticBlock(statement) { - return statement.type === StaticBlock; -} -var ObjectMember = class extends ExpressionEntity { - constructor(object, key) { - super(); - this.object = object; - this.key = key; - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.object.deoptimizeArgumentsOnInteractionAtPath(interaction, [this.key, ...path2], recursionTracker); - } - deoptimizePath(path2) { - this.object.deoptimizePath([this.key, ...path2]); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.object.getLiteralValueAtPath([this.key, ...path2], recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - return this.object.getReturnExpressionWhenCalledAtPath([this.key, ...path2], interaction, recursionTracker, origin); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return this.object.hasEffectsOnInteractionAtPath([this.key, ...path2], interaction, context); - } -}; -var ClassNode = class extends NodeBase { - constructor() { - super(...arguments); - this.objectEntity = null; - } - createScope(parentScope) { - this.scope = new ChildScope(parentScope, parentScope.context); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizeCache() { - this.getObjectEntity().deoptimizeAllProperties(); - } - deoptimizePath(path2) { - this.getObjectEntity().deoptimizePath(path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.getObjectEntity().getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - hasEffects(context) { - var _a, _b; - if (!this.deoptimized) - this.applyDeoptimizations(); - const initEffect = ((_a = this.superClass) == null ? void 0 : _a.hasEffects(context)) || this.body.hasEffects(context); - (_b = this.id) == null ? void 0 : _b.markDeclarationReached(); - return initEffect || super.hasEffects(context) || checkEffectForNodes(this.decorators, context); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - var _a; - return interaction.type === INTERACTION_CALLED && path2.length === 0 ? !interaction.withNew || (this.classConstructor === null ? (_a = this.superClass) == null ? void 0 : _a.hasEffectsOnInteractionAtPath(path2, interaction, context) : this.classConstructor.hasEffectsOnInteractionAtPath(path2, interaction, context)) || false : this.getObjectEntity().hasEffectsOnInteractionAtPath(path2, interaction, context); - } - include(context, includeChildrenRecursively) { - var _a; - if (!this.deoptimized) - this.applyDeoptimizations(); - this.included = true; - (_a = this.superClass) == null ? void 0 : _a.include(context, includeChildrenRecursively); - this.body.include(context, includeChildrenRecursively); - for (const decorator2 of this.decorators) - decorator2.include(context, includeChildrenRecursively); - if (this.id) { - this.id.markDeclarationReached(); - this.id.include(); - } - } - initialise() { - var _a; - super.initialise(); - (_a = this.id) == null ? void 0 : _a.declare("class", this); - for (const method of this.body.body) { - if (method instanceof MethodDefinition && method.kind === "constructor") { - this.classConstructor = method; - return; - } - } - this.classConstructor = null; - } - applyDeoptimizations() { - this.deoptimized = true; - for (const definition of this.body.body) { - if (!isStaticBlock(definition) && !(definition.static || definition instanceof MethodDefinition && definition.kind === "constructor")) { - definition.deoptimizePath(UNKNOWN_PATH); - } - } - this.scope.context.requestTreeshakingPass(); - } - getObjectEntity() { - if (this.objectEntity !== null) { - return this.objectEntity; - } - const staticProperties = []; - const dynamicMethods = []; - for (const definition of this.body.body) { - if (isStaticBlock(definition)) - continue; - const properties = definition.static ? staticProperties : dynamicMethods; - const definitionKind = definition.kind; - if (properties === dynamicMethods && !definitionKind) - continue; - const kind = definitionKind === "set" || definitionKind === "get" ? definitionKind : "init"; - let key; - if (definition.computed) { - const keyValue = definition.key.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - if (typeof keyValue === "symbol") { - properties.push({ key: UnknownKey, kind, property: definition }); - continue; - } else { - key = String(keyValue); - } - } else { - key = definition.key instanceof Identifier2 ? definition.key.name : String(definition.key.value); - } - properties.push({ key, kind, property: definition }); - } - staticProperties.unshift({ - key: "prototype", - kind: "init", - property: new ObjectEntity(dynamicMethods, this.superClass ? new ObjectMember(this.superClass, "prototype") : OBJECT_PROTOTYPE) - }); - return this.objectEntity = new ObjectEntity(staticProperties, this.superClass || OBJECT_PROTOTYPE); - } -}; -var ClassDeclaration = class extends ClassNode { - initialise() { - super.initialise(); - if (this.id !== null) { - this.id.variable.isId = true; - } - } - parseNode(esTreeNode) { - if (esTreeNode.id !== null) { - this.id = new Identifier2(this, this.scope.parent).parseNode(esTreeNode.id); - } - return super.parseNode(esTreeNode); - } - render(code, options) { - var _a; - const { exportNamesByVariable, format, snippets: { _, getPropertyAccess } } = options; - if (this.id) { - const { variable, name } = this.id; - if (format === "system" && exportNamesByVariable.has(variable)) { - code.appendLeft(this.end, `${_}${getSystemExportStatement([variable], options)};`); - } - const renderedVariable = variable.getName(getPropertyAccess); - if (renderedVariable !== name) { - this.decorators.map((decorator2) => decorator2.render(code, options)); - (_a = this.superClass) == null ? void 0 : _a.render(code, options); - this.body.render(code, { - ...options, - useOriginalName: (_variable) => _variable === variable - }); - code.prependRight(this.start, `let ${renderedVariable}${_}=${_}`); - code.prependLeft(this.end, ";"); - return; - } - } - super.render(code, options); - } - applyDeoptimizations() { - super.applyDeoptimizations(); - const { id, scope } = this; - if (id) { - const { name, variable } = id; - for (const accessedVariable of scope.accessedOutsideVariables.values()) { - if (accessedVariable !== variable) { - accessedVariable.forbidName(name); - } - } - } - } -}; -var ClassExpression = class extends ClassNode { - render(code, options, { renderedSurroundingElement } = BLANK) { - super.render(code, options); - if (renderedSurroundingElement === ExpressionStatement) { - code.appendRight(this.start, "("); - code.prependLeft(this.end, ")"); - } - } -}; -var MultiExpression = class _MultiExpression extends ExpressionEntity { - constructor(expressions) { - super(); - this.expressions = expressions; - } - deoptimizePath(path2) { - for (const expression of this.expressions) { - expression.deoptimizePath(path2); - } - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - return [ - new _MultiExpression(this.expressions.map((expression) => expression.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin)[0])), - false - ]; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - for (const expression of this.expressions) { - if (expression.hasEffectsOnInteractionAtPath(path2, interaction, context)) - return true; - } - return false; - } -}; -var ConditionalExpression = class extends NodeBase { - constructor() { - super(...arguments); - this.expressionsToBeDeoptimized = []; - this.usedBranch = null; - } - get isBranchResolutionAnalysed() { - return isFlagSet( - this.flags, - 65536 - /* Flag.isBranchResolutionAnalysed */ - ); - } - set isBranchResolutionAnalysed(value) { - this.flags = setFlag(this.flags, 65536, value); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.consequent.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - this.alternate.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizeCache() { - if (this.usedBranch !== null) { - const unusedBranch = this.usedBranch === this.consequent ? this.alternate : this.consequent; - this.usedBranch = null; - unusedBranch.deoptimizePath(UNKNOWN_PATH); - const { expressionsToBeDeoptimized } = this; - this.expressionsToBeDeoptimized = EMPTY_ARRAY; - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizeCache(); - } - } - } - deoptimizePath(path2) { - const usedBranch = this.getUsedBranch(); - if (usedBranch) { - usedBranch.deoptimizePath(path2); - } else { - this.consequent.deoptimizePath(path2); - this.alternate.deoptimizePath(path2); - } - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - const usedBranch = this.getUsedBranch(); - if (!usedBranch) - return UnknownValue; - this.expressionsToBeDeoptimized.push(origin); - return usedBranch.getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - const usedBranch = this.getUsedBranch(); - if (!usedBranch) - return [ - new MultiExpression([ - this.consequent.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin)[0], - this.alternate.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin)[0] - ]), - false - ]; - this.expressionsToBeDeoptimized.push(origin); - return usedBranch.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - hasEffects(context) { - if (this.test.hasEffects(context)) - return true; - const usedBranch = this.getUsedBranch(); - if (!usedBranch) { - return this.consequent.hasEffects(context) || this.alternate.hasEffects(context); - } - return usedBranch.hasEffects(context); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - const usedBranch = this.getUsedBranch(); - if (!usedBranch) { - return this.consequent.hasEffectsOnInteractionAtPath(path2, interaction, context) || this.alternate.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - return usedBranch.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - include(context, includeChildrenRecursively) { - this.included = true; - const usedBranch = this.getUsedBranch(); - if (includeChildrenRecursively || this.test.shouldBeIncluded(context) || usedBranch === null) { - this.test.include(context, includeChildrenRecursively); - this.consequent.include(context, includeChildrenRecursively); - this.alternate.include(context, includeChildrenRecursively); - } else { - usedBranch.include(context, includeChildrenRecursively); - } - } - includeCallArguments(context, parameters) { - const usedBranch = this.getUsedBranch(); - if (usedBranch) { - usedBranch.includeCallArguments(context, parameters); - } else { - this.consequent.includeCallArguments(context, parameters); - this.alternate.includeCallArguments(context, parameters); - } - } - removeAnnotations(code) { - this.test.removeAnnotations(code); - } - render(code, options, { isCalleeOfRenderedParent, preventASI, renderedParentType, renderedSurroundingElement } = BLANK) { - const usedBranch = this.getUsedBranch(); - if (this.test.included) { - this.test.render(code, options, { renderedSurroundingElement }); - this.consequent.render(code, options); - this.alternate.render(code, options); - } else { - const colonPos = findFirstOccurrenceOutsideComment(code.original, ":", this.consequent.end); - const inclusionStart = findNonWhiteSpace(code.original, (this.consequent.included ? findFirstOccurrenceOutsideComment(code.original, "?", this.test.end) : colonPos) + 1); - if (preventASI) { - removeLineBreaks(code, inclusionStart, usedBranch.start); - } - code.remove(this.start, inclusionStart); - if (this.consequent.included) { - code.remove(colonPos, this.end); - } - this.test.removeAnnotations(code); - usedBranch.render(code, options, { - isCalleeOfRenderedParent, - preventASI: true, - renderedParentType: renderedParentType || this.parent.type, - renderedSurroundingElement: renderedSurroundingElement || this.parent.type - }); - } - } - getUsedBranch() { - if (this.isBranchResolutionAnalysed) { - return this.usedBranch; - } - this.isBranchResolutionAnalysed = true; - const testValue = this.test.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - return typeof testValue === "symbol" ? null : this.usedBranch = testValue ? this.consequent : this.alternate; - } -}; -var ContinueStatement = class extends NodeBase { - hasEffects(context) { - if (this.label) { - if (!context.ignore.labels.has(this.label.name)) - return true; - context.includedLabels.add(this.label.name); - } else { - if (!context.ignore.continues) - return true; - context.hasContinue = true; - } - context.brokenFlow = true; - return false; - } - include(context) { - this.included = true; - if (this.label) { - this.label.include(); - context.includedLabels.add(this.label.name); - } else { - context.hasContinue = true; - } - context.brokenFlow = true; - } -}; -var DebuggerStatement = class extends NodeBase { - hasEffects() { - return true; - } -}; -var Decorator = class extends NodeBase { - hasEffects(context) { - return this.expression.hasEffects(context) || this.expression.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, context); - } -}; -function hasLoopBodyEffects(context, body) { - const { brokenFlow, hasBreak, hasContinue, ignore } = context; - const { breaks, continues } = ignore; - ignore.breaks = true; - ignore.continues = true; - context.hasBreak = false; - context.hasContinue = false; - if (body.hasEffects(context)) - return true; - ignore.breaks = breaks; - ignore.continues = continues; - context.hasBreak = hasBreak; - context.hasContinue = hasContinue; - context.brokenFlow = brokenFlow; - return false; -} -function includeLoopBody(context, body, includeChildrenRecursively) { - const { brokenFlow, hasBreak, hasContinue } = context; - context.hasBreak = false; - context.hasContinue = false; - body.include(context, includeChildrenRecursively, { asSingleStatement: true }); - context.hasBreak = hasBreak; - context.hasContinue = hasContinue; - context.brokenFlow = brokenFlow; -} -var DoWhileStatement = class extends NodeBase { - hasEffects(context) { - if (this.test.hasEffects(context)) - return true; - return hasLoopBodyEffects(context, this.body); - } - include(context, includeChildrenRecursively) { - this.included = true; - this.test.include(context, includeChildrenRecursively); - includeLoopBody(context, this.body, includeChildrenRecursively); - } -}; -var EmptyStatement = class extends NodeBase { - hasEffects() { - return false; - } -}; -var ExportAllDeclaration = class extends NodeBase { - hasEffects() { - return false; - } - initialise() { - super.initialise(); - this.scope.context.addExport(this); - } - render(code, _options, nodeRenderOptions) { - code.remove(nodeRenderOptions.start, nodeRenderOptions.end); - } - applyDeoptimizations() { - } -}; -ExportAllDeclaration.prototype.needsBoundaries = true; -var FunctionDeclaration = class extends FunctionNode { - initialise() { - super.initialise(); - if (this.id !== null) { - this.id.variable.isId = true; - } - } - onlyFunctionCallUsed() { - var _a; - return ((_a = this.id) == null ? void 0 : _a.variable.getOnlyFunctionCallUsed()) ?? super.onlyFunctionCallUsed(); - } - parseNode(esTreeNode) { - if (esTreeNode.id !== null) { - this.id = new Identifier2(this, this.scope.parent).parseNode(esTreeNode.id); - } - return super.parseNode(esTreeNode); - } -}; -function getDeclarationStart(code, start) { - return findNonWhiteSpace(code, findFirstOccurrenceOutsideComment(code, "default", start) + 7); -} -function getFunctionIdInsertPosition(code, start) { - const declarationEnd = findFirstOccurrenceOutsideComment(code, "function", start) + "function".length; - code = code.slice(declarationEnd, findFirstOccurrenceOutsideComment(code, "(", declarationEnd)); - const generatorStarPos = findFirstOccurrenceOutsideComment(code, "*"); - if (generatorStarPos === -1) { - return declarationEnd; - } - return declarationEnd + generatorStarPos + 1; -} -var ExportDefaultDeclaration2 = class extends NodeBase { - include(context, includeChildrenRecursively) { - super.include(context, includeChildrenRecursively); - if (includeChildrenRecursively) { - this.scope.context.includeVariableInModule(this.variable); - } - } - initialise() { - super.initialise(); - const declaration = this.declaration; - this.declarationName = declaration.id && declaration.id.name || this.declaration.name; - this.variable = this.scope.addExportDefaultDeclaration(this.declarationName || this.scope.context.getModuleName(), this, this.scope.context); - this.scope.context.addExport(this); - } - removeAnnotations(code) { - this.declaration.removeAnnotations(code); - } - render(code, options, nodeRenderOptions) { - const { start, end } = nodeRenderOptions; - const declarationStart = getDeclarationStart(code.original, this.start); - if (this.declaration instanceof FunctionDeclaration) { - this.renderNamedDeclaration(code, declarationStart, this.declaration.id === null ? getFunctionIdInsertPosition(code.original, declarationStart) : null, options); - } else if (this.declaration instanceof ClassDeclaration) { - this.renderNamedDeclaration(code, declarationStart, this.declaration.id === null ? findFirstOccurrenceOutsideComment(code.original, "class", start) + "class".length : null, options); - } else if (this.variable.getOriginalVariable() !== this.variable) { - treeshakeNode(this, code, start, end); - return; - } else if (this.variable.included) { - this.renderVariableDeclaration(code, declarationStart, options); - } else { - code.remove(this.start, declarationStart); - this.declaration.render(code, options, { - renderedSurroundingElement: ExpressionStatement - }); - if (code.original[this.end - 1] !== ";") { - code.appendLeft(this.end, ";"); - } - return; - } - this.declaration.render(code, options); - } - applyDeoptimizations() { - } - renderNamedDeclaration(code, declarationStart, idInsertPosition, options) { - const { exportNamesByVariable, format, snippets: { getPropertyAccess } } = options; - const name = this.variable.getName(getPropertyAccess); - code.remove(this.start, declarationStart); - if (idInsertPosition !== null) { - code.appendLeft(idInsertPosition, ` ${name}`); - } - if (format === "system" && this.declaration instanceof ClassDeclaration && exportNamesByVariable.has(this.variable)) { - code.appendLeft(this.end, ` ${getSystemExportStatement([this.variable], options)};`); - } - } - renderVariableDeclaration(code, declarationStart, { format, exportNamesByVariable, snippets: { cnst, getPropertyAccess } }) { - const hasTrailingSemicolon = code.original.charCodeAt(this.end - 1) === 59; - const systemExportNames = format === "system" && exportNamesByVariable.get(this.variable); - if (systemExportNames) { - code.overwrite(this.start, declarationStart, `${cnst} ${this.variable.getName(getPropertyAccess)} = exports(${JSON.stringify(systemExportNames[0])}, `); - code.appendRight(hasTrailingSemicolon ? this.end - 1 : this.end, ")" + (hasTrailingSemicolon ? "" : ";")); - } else { - code.overwrite(this.start, declarationStart, `${cnst} ${this.variable.getName(getPropertyAccess)} = `); - if (!hasTrailingSemicolon) { - code.appendLeft(this.end, ";"); - } - } - } -}; -ExportDefaultDeclaration2.prototype.needsBoundaries = true; -var ExportNamedDeclaration = class extends NodeBase { - bind() { - var _a; - (_a = this.declaration) == null ? void 0 : _a.bind(); - } - hasEffects(context) { - var _a; - return !!((_a = this.declaration) == null ? void 0 : _a.hasEffects(context)); - } - initialise() { - super.initialise(); - this.scope.context.addExport(this); - } - removeAnnotations(code) { - var _a; - (_a = this.declaration) == null ? void 0 : _a.removeAnnotations(code); - } - render(code, options, nodeRenderOptions) { - const { start, end } = nodeRenderOptions; - if (this.declaration === null) { - code.remove(start, end); - } else { - code.remove(this.start, this.declaration.start); - this.declaration.render(code, options, { end, start }); - } - } - applyDeoptimizations() { - } -}; -ExportNamedDeclaration.prototype.needsBoundaries = true; -var ExportSpecifier = class extends NodeBase { - applyDeoptimizations() { - } -}; -var ForInStatement = class extends NodeBase { - createScope(parentScope) { - this.scope = new BlockScope(parentScope); - } - hasEffects(context) { - const { body, deoptimized, left, right } = this; - if (!deoptimized) - this.applyDeoptimizations(); - if (left.hasEffectsAsAssignmentTarget(context, false) || right.hasEffects(context)) - return true; - return hasLoopBodyEffects(context, body); - } - include(context, includeChildrenRecursively) { - const { body, deoptimized, left, right } = this; - if (!deoptimized) - this.applyDeoptimizations(); - this.included = true; - left.includeAsAssignmentTarget(context, includeChildrenRecursively || true, false); - right.include(context, includeChildrenRecursively); - includeLoopBody(context, body, includeChildrenRecursively); - } - initialise() { - super.initialise(); - this.left.setAssignedValue(UNKNOWN_EXPRESSION); - } - render(code, options) { - this.left.render(code, options, NO_SEMICOLON); - this.right.render(code, options, NO_SEMICOLON); - if (code.original.charCodeAt(this.right.start - 1) === 110) { - code.prependLeft(this.right.start, " "); - } - this.body.render(code, options); - } - applyDeoptimizations() { - this.deoptimized = true; - this.left.deoptimizePath(EMPTY_PATH); - this.scope.context.requestTreeshakingPass(); - } -}; -var ForOfStatement = class extends NodeBase { - get await() { - return isFlagSet( - this.flags, - 131072 - /* Flag.await */ - ); - } - set await(value) { - this.flags = setFlag(this.flags, 131072, value); - } - createScope(parentScope) { - this.scope = new BlockScope(parentScope); - } - hasEffects() { - if (!this.deoptimized) - this.applyDeoptimizations(); - return true; - } - include(context, includeChildrenRecursively) { - const { body, deoptimized, left, right } = this; - if (!deoptimized) - this.applyDeoptimizations(); - this.included = true; - left.includeAsAssignmentTarget(context, includeChildrenRecursively || true, false); - right.include(context, includeChildrenRecursively); - includeLoopBody(context, body, includeChildrenRecursively); - } - initialise() { - super.initialise(); - this.left.setAssignedValue(UNKNOWN_EXPRESSION); - } - render(code, options) { - this.left.render(code, options, NO_SEMICOLON); - this.right.render(code, options, NO_SEMICOLON); - if (code.original.charCodeAt(this.right.start - 1) === 102) { - code.prependLeft(this.right.start, " "); - } - this.body.render(code, options); - } - applyDeoptimizations() { - this.deoptimized = true; - this.left.deoptimizePath(EMPTY_PATH); - this.right.deoptimizePath(UNKNOWN_PATH); - this.scope.context.requestTreeshakingPass(); - } -}; -var ForStatement = class extends NodeBase { - createScope(parentScope) { - this.scope = new BlockScope(parentScope); - } - hasEffects(context) { - var _a, _b, _c; - if (((_a = this.init) == null ? void 0 : _a.hasEffects(context)) || ((_b = this.test) == null ? void 0 : _b.hasEffects(context)) || ((_c = this.update) == null ? void 0 : _c.hasEffects(context))) { - return true; - } - return hasLoopBodyEffects(context, this.body); - } - include(context, includeChildrenRecursively) { - var _a, _b, _c; - this.included = true; - (_a = this.init) == null ? void 0 : _a.include(context, includeChildrenRecursively, { asSingleStatement: true }); - (_b = this.test) == null ? void 0 : _b.include(context, includeChildrenRecursively); - (_c = this.update) == null ? void 0 : _c.include(context, includeChildrenRecursively); - includeLoopBody(context, this.body, includeChildrenRecursively); - } - render(code, options) { - var _a, _b, _c; - (_a = this.init) == null ? void 0 : _a.render(code, options, NO_SEMICOLON); - (_b = this.test) == null ? void 0 : _b.render(code, options, NO_SEMICOLON); - (_c = this.update) == null ? void 0 : _c.render(code, options, NO_SEMICOLON); - this.body.render(code, options); - } -}; -var FunctionExpression = class extends FunctionNode { - createScope(parentScope) { - super.createScope(this.idScope = new ChildScope(parentScope, parentScope.context)); - } - parseNode(esTreeNode) { - if (esTreeNode.id !== null) { - this.id = new Identifier2(this, this.idScope).parseNode(esTreeNode.id); - } - return super.parseNode(esTreeNode); - } - onlyFunctionCallUsed() { - const isIIFE = this.parent.type === CallExpression && this.parent.callee === this && (this.id === null || this.id.variable.getOnlyFunctionCallUsed()); - return isIIFE || super.onlyFunctionCallUsed(); - } - render(code, options, { renderedSurroundingElement } = BLANK) { - super.render(code, options); - if (renderedSurroundingElement === ExpressionStatement) { - code.appendRight(this.start, "("); - code.prependLeft(this.end, ")"); - } - } -}; -var TrackingScope = class extends BlockScope { - constructor() { - super(...arguments); - this.hoistedDeclarations = []; - } - addDeclaration(identifier2, context, init2, kind) { - this.hoistedDeclarations.push(identifier2); - return super.addDeclaration(identifier2, context, init2, kind); - } -}; -var unset = Symbol("unset"); -var IfStatement = class _IfStatement extends NodeBase { - constructor() { - super(...arguments); - this.testValue = unset; - } - deoptimizeCache() { - this.testValue = UnknownValue; - } - hasEffects(context) { - var _a; - if (this.test.hasEffects(context)) { - return true; - } - const testValue = this.getTestValue(); - if (typeof testValue === "symbol") { - const { brokenFlow } = context; - if (this.consequent.hasEffects(context)) - return true; - const consequentBrokenFlow = context.brokenFlow; - context.brokenFlow = brokenFlow; - if (this.alternate === null) - return false; - if (this.alternate.hasEffects(context)) - return true; - context.brokenFlow = context.brokenFlow && consequentBrokenFlow; - return false; - } - return testValue ? this.consequent.hasEffects(context) : !!((_a = this.alternate) == null ? void 0 : _a.hasEffects(context)); - } - include(context, includeChildrenRecursively) { - this.included = true; - if (includeChildrenRecursively) { - this.includeRecursively(includeChildrenRecursively, context); - } else { - const testValue = this.getTestValue(); - if (typeof testValue === "symbol") { - this.includeUnknownTest(context); - } else { - this.includeKnownTest(context, testValue); - } - } - } - parseNode(esTreeNode) { - this.consequent = new (this.scope.context.getNodeConstructor(esTreeNode.consequent.type))(this, this.consequentScope = new TrackingScope(this.scope)).parseNode(esTreeNode.consequent); - if (esTreeNode.alternate) { - this.alternate = new (this.scope.context.getNodeConstructor(esTreeNode.alternate.type))(this, this.alternateScope = new TrackingScope(this.scope)).parseNode(esTreeNode.alternate); - } - return super.parseNode(esTreeNode); - } - render(code, options) { - const { snippets: { getPropertyAccess } } = options; - const testValue = this.getTestValue(); - const hoistedDeclarations = []; - const includesIfElse = this.test.included; - const noTreeshake = !this.scope.context.options.treeshake; - if (includesIfElse) { - this.test.render(code, options); - } else { - code.remove(this.start, this.consequent.start); - } - if (this.consequent.included && (noTreeshake || typeof testValue === "symbol" || testValue)) { - this.consequent.render(code, options); - } else { - code.overwrite(this.consequent.start, this.consequent.end, includesIfElse ? ";" : ""); - hoistedDeclarations.push(...this.consequentScope.hoistedDeclarations); - } - if (this.alternate) { - if (this.alternate.included && (noTreeshake || typeof testValue === "symbol" || !testValue)) { - if (includesIfElse) { - if (code.original.charCodeAt(this.alternate.start - 1) === 101) { - code.prependLeft(this.alternate.start, " "); - } - } else { - code.remove(this.consequent.end, this.alternate.start); - } - this.alternate.render(code, options); - } else { - if (includesIfElse && this.shouldKeepAlternateBranch()) { - code.overwrite(this.alternate.start, this.end, ";"); - } else { - code.remove(this.consequent.end, this.end); - } - hoistedDeclarations.push(...this.alternateScope.hoistedDeclarations); - } - } - this.renderHoistedDeclarations(hoistedDeclarations, code, getPropertyAccess); - } - applyDeoptimizations() { - } - getTestValue() { - if (this.testValue === unset) { - return this.testValue = this.test.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - } - return this.testValue; - } - includeKnownTest(context, testValue) { - var _a; - if (this.test.shouldBeIncluded(context)) { - this.test.include(context, false); - } - if (testValue && this.consequent.shouldBeIncluded(context)) { - this.consequent.include(context, false, { asSingleStatement: true }); - } - if (!testValue && ((_a = this.alternate) == null ? void 0 : _a.shouldBeIncluded(context))) { - this.alternate.include(context, false, { asSingleStatement: true }); - } - } - includeRecursively(includeChildrenRecursively, context) { - var _a; - this.test.include(context, includeChildrenRecursively); - this.consequent.include(context, includeChildrenRecursively); - (_a = this.alternate) == null ? void 0 : _a.include(context, includeChildrenRecursively); - } - includeUnknownTest(context) { - var _a; - this.test.include(context, false); - const { brokenFlow } = context; - let consequentBrokenFlow = false; - if (this.consequent.shouldBeIncluded(context)) { - this.consequent.include(context, false, { asSingleStatement: true }); - consequentBrokenFlow = context.brokenFlow; - context.brokenFlow = brokenFlow; - } - if ((_a = this.alternate) == null ? void 0 : _a.shouldBeIncluded(context)) { - this.alternate.include(context, false, { asSingleStatement: true }); - context.brokenFlow = context.brokenFlow && consequentBrokenFlow; - } - } - renderHoistedDeclarations(hoistedDeclarations, code, getPropertyAccess) { - const hoistedVariables = [ - ...new Set(hoistedDeclarations.map((identifier2) => { - const variable = identifier2.variable; - return variable.included ? variable.getName(getPropertyAccess) : ""; - })) - ].filter(Boolean).join(", "); - if (hoistedVariables) { - const parentType = this.parent.type; - const needsBraces = parentType !== Program && parentType !== BlockStatement; - code.prependRight(this.start, `${needsBraces ? "{ " : ""}var ${hoistedVariables}; `); - if (needsBraces) { - code.appendLeft(this.end, ` }`); - } - } - } - shouldKeepAlternateBranch() { - let currentParent = this.parent; - do { - if (currentParent instanceof _IfStatement && currentParent.alternate) { - return true; - } - if (currentParent instanceof BlockStatement2) { - return false; - } - currentParent = currentParent.parent; - } while (currentParent); - return false; - } -}; -var ImportAttribute = class extends NodeBase { -}; -var ImportDeclaration = class extends NodeBase { - // Do not bind specifiers or attributes - bind() { - } - hasEffects() { - return false; - } - initialise() { - super.initialise(); - this.scope.context.addImport(this); - } - render(code, _options, nodeRenderOptions) { - code.remove(nodeRenderOptions.start, nodeRenderOptions.end); - } - applyDeoptimizations() { - } -}; -ImportDeclaration.prototype.needsBoundaries = true; -var ImportDefaultSpecifier = class extends NodeBase { - applyDeoptimizations() { - } -}; -var INTEROP_DEFAULT_VARIABLE = "_interopDefault"; -var INTEROP_DEFAULT_COMPAT_VARIABLE = "_interopDefaultCompat"; -var INTEROP_NAMESPACE_VARIABLE = "_interopNamespace"; -var INTEROP_NAMESPACE_COMPAT_VARIABLE = "_interopNamespaceCompat"; -var INTEROP_NAMESPACE_DEFAULT_VARIABLE = "_interopNamespaceDefault"; -var INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE = "_interopNamespaceDefaultOnly"; -var MERGE_NAMESPACES_VARIABLE = "_mergeNamespaces"; -var DOCUMENT_CURRENT_SCRIPT = "_documentCurrentScript"; -var defaultInteropHelpersByInteropType = { - auto: INTEROP_DEFAULT_VARIABLE, - compat: INTEROP_DEFAULT_COMPAT_VARIABLE, - default: null, - defaultOnly: null, - esModule: null -}; -var isDefaultAProperty = (interopType, externalLiveBindings) => interopType === "esModule" || externalLiveBindings && (interopType === "auto" || interopType === "compat"); -var namespaceInteropHelpersByInteropType = { - auto: INTEROP_NAMESPACE_VARIABLE, - compat: INTEROP_NAMESPACE_COMPAT_VARIABLE, - default: INTEROP_NAMESPACE_DEFAULT_VARIABLE, - defaultOnly: INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE, - esModule: null -}; -var canDefaultBeTakenFromNamespace = (interopType, externalLiveBindings) => interopType !== "esModule" && isDefaultAProperty(interopType, externalLiveBindings); -var getHelpersBlock = (additionalHelpers, accessedGlobals, indent, snippets, liveBindings, freeze, symbols) => { - const usedHelpers = new Set(additionalHelpers); - for (const variable of HELPER_NAMES) { - if (accessedGlobals.has(variable)) { - usedHelpers.add(variable); - } - } - return HELPER_NAMES.map((variable) => usedHelpers.has(variable) ? HELPER_GENERATORS[variable](indent, snippets, liveBindings, freeze, symbols, usedHelpers) : "").join(""); -}; -var HELPER_GENERATORS = { - [DOCUMENT_CURRENT_SCRIPT](_t, { _, n: n2 }) { - return `var${_}${DOCUMENT_CURRENT_SCRIPT}${_}=${_}typeof${_}document${_}!==${_}'undefined'${_}?${_}document.currentScript${_}:${_}null;${n2}`; - }, - [INTEROP_DEFAULT_COMPAT_VARIABLE](_t, snippets, liveBindings) { - const { _, getDirectReturnFunction, n: n2 } = snippets; - const [left, right] = getDirectReturnFunction(["e"], { - functionReturn: true, - lineBreakIndent: null, - name: INTEROP_DEFAULT_COMPAT_VARIABLE - }); - return `${left}${getIsCompatNamespace(snippets)}${_}?${_}${liveBindings ? getDefaultLiveBinding(snippets) : getDefaultStatic(snippets)}${right}${n2}${n2}`; - }, - [INTEROP_DEFAULT_VARIABLE](_t, snippets, liveBindings) { - const { _, getDirectReturnFunction, n: n2 } = snippets; - const [left, right] = getDirectReturnFunction(["e"], { - functionReturn: true, - lineBreakIndent: null, - name: INTEROP_DEFAULT_VARIABLE - }); - return `${left}e${_}&&${_}e.__esModule${_}?${_}${liveBindings ? getDefaultLiveBinding(snippets) : getDefaultStatic(snippets)}${right}${n2}${n2}`; - }, - [INTEROP_NAMESPACE_COMPAT_VARIABLE](t, snippets, liveBindings, freeze, symbols, usedHelpers) { - const { _, getDirectReturnFunction, n: n2 } = snippets; - if (usedHelpers.has(INTEROP_NAMESPACE_DEFAULT_VARIABLE)) { - const [left, right] = getDirectReturnFunction(["e"], { - functionReturn: true, - lineBreakIndent: null, - name: INTEROP_NAMESPACE_COMPAT_VARIABLE - }); - return `${left}${getIsCompatNamespace(snippets)}${_}?${_}e${_}:${_}${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${right}${n2}${n2}`; - } - return `function ${INTEROP_NAMESPACE_COMPAT_VARIABLE}(e)${_}{${n2}${t}if${_}(${getIsCompatNamespace(snippets)})${_}return e;${n2}` + createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) + `}${n2}${n2}`; - }, - [INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE](_t, snippets, _liveBindings, freeze, symbols) { - const { getDirectReturnFunction, getObject, n: n2, _ } = snippets; - const [left, right] = getDirectReturnFunction(["e"], { - functionReturn: true, - lineBreakIndent: null, - name: INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE - }); - return `${left}${getFrozen(freeze, getWithToStringTag(symbols, getObject([ - [null, `__proto__:${_}null`], - ["default", "e"] - ], { lineBreakIndent: null }), snippets))}${right}${n2}${n2}`; - }, - [INTEROP_NAMESPACE_DEFAULT_VARIABLE](t, snippets, liveBindings, freeze, symbols) { - const { _, n: n2 } = snippets; - return `function ${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${_}{${n2}` + createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) + `}${n2}${n2}`; - }, - [INTEROP_NAMESPACE_VARIABLE](t, snippets, liveBindings, freeze, symbols, usedHelpers) { - const { _, getDirectReturnFunction, n: n2 } = snippets; - if (usedHelpers.has(INTEROP_NAMESPACE_DEFAULT_VARIABLE)) { - const [left, right] = getDirectReturnFunction(["e"], { - functionReturn: true, - lineBreakIndent: null, - name: INTEROP_NAMESPACE_VARIABLE - }); - return `${left}e${_}&&${_}e.__esModule${_}?${_}e${_}:${_}${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${right}${n2}${n2}`; - } - return `function ${INTEROP_NAMESPACE_VARIABLE}(e)${_}{${n2}${t}if${_}(e${_}&&${_}e.__esModule)${_}return e;${n2}` + createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) + `}${n2}${n2}`; - }, - [MERGE_NAMESPACES_VARIABLE](t, snippets, liveBindings, freeze, symbols) { - const { _, cnst, n: n2 } = snippets; - const useForEach = cnst === "var" && liveBindings; - return `function ${MERGE_NAMESPACES_VARIABLE}(n, m)${_}{${n2}${t}${loopOverNamespaces(`{${n2}${t}${t}${t}if${_}(k${_}!==${_}'default'${_}&&${_}!(k in n))${_}{${n2}` + (liveBindings ? useForEach ? copyOwnPropertyLiveBinding : copyPropertyLiveBinding : copyPropertyStatic)(t, t + t + t + t, snippets) + `${t}${t}${t}}${n2}${t}${t}}`, useForEach, t, snippets)}${n2}${t}return ${getFrozen(freeze, getWithToStringTag(symbols, "n", snippets))};${n2}}${n2}${n2}`; - } -}; -var getDefaultLiveBinding = ({ _, getObject }) => `e${_}:${_}${getObject([["default", "e"]], { lineBreakIndent: null })}`; -var getDefaultStatic = ({ _, getPropertyAccess }) => `e${getPropertyAccess("default")}${_}:${_}e`; -var getIsCompatNamespace = ({ _ }) => `e${_}&&${_}typeof e${_}===${_}'object'${_}&&${_}'default'${_}in e`; -var createNamespaceObject = (t, index, snippets, liveBindings, freeze, symbols) => { - const { _, cnst, getObject, getPropertyAccess, n: n2, s } = snippets; - const copyProperty = `{${n2}` + (liveBindings ? copyNonDefaultOwnPropertyLiveBinding : copyPropertyStatic)(t, index + t + t, snippets) + `${index}${t}}`; - return `${index}${cnst} n${_}=${_}Object.create(null${symbols ? `,${_}{${_}[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}${_}}` : ""});${n2}${index}if${_}(e)${_}{${n2}${index}${t}${loopOverKeys(copyProperty, !liveBindings, snippets)}${n2}${index}}${n2}${index}n${getPropertyAccess("default")}${_}=${_}e;${n2}${index}return ${getFrozen(freeze, "n")}${s}${n2}`; -}; -var loopOverKeys = (body, allowVariableLoopVariable, { _, cnst, getFunctionIntro, s }) => cnst !== "var" || allowVariableLoopVariable ? `for${_}(${cnst} k in e)${_}${body}` : `Object.keys(e).forEach(${getFunctionIntro(["k"], { - isAsync: false, - name: null -})}${body})${s}`; -var loopOverNamespaces = (body, useForEach, t, { _, cnst, getDirectReturnFunction, getFunctionIntro, n: n2 }) => { - if (useForEach) { - const [left, right] = getDirectReturnFunction(["e"], { - functionReturn: false, - lineBreakIndent: { base: t, t }, - name: null - }); - return `m.forEach(${left}e${_}&&${_}typeof e${_}!==${_}'string'${_}&&${_}!Array.isArray(e)${_}&&${_}Object.keys(e).forEach(${getFunctionIntro(["k"], { - isAsync: false, - name: null - })}${body})${right});`; - } - return `for${_}(var i${_}=${_}0;${_}i${_}<${_}m.length;${_}i++)${_}{${n2}${t}${t}${cnst} e${_}=${_}m[i];${n2}${t}${t}if${_}(typeof e${_}!==${_}'string'${_}&&${_}!Array.isArray(e))${_}{${_}for${_}(${cnst} k in e)${_}${body}${_}}${n2}${t}}`; -}; -var copyNonDefaultOwnPropertyLiveBinding = (t, index, snippets) => { - const { _, n: n2 } = snippets; - return `${index}if${_}(k${_}!==${_}'default')${_}{${n2}` + copyOwnPropertyLiveBinding(t, index + t, snippets) + `${index}}${n2}`; -}; -var copyOwnPropertyLiveBinding = (t, index, { _, cnst, getDirectReturnFunction, n: n2 }) => { - const [left, right] = getDirectReturnFunction([], { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - return `${index}${cnst} d${_}=${_}Object.getOwnPropertyDescriptor(e,${_}k);${n2}${index}Object.defineProperty(n,${_}k,${_}d.get${_}?${_}d${_}:${_}{${n2}${index}${t}enumerable:${_}true,${n2}${index}${t}get:${_}${left}e[k]${right}${n2}${index}});${n2}`; -}; -var copyPropertyLiveBinding = (t, index, { _, cnst, getDirectReturnFunction, n: n2 }) => { - const [left, right] = getDirectReturnFunction([], { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - return `${index}${cnst} d${_}=${_}Object.getOwnPropertyDescriptor(e,${_}k);${n2}${index}if${_}(d)${_}{${n2}${index}${t}Object.defineProperty(n,${_}k,${_}d.get${_}?${_}d${_}:${_}{${n2}${index}${t}${t}enumerable:${_}true,${n2}${index}${t}${t}get:${_}${left}e[k]${right}${n2}${index}${t}});${n2}${index}}${n2}`; -}; -var copyPropertyStatic = (_t, index, { _, n: n2 }) => `${index}n[k]${_}=${_}e[k];${n2}`; -var getFrozen = (freeze, fragment) => freeze ? `Object.freeze(${fragment})` : fragment; -var getWithToStringTag = (symbols, fragment, { _, getObject }) => symbols ? `Object.defineProperty(${fragment},${_}Symbol.toStringTag,${_}${getToStringTagValue(getObject)})` : fragment; -var HELPER_NAMES = Object.keys(HELPER_GENERATORS); -function getToStringTagValue(getObject) { - return getObject([["value", "'Module'"]], { - lineBreakIndent: null - }); -} -function isReassignedExportsMember(variable, exportNamesByVariable) { - return variable.renderBaseName !== null && exportNamesByVariable.has(variable) && variable.isReassigned; -} -var VariableDeclarator2 = class extends NodeBase { - declareDeclarator(kind, isUsingDeclaration) { - this.isUsingDeclaration = isUsingDeclaration; - this.id.declare(kind, this.init || UNDEFINED_EXPRESSION); - } - deoptimizePath(path2) { - this.id.deoptimizePath(path2); - } - hasEffects(context) { - var _a; - if (!this.deoptimized) - this.applyDeoptimizations(); - const initEffect = (_a = this.init) == null ? void 0 : _a.hasEffects(context); - this.id.markDeclarationReached(); - return initEffect || this.id.hasEffects(context) || this.isUsingDeclaration; - } - include(context, includeChildrenRecursively) { - const { deoptimized, id, init: init2 } = this; - if (!deoptimized) - this.applyDeoptimizations(); - this.included = true; - init2 == null ? void 0 : init2.include(context, includeChildrenRecursively); - id.markDeclarationReached(); - if (includeChildrenRecursively || id.shouldBeIncluded(context)) { - id.include(context, includeChildrenRecursively); - } - } - removeAnnotations(code) { - var _a; - (_a = this.init) == null ? void 0 : _a.removeAnnotations(code); - } - render(code, options) { - const { exportNamesByVariable, snippets: { _, getPropertyAccess } } = options; - const { end, id, init: init2, start } = this; - const renderId = id.included || this.isUsingDeclaration; - if (renderId) { - id.render(code, options); - } else { - const operatorPos = findFirstOccurrenceOutsideComment(code.original, "=", id.end); - code.remove(start, findNonWhiteSpace(code.original, operatorPos + 1)); - } - if (init2) { - if (id instanceof Identifier2 && init2 instanceof ClassExpression && !init2.id) { - const renderedVariable = id.variable.getName(getPropertyAccess); - if (renderedVariable !== id.name) { - code.appendLeft(init2.start + 5, ` ${id.name}`); - } - } - init2.render(code, options, renderId ? BLANK : { renderedSurroundingElement: ExpressionStatement }); - } else if (id instanceof Identifier2 && isReassignedExportsMember(id.variable, exportNamesByVariable)) { - code.appendLeft(end, `${_}=${_}void 0`); - } - } - applyDeoptimizations() { - this.deoptimized = true; - const { id, init: init2 } = this; - if (init2 && id instanceof Identifier2 && init2 instanceof ClassExpression && !init2.id) { - const { name, variable } = id; - for (const accessedVariable of init2.scope.accessedOutsideVariables.values()) { - if (accessedVariable !== variable) { - accessedVariable.forbidName(name); - } - } - } - } -}; -var ImportExpression = class extends NodeBase { - constructor() { - super(...arguments); - this.inlineNamespace = null; - this.attributes = null; - this.mechanism = null; - this.namespaceExportName = void 0; - this.resolution = null; - this.resolutionString = null; - } - // Do not bind attributes - bind() { - this.source.bind(); - } - /** - * Get imported variables for deterministic usage, valid cases are: - * - * - `const { foo } = await import('bar')`. - * - `(await import('bar')).foo` - * - `import('bar').then(({ foo }) => {})` - * - * Returns empty array if it's side-effect only import. - * Returns undefined if it's not fully deterministic. - */ - getDeterministicImportedNames() { - const parent1 = this.parent; - if (parent1 instanceof ExpressionStatement2) { - return EMPTY_ARRAY; - } - if (parent1 instanceof AwaitExpression) { - const parent2 = parent1.parent; - if (parent2 instanceof ExpressionStatement2) { - return EMPTY_ARRAY; - } - if (parent2 instanceof VariableDeclarator2) { - const declaration = parent2.id; - return declaration instanceof ObjectPattern ? getDeterministicObjectDestructure(declaration) : void 0; - } - if (parent2 instanceof MemberExpression) { - const id = parent2.property; - if (!parent2.computed && id instanceof Identifier2) { - return [id.name]; - } - } - return; - } - if (parent1 instanceof MemberExpression) { - const callExpression2 = parent1.parent; - const property2 = parent1.property; - if (!(callExpression2 instanceof CallExpression2) || !(property2 instanceof Identifier2)) { - return; - } - const memberName = property2.name; - if (callExpression2.parent instanceof ExpressionStatement2 && ["catch", "finally"].includes(memberName)) { - return EMPTY_ARRAY; - } - if (memberName !== "then") - return; - if (callExpression2.arguments.length === 0) { - return EMPTY_ARRAY; - } - const argument = callExpression2.arguments[0]; - if (callExpression2.arguments.length !== 1 || !(argument instanceof ArrowFunctionExpression2 || argument instanceof FunctionExpression)) { - return; - } - if (argument.params.length === 0) { - return EMPTY_ARRAY; - } - const declaration = argument.params[0]; - if (argument.params.length === 1 && declaration instanceof ObjectPattern) { - return getDeterministicObjectDestructure(declaration); - } - return; - } - } - hasEffects() { - return true; - } - include(context, includeChildrenRecursively) { - if (!this.included) { - this.included = true; - this.scope.context.includeDynamicImport(this); - this.scope.addAccessedDynamicImport(this); - } - this.source.include(context, includeChildrenRecursively); - } - initialise() { - super.initialise(); - this.scope.context.addDynamicImport(this); - } - parseNode(esTreeNode) { - this.sourceAstNode = esTreeNode.source; - return super.parseNode(esTreeNode); - } - render(code, options) { - const { snippets: { _, getDirectReturnFunction, getObject, getPropertyAccess } } = options; - if (this.inlineNamespace) { - const [left, right] = getDirectReturnFunction([], { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - code.overwrite(this.start, this.end, `Promise.resolve().then(${left}${this.inlineNamespace.getName(getPropertyAccess)}${right})`); - return; - } - if (this.mechanism) { - code.overwrite(this.start, findFirstOccurrenceOutsideComment(code.original, "(", this.start + 6) + 1, this.mechanism.left); - code.overwrite(this.end - 1, this.end, this.mechanism.right); - } - if (this.resolutionString) { - code.overwrite(this.source.start, this.source.end, this.resolutionString); - if (this.namespaceExportName) { - const [left, right] = getDirectReturnFunction(["n"], { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - code.prependLeft(this.end, `.then(${left}n.${this.namespaceExportName}${right})`); - } - } else { - this.source.render(code, options); - } - if (this.attributes !== true) { - if (this.options) { - code.overwrite(this.source.end, this.end - 1, "", { contentOnly: true }); - } - if (this.attributes) { - code.appendLeft(this.end - 1, `,${_}${getObject([["assert", this.attributes]], { - lineBreakIndent: null - })}`); - } - } - } - setExternalResolution(exportMode, resolution, options, snippets, pluginDriver, accessedGlobalsByScope, resolutionString, namespaceExportName, attributes) { - const { format } = options; - this.inlineNamespace = null; - this.resolution = resolution; - this.resolutionString = resolutionString; - this.namespaceExportName = namespaceExportName; - this.attributes = attributes; - const accessedGlobals = [...accessedImportGlobals[format] || []]; - let helper; - ({ helper, mechanism: this.mechanism } = this.getDynamicImportMechanismAndHelper(resolution, exportMode, options, snippets, pluginDriver)); - if (helper) { - accessedGlobals.push(helper); - } - if (accessedGlobals.length > 0) { - this.scope.addAccessedGlobals(accessedGlobals, accessedGlobalsByScope); - } - } - setInternalResolution(inlineNamespace) { - this.inlineNamespace = inlineNamespace; - } - applyDeoptimizations() { - } - getDynamicImportMechanismAndHelper(resolution, exportMode, { compact, dynamicImportInCjs, format, generatedCode: { arrowFunctions }, interop }, { _, getDirectReturnFunction, getDirectReturnIifeLeft }, pluginDriver) { - const mechanism = pluginDriver.hookFirstSync("renderDynamicImport", [ - { - customResolution: typeof this.resolution === "string" ? this.resolution : null, - format, - moduleId: this.scope.context.module.id, - targetModuleId: this.resolution && typeof this.resolution !== "string" ? this.resolution.id : null - } - ]); - if (mechanism) { - return { helper: null, mechanism }; - } - const hasDynamicTarget = !this.resolution || typeof this.resolution === "string"; - switch (format) { - case "cjs": { - if (dynamicImportInCjs && (!resolution || typeof resolution === "string" || resolution instanceof ExternalModule)) { - return { helper: null, mechanism: null }; - } - const helper = getInteropHelper(resolution, exportMode, interop); - let left = `require(`; - let right = `)`; - if (helper) { - left = `/*#__PURE__*/${helper}(${left}`; - right += ")"; - } - const [functionLeft, functionRight] = getDirectReturnFunction([], { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - left = `Promise.resolve().then(${functionLeft}${left}`; - right += `${functionRight})`; - if (!arrowFunctions && hasDynamicTarget) { - left = getDirectReturnIifeLeft(["t"], `${left}t${right}`, { - needsArrowReturnParens: false, - needsWrappedFunction: true - }); - right = ")"; - } - return { - helper, - mechanism: { left, right } - }; - } - case "amd": { - const resolve2 = compact ? "c" : "resolve"; - const reject = compact ? "e" : "reject"; - const helper = getInteropHelper(resolution, exportMode, interop); - const [resolveLeft, resolveRight] = getDirectReturnFunction(["m"], { - functionReturn: false, - lineBreakIndent: null, - name: null - }); - const resolveNamespace = helper ? `${resolveLeft}${resolve2}(/*#__PURE__*/${helper}(m))${resolveRight}` : resolve2; - const [handlerLeft, handlerRight] = getDirectReturnFunction([resolve2, reject], { - functionReturn: false, - lineBreakIndent: null, - name: null - }); - let left = `new Promise(${handlerLeft}require([`; - let right = `],${_}${resolveNamespace},${_}${reject})${handlerRight})`; - if (!arrowFunctions && hasDynamicTarget) { - left = getDirectReturnIifeLeft(["t"], `${left}t${right}`, { - needsArrowReturnParens: false, - needsWrappedFunction: true - }); - right = ")"; - } - return { - helper, - mechanism: { left, right } - }; - } - case "system": { - return { - helper: null, - mechanism: { - left: "module.import(", - right: ")" - } - }; - } - } - return { helper: null, mechanism: null }; - } -}; -function getInteropHelper(resolution, exportMode, interop) { - return exportMode === "external" ? namespaceInteropHelpersByInteropType[interop(resolution instanceof ExternalModule ? resolution.id : null)] : exportMode === "default" ? INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE : null; -} -var accessedImportGlobals = { - amd: ["require"], - cjs: ["require"], - system: ["module"] -}; -function getDeterministicObjectDestructure(objectPattern2) { - const variables = []; - for (const property2 of objectPattern2.properties) { - if (property2.type === "RestElement" || property2.computed || property2.key.type !== "Identifier") - return; - variables.push(property2.key.name); - } - return variables; -} -var ImportNamespaceSpecifier = class extends NodeBase { - applyDeoptimizations() { - } -}; -var ImportSpecifier = class extends NodeBase { - applyDeoptimizations() { - } -}; -var LabeledStatement = class extends NodeBase { - hasEffects(context) { - const { brokenFlow, includedLabels } = context; - context.ignore.labels.add(this.label.name); - context.includedLabels = /* @__PURE__ */ new Set(); - let bodyHasEffects = false; - if (this.body.hasEffects(context)) { - bodyHasEffects = true; - } else { - context.ignore.labels.delete(this.label.name); - if (context.includedLabels.has(this.label.name)) { - context.includedLabels.delete(this.label.name); - context.brokenFlow = brokenFlow; - } - } - context.includedLabels = /* @__PURE__ */ new Set([...includedLabels, ...context.includedLabels]); - return bodyHasEffects; - } - include(context, includeChildrenRecursively) { - this.included = true; - const { brokenFlow, includedLabels } = context; - context.includedLabels = /* @__PURE__ */ new Set(); - this.body.include(context, includeChildrenRecursively); - if (includeChildrenRecursively || context.includedLabels.has(this.label.name)) { - this.label.include(); - context.includedLabels.delete(this.label.name); - context.brokenFlow = brokenFlow; - } - context.includedLabels = /* @__PURE__ */ new Set([...includedLabels, ...context.includedLabels]); - } - render(code, options) { - if (this.label.included) { - this.label.render(code, options); - } else { - code.remove(this.start, findNonWhiteSpace(code.original, findFirstOccurrenceOutsideComment(code.original, ":", this.label.end) + 1)); - } - this.body.render(code, options); - } -}; -var LogicalExpression = class extends NodeBase { - constructor() { - super(...arguments); - this.expressionsToBeDeoptimized = []; - this.usedBranch = null; - } - //private isBranchResolutionAnalysed = false; - get isBranchResolutionAnalysed() { - return isFlagSet( - this.flags, - 65536 - /* Flag.isBranchResolutionAnalysed */ - ); - } - set isBranchResolutionAnalysed(value) { - this.flags = setFlag(this.flags, 65536, value); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.left.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - this.right.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizeCache() { - if (this.usedBranch) { - const unusedBranch = this.usedBranch === this.left ? this.right : this.left; - this.usedBranch = null; - unusedBranch.deoptimizePath(UNKNOWN_PATH); - const { scope: { context }, expressionsToBeDeoptimized } = this; - this.expressionsToBeDeoptimized = EMPTY_ARRAY; - for (const expression of expressionsToBeDeoptimized) { - expression.deoptimizeCache(); - } - context.requestTreeshakingPass(); - } - } - deoptimizePath(path2) { - const usedBranch = this.getUsedBranch(); - if (usedBranch) { - usedBranch.deoptimizePath(path2); - } else { - this.left.deoptimizePath(path2); - this.right.deoptimizePath(path2); - } - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - const usedBranch = this.getUsedBranch(); - if (!usedBranch) - return UnknownValue; - this.expressionsToBeDeoptimized.push(origin); - return usedBranch.getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - const usedBranch = this.getUsedBranch(); - if (!usedBranch) - return [ - new MultiExpression([ - this.left.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin)[0], - this.right.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin)[0] - ]), - false - ]; - this.expressionsToBeDeoptimized.push(origin); - return usedBranch.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - hasEffects(context) { - if (this.left.hasEffects(context)) { - return true; - } - if (this.getUsedBranch() !== this.left) { - return this.right.hasEffects(context); - } - return false; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - const usedBranch = this.getUsedBranch(); - if (!usedBranch) { - return this.left.hasEffectsOnInteractionAtPath(path2, interaction, context) || this.right.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - return usedBranch.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - include(context, includeChildrenRecursively) { - this.included = true; - const usedBranch = this.getUsedBranch(); - if (includeChildrenRecursively || usedBranch === this.right && this.left.shouldBeIncluded(context) || !usedBranch) { - this.left.include(context, includeChildrenRecursively); - this.right.include(context, includeChildrenRecursively); - } else { - usedBranch.include(context, includeChildrenRecursively); - } - } - removeAnnotations(code) { - this.left.removeAnnotations(code); - } - render(code, options, { isCalleeOfRenderedParent, preventASI, renderedParentType, renderedSurroundingElement } = BLANK) { - if (!this.left.included || !this.right.included) { - const operatorPos = findFirstOccurrenceOutsideComment(code.original, this.operator, this.left.end); - if (this.right.included) { - const removePos = findNonWhiteSpace(code.original, operatorPos + 2); - code.remove(this.start, removePos); - if (preventASI) { - removeLineBreaks(code, removePos, this.right.start); - } - this.left.removeAnnotations(code); - } else { - code.remove(findLastWhiteSpaceReverse(code.original, this.left.end, operatorPos), this.end); - } - this.getUsedBranch().render(code, options, { - isCalleeOfRenderedParent, - preventASI, - renderedParentType: renderedParentType || this.parent.type, - renderedSurroundingElement: renderedSurroundingElement || this.parent.type - }); - } else { - this.left.render(code, options, { - preventASI, - renderedSurroundingElement - }); - this.right.render(code, options); - } - } - getUsedBranch() { - if (!this.isBranchResolutionAnalysed) { - this.isBranchResolutionAnalysed = true; - const leftValue = this.left.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - if (typeof leftValue === "symbol") { - return null; - } else { - this.usedBranch = this.operator === "||" && leftValue || this.operator === "&&" && !leftValue || this.operator === "??" && leftValue != null ? this.left : this.right; - } - } - return this.usedBranch; - } -}; -var FILE_PREFIX = "ROLLUP_FILE_URL_"; -var IMPORT = "import"; -var MetaProperty = class extends NodeBase { - constructor() { - super(...arguments); - this.metaProperty = null; - this.preliminaryChunkId = null; - this.referenceId = null; - } - getReferencedFileName(outputPluginDriver) { - const { meta: { name }, metaProperty: metaProperty2 } = this; - if (name === IMPORT && (metaProperty2 == null ? void 0 : metaProperty2.startsWith(FILE_PREFIX))) { - return outputPluginDriver.getFileName(metaProperty2.slice(FILE_PREFIX.length)); - } - return null; - } - hasEffects() { - return false; - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return path2.length > 1 || type !== INTERACTION_ACCESSED; - } - include() { - if (!this.included) { - this.included = true; - if (this.meta.name === IMPORT) { - this.scope.context.addImportMeta(this); - const parent = this.parent; - const metaProperty2 = this.metaProperty = parent instanceof MemberExpression && typeof parent.propertyKey === "string" ? parent.propertyKey : null; - if (metaProperty2 == null ? void 0 : metaProperty2.startsWith(FILE_PREFIX)) { - this.referenceId = metaProperty2.slice(FILE_PREFIX.length); - } - } - } - } - render(code, renderOptions) { - var _a; - const { format, pluginDriver, snippets } = renderOptions; - const { scope: { context: { module } }, meta: { name }, metaProperty: metaProperty2, parent, preliminaryChunkId, referenceId, start, end } = this; - const { id: moduleId } = module; - if (name !== IMPORT) - return; - const chunkId = preliminaryChunkId; - if (referenceId) { - const fileName = pluginDriver.getFileName(referenceId); - const relativePath = normalize((0, import_node_path.relative)((0, import_node_path.dirname)(chunkId), fileName)); - const replacement2 = pluginDriver.hookFirstSync("resolveFileUrl", [ - { chunkId, fileName, format, moduleId, referenceId, relativePath } - ]) || relativeUrlMechanisms[format](relativePath); - code.overwrite(parent.start, parent.end, replacement2, { contentOnly: true }); - return; - } - let replacement = pluginDriver.hookFirstSync("resolveImportMeta", [ - metaProperty2, - { chunkId, format, moduleId } - ]); - if (!replacement) { - replacement = (_a = importMetaMechanisms[format]) == null ? void 0 : _a.call(importMetaMechanisms, metaProperty2, { chunkId, snippets }); - renderOptions.accessedDocumentCurrentScript || (renderOptions.accessedDocumentCurrentScript = formatsMaybeAccessDocumentCurrentScript.includes(format) && replacement !== "undefined"); - } - if (typeof replacement === "string") { - if (parent instanceof MemberExpression) { - code.overwrite(parent.start, parent.end, replacement, { contentOnly: true }); - } else { - code.overwrite(start, end, replacement, { contentOnly: true }); - } - } - } - setResolution(format, accessedGlobalsByScope, preliminaryChunkId) { - var _a; - this.preliminaryChunkId = preliminaryChunkId; - const accessedGlobals = (((_a = this.metaProperty) == null ? void 0 : _a.startsWith(FILE_PREFIX)) ? accessedFileUrlGlobals : accessedMetaUrlGlobals)[format]; - if (accessedGlobals.length > 0) { - this.scope.addAccessedGlobals(accessedGlobals, accessedGlobalsByScope); - } - } -}; -var formatsMaybeAccessDocumentCurrentScript = ["cjs", "iife", "umd"]; -var accessedMetaUrlGlobals = { - amd: ["document", "module", "URL"], - cjs: ["document", "require", "URL", DOCUMENT_CURRENT_SCRIPT], - es: [], - iife: ["document", "URL", DOCUMENT_CURRENT_SCRIPT], - system: ["module"], - umd: ["document", "require", "URL", DOCUMENT_CURRENT_SCRIPT] -}; -var accessedFileUrlGlobals = { - amd: ["document", "require", "URL"], - cjs: ["document", "require", "URL"], - es: [], - iife: ["document", "URL"], - system: ["module", "URL"], - umd: ["document", "require", "URL"] -}; -var getResolveUrl = (path2, URL2 = "URL") => `new ${URL2}(${path2}).href`; -var getRelativeUrlFromDocument = (relativePath, umd2 = false) => getResolveUrl(`'${escapeId(relativePath)}', ${umd2 ? `typeof document === 'undefined' ? location.href : ` : ""}document.currentScript && document.currentScript.src || document.baseURI`); -var getGenericImportMetaMechanism = (getUrl) => (property2, { chunkId }) => { - const urlMechanism = getUrl(chunkId); - return property2 === null ? `({ url: ${urlMechanism} })` : property2 === "url" ? urlMechanism : "undefined"; -}; -var getFileUrlFromFullPath = (path2) => `require('u' + 'rl').pathToFileURL(${path2}).href`; -var getFileUrlFromRelativePath = (path2) => getFileUrlFromFullPath(`__dirname + '/${escapeId(path2)}'`); -var getUrlFromDocument = (chunkId, umd2 = false) => `${umd2 ? `typeof document === 'undefined' ? location.href : ` : ""}(${DOCUMENT_CURRENT_SCRIPT} && ${DOCUMENT_CURRENT_SCRIPT}.src || new URL('${escapeId(chunkId)}', document.baseURI).href)`; -var relativeUrlMechanisms = { - amd: (relativePath) => { - if (relativePath[0] !== ".") - relativePath = "./" + relativePath; - return getResolveUrl(`require.toUrl('${escapeId(relativePath)}'), document.baseURI`); - }, - cjs: (relativePath) => `(typeof document === 'undefined' ? ${getFileUrlFromRelativePath(relativePath)} : ${getRelativeUrlFromDocument(relativePath)})`, - es: (relativePath) => getResolveUrl(`'${escapeId(relativePath)}', import.meta.url`), - iife: (relativePath) => getRelativeUrlFromDocument(relativePath), - system: (relativePath) => getResolveUrl(`'${escapeId(relativePath)}', module.meta.url`), - umd: (relativePath) => `(typeof document === 'undefined' && typeof location === 'undefined' ? ${getFileUrlFromRelativePath(relativePath)} : ${getRelativeUrlFromDocument(relativePath, true)})` -}; -var importMetaMechanisms = { - amd: getGenericImportMetaMechanism(() => getResolveUrl(`module.uri, document.baseURI`)), - cjs: getGenericImportMetaMechanism((chunkId) => `(typeof document === 'undefined' ? ${getFileUrlFromFullPath("__filename")} : ${getUrlFromDocument(chunkId)})`), - iife: getGenericImportMetaMechanism((chunkId) => getUrlFromDocument(chunkId)), - system: (property2, { snippets: { getPropertyAccess } }) => property2 === null ? `module.meta` : `module.meta${getPropertyAccess(property2)}`, - umd: getGenericImportMetaMechanism((chunkId) => `(typeof document === 'undefined' && typeof location === 'undefined' ? ${getFileUrlFromFullPath("__filename")} : ${getUrlFromDocument(chunkId, true)})`) -}; -var NewExpression = class extends NodeBase { - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - for (const argument of this.arguments) { - if (argument.hasEffects(context)) - return true; - } - if (this.annotationPure) { - return false; - } - return this.callee.hasEffects(context) || this.callee.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context); - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return path2.length > 0 || type !== INTERACTION_ACCESSED; - } - include(context, includeChildrenRecursively) { - if (!this.deoptimized) - this.applyDeoptimizations(); - if (includeChildrenRecursively) { - super.include(context, includeChildrenRecursively); - } else { - this.included = true; - this.callee.include(context, false); - } - this.callee.includeCallArguments(context, this.arguments); - } - initialise() { - super.initialise(); - this.interaction = { - args: [null, ...this.arguments], - type: INTERACTION_CALLED, - withNew: true - }; - if (this.annotations && this.scope.context.options.treeshake.annotations) { - this.annotationPure = this.annotations.some((comment) => comment.type === "pure"); - } - } - render(code, options) { - this.callee.render(code, options); - renderCallArguments(code, options, this); - } - applyDeoptimizations() { - this.deoptimized = true; - this.callee.deoptimizeArgumentsOnInteractionAtPath(this.interaction, EMPTY_PATH, SHARED_RECURSION_TRACKER); - this.scope.context.requestTreeshakingPass(); - } -}; -var ObjectExpression = class extends NodeBase { - constructor() { - super(...arguments); - this.objectEntity = null; - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizeCache() { - this.getObjectEntity().deoptimizeAllProperties(); - } - deoptimizePath(path2) { - this.getObjectEntity().deoptimizePath(path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.getObjectEntity().getLiteralValueAtPath(path2, recursionTracker, origin); - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return this.getObjectEntity().hasEffectsOnInteractionAtPath(path2, interaction, context); - } - render(code, options, { renderedSurroundingElement } = BLANK) { - super.render(code, options); - if (renderedSurroundingElement === ExpressionStatement || renderedSurroundingElement === ArrowFunctionExpression) { - code.appendRight(this.start, "("); - code.prependLeft(this.end, ")"); - } - } - applyDeoptimizations() { - } - getObjectEntity() { - if (this.objectEntity !== null) { - return this.objectEntity; - } - let prototype = OBJECT_PROTOTYPE; - const properties = []; - for (const property2 of this.properties) { - if (property2 instanceof SpreadElement) { - properties.push({ key: UnknownKey, kind: "init", property: property2 }); - continue; - } - let key; - if (property2.computed) { - const keyValue = property2.key.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this); - if (typeof keyValue === "symbol") { - properties.push({ key: UnknownKey, kind: property2.kind, property: property2 }); - continue; - } else { - key = String(keyValue); - } - } else { - key = property2.key instanceof Identifier2 ? property2.key.name : String(property2.key.value); - if (key === "__proto__" && property2.kind === "init") { - prototype = property2.value instanceof Literal2 && property2.value.value === null ? null : property2.value; - continue; - } - } - properties.push({ key, kind: property2.kind, property: property2 }); - } - return this.objectEntity = new ObjectEntity(properties, prototype); - } -}; -var PanicError = class extends NodeBase { - initialise() { - const id = this.scope.context.module.id; - const parseError2 = getRollupError(logParseError(this.message)); - const moduleParseError = logModuleParseError(parseError2, id); - return error(moduleParseError); - } -}; -var ParseError = class extends NodeBase { - initialise() { - const pos = this.start; - const id = this.scope.context.module.id; - const parseError2 = getRollupError(logParseError(this.message, pos)); - const moduleParseError = logModuleParseError(parseError2, id); - this.scope.context.error(moduleParseError, pos); - } -}; -var PrivateIdentifier = class extends NodeBase { -}; -var Program2 = class extends NodeBase { - constructor() { - super(...arguments); - this.hasCachedEffect = null; - this.hasLoggedEffect = false; - } - hasCachedEffects() { - if (!this.included) { - return false; - } - return this.hasCachedEffect === null ? this.hasCachedEffect = this.hasEffects(createHasEffectsContext()) : this.hasCachedEffect; - } - hasEffects(context) { - for (const node of this.body) { - if (node.hasEffects(context)) { - if (this.scope.context.options.experimentalLogSideEffects && !this.hasLoggedEffect) { - this.hasLoggedEffect = true; - const { code, log, module } = this.scope.context; - log(LOGLEVEL_INFO, logFirstSideEffect(code, module.id, locate(code, node.start, { offsetLine: 1 })), node.start); - } - return this.hasCachedEffect = true; - } - } - return false; - } - include(context, includeChildrenRecursively) { - this.included = true; - for (const node of this.body) { - if (includeChildrenRecursively || node.shouldBeIncluded(context)) { - node.include(context, includeChildrenRecursively); - } - } - } - initialise() { - super.initialise(); - if (this.invalidAnnotations) - for (const { start, end, type } of this.invalidAnnotations) { - this.scope.context.magicString.remove(start, end); - if (type === "pure" || type === "noSideEffects") { - this.scope.context.log(LOGLEVEL_WARN, logInvalidAnnotation(this.scope.context.code.slice(start, end), this.scope.context.module.id, type), start); - } - } - } - render(code, options) { - let start = this.start; - if (code.original.startsWith("#!")) { - start = Math.min(code.original.indexOf("\n") + 1, this.end); - code.remove(0, start); - } - if (this.body.length > 0) { - while (code.original[start] === "/" && /[*/]/.test(code.original[start + 1])) { - const firstLineBreak = findFirstLineBreakOutsideComment(code.original.slice(start, this.body[0].start)); - if (firstLineBreak[0] === -1) { - break; - } - start += firstLineBreak[1]; - } - renderStatementList(this.body, code, start, this.end, options); - } else { - super.render(code, options); - } - } - applyDeoptimizations() { - } -}; -var Property2 = class extends MethodBase { - constructor() { - super(...arguments); - this.declarationInit = null; - } - //declare method: boolean; - get method() { - return isFlagSet( - this.flags, - 262144 - /* Flag.method */ - ); - } - set method(value) { - this.flags = setFlag(this.flags, 262144, value); - } - //declare shorthand: boolean; - get shorthand() { - return isFlagSet( - this.flags, - 524288 - /* Flag.shorthand */ - ); - } - set shorthand(value) { - this.flags = setFlag(this.flags, 524288, value); - } - declare(kind, init2) { - this.declarationInit = init2; - return this.value.declare(kind, UNKNOWN_EXPRESSION); - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - const propertyReadSideEffects = this.scope.context.options.treeshake.propertyReadSideEffects; - return this.parent.type === "ObjectPattern" && propertyReadSideEffects === "always" || this.key.hasEffects(context) || this.value.hasEffects(context); - } - markDeclarationReached() { - this.value.markDeclarationReached(); - } - render(code, options) { - if (!this.shorthand) { - this.key.render(code, options); - } - this.value.render(code, options, { isShorthandProperty: this.shorthand }); - } - applyDeoptimizations() { - this.deoptimized = true; - if (this.declarationInit !== null) { - this.declarationInit.deoptimizePath([UnknownKey, UnknownKey]); - this.scope.context.requestTreeshakingPass(); - } - } -}; -var PropertyDefinition = class extends NodeBase { - get computed() { - return isFlagSet( - this.flags, - 1024 - /* Flag.computed */ - ); - } - set computed(value) { - this.flags = setFlag(this.flags, 1024, value); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - var _a; - (_a = this.value) == null ? void 0 : _a.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizePath(path2) { - var _a; - (_a = this.value) == null ? void 0 : _a.deoptimizePath(path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.value ? this.value.getLiteralValueAtPath(path2, recursionTracker, origin) : UnknownValue; - } - getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) { - return this.value ? this.value.getReturnExpressionWhenCalledAtPath(path2, interaction, recursionTracker, origin) : UNKNOWN_RETURN_EXPRESSION; - } - hasEffects(context) { - var _a; - return this.key.hasEffects(context) || this.static && !!((_a = this.value) == null ? void 0 : _a.hasEffects(context)) || checkEffectForNodes(this.decorators, context); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return !this.value || this.value.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - applyDeoptimizations() { - } -}; -var ReturnStatement2 = class extends NodeBase { - hasEffects(context) { - var _a; - if (!context.ignore.returnYield || ((_a = this.argument) == null ? void 0 : _a.hasEffects(context))) - return true; - context.brokenFlow = true; - return false; - } - include(context, includeChildrenRecursively) { - var _a; - this.included = true; - (_a = this.argument) == null ? void 0 : _a.include(context, includeChildrenRecursively); - context.brokenFlow = true; - } - initialise() { - super.initialise(); - this.scope.addReturnExpression(this.argument || UNKNOWN_EXPRESSION); - } - render(code, options) { - if (this.argument) { - this.argument.render(code, options, { preventASI: true }); - if (this.argument.start === this.start + 6) { - code.prependLeft(this.start + 6, " "); - } - } - } -}; -var SequenceExpression = class extends NodeBase { - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.expressions[this.expressions.length - 1].deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizePath(path2) { - this.expressions[this.expressions.length - 1].deoptimizePath(path2); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - return this.expressions[this.expressions.length - 1].getLiteralValueAtPath(path2, recursionTracker, origin); - } - hasEffects(context) { - for (const expression of this.expressions) { - if (expression.hasEffects(context)) - return true; - } - return false; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - return this.expressions[this.expressions.length - 1].hasEffectsOnInteractionAtPath(path2, interaction, context); - } - include(context, includeChildrenRecursively) { - this.included = true; - const lastExpression = this.expressions[this.expressions.length - 1]; - for (const expression of this.expressions) { - if (includeChildrenRecursively || expression === lastExpression && !(this.parent instanceof ExpressionStatement2) || expression.shouldBeIncluded(context)) - expression.include(context, includeChildrenRecursively); - } - } - removeAnnotations(code) { - this.expressions[0].removeAnnotations(code); - } - render(code, options, { renderedParentType, isCalleeOfRenderedParent, preventASI } = BLANK) { - let includedNodes = 0; - let lastSeparatorPos = null; - const lastNode = this.expressions[this.expressions.length - 1]; - for (const { node, separator, start, end } of getCommaSeparatedNodesWithBoundaries(this.expressions, code, this.start, this.end)) { - if (!node.included) { - treeshakeNode(node, code, start, end); - continue; - } - includedNodes++; - lastSeparatorPos = separator; - if (includedNodes === 1 && preventASI) { - removeLineBreaks(code, start, node.start); - } - if (includedNodes === 1) { - const parentType = renderedParentType || this.parent.type; - node.render(code, options, { - isCalleeOfRenderedParent: isCalleeOfRenderedParent && node === lastNode, - renderedParentType: parentType, - renderedSurroundingElement: parentType - }); - } else { - node.render(code, options); - } - } - if (lastSeparatorPos) { - code.remove(lastSeparatorPos, this.end); - } - } -}; -var Super = class extends NodeBase { - bind() { - this.variable = this.scope.findVariable("this"); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizePath(path2) { - this.variable.deoptimizePath(path2); - } - include() { - if (!this.included) { - this.included = true; - this.scope.context.includeVariableInModule(this.variable); - } - } -}; -var SwitchCase = class extends NodeBase { - hasEffects(context) { - var _a; - if ((_a = this.test) == null ? void 0 : _a.hasEffects(context)) - return true; - for (const node of this.consequent) { - if (context.brokenFlow) - break; - if (node.hasEffects(context)) - return true; - } - return false; - } - include(context, includeChildrenRecursively) { - var _a; - this.included = true; - (_a = this.test) == null ? void 0 : _a.include(context, includeChildrenRecursively); - for (const node of this.consequent) { - if (includeChildrenRecursively || node.shouldBeIncluded(context)) - node.include(context, includeChildrenRecursively); - } - } - render(code, options, nodeRenderOptions) { - if (this.consequent.length > 0) { - this.test && this.test.render(code, options); - const testEnd = this.test ? this.test.end : findFirstOccurrenceOutsideComment(code.original, "default", this.start) + 7; - const consequentStart = findFirstOccurrenceOutsideComment(code.original, ":", testEnd) + 1; - renderStatementList(this.consequent, code, consequentStart, nodeRenderOptions.end, options); - } else { - super.render(code, options); - } - } -}; -SwitchCase.prototype.needsBoundaries = true; -var SwitchStatement = class extends NodeBase { - createScope(parentScope) { - this.parentScope = parentScope; - this.scope = new BlockScope(parentScope); - } - hasEffects(context) { - if (this.discriminant.hasEffects(context)) - return true; - const { brokenFlow, hasBreak, ignore } = context; - const { breaks } = ignore; - ignore.breaks = true; - context.hasBreak = false; - let onlyHasBrokenFlow = true; - for (const switchCase2 of this.cases) { - if (switchCase2.hasEffects(context)) - return true; - onlyHasBrokenFlow && (onlyHasBrokenFlow = context.brokenFlow && !context.hasBreak); - context.hasBreak = false; - context.brokenFlow = brokenFlow; - } - if (this.defaultCase !== null) { - context.brokenFlow = onlyHasBrokenFlow; - } - ignore.breaks = breaks; - context.hasBreak = hasBreak; - return false; - } - include(context, includeChildrenRecursively) { - this.included = true; - this.discriminant.include(context, includeChildrenRecursively); - const { brokenFlow, hasBreak } = context; - context.hasBreak = false; - let onlyHasBrokenFlow = true; - let isCaseIncluded = includeChildrenRecursively || this.defaultCase !== null && this.defaultCase < this.cases.length - 1; - for (let caseIndex = this.cases.length - 1; caseIndex >= 0; caseIndex--) { - const switchCase2 = this.cases[caseIndex]; - if (switchCase2.included) { - isCaseIncluded = true; - } - if (!isCaseIncluded) { - const hasEffectsContext = createHasEffectsContext(); - hasEffectsContext.ignore.breaks = true; - isCaseIncluded = switchCase2.hasEffects(hasEffectsContext); - } - if (isCaseIncluded) { - switchCase2.include(context, includeChildrenRecursively); - onlyHasBrokenFlow && (onlyHasBrokenFlow = context.brokenFlow && !context.hasBreak); - context.hasBreak = false; - context.brokenFlow = brokenFlow; - } else { - onlyHasBrokenFlow = brokenFlow; - } - } - if (isCaseIncluded && this.defaultCase !== null) { - context.brokenFlow = onlyHasBrokenFlow; - } - context.hasBreak = hasBreak; - } - initialise() { - super.initialise(); - for (let caseIndex = 0; caseIndex < this.cases.length; caseIndex++) { - if (this.cases[caseIndex].test === null) { - this.defaultCase = caseIndex; - return; - } - } - this.defaultCase = null; - } - parseNode(esTreeNode) { - this.discriminant = new (this.scope.context.getNodeConstructor(esTreeNode.discriminant.type))(this, this.parentScope).parseNode(esTreeNode.discriminant); - return super.parseNode(esTreeNode); - } - render(code, options) { - this.discriminant.render(code, options); - if (this.cases.length > 0) { - renderStatementList(this.cases, code, this.cases[0].start, this.end - 1, options); - } - } -}; -var TaggedTemplateExpression = class extends CallExpressionBase { - bind() { - super.bind(); - if (this.tag.type === Identifier) { - const name = this.tag.name; - const variable = this.scope.findVariable(name); - if (variable.isNamespace) { - this.scope.context.log(LOGLEVEL_WARN, logCannotCallNamespace(name), this.start); - } - } - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - for (const argument of this.quasi.expressions) { - if (argument.hasEffects(context)) - return true; - } - return this.tag.hasEffects(context) || this.tag.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context); - } - include(context, includeChildrenRecursively) { - if (!this.deoptimized) - this.applyDeoptimizations(); - if (includeChildrenRecursively) { - super.include(context, includeChildrenRecursively); - } else { - this.included = true; - this.tag.include(context, includeChildrenRecursively); - this.quasi.include(context, includeChildrenRecursively); - } - this.tag.includeCallArguments(context, this.args); - const [returnExpression] = this.getReturnExpression(); - if (!returnExpression.included) { - returnExpression.include(context, false); - } - } - initialise() { - super.initialise(); - this.args = [UNKNOWN_EXPRESSION, ...this.quasi.expressions]; - this.interaction = { - args: [ - this.tag instanceof MemberExpression && !this.tag.variable ? this.tag.object : null, - ...this.args - ], - type: INTERACTION_CALLED, - withNew: false - }; - } - render(code, options) { - this.tag.render(code, options, { isCalleeOfRenderedParent: true }); - this.quasi.render(code, options); - } - applyDeoptimizations() { - this.deoptimized = true; - this.tag.deoptimizeArgumentsOnInteractionAtPath(this.interaction, EMPTY_PATH, SHARED_RECURSION_TRACKER); - this.scope.context.requestTreeshakingPass(); - } - getReturnExpression(recursionTracker = SHARED_RECURSION_TRACKER) { - if (this.returnExpression === null) { - this.returnExpression = UNKNOWN_RETURN_EXPRESSION; - return this.returnExpression = this.tag.getReturnExpressionWhenCalledAtPath(EMPTY_PATH, this.interaction, recursionTracker, this); - } - return this.returnExpression; - } -}; -var TemplateElement = class extends NodeBase { - get tail() { - return isFlagSet( - this.flags, - 1048576 - /* Flag.tail */ - ); - } - set tail(value) { - this.flags = setFlag(this.flags, 1048576, value); - } - // Do not try to bind value - bind() { - } - hasEffects() { - return false; - } - include() { - this.included = true; - } - parseNode(esTreeNode) { - this.value = esTreeNode.value; - return super.parseNode(esTreeNode); - } - render() { - } -}; -var TemplateLiteral2 = class extends NodeBase { - deoptimizeArgumentsOnInteractionAtPath() { - } - getLiteralValueAtPath(path2) { - if (path2.length > 0 || this.quasis.length !== 1) { - return UnknownValue; - } - return this.quasis[0].value.cooked; - } - getReturnExpressionWhenCalledAtPath(path2) { - if (path2.length !== 1) { - return UNKNOWN_RETURN_EXPRESSION; - } - return getMemberReturnExpressionWhenCalled(literalStringMembers, path2[0]); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (interaction.type === INTERACTION_ACCESSED) { - return path2.length > 1; - } - if (interaction.type === INTERACTION_CALLED && path2.length === 1) { - return hasMemberEffectWhenCalled(literalStringMembers, path2[0], interaction, context); - } - return true; - } - render(code, options) { - code.indentExclusionRanges.push([this.start, this.end]); - super.render(code, options); - } -}; -var UndefinedVariable = class extends Variable { - constructor() { - super("undefined"); - } - getLiteralValueAtPath() { - return void 0; - } -}; -var ExportDefaultVariable = class _ExportDefaultVariable extends LocalVariable { - constructor(name, exportDefaultDeclaration2, context) { - super(name, exportDefaultDeclaration2, exportDefaultDeclaration2.declaration, context, "other"); - this.hasId = false; - this.originalId = null; - this.originalVariable = null; - const declaration = exportDefaultDeclaration2.declaration; - if ((declaration instanceof FunctionDeclaration || declaration instanceof ClassDeclaration) && declaration.id) { - this.hasId = true; - this.originalId = declaration.id; - } else if (declaration instanceof Identifier2) { - this.originalId = declaration; - } - } - addReference(identifier2) { - if (!this.hasId) { - this.name = identifier2.name; - } - } - addUsedPlace(usedPlace) { - const original = this.getOriginalVariable(); - if (original === this) { - super.addUsedPlace(usedPlace); - } else { - original.addUsedPlace(usedPlace); - } - } - forbidName(name) { - const original = this.getOriginalVariable(); - if (original === this) { - super.forbidName(name); - } else { - original.forbidName(name); - } - } - getAssignedVariableName() { - return this.originalId && this.originalId.name || null; - } - getBaseVariableName() { - const original = this.getOriginalVariable(); - return original === this ? super.getBaseVariableName() : original.getBaseVariableName(); - } - getDirectOriginalVariable() { - return this.originalId && (this.hasId || !(this.originalId.isPossibleTDZ() || this.originalId.variable.isReassigned || this.originalId.variable instanceof UndefinedVariable || // this avoids a circular dependency - "syntheticNamespace" in this.originalId.variable)) ? this.originalId.variable : null; - } - getName(getPropertyAccess) { - const original = this.getOriginalVariable(); - return original === this ? super.getName(getPropertyAccess) : original.getName(getPropertyAccess); - } - getOriginalVariable() { - if (this.originalVariable) - return this.originalVariable; - let original = this; - let currentVariable; - const checkedVariables = /* @__PURE__ */ new Set(); - do { - checkedVariables.add(original); - currentVariable = original; - original = currentVariable.getDirectOriginalVariable(); - } while (original instanceof _ExportDefaultVariable && !checkedVariables.has(original)); - return this.originalVariable = original || currentVariable; - } -}; -var ModuleScope = class extends ChildScope { - constructor(parent, context) { - super(parent, context); - this.variables.set("this", new LocalVariable("this", null, UNDEFINED_EXPRESSION, context, "other")); - } - addDeclaration(identifier2, context, init2, kind) { - if (this.context.module.importDescriptions.has(identifier2.name)) { - context.error(logRedeclarationError(identifier2.name), identifier2.start); - } - return super.addDeclaration(identifier2, context, init2, kind); - } - addExportDefaultDeclaration(name, exportDefaultDeclaration2, context) { - const variable = new ExportDefaultVariable(name, exportDefaultDeclaration2, context); - this.variables.set("default", variable); - return variable; - } - addNamespaceMemberAccess() { - } - deconflict(format, exportNamesByVariable, accessedGlobalsByScope) { - for (const scope of this.children) - scope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope); - } - findLexicalBoundary() { - return this; - } - findVariable(name) { - const knownVariable = this.variables.get(name) || this.accessedOutsideVariables.get(name); - if (knownVariable) { - return knownVariable; - } - const variable = this.context.traceVariable(name) || this.parent.findVariable(name); - if (variable instanceof GlobalVariable) { - this.accessedOutsideVariables.set(name, variable); - } - return variable; - } -}; -var ThisExpression = class extends NodeBase { - bind() { - this.variable = this.scope.findVariable("this"); - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker); - } - deoptimizePath(path2) { - this.variable.deoptimizePath(path2); - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - if (path2.length === 0) { - return interaction.type !== INTERACTION_ACCESSED; - } - return this.variable.hasEffectsOnInteractionAtPath(path2, interaction, context); - } - include() { - if (!this.included) { - this.included = true; - this.scope.context.includeVariableInModule(this.variable); - } - } - initialise() { - super.initialise(); - this.alias = this.scope.findLexicalBoundary() instanceof ModuleScope ? this.scope.context.moduleContext : null; - if (this.alias === "undefined") { - this.scope.context.log(LOGLEVEL_WARN, logThisIsUndefined(), this.start); - } - } - render(code) { - if (this.alias !== null) { - code.overwrite(this.start, this.end, this.alias, { - contentOnly: false, - storeName: true - }); - } - } -}; -var ThrowStatement = class extends NodeBase { - hasEffects() { - return true; - } - include(context, includeChildrenRecursively) { - this.included = true; - this.argument.include(context, includeChildrenRecursively); - context.brokenFlow = true; - } - render(code, options) { - this.argument.render(code, options, { preventASI: true }); - if (this.argument.start === this.start + 5) { - code.prependLeft(this.start + 5, " "); - } - } -}; -var TryStatement = class extends NodeBase { - constructor() { - super(...arguments); - this.directlyIncluded = false; - this.includedLabelsAfterBlock = null; - } - hasEffects(context) { - var _a; - return (this.scope.context.options.treeshake.tryCatchDeoptimization ? this.block.body.length > 0 : this.block.hasEffects(context)) || !!((_a = this.finalizer) == null ? void 0 : _a.hasEffects(context)); - } - include(context, includeChildrenRecursively) { - var _a, _b; - const tryCatchDeoptimization = (_a = this.scope.context.options.treeshake) == null ? void 0 : _a.tryCatchDeoptimization; - const { brokenFlow, includedLabels } = context; - if (!this.directlyIncluded || !tryCatchDeoptimization) { - this.included = true; - this.directlyIncluded = true; - this.block.include(context, tryCatchDeoptimization ? INCLUDE_PARAMETERS : includeChildrenRecursively); - if (includedLabels.size > 0) { - this.includedLabelsAfterBlock = [...includedLabels]; - } - context.brokenFlow = brokenFlow; - } else if (this.includedLabelsAfterBlock) { - for (const label of this.includedLabelsAfterBlock) { - includedLabels.add(label); - } - } - if (this.handler !== null) { - this.handler.include(context, includeChildrenRecursively); - context.brokenFlow = brokenFlow; - } - (_b = this.finalizer) == null ? void 0 : _b.include(context, includeChildrenRecursively); - } -}; -var unaryOperators = { - "!": (value) => !value, - "+": (value) => +value, - "-": (value) => -value, - delete: () => UnknownValue, - typeof: (value) => typeof value, - void: () => void 0, - "~": (value) => ~value -}; -var UnaryExpression = class extends NodeBase { - get prefix() { - return isFlagSet( - this.flags, - 2097152 - /* Flag.prefix */ - ); - } - set prefix(value) { - this.flags = setFlag(this.flags, 2097152, value); - } - getLiteralValueAtPath(path2, recursionTracker, origin) { - if (path2.length > 0) - return UnknownValue; - const argumentValue = this.argument.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin); - if (typeof argumentValue === "symbol") - return UnknownValue; - return unaryOperators[this.operator](argumentValue); - } - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - if (this.operator === "typeof" && this.argument instanceof Identifier2) - return false; - return this.argument.hasEffects(context) || this.operator === "delete" && this.argument.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_ASSIGNMENT, context); - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return type !== INTERACTION_ACCESSED || path2.length > (this.operator === "void" ? 0 : 1); - } - applyDeoptimizations() { - this.deoptimized = true; - if (this.operator === "delete") { - this.argument.deoptimizePath(EMPTY_PATH); - this.scope.context.requestTreeshakingPass(); - } - } -}; -var UpdateExpression = class extends NodeBase { - hasEffects(context) { - if (!this.deoptimized) - this.applyDeoptimizations(); - return this.argument.hasEffectsAsAssignmentTarget(context, true); - } - hasEffectsOnInteractionAtPath(path2, { type }) { - return path2.length > 1 || type !== INTERACTION_ACCESSED; - } - include(context, includeChildrenRecursively) { - if (!this.deoptimized) - this.applyDeoptimizations(); - this.included = true; - this.argument.includeAsAssignmentTarget(context, includeChildrenRecursively, true); - } - initialise() { - super.initialise(); - this.argument.setAssignedValue(UNKNOWN_EXPRESSION); - } - render(code, options) { - const { exportNamesByVariable, format, snippets: { _ } } = options; - this.argument.render(code, options); - if (format === "system") { - const variable = this.argument.variable; - const exportNames = exportNamesByVariable.get(variable); - if (exportNames) { - if (this.prefix) { - if (exportNames.length === 1) { - renderSystemExportExpression(variable, this.start, this.end, code, options); - } else { - renderSystemExportSequenceAfterExpression(variable, this.start, this.end, this.parent.type !== ExpressionStatement, code, options); - } - } else { - const operator = this.operator[0]; - renderSystemExportSequenceBeforeExpression(variable, this.start, this.end, this.parent.type !== ExpressionStatement, code, options, `${_}${operator}${_}1`); - } - } - } - } - applyDeoptimizations() { - this.deoptimized = true; - this.argument.deoptimizePath(EMPTY_PATH); - if (this.argument instanceof Identifier2) { - const variable = this.scope.findVariable(this.argument.name); - variable.markReassigned(); - } - this.scope.context.requestTreeshakingPass(); - } -}; -function areAllDeclarationsIncludedAndNotExported(declarations, exportNamesByVariable) { - for (const declarator of declarations) { - if (!declarator.id.included) - return false; - if (declarator.id.type === Identifier) { - if (exportNamesByVariable.has(declarator.id.variable)) - return false; - } else { - const exportedVariables = []; - declarator.id.addExportedVariables(exportedVariables, exportNamesByVariable); - if (exportedVariables.length > 0) - return false; - } - } - return true; -} -var VariableDeclaration = class extends NodeBase { - deoptimizePath() { - for (const declarator of this.declarations) { - declarator.deoptimizePath(EMPTY_PATH); - } - } - hasEffectsOnInteractionAtPath() { - return false; - } - include(context, includeChildrenRecursively, { asSingleStatement } = BLANK) { - this.included = true; - for (const declarator of this.declarations) { - if (includeChildrenRecursively || declarator.shouldBeIncluded(context)) - declarator.include(context, includeChildrenRecursively); - const { id, init: init2 } = declarator; - if (asSingleStatement) { - id.include(context, includeChildrenRecursively); - } - if (init2 && id.included && !init2.included && (id instanceof ObjectPattern || id instanceof ArrayPattern)) { - init2.include(context, includeChildrenRecursively); - } - } - } - initialise() { - super.initialise(); - this.isUsingDeclaration = this.kind === "await using" || this.kind === "using"; - for (const declarator of this.declarations) { - declarator.declareDeclarator(this.kind, this.isUsingDeclaration); - } - } - removeAnnotations(code) { - this.declarations[0].removeAnnotations(code); - } - render(code, options, nodeRenderOptions = BLANK) { - if (this.isUsingDeclaration || areAllDeclarationsIncludedAndNotExported(this.declarations, options.exportNamesByVariable)) { - for (const declarator of this.declarations) { - declarator.render(code, options); - } - if (!nodeRenderOptions.isNoStatement && code.original.charCodeAt(this.end - 1) !== 59) { - code.appendLeft(this.end, ";"); - } - } else { - this.renderReplacedDeclarations(code, options); - } - } - applyDeoptimizations() { - } - renderDeclarationEnd(code, separatorString, lastSeparatorPos, actualContentEnd, renderedContentEnd, systemPatternExports, options) { - if (code.original.charCodeAt(this.end - 1) === 59) { - code.remove(this.end - 1, this.end); - } - separatorString += ";"; - if (lastSeparatorPos === null) { - code.appendLeft(renderedContentEnd, separatorString); - } else { - if (code.original.charCodeAt(actualContentEnd - 1) === 10 && (code.original.charCodeAt(this.end) === 10 || code.original.charCodeAt(this.end) === 13)) { - actualContentEnd--; - if (code.original.charCodeAt(actualContentEnd) === 13) { - actualContentEnd--; - } - } - if (actualContentEnd === lastSeparatorPos + 1) { - code.overwrite(lastSeparatorPos, renderedContentEnd, separatorString); - } else { - code.overwrite(lastSeparatorPos, lastSeparatorPos + 1, separatorString); - code.remove(actualContentEnd, renderedContentEnd); - } - } - if (systemPatternExports.length > 0) { - code.appendLeft(renderedContentEnd, ` ${getSystemExportStatement(systemPatternExports, options)};`); - } - } - renderReplacedDeclarations(code, options) { - const separatedNodes = getCommaSeparatedNodesWithBoundaries(this.declarations, code, this.start + this.kind.length, this.end - (code.original.charCodeAt(this.end - 1) === 59 ? 1 : 0)); - let actualContentEnd, renderedContentEnd; - renderedContentEnd = findNonWhiteSpace(code.original, this.start + this.kind.length); - let lastSeparatorPos = renderedContentEnd - 1; - code.remove(this.start, lastSeparatorPos); - let isInDeclaration = false; - let hasRenderedContent = false; - let separatorString = "", leadingString, nextSeparatorString; - const aggregatedSystemExports = []; - const singleSystemExport = gatherSystemExportsAndGetSingleExport(separatedNodes, options, aggregatedSystemExports); - for (const { node, start, separator, contentEnd, end } of separatedNodes) { - if (!node.included) { - code.remove(start, end); - node.removeAnnotations(code); - continue; - } - node.render(code, options); - leadingString = ""; - nextSeparatorString = ""; - if (!node.id.included || node.id instanceof Identifier2 && isReassignedExportsMember(node.id.variable, options.exportNamesByVariable)) { - if (hasRenderedContent) { - separatorString += ";"; - } - isInDeclaration = false; - } else { - if (singleSystemExport && singleSystemExport === node.id.variable) { - const operatorPos = findFirstOccurrenceOutsideComment(code.original, "=", node.id.end); - renderSystemExportExpression(singleSystemExport, findNonWhiteSpace(code.original, operatorPos + 1), separator === null ? contentEnd : separator, code, options); - } - if (isInDeclaration) { - separatorString += ","; - } else { - if (hasRenderedContent) { - separatorString += ";"; - } - leadingString += `${this.kind} `; - isInDeclaration = true; - } - } - if (renderedContentEnd === lastSeparatorPos + 1) { - code.overwrite(lastSeparatorPos, renderedContentEnd, separatorString + leadingString); - } else { - code.overwrite(lastSeparatorPos, lastSeparatorPos + 1, separatorString); - code.appendLeft(renderedContentEnd, leadingString); - } - actualContentEnd = contentEnd; - renderedContentEnd = end; - hasRenderedContent = true; - lastSeparatorPos = separator; - separatorString = nextSeparatorString; - } - this.renderDeclarationEnd(code, separatorString, lastSeparatorPos, actualContentEnd, renderedContentEnd, aggregatedSystemExports, options); - } -}; -function gatherSystemExportsAndGetSingleExport(separatedNodes, options, aggregatedSystemExports) { - var _a; - let singleSystemExport = null; - if (options.format === "system") { - for (const { node } of separatedNodes) { - if (node.id instanceof Identifier2 && node.init && aggregatedSystemExports.length === 0 && ((_a = options.exportNamesByVariable.get(node.id.variable)) == null ? void 0 : _a.length) === 1) { - singleSystemExport = node.id.variable; - aggregatedSystemExports.push(singleSystemExport); - } else { - node.id.addExportedVariables(aggregatedSystemExports, options.exportNamesByVariable); - } - } - if (aggregatedSystemExports.length > 1) { - singleSystemExport = null; - } else if (singleSystemExport) { - aggregatedSystemExports.length = 0; - } - } - return singleSystemExport; -} -var WhileStatement = class extends NodeBase { - hasEffects(context) { - if (this.test.hasEffects(context)) - return true; - return hasLoopBodyEffects(context, this.body); - } - include(context, includeChildrenRecursively) { - this.included = true; - this.test.include(context, includeChildrenRecursively); - includeLoopBody(context, this.body, includeChildrenRecursively); - } -}; -var YieldExpression = class extends NodeBase { - hasEffects(context) { - var _a; - if (!this.deoptimized) - this.applyDeoptimizations(); - return !(context.ignore.returnYield && !((_a = this.argument) == null ? void 0 : _a.hasEffects(context))); - } - render(code, options) { - if (this.argument) { - this.argument.render(code, options, { preventASI: true }); - if (this.argument.start === this.start + 5) { - code.prependLeft(this.start + 5, " "); - } - } - } -}; -function convertProgram(buffer, parent, parentScope) { - return convertNode2(parent, parentScope, 0, getAstBuffer(buffer)); -} -var nodeTypeStrings = [ - "PanicError", - "ParseError", - "ArrayExpression", - "ArrayPattern", - "ArrowFunctionExpression", - "AssignmentExpression", - "AssignmentPattern", - "AwaitExpression", - "BinaryExpression", - "BlockStatement", - "BreakStatement", - "CallExpression", - "CatchClause", - "ChainExpression", - "ClassBody", - "ClassDeclaration", - "ClassExpression", - "ConditionalExpression", - "ContinueStatement", - "DebuggerStatement", - "Decorator", - "ExpressionStatement", - "DoWhileStatement", - "EmptyStatement", - "ExportAllDeclaration", - "ExportDefaultDeclaration", - "ExportNamedDeclaration", - "ExportSpecifier", - "ExpressionStatement", - "ForInStatement", - "ForOfStatement", - "ForStatement", - "FunctionDeclaration", - "FunctionExpression", - "Identifier", - "IfStatement", - "ImportAttribute", - "ImportDeclaration", - "ImportDefaultSpecifier", - "ImportExpression", - "ImportNamespaceSpecifier", - "ImportSpecifier", - "LabeledStatement", - "Literal", - "Literal", - "Literal", - "Literal", - "Literal", - "Literal", - "LogicalExpression", - "MemberExpression", - "MetaProperty", - "MethodDefinition", - "NewExpression", - "ObjectExpression", - "ObjectPattern", - "PrivateIdentifier", - "Program", - "Property", - "PropertyDefinition", - "RestElement", - "ReturnStatement", - "SequenceExpression", - "SpreadElement", - "StaticBlock", - "Super", - "SwitchCase", - "SwitchStatement", - "TaggedTemplateExpression", - "TemplateElement", - "TemplateLiteral", - "ThisExpression", - "ThrowStatement", - "TryStatement", - "UnaryExpression", - "UpdateExpression", - "VariableDeclaration", - "VariableDeclarator", - "WhileStatement", - "YieldExpression" -]; -var nodeConstructors$1 = [ - PanicError, - ParseError, - ArrayExpression, - ArrayPattern, - ArrowFunctionExpression2, - AssignmentExpression, - AssignmentPattern, - AwaitExpression, - BinaryExpression, - BlockStatement2, - BreakStatement, - CallExpression2, - CatchClause2, - ChainExpression, - ClassBody, - ClassDeclaration, - ClassExpression, - ConditionalExpression, - ContinueStatement, - DebuggerStatement, - Decorator, - ExpressionStatement2, - DoWhileStatement, - EmptyStatement, - ExportAllDeclaration, - ExportDefaultDeclaration2, - ExportNamedDeclaration, - ExportSpecifier, - ExpressionStatement2, - ForInStatement, - ForOfStatement, - ForStatement, - FunctionDeclaration, - FunctionExpression, - Identifier2, - IfStatement, - ImportAttribute, - ImportDeclaration, - ImportDefaultSpecifier, - ImportExpression, - ImportNamespaceSpecifier, - ImportSpecifier, - LabeledStatement, - Literal2, - Literal2, - Literal2, - Literal2, - Literal2, - Literal2, - LogicalExpression, - MemberExpression, - MetaProperty, - MethodDefinition, - NewExpression, - ObjectExpression, - ObjectPattern, - PrivateIdentifier, - Program2, - Property2, - PropertyDefinition, - RestElement, - ReturnStatement2, - SequenceExpression, - SpreadElement, - StaticBlock2, - Super, - SwitchCase, - SwitchStatement, - TaggedTemplateExpression, - TemplateElement, - TemplateLiteral2, - ThisExpression, - ThrowStatement, - TryStatement, - UnaryExpression, - UpdateExpression, - VariableDeclaration, - VariableDeclarator2, - WhileStatement, - YieldExpression -]; -var bufferParsers = [ - function panicError(node, position, buffer) { - node.message = buffer.convertString(buffer[position]); - }, - function parseError(node, position, buffer) { - node.message = buffer.convertString(buffer[position]); - }, - function arrayExpression(node, position, buffer) { - const { scope } = node; - node.elements = convertNodeList(node, scope, buffer[position], buffer); - }, - function arrayPattern(node, position, buffer) { - const { scope } = node; - node.elements = convertNodeList(node, scope, buffer[position], buffer); - }, - function arrowFunctionExpression(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.async = (flags & 1) === 1; - node.expression = (flags & 2) === 2; - node.generator = (flags & 4) === 4; - const annotations = node.annotations = convertAnnotations(buffer[position + 1], buffer); - node.annotationNoSideEffects = annotations.some((comment) => comment.type === "noSideEffects"); - const parameters = node.params = convertNodeList(node, scope, buffer[position + 2], buffer); - scope.addParameterVariables(parameters.map((parameter) => parameter.declare("parameter", UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement); - node.body = convertNode2(node, scope.bodyScope, buffer[position + 3], buffer); - }, - function assignmentExpression(node, position, buffer) { - const { scope } = node; - node.operator = FIXED_STRINGS[buffer[position]]; - node.left = convertNode2(node, scope, buffer[position + 1], buffer); - node.right = convertNode2(node, scope, buffer[position + 2], buffer); - }, - function assignmentPattern(node, position, buffer) { - const { scope } = node; - node.left = convertNode2(node, scope, buffer[position], buffer); - node.right = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function awaitExpression(node, position, buffer) { - const { scope } = node; - node.argument = convertNode2(node, scope, buffer[position], buffer); - }, - function binaryExpression(node, position, buffer) { - const { scope } = node; - node.operator = FIXED_STRINGS[buffer[position]]; - node.left = convertNode2(node, scope, buffer[position + 1], buffer); - node.right = convertNode2(node, scope, buffer[position + 2], buffer); - }, - function blockStatement(node, position, buffer) { - const { scope } = node; - node.body = convertNodeList(node, scope, buffer[position], buffer); - }, - function breakStatement(node, position, buffer) { - const { scope } = node; - const labelPosition = buffer[position]; - node.label = labelPosition === 0 ? null : convertNode2(node, scope, labelPosition, buffer); - }, - function callExpression(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.optional = (flags & 1) === 1; - node.annotations = convertAnnotations(buffer[position + 1], buffer); - node.callee = convertNode2(node, scope, buffer[position + 2], buffer); - node.arguments = convertNodeList(node, scope, buffer[position + 3], buffer); - }, - function catchClause(node, position, buffer) { - const { scope } = node; - const parameterPosition = buffer[position]; - const parameter = node.param = parameterPosition === 0 ? null : convertNode2(node, scope, parameterPosition, buffer); - parameter == null ? void 0 : parameter.declare("parameter", UNKNOWN_EXPRESSION); - node.body = convertNode2(node, scope.bodyScope, buffer[position + 1], buffer); - }, - function chainExpression(node, position, buffer) { - const { scope } = node; - node.expression = convertNode2(node, scope, buffer[position], buffer); - }, - function classBody(node, position, buffer) { - const { scope } = node; - const bodyPosition = buffer[position]; - const body = node.body = []; - if (bodyPosition) { - const length = buffer[bodyPosition]; - for (let index = 0; index < length; index++) { - const nodePosition = buffer[bodyPosition + 1 + index]; - body.push(convertNode2(node, (buffer[nodePosition + 3] & 1) === 0 ? scope.instanceScope : scope, nodePosition, buffer)); - } - } - }, - function classDeclaration(node, position, buffer) { - const { scope } = node; - node.decorators = convertNodeList(node, scope, buffer[position], buffer); - const idPosition = buffer[position + 1]; - node.id = idPosition === 0 ? null : convertNode2(node, scope.parent, idPosition, buffer); - const superClassPosition = buffer[position + 2]; - node.superClass = superClassPosition === 0 ? null : convertNode2(node, scope, superClassPosition, buffer); - node.body = convertNode2(node, scope, buffer[position + 3], buffer); - }, - function classExpression(node, position, buffer) { - const { scope } = node; - node.decorators = convertNodeList(node, scope, buffer[position], buffer); - const idPosition = buffer[position + 1]; - node.id = idPosition === 0 ? null : convertNode2(node, scope, idPosition, buffer); - const superClassPosition = buffer[position + 2]; - node.superClass = superClassPosition === 0 ? null : convertNode2(node, scope, superClassPosition, buffer); - node.body = convertNode2(node, scope, buffer[position + 3], buffer); - }, - function conditionalExpression(node, position, buffer) { - const { scope } = node; - node.test = convertNode2(node, scope, buffer[position], buffer); - node.consequent = convertNode2(node, scope, buffer[position + 1], buffer); - node.alternate = convertNode2(node, scope, buffer[position + 2], buffer); - }, - function continueStatement(node, position, buffer) { - const { scope } = node; - const labelPosition = buffer[position]; - node.label = labelPosition === 0 ? null : convertNode2(node, scope, labelPosition, buffer); - }, - function debuggerStatement() { - }, - function decorator(node, position, buffer) { - const { scope } = node; - node.expression = convertNode2(node, scope, buffer[position], buffer); - }, - function directive(node, position, buffer) { - const { scope } = node; - node.directive = buffer.convertString(buffer[position]); - node.expression = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function doWhileStatement(node, position, buffer) { - const { scope } = node; - node.body = convertNode2(node, scope, buffer[position], buffer); - node.test = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function emptyStatement() { - }, - function exportAllDeclaration(node, position, buffer) { - const { scope } = node; - const exportedPosition = buffer[position]; - node.exported = exportedPosition === 0 ? null : convertNode2(node, scope, exportedPosition, buffer); - node.source = convertNode2(node, scope, buffer[position + 1], buffer); - node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer); - }, - function exportDefaultDeclaration(node, position, buffer) { - const { scope } = node; - node.declaration = convertNode2(node, scope, buffer[position], buffer); - }, - function exportNamedDeclaration(node, position, buffer) { - const { scope } = node; - node.specifiers = convertNodeList(node, scope, buffer[position], buffer); - const sourcePosition = buffer[position + 1]; - node.source = sourcePosition === 0 ? null : convertNode2(node, scope, sourcePosition, buffer); - node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer); - const declarationPosition = buffer[position + 3]; - node.declaration = declarationPosition === 0 ? null : convertNode2(node, scope, declarationPosition, buffer); - }, - function exportSpecifier(node, position, buffer) { - const { scope } = node; - node.local = convertNode2(node, scope, buffer[position], buffer); - const exportedPosition = buffer[position + 1]; - node.exported = exportedPosition === 0 ? node.local : convertNode2(node, scope, exportedPosition, buffer); - }, - function expressionStatement(node, position, buffer) { - const { scope } = node; - node.expression = convertNode2(node, scope, buffer[position], buffer); - }, - function forInStatement(node, position, buffer) { - const { scope } = node; - node.left = convertNode2(node, scope, buffer[position], buffer); - node.right = convertNode2(node, scope, buffer[position + 1], buffer); - node.body = convertNode2(node, scope, buffer[position + 2], buffer); - }, - function forOfStatement(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.await = (flags & 1) === 1; - node.left = convertNode2(node, scope, buffer[position + 1], buffer); - node.right = convertNode2(node, scope, buffer[position + 2], buffer); - node.body = convertNode2(node, scope, buffer[position + 3], buffer); - }, - function forStatement(node, position, buffer) { - const { scope } = node; - const initPosition = buffer[position]; - node.init = initPosition === 0 ? null : convertNode2(node, scope, initPosition, buffer); - const testPosition = buffer[position + 1]; - node.test = testPosition === 0 ? null : convertNode2(node, scope, testPosition, buffer); - const updatePosition = buffer[position + 2]; - node.update = updatePosition === 0 ? null : convertNode2(node, scope, updatePosition, buffer); - node.body = convertNode2(node, scope, buffer[position + 3], buffer); - }, - function functionDeclaration(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.async = (flags & 1) === 1; - node.generator = (flags & 2) === 2; - const annotations = node.annotations = convertAnnotations(buffer[position + 1], buffer); - node.annotationNoSideEffects = annotations.some((comment) => comment.type === "noSideEffects"); - const idPosition = buffer[position + 2]; - node.id = idPosition === 0 ? null : convertNode2(node, scope.parent, idPosition, buffer); - const parameters = node.params = convertNodeList(node, scope, buffer[position + 3], buffer); - scope.addParameterVariables(parameters.map((parameter) => parameter.declare("parameter", UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement); - node.body = convertNode2(node, scope.bodyScope, buffer[position + 4], buffer); - }, - function functionExpression(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.async = (flags & 1) === 1; - node.generator = (flags & 2) === 2; - const annotations = node.annotations = convertAnnotations(buffer[position + 1], buffer); - node.annotationNoSideEffects = annotations.some((comment) => comment.type === "noSideEffects"); - const idPosition = buffer[position + 2]; - node.id = idPosition === 0 ? null : convertNode2(node, node.idScope, idPosition, buffer); - const parameters = node.params = convertNodeList(node, scope, buffer[position + 3], buffer); - scope.addParameterVariables(parameters.map((parameter) => parameter.declare("parameter", UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement); - node.body = convertNode2(node, scope.bodyScope, buffer[position + 4], buffer); - }, - function identifier(node, position, buffer) { - node.name = buffer.convertString(buffer[position]); - }, - function ifStatement(node, position, buffer) { - const { scope } = node; - node.test = convertNode2(node, scope, buffer[position], buffer); - node.consequent = convertNode2(node, node.consequentScope = new TrackingScope(scope), buffer[position + 1], buffer); - const alternatePosition = buffer[position + 2]; - node.alternate = alternatePosition === 0 ? null : convertNode2(node, node.alternateScope = new TrackingScope(scope), alternatePosition, buffer); - }, - function importAttribute(node, position, buffer) { - const { scope } = node; - node.key = convertNode2(node, scope, buffer[position], buffer); - node.value = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function importDeclaration(node, position, buffer) { - const { scope } = node; - node.specifiers = convertNodeList(node, scope, buffer[position], buffer); - node.source = convertNode2(node, scope, buffer[position + 1], buffer); - node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer); - }, - function importDefaultSpecifier(node, position, buffer) { - const { scope } = node; - node.local = convertNode2(node, scope, buffer[position], buffer); - }, - function importExpression(node, position, buffer) { - const { scope } = node; - node.source = convertNode2(node, scope, buffer[position], buffer); - node.sourceAstNode = convertNode(buffer[position], buffer); - const optionsPosition = buffer[position + 1]; - node.options = optionsPosition === 0 ? null : convertNode2(node, scope, optionsPosition, buffer); - }, - function importNamespaceSpecifier(node, position, buffer) { - const { scope } = node; - node.local = convertNode2(node, scope, buffer[position], buffer); - }, - function importSpecifier(node, position, buffer) { - const { scope } = node; - const importedPosition = buffer[position]; - node.local = convertNode2(node, scope, buffer[position + 1], buffer); - node.imported = importedPosition === 0 ? node.local : convertNode2(node, scope, importedPosition, buffer); - }, - function labeledStatement(node, position, buffer) { - const { scope } = node; - node.label = convertNode2(node, scope, buffer[position], buffer); - node.body = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function literalBigInt(node, position, buffer) { - const bigint = node.bigint = buffer.convertString(buffer[position]); - node.raw = buffer.convertString(buffer[position + 1]); - node.value = BigInt(bigint); - }, - function literalBoolean(node, position, buffer) { - const flags = buffer[position]; - const value = node.value = (flags & 1) === 1; - node.raw = value ? "true" : "false"; - }, - function literalNull(node) { - node.value = null; - }, - function literalNumber(node, position, buffer) { - const rawPosition = buffer[position]; - node.raw = rawPosition === 0 ? void 0 : buffer.convertString(rawPosition); - node.value = new DataView(buffer.buffer).getFloat64(position + 1 << 2, true); - }, - function literalRegExp(node, position, buffer) { - const flags = buffer.convertString(buffer[position]); - const pattern = buffer.convertString(buffer[position + 1]); - node.raw = `/${pattern}/${flags}`; - node.regex = { flags, pattern }; - node.value = new RegExp(pattern, flags); - }, - function literalString(node, position, buffer) { - node.value = buffer.convertString(buffer[position]); - const rawPosition = buffer[position + 1]; - node.raw = rawPosition === 0 ? void 0 : buffer.convertString(rawPosition); - }, - function logicalExpression(node, position, buffer) { - const { scope } = node; - node.operator = FIXED_STRINGS[buffer[position]]; - node.left = convertNode2(node, scope, buffer[position + 1], buffer); - node.right = convertNode2(node, scope, buffer[position + 2], buffer); - }, - function memberExpression(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.computed = (flags & 1) === 1; - node.optional = (flags & 2) === 2; - node.object = convertNode2(node, scope, buffer[position + 1], buffer); - node.property = convertNode2(node, scope, buffer[position + 2], buffer); - }, - function metaProperty(node, position, buffer) { - const { scope } = node; - node.meta = convertNode2(node, scope, buffer[position], buffer); - node.property = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function methodDefinition(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.static = (flags & 1) === 1; - node.computed = (flags & 2) === 2; - node.decorators = convertNodeList(node, scope, buffer[position + 1], buffer); - node.key = convertNode2(node, scope, buffer[position + 2], buffer); - node.value = convertNode2(node, scope, buffer[position + 3], buffer); - node.kind = FIXED_STRINGS[buffer[position + 4]]; - }, - function newExpression(node, position, buffer) { - const { scope } = node; - node.annotations = convertAnnotations(buffer[position], buffer); - node.callee = convertNode2(node, scope, buffer[position + 1], buffer); - node.arguments = convertNodeList(node, scope, buffer[position + 2], buffer); - }, - function objectExpression(node, position, buffer) { - const { scope } = node; - node.properties = convertNodeList(node, scope, buffer[position], buffer); - }, - function objectPattern(node, position, buffer) { - const { scope } = node; - node.properties = convertNodeList(node, scope, buffer[position], buffer); - }, - function privateIdentifier(node, position, buffer) { - node.name = buffer.convertString(buffer[position]); - }, - function program(node, position, buffer) { - const { scope } = node; - node.body = convertNodeList(node, scope, buffer[position], buffer); - node.invalidAnnotations = convertAnnotations(buffer[position + 1], buffer); - }, - function property(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.method = (flags & 1) === 1; - node.shorthand = (flags & 2) === 2; - node.computed = (flags & 4) === 4; - const keyPosition = buffer[position + 1]; - node.value = convertNode2(node, scope, buffer[position + 2], buffer); - node.kind = FIXED_STRINGS[buffer[position + 3]]; - node.key = keyPosition === 0 ? node.value : convertNode2(node, scope, keyPosition, buffer); - }, - function propertyDefinition(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.static = (flags & 1) === 1; - node.computed = (flags & 2) === 2; - node.decorators = convertNodeList(node, scope, buffer[position + 1], buffer); - node.key = convertNode2(node, scope, buffer[position + 2], buffer); - const valuePosition = buffer[position + 3]; - node.value = valuePosition === 0 ? null : convertNode2(node, scope, valuePosition, buffer); - }, - function restElement(node, position, buffer) { - const { scope } = node; - node.argument = convertNode2(node, scope, buffer[position], buffer); - }, - function returnStatement(node, position, buffer) { - const { scope } = node; - const argumentPosition = buffer[position]; - node.argument = argumentPosition === 0 ? null : convertNode2(node, scope, argumentPosition, buffer); - }, - function sequenceExpression(node, position, buffer) { - const { scope } = node; - node.expressions = convertNodeList(node, scope, buffer[position], buffer); - }, - function spreadElement(node, position, buffer) { - const { scope } = node; - node.argument = convertNode2(node, scope, buffer[position], buffer); - }, - function staticBlock(node, position, buffer) { - const { scope } = node; - node.body = convertNodeList(node, scope, buffer[position], buffer); - }, - function superElement() { - }, - function switchCase(node, position, buffer) { - const { scope } = node; - const testPosition = buffer[position]; - node.test = testPosition === 0 ? null : convertNode2(node, scope, testPosition, buffer); - node.consequent = convertNodeList(node, scope, buffer[position + 1], buffer); - }, - function switchStatement(node, position, buffer) { - const { scope } = node; - node.discriminant = convertNode2(node, node.parentScope, buffer[position], buffer); - node.cases = convertNodeList(node, scope, buffer[position + 1], buffer); - }, - function taggedTemplateExpression(node, position, buffer) { - const { scope } = node; - node.tag = convertNode2(node, scope, buffer[position], buffer); - node.quasi = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function templateElement(node, position, buffer) { - const flags = buffer[position]; - node.tail = (flags & 1) === 1; - const cookedPosition = buffer[position + 1]; - const cooked = cookedPosition === 0 ? void 0 : buffer.convertString(cookedPosition); - const raw = buffer.convertString(buffer[position + 2]); - node.value = { cooked, raw }; - }, - function templateLiteral(node, position, buffer) { - const { scope } = node; - node.quasis = convertNodeList(node, scope, buffer[position], buffer); - node.expressions = convertNodeList(node, scope, buffer[position + 1], buffer); - }, - function thisExpression() { - }, - function throwStatement(node, position, buffer) { - const { scope } = node; - node.argument = convertNode2(node, scope, buffer[position], buffer); - }, - function tryStatement(node, position, buffer) { - const { scope } = node; - node.block = convertNode2(node, scope, buffer[position], buffer); - const handlerPosition = buffer[position + 1]; - node.handler = handlerPosition === 0 ? null : convertNode2(node, scope, handlerPosition, buffer); - const finalizerPosition = buffer[position + 2]; - node.finalizer = finalizerPosition === 0 ? null : convertNode2(node, scope, finalizerPosition, buffer); - }, - function unaryExpression(node, position, buffer) { - const { scope } = node; - node.operator = FIXED_STRINGS[buffer[position]]; - node.argument = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function updateExpression(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.prefix = (flags & 1) === 1; - node.operator = FIXED_STRINGS[buffer[position + 1]]; - node.argument = convertNode2(node, scope, buffer[position + 2], buffer); - }, - function variableDeclaration(node, position, buffer) { - const { scope } = node; - node.kind = FIXED_STRINGS[buffer[position]]; - node.declarations = convertNodeList(node, scope, buffer[position + 1], buffer); - }, - function variableDeclarator(node, position, buffer) { - const { scope } = node; - node.id = convertNode2(node, scope, buffer[position], buffer); - const initPosition = buffer[position + 1]; - node.init = initPosition === 0 ? null : convertNode2(node, scope, initPosition, buffer); - }, - function whileStatement(node, position, buffer) { - const { scope } = node; - node.test = convertNode2(node, scope, buffer[position], buffer); - node.body = convertNode2(node, scope, buffer[position + 1], buffer); - }, - function yieldExpression(node, position, buffer) { - const { scope } = node; - const flags = buffer[position]; - node.delegate = (flags & 1) === 1; - const argumentPosition = buffer[position + 1]; - node.argument = argumentPosition === 0 ? null : convertNode2(node, scope, argumentPosition, buffer); - } -]; -function convertNode2(parent, parentScope, position, buffer) { - const nodeType = buffer[position]; - const NodeConstructor = nodeConstructors$1[nodeType]; - if (!NodeConstructor) { - console.trace(); - throw new Error(`Unknown node type: ${nodeType}`); - } - const node = new NodeConstructor(parent, parentScope); - node.type = nodeTypeStrings[nodeType]; - node.start = buffer[position + 1]; - node.end = buffer[position + 2]; - bufferParsers[nodeType](node, position + 3, buffer); - node.initialise(); - return node; -} -function convertNodeList(parent, parentScope, position, buffer) { - if (position === 0) - return EMPTY_ARRAY; - const length = buffer[position++]; - const list = []; - for (let index = 0; index < length; index++) { - const nodePosition = buffer[position++]; - list.push(nodePosition ? convertNode2(parent, parentScope, nodePosition, buffer) : null); - } - return list; -} -var UnknownNode = class extends NodeBase { - hasEffects() { - return true; - } - include(context) { - super.include(context, true); - } -}; -var nodeConstructors = { - ArrayExpression, - ArrayPattern, - ArrowFunctionExpression: ArrowFunctionExpression2, - AssignmentExpression, - AssignmentPattern, - AwaitExpression, - BinaryExpression, - BlockStatement: BlockStatement2, - BreakStatement, - CallExpression: CallExpression2, - CatchClause: CatchClause2, - ChainExpression, - ClassBody, - ClassDeclaration, - ClassExpression, - ConditionalExpression, - ContinueStatement, - DebuggerStatement, - Decorator, - DoWhileStatement, - EmptyStatement, - ExportAllDeclaration, - ExportDefaultDeclaration: ExportDefaultDeclaration2, - ExportNamedDeclaration, - ExportSpecifier, - ExpressionStatement: ExpressionStatement2, - ForInStatement, - ForOfStatement, - ForStatement, - FunctionDeclaration, - FunctionExpression, - Identifier: Identifier2, - IfStatement, - ImportAttribute, - ImportDeclaration, - ImportDefaultSpecifier, - ImportExpression, - ImportNamespaceSpecifier, - ImportSpecifier, - LabeledStatement, - Literal: Literal2, - LogicalExpression, - MemberExpression, - MetaProperty, - MethodDefinition, - NewExpression, - ObjectExpression, - ObjectPattern, - PanicError, - ParseError, - PrivateIdentifier, - Program: Program2, - Property: Property2, - PropertyDefinition, - RestElement, - ReturnStatement: ReturnStatement2, - SequenceExpression, - SpreadElement, - StaticBlock: StaticBlock2, - Super, - SwitchCase, - SwitchStatement, - TaggedTemplateExpression, - TemplateElement, - TemplateLiteral: TemplateLiteral2, - ThisExpression, - ThrowStatement, - TryStatement, - UnaryExpression, - UnknownNode, - UpdateExpression, - VariableDeclaration, - VariableDeclarator: VariableDeclarator2, - WhileStatement, - YieldExpression -}; -var MISSING_EXPORT_SHIM_VARIABLE = "_missingExportShim"; -var ExportShimVariable = class extends Variable { - constructor(module) { - super(MISSING_EXPORT_SHIM_VARIABLE); - this.module = module; - } - include() { - super.include(); - this.module.needsExportShim = true; - } -}; -var NamespaceVariable = class extends Variable { - constructor(context) { - super(context.getModuleName()); - this.memberVariables = null; - this.mergedNamespaces = []; - this.referencedEarly = false; - this.references = []; - this.context = context; - this.module = context.module; - } - addReference(identifier2) { - this.references.push(identifier2); - this.name = identifier2.name; - } - deoptimizeArgumentsOnInteractionAtPath(interaction, path2, recursionTracker) { - var _a; - if (path2.length > 1 || path2.length === 1 && interaction.type === INTERACTION_CALLED) { - const key = path2[0]; - if (typeof key === "string") { - (_a = this.getMemberVariables()[key]) == null ? void 0 : _a.deoptimizeArgumentsOnInteractionAtPath(interaction, path2.slice(1), recursionTracker); - } else { - deoptimizeInteraction(interaction); - } - } - } - deoptimizePath(path2) { - var _a; - if (path2.length > 1) { - const key = path2[0]; - if (typeof key === "string") { - (_a = this.getMemberVariables()[key]) == null ? void 0 : _a.deoptimizePath(path2.slice(1)); - } - } - } - getLiteralValueAtPath(path2) { - if (path2[0] === SymbolToStringTag) { - return "Module"; - } - return UnknownValue; - } - getMemberVariables() { - if (this.memberVariables) { - return this.memberVariables; - } - const memberVariables = /* @__PURE__ */ Object.create(null); - const sortedExports = [...this.context.getExports(), ...this.context.getReexports()].sort(); - for (const name of sortedExports) { - if (name[0] !== "*" && name !== this.module.info.syntheticNamedExports) { - const exportedVariable = this.context.traceExport(name); - if (exportedVariable) { - memberVariables[name] = exportedVariable; - } - } - } - return this.memberVariables = memberVariables; - } - hasEffectsOnInteractionAtPath(path2, interaction, context) { - const { type } = interaction; - if (path2.length === 0) { - return true; - } - if (path2.length === 1 && type !== INTERACTION_CALLED) { - return type === INTERACTION_ASSIGNED; - } - const key = path2[0]; - if (typeof key !== "string") { - return true; - } - const memberVariable = this.getMemberVariables()[key]; - return !memberVariable || memberVariable.hasEffectsOnInteractionAtPath(path2.slice(1), interaction, context); - } - include() { - super.include(); - this.context.includeAllExports(); - } - prepare(accessedGlobalsByScope) { - if (this.mergedNamespaces.length > 0) { - this.module.scope.addAccessedGlobals([MERGE_NAMESPACES_VARIABLE], accessedGlobalsByScope); - } - } - renderBlock(options) { - const { exportNamesByVariable, format, freeze, indent: t, symbols, snippets: { _, cnst, getObject, getPropertyAccess, n: n2, s } } = options; - const memberVariables = this.getMemberVariables(); - const members = Object.entries(memberVariables).filter(([_2, variable]) => variable.included).map(([name2, variable]) => { - if (this.referencedEarly || variable.isReassigned || variable === this) { - return [ - null, - `get ${stringifyObjectKeyIfNeeded(name2)}${_}()${_}{${_}return ${variable.getName(getPropertyAccess)}${s}${_}}` - ]; - } - return [name2, variable.getName(getPropertyAccess)]; - }); - members.unshift([null, `__proto__:${_}null`]); - let output = getObject(members, { lineBreakIndent: { base: "", t } }); - if (this.mergedNamespaces.length > 0) { - const assignmentArguments = this.mergedNamespaces.map((variable) => variable.getName(getPropertyAccess)); - output = `/*#__PURE__*/${MERGE_NAMESPACES_VARIABLE}(${output},${_}[${assignmentArguments.join(`,${_}`)}])`; - } else { - if (symbols) { - output = `/*#__PURE__*/Object.defineProperty(${output},${_}Symbol.toStringTag,${_}${getToStringTagValue(getObject)})`; - } - if (freeze) { - output = `/*#__PURE__*/Object.freeze(${output})`; - } - } - const name = this.getName(getPropertyAccess); - output = `${cnst} ${name}${_}=${_}${output};`; - if (format === "system" && exportNamesByVariable.has(this)) { - output += `${n2}${getSystemExportStatement([this], options)};`; - } - return output; - } - renderFirst() { - return this.referencedEarly; - } - setMergedNamespaces(mergedNamespaces) { - this.mergedNamespaces = mergedNamespaces; - const moduleExecIndex = this.context.getModuleExecIndex(); - for (const identifier2 of this.references) { - const { context } = identifier2.scope; - if (context.getModuleExecIndex() <= moduleExecIndex) { - this.referencedEarly = true; - break; - } - } - } -}; -NamespaceVariable.prototype.isNamespace = true; -var SyntheticNamedExportVariable = class _SyntheticNamedExportVariable extends Variable { - constructor(context, name, syntheticNamespace) { - super(name); - this.baseVariable = null; - this.context = context; - this.module = context.module; - this.syntheticNamespace = syntheticNamespace; - } - getBaseVariable() { - if (this.baseVariable) - return this.baseVariable; - let baseVariable = this.syntheticNamespace; - while (baseVariable instanceof ExportDefaultVariable || baseVariable instanceof _SyntheticNamedExportVariable) { - if (baseVariable instanceof ExportDefaultVariable) { - const original = baseVariable.getOriginalVariable(); - if (original === baseVariable) - break; - baseVariable = original; - } - if (baseVariable instanceof _SyntheticNamedExportVariable) { - baseVariable = baseVariable.syntheticNamespace; - } - } - return this.baseVariable = baseVariable; - } - getBaseVariableName() { - return this.syntheticNamespace.getBaseVariableName(); - } - getName(getPropertyAccess) { - return `${this.syntheticNamespace.getName(getPropertyAccess)}${getPropertyAccess(this.name)}`; - } - include() { - super.include(); - this.context.includeVariableInModule(this.syntheticNamespace); - } - setRenderNames(baseName, name) { - super.setRenderNames(baseName, name); - } -}; -var BuildPhase; -(function(BuildPhase2) { - BuildPhase2[BuildPhase2["LOAD_AND_PARSE"] = 0] = "LOAD_AND_PARSE"; - BuildPhase2[BuildPhase2["ANALYSE"] = 1] = "ANALYSE"; - BuildPhase2[BuildPhase2["GENERATE"] = 2] = "GENERATE"; -})(BuildPhase || (BuildPhase = {})); -var sourceMapCache = /* @__PURE__ */ new WeakMap(); -function resetCacheToEncoded(cache) { - if (cache.encodedMappings === void 0 && cache.decodedMappings) { - cache.encodedMappings = encode(cache.decodedMappings); - } - cache.decodedMappings = void 0; -} -function resetSourcemapCache(map, sourcemapChain) { - if (map) { - const cache = sourceMapCache.get(map); - if (cache) { - resetCacheToEncoded(cache); - } - } - if (!sourcemapChain) { - return; - } - for (const map2 of sourcemapChain) { - if (map2.missing) - continue; - resetSourcemapCache(map2); - } -} -function decodedSourcemap(map) { - if (!map) - return null; - if (typeof map === "string") { - map = JSON.parse(map); - } - if (!map.mappings) { - return { - mappings: [], - names: [], - sources: [], - version: 3 - }; - } - const originalMappings = map.mappings; - const isAlreadyDecoded = Array.isArray(originalMappings); - const cache = { - decodedMappings: isAlreadyDecoded ? originalMappings : void 0, - encodedMappings: isAlreadyDecoded ? void 0 : originalMappings - }; - const decodedMap = { - ...map, - // By moving mappings behind an accessor, we can avoid unneeded computation for cases - // where the mappings field is never actually accessed. This appears to greatly reduce - // the overhead of sourcemap decoding in terms of both compute time and memory usage. - get mappings() { - if (cache.decodedMappings) { - return cache.decodedMappings; - } - cache.decodedMappings = cache.encodedMappings ? decode(cache.encodedMappings) : []; - cache.encodedMappings = void 0; - return cache.decodedMappings; - } - }; - sourceMapCache.set(decodedMap, cache); - return decodedMap; -} -function getId(m) { - return m.id; -} -function getOriginalLocation(sourcemapChain, location) { - const filteredSourcemapChain = sourcemapChain.filter((sourcemap) => !sourcemap.missing); - traceSourcemap: while (filteredSourcemapChain.length > 0) { - const sourcemap = filteredSourcemapChain.pop(); - const line = sourcemap.mappings[location.line - 1]; - if (line) { - const filteredLine = line.filter((segment) => segment.length > 1); - const lastSegment = filteredLine[filteredLine.length - 1]; - for (const segment of filteredLine) { - if (segment[0] >= location.column || segment === lastSegment) { - location = { - column: segment[3], - line: segment[2] + 1 - }; - continue traceSourcemap; - } - } - } - throw new Error("Can't resolve original location of error."); - } - return location; -} -var ATTRIBUTE_KEYWORDS = /* @__PURE__ */ new Set(["assert", "with"]); -function getAttributesFromImportExpression(node) { - var _a; - const { scope: { context }, options, start } = node; - if (!(options instanceof ObjectExpression)) { - if (options) { - context.module.log(LOGLEVEL_WARN, logImportAttributeIsInvalid(context.module.id), start); - } - return EMPTY_OBJECT; - } - const assertProperty = (_a = options.properties.find((property2) => ATTRIBUTE_KEYWORDS.has(getPropertyKey(property2)))) == null ? void 0 : _a.value; - if (!assertProperty) { - return EMPTY_OBJECT; - } - if (!(assertProperty instanceof ObjectExpression)) { - context.module.log(LOGLEVEL_WARN, logImportOptionsAreInvalid(context.module.id), start); - return EMPTY_OBJECT; - } - const assertFields = assertProperty.properties.map((property2) => { - const key = getPropertyKey(property2); - if (typeof key === "string" && typeof property2.value.value === "string") { - return [key, property2.value.value]; - } - context.module.log(LOGLEVEL_WARN, logImportAttributeIsInvalid(context.module.id), property2.start); - return null; - }).filter((property2) => !!property2); - if (assertFields.length > 0) { - return Object.fromEntries(assertFields); - } - return EMPTY_OBJECT; -} -var getPropertyKey = (property2) => { - const key = property2.key; - return key && !property2.computed && (key.name || key.value); -}; -function getAttributesFromImportExportDeclaration(attributes) { - return (attributes == null ? void 0 : attributes.length) ? Object.fromEntries(attributes.map((assertion) => [getPropertyKey(assertion), assertion.value.value])) : EMPTY_OBJECT; -} -function doAttributesDiffer(assertionA, assertionB) { - const keysA = Object.keys(assertionA); - return keysA.length !== Object.keys(assertionB).length || keysA.some((key) => assertionA[key] !== assertionB[key]); -} -var timers = /* @__PURE__ */ new Map(); -function getPersistedLabel(label, level) { - switch (level) { - case 1: { - return `# ${label}`; - } - case 2: { - return `## ${label}`; - } - case 3: { - return label; - } - default: { - return `- ${label}`; - } - } -} -function timeStartImpl(label, level = 3) { - label = getPersistedLabel(label, level); - const startMemory = import_node_process.default.memoryUsage().heapUsed; - const startTime = import_node_perf_hooks.performance.now(); - const timer = timers.get(label); - if (timer === void 0) { - timers.set(label, { - memory: 0, - startMemory, - startTime, - time: 0, - totalMemory: 0 - }); - } else { - timer.startMemory = startMemory; - timer.startTime = startTime; - } -} -function timeEndImpl(label, level = 3) { - label = getPersistedLabel(label, level); - const timer = timers.get(label); - if (timer !== void 0) { - const currentMemory = import_node_process.default.memoryUsage().heapUsed; - timer.memory += currentMemory - timer.startMemory; - timer.time += import_node_perf_hooks.performance.now() - timer.startTime; - timer.totalMemory = Math.max(timer.totalMemory, currentMemory); - } -} -function getTimings() { - const newTimings = {}; - for (const [label, { memory, time, totalMemory }] of timers) { - newTimings[label] = [time, memory, totalMemory]; - } - return newTimings; -} -var timeStart = doNothing; -var timeEnd = doNothing; -var TIMED_PLUGIN_HOOKS = [ - "augmentChunkHash", - "buildEnd", - "buildStart", - "generateBundle", - "load", - "moduleParsed", - "options", - "outputOptions", - "renderChunk", - "renderDynamicImport", - "renderStart", - "resolveDynamicImport", - "resolveFileUrl", - "resolveId", - "resolveImportMeta", - "shouldTransformCachedModule", - "transform", - "writeBundle" -]; -function getPluginWithTimers(plugin, index) { - if (plugin._hasTimer) - return plugin; - plugin._hasTimer = true; - for (const hook of TIMED_PLUGIN_HOOKS) { - if (hook in plugin) { - let timerLabel = `plugin ${index}`; - if (plugin.name) { - timerLabel += ` (${plugin.name})`; - } - timerLabel += ` - ${hook}`; - const handler = function(...parameters) { - timeStart(timerLabel, 4); - const result = hookFunction.apply(this, parameters); - timeEnd(timerLabel, 4); - return result; - }; - let hookFunction; - if (typeof plugin[hook].handler === "function") { - hookFunction = plugin[hook].handler; - plugin[hook].handler = handler; - } else { - hookFunction = plugin[hook]; - plugin[hook] = handler; - } - } - } - return plugin; -} -function initialiseTimers(inputOptions) { - if (inputOptions.perf) { - timers = /* @__PURE__ */ new Map(); - timeStart = timeStartImpl; - timeEnd = timeEndImpl; - inputOptions.plugins = inputOptions.plugins.map(getPluginWithTimers); - } else { - timeStart = doNothing; - timeEnd = doNothing; - } -} -function markModuleAndImpureDependenciesAsExecuted(baseModule) { - baseModule.isExecuted = true; - const modules = [baseModule]; - const visitedModules = /* @__PURE__ */ new Set(); - for (const module of modules) { - for (const dependency of [...module.dependencies, ...module.implicitlyLoadedBefore]) { - if (!(dependency instanceof ExternalModule) && !dependency.isExecuted && (dependency.info.moduleSideEffects || module.implicitlyLoadedBefore.has(dependency)) && !visitedModules.has(dependency.id)) { - dependency.isExecuted = true; - visitedModules.add(dependency.id); - modules.push(dependency); - } - } - } -} -var MISSING_EXPORT_SHIM_DESCRIPTION = { - identifier: null, - localName: MISSING_EXPORT_SHIM_VARIABLE -}; -function getVariableForExportNameRecursive(target, name, importerForSideEffects, isExportAllSearch, searchedNamesAndModules = /* @__PURE__ */ new Map()) { - const searchedModules = searchedNamesAndModules.get(name); - if (searchedModules) { - if (searchedModules.has(target)) { - return isExportAllSearch ? [null] : error(logCircularReexport(name, target.id)); - } - searchedModules.add(target); - } else { - searchedNamesAndModules.set(name, /* @__PURE__ */ new Set([target])); - } - return target.getVariableForExportName(name, { - importerForSideEffects, - isExportAllSearch, - searchedNamesAndModules - }); -} -function getAndExtendSideEffectModules(variable, module) { - const sideEffectModules = getOrCreate(module.sideEffectDependenciesByVariable, variable, getNewSet); - let currentVariable = variable; - const referencedVariables = /* @__PURE__ */ new Set([currentVariable]); - while (true) { - const importingModule = currentVariable.module; - currentVariable = currentVariable instanceof ExportDefaultVariable ? currentVariable.getDirectOriginalVariable() : currentVariable instanceof SyntheticNamedExportVariable ? currentVariable.syntheticNamespace : null; - if (!currentVariable || referencedVariables.has(currentVariable)) { - break; - } - referencedVariables.add(currentVariable); - sideEffectModules.add(importingModule); - const originalSideEffects = importingModule.sideEffectDependenciesByVariable.get(currentVariable); - if (originalSideEffects) { - for (const module2 of originalSideEffects) { - sideEffectModules.add(module2); - } - } - } - return sideEffectModules; -} -var Module = class _Module { - constructor(graph, id, options, isEntry, moduleSideEffects, syntheticNamedExports, meta, attributes) { - this.graph = graph; - this.id = id; - this.options = options; - this.alternativeReexportModules = /* @__PURE__ */ new Map(); - this.chunkFileNames = /* @__PURE__ */ new Set(); - this.chunkNames = []; - this.cycles = /* @__PURE__ */ new Set(); - this.dependencies = /* @__PURE__ */ new Set(); - this.dynamicDependencies = /* @__PURE__ */ new Set(); - this.dynamicImporters = []; - this.dynamicImports = []; - this.execIndex = Infinity; - this.implicitlyLoadedAfter = /* @__PURE__ */ new Set(); - this.implicitlyLoadedBefore = /* @__PURE__ */ new Set(); - this.importDescriptions = /* @__PURE__ */ new Map(); - this.importMetas = []; - this.importedFromNotTreeshaken = false; - this.importers = []; - this.includedDynamicImporters = []; - this.includedImports = /* @__PURE__ */ new Set(); - this.isExecuted = false; - this.isUserDefinedEntryPoint = false; - this.needsExportShim = false; - this.sideEffectDependenciesByVariable = /* @__PURE__ */ new Map(); - this.sourcesWithAttributes = /* @__PURE__ */ new Map(); - this.allExportNames = null; - this.ast = null; - this.exportAllModules = []; - this.exportAllSources = /* @__PURE__ */ new Set(); - this.exportNamesByVariable = null; - this.exportShimVariable = new ExportShimVariable(this); - this.exports = /* @__PURE__ */ new Map(); - this.namespaceReexportsByName = /* @__PURE__ */ new Map(); - this.reexportDescriptions = /* @__PURE__ */ new Map(); - this.relevantDependencies = null; - this.syntheticExports = /* @__PURE__ */ new Map(); - this.syntheticNamespace = null; - this.transformDependencies = []; - this.transitiveReexports = null; - this.excludeFromSourcemap = /\0/.test(id); - this.context = options.moduleContext(id); - this.preserveSignature = this.options.preserveEntrySignatures; - const module = this; - const { dynamicImports, dynamicImporters, exportAllSources, exports, implicitlyLoadedAfter, implicitlyLoadedBefore, importers, reexportDescriptions, sourcesWithAttributes } = this; - this.info = { - ast: null, - attributes, - code: null, - get dynamicallyImportedIdResolutions() { - return dynamicImports.map(({ argument }) => typeof argument === "string" && module.resolvedIds[argument]).filter(Boolean); - }, - get dynamicallyImportedIds() { - return dynamicImports.map(({ id: id2 }) => id2).filter((id2) => id2 != null); - }, - get dynamicImporters() { - return dynamicImporters.sort(); - }, - get exportedBindings() { - const exportBindings = { ".": [...exports.keys()] }; - for (const [name, { source }] of reexportDescriptions) { - (exportBindings[source] ?? (exportBindings[source] = [])).push(name); - } - for (const source of exportAllSources) { - (exportBindings[source] ?? (exportBindings[source] = [])).push("*"); - } - return exportBindings; - }, - get exports() { - return [ - ...exports.keys(), - ...reexportDescriptions.keys(), - ...[...exportAllSources].map(() => "*") - ]; - }, - get hasDefaultExport() { - if (!module.ast) { - return null; - } - return module.exports.has("default") || reexportDescriptions.has("default"); - }, - id, - get implicitlyLoadedAfterOneOf() { - return Array.from(implicitlyLoadedAfter, getId).sort(); - }, - get implicitlyLoadedBefore() { - return Array.from(implicitlyLoadedBefore, getId).sort(); - }, - get importedIdResolutions() { - return Array.from(sourcesWithAttributes.keys(), (source) => module.resolvedIds[source]).filter(Boolean); - }, - get importedIds() { - return Array.from(sourcesWithAttributes.keys(), (source) => { - var _a; - return (_a = module.resolvedIds[source]) == null ? void 0 : _a.id; - }).filter(Boolean); - }, - get importers() { - return importers.sort(); - }, - isEntry, - isExternal: false, - get isIncluded() { - if (graph.phase !== BuildPhase.GENERATE) { - return null; - } - return module.isIncluded(); - }, - meta: { ...meta }, - moduleSideEffects, - syntheticNamedExports - }; - } - basename() { - const base2 = (0, import_node_path.basename)(this.id); - const extension = (0, import_node_path.extname)(this.id); - return makeLegal(extension ? base2.slice(0, -extension.length) : base2); - } - bindReferences() { - this.ast.bind(); - } - cacheInfoGetters() { - cacheObjectGetters(this.info, [ - "dynamicallyImportedIdResolutions", - "dynamicallyImportedIds", - "dynamicImporters", - "exportedBindings", - "exports", - "hasDefaultExport", - "implicitlyLoadedAfterOneOf", - "implicitlyLoadedBefore", - "importedIdResolutions", - "importedIds", - "importers" - ]); - } - error(properties, pos) { - pos !== void 0 && this.addLocationToLogProps(properties, pos); - return error(properties); - } - // sum up the length of all ast nodes that are included - estimateSize() { - let size = 0; - for (const node of this.ast.body) { - if (node.included) { - size += node.end - node.start; - } - } - return size; - } - getAllExportNames() { - if (this.allExportNames) { - return this.allExportNames; - } - this.allExportNames = /* @__PURE__ */ new Set([...this.exports.keys(), ...this.reexportDescriptions.keys()]); - for (const module of this.exportAllModules) { - if (module instanceof ExternalModule) { - this.allExportNames.add(`*${module.id}`); - continue; - } - for (const name of module.getAllExportNames()) { - if (name !== "default") - this.allExportNames.add(name); - } - } - if (typeof this.info.syntheticNamedExports === "string") { - this.allExportNames.delete(this.info.syntheticNamedExports); - } - return this.allExportNames; - } - getDependenciesToBeIncluded() { - if (this.relevantDependencies) - return this.relevantDependencies; - this.relevantDependencies = /* @__PURE__ */ new Set(); - const necessaryDependencies = /* @__PURE__ */ new Set(); - const alwaysCheckedDependencies = /* @__PURE__ */ new Set(); - const dependencyVariables = new Set(this.includedImports); - if (this.info.isEntry || this.includedDynamicImporters.length > 0 || this.namespace.included || this.implicitlyLoadedAfter.size > 0) { - for (const exportName of [...this.getReexports(), ...this.getExports()]) { - const [exportedVariable] = this.getVariableForExportName(exportName); - if (exportedVariable == null ? void 0 : exportedVariable.included) { - dependencyVariables.add(exportedVariable); - } - } - } - for (let variable of dependencyVariables) { - const sideEffectDependencies = this.sideEffectDependenciesByVariable.get(variable); - if (sideEffectDependencies) { - for (const module of sideEffectDependencies) { - alwaysCheckedDependencies.add(module); - } - } - if (variable instanceof SyntheticNamedExportVariable) { - variable = variable.getBaseVariable(); - } else if (variable instanceof ExportDefaultVariable) { - variable = variable.getOriginalVariable(); - } - necessaryDependencies.add(variable.module); - } - if (!this.options.treeshake || this.info.moduleSideEffects === "no-treeshake") { - for (const dependency of this.dependencies) { - this.relevantDependencies.add(dependency); - } - } else { - this.addRelevantSideEffectDependencies(this.relevantDependencies, necessaryDependencies, alwaysCheckedDependencies); - } - for (const dependency of necessaryDependencies) { - this.relevantDependencies.add(dependency); - } - return this.relevantDependencies; - } - getExportNamesByVariable() { - if (this.exportNamesByVariable) { - return this.exportNamesByVariable; - } - const exportNamesByVariable = /* @__PURE__ */ new Map(); - for (const exportName of this.getAllExportNames()) { - let [tracedVariable] = this.getVariableForExportName(exportName); - if (tracedVariable instanceof ExportDefaultVariable) { - tracedVariable = tracedVariable.getOriginalVariable(); - } - if (!tracedVariable || !(tracedVariable.included || tracedVariable instanceof ExternalVariable)) { - continue; - } - const existingExportNames = exportNamesByVariable.get(tracedVariable); - if (existingExportNames) { - existingExportNames.push(exportName); - } else { - exportNamesByVariable.set(tracedVariable, [exportName]); - } - } - return this.exportNamesByVariable = exportNamesByVariable; - } - getExports() { - return [...this.exports.keys()]; - } - getReexports() { - if (this.transitiveReexports) { - return this.transitiveReexports; - } - this.transitiveReexports = []; - const reexports = new Set(this.reexportDescriptions.keys()); - for (const module of this.exportAllModules) { - if (module instanceof ExternalModule) { - reexports.add(`*${module.id}`); - } else { - for (const name of [...module.getReexports(), ...module.getExports()]) { - if (name !== "default") - reexports.add(name); - } - } - } - return this.transitiveReexports = [...reexports]; - } - getRenderedExports() { - const renderedExports = []; - const removedExports = []; - for (const exportName of this.exports.keys()) { - const [variable] = this.getVariableForExportName(exportName); - ((variable == null ? void 0 : variable.included) ? renderedExports : removedExports).push(exportName); - } - return { removedExports, renderedExports }; - } - getSyntheticNamespace() { - if (this.syntheticNamespace === null) { - this.syntheticNamespace = void 0; - [this.syntheticNamespace] = this.getVariableForExportName(typeof this.info.syntheticNamedExports === "string" ? this.info.syntheticNamedExports : "default", { onlyExplicit: true }); - } - if (!this.syntheticNamespace) { - return error(logSyntheticNamedExportsNeedNamespaceExport(this.id, this.info.syntheticNamedExports)); - } - return this.syntheticNamespace; - } - getVariableForExportName(name, { importerForSideEffects, isExportAllSearch, onlyExplicit, searchedNamesAndModules } = EMPTY_OBJECT) { - if (name[0] === "*") { - if (name.length === 1) { - return [this.namespace]; - } - const module = this.graph.modulesById.get(name.slice(1)); - return module.getVariableForExportName("*"); - } - const reexportDeclaration = this.reexportDescriptions.get(name); - if (reexportDeclaration) { - const [variable] = getVariableForExportNameRecursive(reexportDeclaration.module, reexportDeclaration.localName, importerForSideEffects, false, searchedNamesAndModules); - if (!variable) { - return this.error(logMissingExport(reexportDeclaration.localName, this.id, reexportDeclaration.module.id), reexportDeclaration.start); - } - if (importerForSideEffects) { - setAlternativeExporterIfCyclic(variable, importerForSideEffects, this); - if (this.info.moduleSideEffects) { - getOrCreate(importerForSideEffects.sideEffectDependenciesByVariable, variable, getNewSet).add(this); - } - } - return [variable]; - } - const exportDeclaration = this.exports.get(name); - if (exportDeclaration) { - if (exportDeclaration === MISSING_EXPORT_SHIM_DESCRIPTION) { - return [this.exportShimVariable]; - } - const name2 = exportDeclaration.localName; - const variable = this.traceVariable(name2, { - importerForSideEffects, - searchedNamesAndModules - }); - if (importerForSideEffects) { - setAlternativeExporterIfCyclic(variable, importerForSideEffects, this); - getOrCreate(importerForSideEffects.sideEffectDependenciesByVariable, variable, getNewSet).add(this); - } - return [variable]; - } - if (onlyExplicit) { - return [null]; - } - if (name !== "default") { - const foundNamespaceReexport = this.namespaceReexportsByName.get(name) ?? this.getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules); - this.namespaceReexportsByName.set(name, foundNamespaceReexport); - if (foundNamespaceReexport[0]) { - return foundNamespaceReexport; - } - } - if (this.info.syntheticNamedExports) { - return [ - getOrCreate(this.syntheticExports, name, () => new SyntheticNamedExportVariable(this.astContext, name, this.getSyntheticNamespace())) - ]; - } - if (!isExportAllSearch && this.options.shimMissingExports) { - this.shimMissingExport(name); - return [this.exportShimVariable]; - } - return [null]; - } - hasEffects() { - return this.info.moduleSideEffects === "no-treeshake" || this.ast.hasCachedEffects(); - } - include() { - const context = createInclusionContext(); - if (this.ast.shouldBeIncluded(context)) - this.ast.include(context, false); - } - includeAllExports(includeNamespaceMembers) { - if (!this.isExecuted) { - markModuleAndImpureDependenciesAsExecuted(this); - this.graph.needsTreeshakingPass = true; - } - for (const exportName of this.exports.keys()) { - if (includeNamespaceMembers || exportName !== this.info.syntheticNamedExports) { - const variable = this.getVariableForExportName(exportName)[0]; - if (!variable) { - return error(logMissingEntryExport(exportName, this.id)); - } - variable.deoptimizePath(UNKNOWN_PATH); - if (!variable.included) { - this.includeVariable(variable); - } - } - } - for (const name of this.getReexports()) { - const [variable] = this.getVariableForExportName(name); - if (variable) { - variable.deoptimizePath(UNKNOWN_PATH); - if (!variable.included) { - this.includeVariable(variable); - } - if (variable instanceof ExternalVariable) { - variable.module.reexported = true; - } - } - } - if (includeNamespaceMembers) { - this.namespace.setMergedNamespaces(this.includeAndGetAdditionalMergedNamespaces()); - } - } - includeAllInBundle() { - this.ast.include(createInclusionContext(), true); - this.includeAllExports(false); - } - includeExportsByNames(names) { - if (!this.isExecuted) { - markModuleAndImpureDependenciesAsExecuted(this); - this.graph.needsTreeshakingPass = true; - } - let includeNamespaceMembers = false; - for (const name of names) { - const variable = this.getVariableForExportName(name)[0]; - if (variable) { - variable.deoptimizePath(UNKNOWN_PATH); - if (!variable.included) { - this.includeVariable(variable); - } - } - if (!this.exports.has(name) && !this.reexportDescriptions.has(name)) { - includeNamespaceMembers = true; - } - } - if (includeNamespaceMembers) { - this.namespace.setMergedNamespaces(this.includeAndGetAdditionalMergedNamespaces()); - } - } - isIncluded() { - return this.ast && (this.ast.included || this.namespace.included || this.importedFromNotTreeshaken || this.exportShimVariable.included); - } - linkImports() { - this.addModulesToImportDescriptions(this.importDescriptions); - this.addModulesToImportDescriptions(this.reexportDescriptions); - const externalExportAllModules = []; - for (const source of this.exportAllSources) { - const module = this.graph.modulesById.get(this.resolvedIds[source].id); - if (module instanceof ExternalModule) { - externalExportAllModules.push(module); - continue; - } - this.exportAllModules.push(module); - } - this.exportAllModules.push(...externalExportAllModules); - } - log(level, properties, pos) { - this.addLocationToLogProps(properties, pos); - this.options.onLog(level, properties); - } - render(options) { - const source = this.magicString.clone(); - this.ast.render(source, options); - source.trim(); - const { usesTopLevelAwait } = this.astContext; - if (usesTopLevelAwait && options.format !== "es" && options.format !== "system") { - return error(logInvalidFormatForTopLevelAwait(this.id, options.format)); - } - return { source, usesTopLevelAwait }; - } - async setSource({ ast, code, customTransformCache, originalCode, originalSourcemap, resolvedIds, sourcemapChain, transformDependencies, transformFiles, ...moduleOptions }) { - timeStart("generate ast", 3); - if (code.startsWith("#!")) { - const shebangEndPosition = code.indexOf("\n"); - this.shebang = code.slice(2, shebangEndPosition); - } - this.info.code = code; - this.originalCode = originalCode; - this.originalSourcemap = decodedSourcemap(originalSourcemap); - this.sourcemapChain = sourcemapChain.map((mapOrMissing) => mapOrMissing.missing ? mapOrMissing : decodedSourcemap(mapOrMissing)); - resetSourcemapCache(this.originalSourcemap, this.sourcemapChain); - if (transformFiles) { - this.transformFiles = transformFiles; - } - this.transformDependencies = transformDependencies; - this.customTransformCache = customTransformCache; - this.updateOptions(moduleOptions); - this.resolvedIds = resolvedIds ?? /* @__PURE__ */ Object.create(null); - const fileName = this.id; - this.magicString = new MagicString(code, { - filename: this.excludeFromSourcemap ? null : fileName, - // don't include plugin helpers in sourcemap - indentExclusionRanges: [] - }); - this.astContext = { - addDynamicImport: this.addDynamicImport.bind(this), - addExport: this.addExport.bind(this), - addImport: this.addImport.bind(this), - addImportMeta: this.addImportMeta.bind(this), - code, - // Only needed for debugging - deoptimizationTracker: this.graph.deoptimizationTracker, - error: this.error.bind(this), - fileName, - // Needed for warnings - getExports: this.getExports.bind(this), - getModuleExecIndex: () => this.execIndex, - getModuleName: this.basename.bind(this), - getNodeConstructor: (name) => nodeConstructors[name] || nodeConstructors.UnknownNode, - getReexports: this.getReexports.bind(this), - importDescriptions: this.importDescriptions, - includeAllExports: () => this.includeAllExports(true), - includeDynamicImport: this.includeDynamicImport.bind(this), - includeVariableInModule: this.includeVariableInModule.bind(this), - log: this.log.bind(this), - magicString: this.magicString, - manualPureFunctions: this.graph.pureFunctions, - module: this, - moduleContext: this.context, - options: this.options, - requestTreeshakingPass: () => this.graph.needsTreeshakingPass = true, - traceExport: (name) => this.getVariableForExportName(name)[0], - traceVariable: this.traceVariable.bind(this), - usesTopLevelAwait: false - }; - this.scope = new ModuleScope(this.graph.scope, this.astContext); - this.namespace = new NamespaceVariable(this.astContext); - const programParent = { context: this.astContext, type: "Module" }; - if (ast) { - this.ast = new nodeConstructors[ast.type](programParent, this.scope).parseNode(ast); - this.info.ast = ast; - } else { - timeEnd("generate ast", 3); - const astBuffer = await (0, import_native.parseAsync)(code, false); - timeStart("generate ast", 3); - this.ast = convertProgram(astBuffer, programParent, this.scope); - Object.defineProperty(this.info, "ast", { - get: () => { - if (this.graph.astLru.has(fileName)) { - return this.graph.astLru.get(fileName); - } else { - const parsedAst = this.tryParse(); - if (this.options.cache !== false) { - Object.defineProperty(this.info, "ast", { - value: parsedAst - }); - return parsedAst; - } - this.graph.astLru.set(fileName, parsedAst); - return parsedAst; - } - } - }); - } - timeEnd("generate ast", 3); - } - toJSON() { - return { - ast: this.info.ast, - attributes: this.info.attributes, - code: this.info.code, - customTransformCache: this.customTransformCache, - // eslint-disable-next-line unicorn/prefer-spread - dependencies: Array.from(this.dependencies, getId), - id: this.id, - meta: this.info.meta, - moduleSideEffects: this.info.moduleSideEffects, - originalCode: this.originalCode, - originalSourcemap: this.originalSourcemap, - resolvedIds: this.resolvedIds, - sourcemapChain: this.sourcemapChain, - syntheticNamedExports: this.info.syntheticNamedExports, - transformDependencies: this.transformDependencies, - transformFiles: this.transformFiles - }; - } - traceVariable(name, { importerForSideEffects, isExportAllSearch, searchedNamesAndModules } = EMPTY_OBJECT) { - const localVariable = this.scope.variables.get(name); - if (localVariable) { - return localVariable; - } - const importDescription = this.importDescriptions.get(name); - if (importDescription) { - const otherModule = importDescription.module; - if (otherModule instanceof _Module && importDescription.name === "*") { - return otherModule.namespace; - } - const [declaration] = getVariableForExportNameRecursive(otherModule, importDescription.name, importerForSideEffects || this, isExportAllSearch, searchedNamesAndModules); - if (!declaration) { - return this.error(logMissingExport(importDescription.name, this.id, otherModule.id), importDescription.start); - } - return declaration; - } - return null; - } - updateOptions({ meta, moduleSideEffects, syntheticNamedExports }) { - if (moduleSideEffects != null) { - this.info.moduleSideEffects = moduleSideEffects; - } - if (syntheticNamedExports != null) { - this.info.syntheticNamedExports = syntheticNamedExports; - } - if (meta != null) { - Object.assign(this.info.meta, meta); - } - } - addDynamicImport(node) { - let argument = node.sourceAstNode; - if (argument.type === TemplateLiteral) { - if (argument.quasis.length === 1 && typeof argument.quasis[0].value.cooked === "string") { - argument = argument.quasis[0].value.cooked; - } - } else if (argument.type === Literal && typeof argument.value === "string") { - argument = argument.value; - } - this.dynamicImports.push({ argument, id: null, node, resolution: null }); - } - assertUniqueExportName(name, nodeStart) { - if (this.exports.has(name) || this.reexportDescriptions.has(name)) { - this.error(logDuplicateExportError(name), nodeStart); - } - } - addExport(node) { - if (node instanceof ExportDefaultDeclaration2) { - this.assertUniqueExportName("default", node.start); - this.exports.set("default", { - identifier: node.variable.getAssignedVariableName(), - localName: "default" - }); - } else if (node instanceof ExportAllDeclaration) { - const source = node.source.value; - this.addSource(source, node); - if (node.exported) { - const name = node.exported instanceof Literal2 ? node.exported.value : node.exported.name; - this.assertUniqueExportName(name, node.exported.start); - this.reexportDescriptions.set(name, { - localName: "*", - module: null, - // filled in later, - source, - start: node.start - }); - } else { - this.exportAllSources.add(source); - } - } else if (node.source instanceof Literal2) { - const source = node.source.value; - this.addSource(source, node); - for (const { exported, local, start } of node.specifiers) { - const name = exported instanceof Literal2 ? exported.value : exported.name; - this.assertUniqueExportName(name, start); - this.reexportDescriptions.set(name, { - localName: local instanceof Literal2 ? local.value : local.name, - module: null, - // filled in later, - source, - start - }); - } - } else if (node.declaration) { - const declaration = node.declaration; - if (declaration instanceof VariableDeclaration) { - for (const declarator of declaration.declarations) { - for (const localName of extractAssignedNames(declarator.id)) { - this.assertUniqueExportName(localName, declarator.id.start); - this.exports.set(localName, { identifier: null, localName }); - } - } - } else { - const localName = declaration.id.name; - this.assertUniqueExportName(localName, declaration.id.start); - this.exports.set(localName, { identifier: null, localName }); - } - } else { - for (const { local, exported } of node.specifiers) { - const localName = local.name; - const exportedName = exported instanceof Identifier2 ? exported.name : exported.value; - this.assertUniqueExportName(exportedName, exported.start); - this.exports.set(exportedName, { identifier: null, localName }); - } - } - } - addImport(node) { - const source = node.source.value; - this.addSource(source, node); - for (const specifier of node.specifiers) { - const localName = specifier.local.name; - if (this.scope.variables.has(localName) || this.importDescriptions.has(localName)) { - this.error(logRedeclarationError(localName), specifier.local.start); - } - const name = specifier instanceof ImportDefaultSpecifier ? "default" : specifier instanceof ImportNamespaceSpecifier ? "*" : specifier.imported instanceof Identifier2 ? specifier.imported.name : specifier.imported.value; - this.importDescriptions.set(localName, { - module: null, - // filled in later - name, - source, - start: specifier.start - }); - } - } - addImportMeta(node) { - this.importMetas.push(node); - } - addLocationToLogProps(properties, pos) { - properties.id = this.id; - properties.pos = pos; - let code = this.info.code; - const location = locate(code, pos, { offsetLine: 1 }); - if (location) { - let { column, line } = location; - try { - ({ column, line } = getOriginalLocation(this.sourcemapChain, { column, line })); - code = this.originalCode; - } catch (error_) { - this.options.onLog(LOGLEVEL_WARN, logInvalidSourcemapForError(error_, this.id, column, line, pos)); - } - augmentCodeLocation(properties, { column, line }, code, this.id); - } - } - addModulesToImportDescriptions(importDescription) { - for (const specifier of importDescription.values()) { - const { id } = this.resolvedIds[specifier.source]; - specifier.module = this.graph.modulesById.get(id); - } - } - addRelevantSideEffectDependencies(relevantDependencies, necessaryDependencies, alwaysCheckedDependencies) { - const handledDependencies = /* @__PURE__ */ new Set(); - const addSideEffectDependencies = (possibleDependencies) => { - for (const dependency of possibleDependencies) { - if (handledDependencies.has(dependency)) { - continue; - } - handledDependencies.add(dependency); - if (necessaryDependencies.has(dependency)) { - relevantDependencies.add(dependency); - continue; - } - if (!(dependency.info.moduleSideEffects || alwaysCheckedDependencies.has(dependency))) { - continue; - } - if (dependency instanceof ExternalModule || dependency.hasEffects()) { - relevantDependencies.add(dependency); - continue; - } - addSideEffectDependencies(dependency.dependencies); - } - }; - addSideEffectDependencies(this.dependencies); - addSideEffectDependencies(alwaysCheckedDependencies); - } - addSource(source, declaration) { - const parsedAttributes = getAttributesFromImportExportDeclaration(declaration.attributes); - const existingAttributes = this.sourcesWithAttributes.get(source); - if (existingAttributes) { - if (doAttributesDiffer(existingAttributes, parsedAttributes)) { - this.log(LOGLEVEL_WARN, logInconsistentImportAttributes(existingAttributes, parsedAttributes, source, this.id), declaration.start); - } - } else { - this.sourcesWithAttributes.set(source, parsedAttributes); - } - } - getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules) { - let foundSyntheticDeclaration = null; - const foundInternalDeclarations = /* @__PURE__ */ new Map(); - const foundExternalDeclarations = /* @__PURE__ */ new Set(); - for (const module of this.exportAllModules) { - if (module.info.syntheticNamedExports === name) { - continue; - } - const [variable, indirectExternal] = getVariableForExportNameRecursive( - module, - name, - importerForSideEffects, - true, - // We are creating a copy to handle the case where the same binding is - // imported through different namespace reexports gracefully - copyNameToModulesMap(searchedNamesAndModules) - ); - if (module instanceof ExternalModule || indirectExternal) { - foundExternalDeclarations.add(variable); - } else if (variable instanceof SyntheticNamedExportVariable) { - if (!foundSyntheticDeclaration) { - foundSyntheticDeclaration = variable; - } - } else if (variable) { - foundInternalDeclarations.set(variable, module); - } - } - if (foundInternalDeclarations.size > 0) { - const foundDeclarationList = [...foundInternalDeclarations]; - const usedDeclaration = foundDeclarationList[0][0]; - if (foundDeclarationList.length === 1) { - return [usedDeclaration]; - } - this.options.onLog(LOGLEVEL_WARN, logNamespaceConflict(name, this.id, foundDeclarationList.map(([, module]) => module.id))); - return [null]; - } - if (foundExternalDeclarations.size > 0) { - const foundDeclarationList = [...foundExternalDeclarations]; - const usedDeclaration = foundDeclarationList[0]; - if (foundDeclarationList.length > 1) { - this.options.onLog(LOGLEVEL_WARN, logAmbiguousExternalNamespaces(name, this.id, usedDeclaration.module.id, foundDeclarationList.map((declaration) => declaration.module.id))); - } - return [usedDeclaration, true]; - } - if (foundSyntheticDeclaration) { - return [foundSyntheticDeclaration]; - } - return [null]; - } - includeAndGetAdditionalMergedNamespaces() { - const externalNamespaces = /* @__PURE__ */ new Set(); - const syntheticNamespaces = /* @__PURE__ */ new Set(); - for (const module of [this, ...this.exportAllModules]) { - if (module instanceof ExternalModule) { - const [externalVariable] = module.getVariableForExportName("*"); - externalVariable.include(); - this.includedImports.add(externalVariable); - externalNamespaces.add(externalVariable); - } else if (module.info.syntheticNamedExports) { - const syntheticNamespace = module.getSyntheticNamespace(); - syntheticNamespace.include(); - this.includedImports.add(syntheticNamespace); - syntheticNamespaces.add(syntheticNamespace); - } - } - return [...syntheticNamespaces, ...externalNamespaces]; - } - includeDynamicImport(node) { - const resolution = this.dynamicImports.find((dynamicImport) => dynamicImport.node === node).resolution; - if (resolution instanceof _Module) { - resolution.includedDynamicImporters.push(this); - const importedNames = this.options.treeshake ? node.getDeterministicImportedNames() : void 0; - if (importedNames) { - resolution.includeExportsByNames(importedNames); - } else { - resolution.includeAllExports(true); - } - } - } - includeVariable(variable) { - const variableModule = variable.module; - if (variable.included) { - if (variableModule instanceof _Module && variableModule !== this) { - getAndExtendSideEffectModules(variable, this); - } - } else { - variable.include(); - this.graph.needsTreeshakingPass = true; - if (variableModule instanceof _Module) { - if (!variableModule.isExecuted) { - markModuleAndImpureDependenciesAsExecuted(variableModule); - } - if (variableModule !== this) { - const sideEffectModules = getAndExtendSideEffectModules(variable, this); - for (const module of sideEffectModules) { - if (!module.isExecuted) { - markModuleAndImpureDependenciesAsExecuted(module); - } - } - } - } - } - } - includeVariableInModule(variable) { - this.includeVariable(variable); - const variableModule = variable.module; - if (variableModule && variableModule !== this) { - this.includedImports.add(variable); - } - } - shimMissingExport(name) { - this.options.onLog(LOGLEVEL_WARN, logShimmedExport(this.id, name)); - this.exports.set(name, MISSING_EXPORT_SHIM_DESCRIPTION); - } - tryParse() { - try { - return parseAst(this.info.code); - } catch (error_) { - return this.error(logModuleParseError(error_, this.id), error_.pos); - } - } -}; -function setAlternativeExporterIfCyclic(variable, importer, reexporter) { - if (variable.module instanceof Module && variable.module !== reexporter) { - const exporterCycles = variable.module.cycles; - if (exporterCycles.size > 0) { - const importerCycles = reexporter.cycles; - for (const cycleSymbol of importerCycles) { - if (exporterCycles.has(cycleSymbol)) { - importer.alternativeReexportModules.set(variable, reexporter); - break; - } - } - } - } -} -var copyNameToModulesMap = (searchedNamesAndModules) => searchedNamesAndModules && // eslint-disable-next-line unicorn/prefer-spread -new Map(Array.from(searchedNamesAndModules, ([name, modules]) => [name, new Set(modules)])); -function removeJsExtension(name) { - return name.endsWith(".js") ? name.slice(0, -3) : name; -} -function getCompleteAmdId(options, chunkId) { - if (options.autoId) { - return `${options.basePath ? options.basePath + "/" : ""}${removeJsExtension(chunkId)}`; - } - return options.id ?? ""; -} -function getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal, mechanism = "return ") { - const { _, getDirectReturnFunction, getFunctionIntro, getPropertyAccess, n: n2, s } = snippets; - if (!namedExportsMode) { - return `${n2}${n2}${mechanism}${getSingleDefaultExport(exports, dependencies, interop, externalLiveBindings, getPropertyAccess)};`; - } - let exportBlock = ""; - if (namedExportsMode) { - for (const { defaultVariableName, importPath, isChunk, name, namedExportsMode: depNamedExportsMode, namespaceVariableName, reexports } of dependencies) { - if (!reexports) { - continue; - } - for (const specifier of reexports) { - if (specifier.reexported !== "*") { - const importName = getReexportedImportName(name, specifier.imported, depNamedExportsMode, isChunk, defaultVariableName, namespaceVariableName, interop, importPath, externalLiveBindings, getPropertyAccess); - if (exportBlock) - exportBlock += n2; - if (specifier.imported !== "*" && specifier.needsLiveBinding) { - const [left, right] = getDirectReturnFunction([], { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - exportBlock += `Object.defineProperty(exports,${_}${JSON.stringify(specifier.reexported)},${_}{${n2}${t}enumerable:${_}true,${n2}${t}get:${_}${left}${importName}${right}${n2}});`; - } else if (specifier.reexported === "__proto__") { - exportBlock += `Object.defineProperty(exports,${_}"__proto__",${_}{${n2}${t}enumerable:${_}true,${n2}${t}value:${_}${importName}${n2}});`; - } else { - exportBlock += `exports${getPropertyAccess(specifier.reexported)}${_}=${_}${importName};`; - } - } - } - } - } - for (const { exported, local } of exports) { - const lhs = `exports${getPropertyAccess(exported)}`; - const rhs = local; - if (lhs !== rhs) { - if (exportBlock) - exportBlock += n2; - exportBlock += exported === "__proto__" ? `Object.defineProperty(exports,${_}"__proto__",${_}{${n2}${t}enumerable:${_}true,${n2}${t}value:${_}${rhs}${n2}});` : `${lhs}${_}=${_}${rhs};`; - } - } - if (namedExportsMode) { - for (const { name, reexports } of dependencies) { - if (!reexports) { - continue; - } - for (const specifier of reexports) { - if (specifier.reexported === "*") { - if (exportBlock) - exportBlock += n2; - if (!specifier.needsLiveBinding && reexportProtoFromExternal) { - const protoString = "'__proto__'"; - exportBlock += `Object.prototype.hasOwnProperty.call(${name},${_}${protoString})${_}&&${n2}${t}!Object.prototype.hasOwnProperty.call(exports,${_}${protoString})${_}&&${n2}${t}Object.defineProperty(exports,${_}${protoString},${_}{${n2}${t}${t}enumerable:${_}true,${n2}${t}${t}value:${_}${name}[${protoString}]${n2}${t}});${n2}${n2}`; - } - const copyPropertyIfNecessary = `{${n2}${t}if${_}(k${_}!==${_}'default'${_}&&${_}!Object.prototype.hasOwnProperty.call(exports,${_}k))${_}${getDefineProperty(name, specifier.needsLiveBinding, t, snippets)}${s}${n2}}`; - exportBlock += `Object.keys(${name}).forEach(${getFunctionIntro(["k"], { - isAsync: false, - name: null - })}${copyPropertyIfNecessary});`; - } - } - } - } - if (exportBlock) { - return `${n2}${n2}${exportBlock}`; - } - return ""; -} -function getSingleDefaultExport(exports, dependencies, interop, externalLiveBindings, getPropertyAccess) { - if (exports.length > 0) { - return exports[0].local; - } else { - for (const { defaultVariableName, importPath, isChunk, name, namedExportsMode: depNamedExportsMode, namespaceVariableName, reexports } of dependencies) { - if (reexports) { - return getReexportedImportName(name, reexports[0].imported, depNamedExportsMode, isChunk, defaultVariableName, namespaceVariableName, interop, importPath, externalLiveBindings, getPropertyAccess); - } - } - } -} -function getReexportedImportName(moduleVariableName, imported, depNamedExportsMode, isChunk, defaultVariableName, namespaceVariableName, interop, moduleId, externalLiveBindings, getPropertyAccess) { - if (imported === "default") { - if (!isChunk) { - const moduleInterop = interop(moduleId); - const variableName = defaultInteropHelpersByInteropType[moduleInterop] ? defaultVariableName : moduleVariableName; - return isDefaultAProperty(moduleInterop, externalLiveBindings) ? `${variableName}${getPropertyAccess("default")}` : variableName; - } - return depNamedExportsMode ? `${moduleVariableName}${getPropertyAccess("default")}` : moduleVariableName; - } - if (imported === "*") { - return (isChunk ? !depNamedExportsMode : namespaceInteropHelpersByInteropType[interop(moduleId)]) ? namespaceVariableName : moduleVariableName; - } - return `${moduleVariableName}${getPropertyAccess(imported)}`; -} -function getEsModuleValue(getObject) { - return getObject([["value", "true"]], { - lineBreakIndent: null - }); -} -function getNamespaceMarkers(hasNamedExports, addEsModule, addNamespaceToStringTag, { _, getObject }) { - if (hasNamedExports) { - if (addEsModule) { - if (addNamespaceToStringTag) { - return `Object.defineProperties(exports,${_}${getObject([ - ["__esModule", getEsModuleValue(getObject)], - [null, `[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}`] - ], { - lineBreakIndent: null - })});`; - } - return `Object.defineProperty(exports,${_}'__esModule',${_}${getEsModuleValue(getObject)});`; - } - if (addNamespaceToStringTag) { - return `Object.defineProperty(exports,${_}Symbol.toStringTag,${_}${getToStringTagValue(getObject)});`; - } - } - return ""; -} -var getDefineProperty = (name, needsLiveBinding, t, { _, getDirectReturnFunction, n: n2 }) => { - if (needsLiveBinding) { - const [left, right] = getDirectReturnFunction([], { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - return `Object.defineProperty(exports,${_}k,${_}{${n2}${t}${t}enumerable:${_}true,${n2}${t}${t}get:${_}${left}${name}[k]${right}${n2}${t}})`; - } - return `exports[k]${_}=${_}${name}[k]`; -}; -function getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, indent, snippets) { - const { _, cnst, n: n2 } = snippets; - const neededInteropHelpers = /* @__PURE__ */ new Set(); - const interopStatements = []; - const addInteropStatement = (helperVariableName, helper, dependencyVariableName) => { - neededInteropHelpers.add(helper); - interopStatements.push(`${cnst} ${helperVariableName}${_}=${_}/*#__PURE__*/${helper}(${dependencyVariableName});`); - }; - for (const { defaultVariableName, imports, importPath, isChunk, name, namedExportsMode, namespaceVariableName, reexports } of dependencies) { - if (isChunk) { - for (const { imported, reexported } of [ - ...imports || [], - ...reexports || [] - ]) { - if (imported === "*" && reexported !== "*") { - if (!namedExportsMode) { - addInteropStatement(namespaceVariableName, INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE, name); - } - break; - } - } - } else { - const moduleInterop = interop(importPath); - let hasDefault = false; - let hasNamespace = false; - for (const { imported, reexported } of [ - ...imports || [], - ...reexports || [] - ]) { - let helper; - let variableName; - if (imported === "default") { - if (!hasDefault) { - hasDefault = true; - if (defaultVariableName !== namespaceVariableName) { - variableName = defaultVariableName; - helper = defaultInteropHelpersByInteropType[moduleInterop]; - } - } - } else if (imported === "*" && reexported !== "*" && !hasNamespace) { - hasNamespace = true; - helper = namespaceInteropHelpersByInteropType[moduleInterop]; - variableName = namespaceVariableName; - } - if (helper) { - addInteropStatement(variableName, helper, name); - } - } - } - } - return `${getHelpersBlock(neededInteropHelpers, accessedGlobals, indent, snippets, externalLiveBindings, freeze, symbols)}${interopStatements.length > 0 ? `${interopStatements.join(n2)}${n2}${n2}` : ""}`; -} -function addJsExtension(name) { - return name.endsWith(".js") ? name : name + ".js"; -} -function updateExtensionForRelativeAmdId(id, forceJsExtensionForImports) { - if (id[0] !== ".") { - return id; - } - return forceJsExtensionForImports ? addJsExtension(id) : removeJsExtension(id); -} -var builtinModules = [ - "assert", - "assert/strict", - "async_hooks", - "buffer", - "child_process", - "cluster", - "console", - "constants", - "crypto", - "dgram", - "diagnostics_channel", - "dns", - "dns/promises", - "domain", - "events", - "fs", - "fs/promises", - "http", - "http2", - "https", - "inspector", - "inspector/promises", - "module", - "net", - "os", - "path", - "path/posix", - "path/win32", - "perf_hooks", - "process", - "punycode", - "querystring", - "readline", - "readline/promises", - "repl", - "stream", - "stream/consumers", - "stream/promises", - "stream/web", - "string_decoder", - "timers", - "timers/promises", - "tls", - "trace_events", - "tty", - "url", - "util", - "util/types", - "v8", - "vm", - "wasi", - "worker_threads", - "zlib" -]; -var nodeBuiltins = new Set(builtinModules); -function warnOnBuiltins(log, dependencies) { - const externalBuiltins = dependencies.map(({ importPath }) => importPath).filter((importPath) => nodeBuiltins.has(importPath) || importPath.startsWith("node:")); - if (externalBuiltins.length === 0) - return; - log(LOGLEVEL_WARN, logMissingNodeBuiltins(externalBuiltins)); -} -function amd(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, id, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, log, outro, snippets }, { amd: amd2, esModule, externalLiveBindings, freeze, generatedCode: { symbols }, interop, reexportProtoFromExternal, strict }) { - warnOnBuiltins(log, dependencies); - const deps = dependencies.map((m) => `'${updateExtensionForRelativeAmdId(m.importPath, amd2.forceJsExtensionForImports)}'`); - const parameters = dependencies.map((m) => m.name); - const { n: n2, getNonArrowFunctionIntro, _ } = snippets; - if (namedExportsMode && hasExports) { - parameters.unshift(`exports`); - deps.unshift(`'exports'`); - } - if (accessedGlobals.has("require")) { - parameters.unshift("require"); - deps.unshift(`'require'`); - } - if (accessedGlobals.has("module")) { - parameters.unshift("module"); - deps.unshift(`'module'`); - } - const completeAmdId = getCompleteAmdId(amd2, id); - const defineParameters = (completeAmdId ? `'${completeAmdId}',${_}` : ``) + (deps.length > 0 ? `[${deps.join(`,${_}`)}],${_}` : ``); - const useStrict = strict ? `${_}'use strict';` : ""; - magicString.prepend(`${intro}${getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets)}`); - const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal); - let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, isEntryFacade && (esModule === true || esModule === "if-default-prop" && hasDefaultExport), isModuleFacade && symbols, snippets); - if (namespaceMarkers) { - namespaceMarkers = n2 + n2 + namespaceMarkers; - } - magicString.append(`${exportBlock}${namespaceMarkers}${outro}`).indent(t).prepend(`${amd2.define}(${defineParameters}(${getNonArrowFunctionIntro(parameters, { - isAsync: false, - name: null - })}{${useStrict}${n2}${n2}`).append(`${n2}${n2}}));`); -} -function cjs(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, outro, snippets }, { compact, esModule, externalLiveBindings, freeze, interop, generatedCode: { symbols }, reexportProtoFromExternal, strict }) { - const { _, n: n2 } = snippets; - const useStrict = strict ? `'use strict';${n2}${n2}` : ""; - let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, isEntryFacade && (esModule === true || esModule === "if-default-prop" && hasDefaultExport), isModuleFacade && symbols, snippets); - if (namespaceMarkers) { - namespaceMarkers += n2 + n2; - } - const importBlock = getImportBlock$1(dependencies, snippets, compact); - const interopBlock = getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets); - magicString.prepend(`${useStrict}${intro}${namespaceMarkers}${importBlock}${interopBlock}`); - const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal, `module.exports${_}=${_}`); - magicString.append(`${exportBlock}${outro}`); -} -function getImportBlock$1(dependencies, { _, cnst, n: n2 }, compact) { - let importBlock = ""; - let definingVariable = false; - for (const { importPath, name, reexports, imports } of dependencies) { - if (!reexports && !imports) { - if (importBlock) { - importBlock += compact && !definingVariable ? "," : `;${n2}`; - } - definingVariable = false; - importBlock += `require('${importPath}')`; - } else { - importBlock += compact && definingVariable ? "," : `${importBlock ? `;${n2}` : ""}${cnst} `; - definingVariable = true; - importBlock += `${name}${_}=${_}require('${importPath}')`; - } - } - if (importBlock) { - return `${importBlock};${n2}${n2}`; - } - return ""; -} -function es(magicString, { accessedGlobals, indent: t, intro, outro, dependencies, exports, snippets }, { externalLiveBindings, freeze, generatedCode: { symbols }, importAttributesKey }) { - const { n: n2 } = snippets; - const importBlock = getImportBlock(dependencies, importAttributesKey, snippets); - if (importBlock.length > 0) - intro += importBlock.join(n2) + n2 + n2; - intro += getHelpersBlock(null, accessedGlobals, t, snippets, externalLiveBindings, freeze, symbols); - if (intro) - magicString.prepend(intro); - const exportBlock = getExportBlock(exports, snippets); - if (exportBlock.length > 0) - magicString.append(n2 + n2 + exportBlock.join(n2).trim()); - if (outro) - magicString.append(outro); - magicString.trim(); -} -function getImportBlock(dependencies, importAttributesKey, { _ }) { - const importBlock = []; - for (const { importPath, reexports, imports, name, attributes } of dependencies) { - const assertion = attributes ? `${_}${importAttributesKey}${_}${attributes}` : ""; - const pathWithAssertion = `'${importPath}'${assertion};`; - if (!reexports && !imports) { - importBlock.push(`import${_}${pathWithAssertion}`); - continue; - } - if (imports) { - let defaultImport = null; - let starImport = null; - const importedNames = []; - for (const specifier of imports) { - if (specifier.imported === "default") { - defaultImport = specifier; - } else if (specifier.imported === "*") { - starImport = specifier; - } else { - importedNames.push(specifier); - } - } - if (starImport) { - importBlock.push(`import${_}*${_}as ${starImport.local} from${_}${pathWithAssertion}`); - } - if (defaultImport && importedNames.length === 0) { - importBlock.push(`import ${defaultImport.local} from${_}${pathWithAssertion}`); - } else if (importedNames.length > 0) { - importBlock.push(`import ${defaultImport ? `${defaultImport.local},${_}` : ""}{${_}${importedNames.map((specifier) => specifier.imported === specifier.local ? specifier.imported : `${stringifyIdentifierIfNeeded(specifier.imported)} as ${specifier.local}`).join(`,${_}`)}${_}}${_}from${_}${pathWithAssertion}`); - } - } - if (reexports) { - let starExport = null; - const namespaceReexports = []; - const namedReexports = []; - for (const specifier of reexports) { - if (specifier.reexported === "*") { - starExport = specifier; - } else if (specifier.imported === "*") { - namespaceReexports.push(specifier); - } else { - namedReexports.push(specifier); - } - } - if (starExport) { - importBlock.push(`export${_}*${_}from${_}${pathWithAssertion}`); - } - if (namespaceReexports.length > 0) { - if (!imports || !imports.some((specifier) => specifier.imported === "*" && specifier.local === name)) { - importBlock.push(`import${_}*${_}as ${name} from${_}${pathWithAssertion}`); - } - for (const specifier of namespaceReexports) { - importBlock.push(`export${_}{${_}${name === specifier.reexported ? name : `${name} as ${stringifyIdentifierIfNeeded(specifier.reexported)}`} };`); - } - } - if (namedReexports.length > 0) { - importBlock.push(`export${_}{${_}${namedReexports.map((specifier) => specifier.imported === specifier.reexported ? stringifyIdentifierIfNeeded(specifier.imported) : `${stringifyIdentifierIfNeeded(specifier.imported)} as ${stringifyIdentifierIfNeeded(specifier.reexported)}`).join(`,${_}`)}${_}}${_}from${_}${pathWithAssertion}`); - } - } - } - return importBlock; -} -function getExportBlock(exports, { _, cnst }) { - const exportBlock = []; - const exportDeclaration = []; - for (const specifier of exports) { - if (specifier.expression) { - exportBlock.push(`${cnst} ${specifier.local}${_}=${_}${specifier.expression};`); - } - exportDeclaration.push(specifier.exported === specifier.local ? specifier.local : `${specifier.local} as ${stringifyIdentifierIfNeeded(specifier.exported)}`); - } - if (exportDeclaration.length > 0) { - exportBlock.push(`export${_}{${_}${exportDeclaration.join(`,${_}`)}${_}};`); - } - return exportBlock; -} -var keypath = (keypath2, getPropertyAccess) => keypath2.split(".").map(getPropertyAccess).join(""); -function setupNamespace(name, root, globals, { _, getPropertyAccess, s }, compact) { - const parts = name.split("."); - parts[0] = (typeof globals === "function" ? globals(parts[0]) : globals[parts[0]]) || parts[0]; - parts.pop(); - let propertyPath = root; - return parts.map((part) => { - propertyPath += getPropertyAccess(part); - return `${propertyPath}${_}=${_}${propertyPath}${_}||${_}{}${s}`; - }).join(compact ? "," : "\n") + (compact && parts.length > 0 ? ";" : "\n"); -} -function assignToDeepVariable(deepName, root, globals, assignment, { _, getPropertyAccess }) { - const parts = deepName.split("."); - parts[0] = (typeof globals === "function" ? globals(parts[0]) : globals[parts[0]]) || parts[0]; - const last = parts.pop(); - let propertyPath = root; - let deepAssignment = [ - ...parts.map((part) => { - propertyPath += getPropertyAccess(part); - return `${propertyPath}${_}=${_}${propertyPath}${_}||${_}{}`; - }), - `${propertyPath}${getPropertyAccess(last)}` - ].join(`,${_}`) + `${_}=${_}${assignment}`; - if (parts.length > 0) { - deepAssignment = `(${deepAssignment})`; - } - return deepAssignment; -} -function trimEmptyImports(dependencies) { - let index = dependencies.length; - while (index--) { - const { imports, reexports } = dependencies[index]; - if (imports || reexports) { - return dependencies.slice(0, index + 1); - } - } - return []; -} -function iife(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, indent: t, intro, namedExportsMode, log, outro, snippets }, { compact, esModule, extend, freeze, externalLiveBindings, reexportProtoFromExternal, globals, interop, name, generatedCode: { symbols }, strict }) { - const { _, getNonArrowFunctionIntro, getPropertyAccess, n: n2 } = snippets; - const isNamespaced = name && name.includes("."); - const useVariableAssignment = !extend && !isNamespaced; - if (name && useVariableAssignment && !isLegal(name)) { - return error(logIllegalIdentifierAsName(name)); - } - warnOnBuiltins(log, dependencies); - const external = trimEmptyImports(dependencies); - const deps = external.map((dep) => dep.globalName || "null"); - const parameters = external.map((m) => m.name); - if (hasExports && !name) { - log(LOGLEVEL_WARN, logMissingNameOptionForIifeExport()); - } - if (namedExportsMode && hasExports) { - if (extend) { - deps.unshift(`this${keypath(name, getPropertyAccess)}${_}=${_}this${keypath(name, getPropertyAccess)}${_}||${_}{}`); - parameters.unshift("exports"); - } else { - deps.unshift("{}"); - parameters.unshift("exports"); - } - } - const useStrict = strict ? `${t}'use strict';${n2}` : ""; - const interopBlock = getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets); - magicString.prepend(`${intro}${interopBlock}`); - let wrapperIntro = `(${getNonArrowFunctionIntro(parameters, { - isAsync: false, - name: null - })}{${n2}${useStrict}${n2}`; - if (hasExports) { - if (name && !(extend && namedExportsMode)) { - wrapperIntro = (useVariableAssignment ? `var ${name}` : `this${keypath(name, getPropertyAccess)}`) + `${_}=${_}${wrapperIntro}`; - } - if (isNamespaced) { - wrapperIntro = setupNamespace(name, "this", globals, snippets, compact) + wrapperIntro; - } - } - let wrapperOutro = `${n2}${n2}})(${deps.join(`,${_}`)});`; - if (hasExports && !extend && namedExportsMode) { - wrapperOutro = `${n2}${n2}${t}return exports;${wrapperOutro}`; - } - const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal); - let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, esModule === true || esModule === "if-default-prop" && hasDefaultExport, symbols, snippets); - if (namespaceMarkers) { - namespaceMarkers = n2 + n2 + namespaceMarkers; - } - magicString.append(`${exportBlock}${namespaceMarkers}${outro}`).indent(t).prepend(wrapperIntro).append(wrapperOutro); -} -function system(magicString, { accessedGlobals, dependencies, exports, hasExports, indent: t, intro, snippets, outro, usesTopLevelAwait }, { externalLiveBindings, freeze, name, generatedCode: { symbols }, strict, systemNullSetters }) { - const { _, getFunctionIntro, getNonArrowFunctionIntro, n: n2, s } = snippets; - const { importBindings, setters, starExcludes } = analyzeDependencies(dependencies, exports, t, snippets); - const registeredName = name ? `'${name}',${_}` : ""; - const wrapperParameters = accessedGlobals.has("module") ? ["exports", "module"] : hasExports ? ["exports"] : []; - let wrapperStart = `System.register(${registeredName}[` + dependencies.map(({ importPath }) => `'${importPath}'`).join(`,${_}`) + `],${_}(${getNonArrowFunctionIntro(wrapperParameters, { - isAsync: false, - name: null - })}{${n2}${t}${strict ? "'use strict';" : ""}` + getStarExcludesBlock(starExcludes, t, snippets) + getImportBindingsBlock(importBindings, t, snippets) + `${n2}${t}return${_}{${setters.length > 0 ? `${n2}${t}${t}setters:${_}[${setters.map((setter) => setter ? `${getFunctionIntro(["module"], { - isAsync: false, - name: null - })}{${n2}${t}${t}${t}${setter}${n2}${t}${t}}` : systemNullSetters ? `null` : `${getFunctionIntro([], { isAsync: false, name: null })}{}`).join(`,${_}`)}],` : ""}${n2}`; - wrapperStart += `${t}${t}execute:${_}(${getNonArrowFunctionIntro([], { - isAsync: usesTopLevelAwait, - name: null - })}{${n2}${n2}`; - const wrapperEnd = `${t}${t}})${n2}${t}}${s}${n2}}));`; - magicString.prepend(intro + getHelpersBlock(null, accessedGlobals, t, snippets, externalLiveBindings, freeze, symbols) + getHoistedExportsBlock(exports, t, snippets)).append(`${outro}${n2}${n2}` + getSyntheticExportsBlock(exports, t, snippets) + getMissingExportsBlock(exports, t, snippets)).indent(`${t}${t}${t}`).append(wrapperEnd).prepend(wrapperStart); -} -function analyzeDependencies(dependencies, exports, t, { _, cnst, getObject, getPropertyAccess, n: n2 }) { - const importBindings = []; - const setters = []; - let starExcludes = null; - for (const { imports, reexports } of dependencies) { - const setter = []; - if (imports) { - for (const specifier of imports) { - importBindings.push(specifier.local); - if (specifier.imported === "*") { - setter.push(`${specifier.local}${_}=${_}module;`); - } else { - setter.push(`${specifier.local}${_}=${_}module${getPropertyAccess(specifier.imported)};`); - } - } - } - if (reexports) { - const reexportedNames = []; - let hasStarReexport = false; - for (const { imported, reexported } of reexports) { - if (reexported === "*") { - hasStarReexport = true; - } else { - reexportedNames.push([ - reexported, - imported === "*" ? "module" : `module${getPropertyAccess(imported)}` - ]); - } - } - if (reexportedNames.length > 1 || hasStarReexport) { - if (hasStarReexport) { - if (!starExcludes) { - starExcludes = getStarExcludes({ dependencies, exports }); - } - reexportedNames.unshift([null, `__proto__:${_}null`]); - const exportMapping = getObject(reexportedNames, { lineBreakIndent: null }); - setter.push(`${cnst} setter${_}=${_}${exportMapping};`, `for${_}(${cnst} name in module)${_}{`, `${t}if${_}(!_starExcludes[name])${_}setter[name]${_}=${_}module[name];`, "}", "exports(setter);"); - } else { - const exportMapping = getObject(reexportedNames, { lineBreakIndent: null }); - setter.push(`exports(${exportMapping});`); - } - } else { - const [key, value] = reexportedNames[0]; - setter.push(`exports(${JSON.stringify(key)},${_}${value});`); - } - } - setters.push(setter.join(`${n2}${t}${t}${t}`)); - } - return { importBindings, setters, starExcludes }; -} -var getStarExcludes = ({ dependencies, exports }) => { - const starExcludes = new Set(exports.map((expt) => expt.exported)); - starExcludes.add("default"); - for (const { reexports } of dependencies) { - if (reexports) { - for (const reexport of reexports) { - if (reexport.reexported !== "*") - starExcludes.add(reexport.reexported); - } - } - } - return starExcludes; -}; -var getStarExcludesBlock = (starExcludes, t, { _, cnst, getObject, n: n2 }) => { - if (starExcludes) { - const fields = [...starExcludes].map((property2) => [ - property2, - "1" - ]); - fields.unshift([null, `__proto__:${_}null`]); - return `${n2}${t}${cnst} _starExcludes${_}=${_}${getObject(fields, { - lineBreakIndent: { base: t, t } - })};`; - } - return ""; -}; -var getImportBindingsBlock = (importBindings, t, { _, n: n2 }) => importBindings.length > 0 ? `${n2}${t}var ${importBindings.join(`,${_}`)};` : ""; -var getHoistedExportsBlock = (exports, t, snippets) => getExportsBlock(exports.filter((expt) => expt.hoisted).map((expt) => ({ name: expt.exported, value: expt.local })), t, snippets); -function getExportsBlock(exports, t, { _, n: n2 }) { - if (exports.length === 0) { - return ""; - } - if (exports.length === 1) { - return `exports(${JSON.stringify(exports[0].name)},${_}${exports[0].value});${n2}${n2}`; - } - return `exports({${n2}` + exports.map(({ name, value }) => `${t}${stringifyObjectKeyIfNeeded(name)}:${_}${value}`).join(`,${n2}`) + `${n2}});${n2}${n2}`; -} -var getSyntheticExportsBlock = (exports, t, snippets) => getExportsBlock(exports.filter((expt) => expt.expression).map((expt) => ({ name: expt.exported, value: expt.local })), t, snippets); -var getMissingExportsBlock = (exports, t, snippets) => getExportsBlock(exports.filter((expt) => expt.local === MISSING_EXPORT_SHIM_VARIABLE).map((expt) => ({ name: expt.exported, value: MISSING_EXPORT_SHIM_VARIABLE })), t, snippets); -function globalProperty(name, globalVariable, getPropertyAccess) { - if (!name) - return "null"; - return `${globalVariable}${keypath(name, getPropertyAccess)}`; -} -function safeAccess(name, globalVariable, { _, getPropertyAccess }) { - let propertyPath = globalVariable; - return name.split(".").map((part) => propertyPath += getPropertyAccess(part)).join(`${_}&&${_}`); -} -function umd(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, id, indent: t, intro, namedExportsMode, log, outro, snippets }, { amd: amd2, compact, esModule, extend, externalLiveBindings, freeze, interop, name, generatedCode: { symbols }, globals, noConflict, reexportProtoFromExternal, strict }) { - const { _, cnst, getFunctionIntro, getNonArrowFunctionIntro, getPropertyAccess, n: n2, s } = snippets; - const factoryVariable = compact ? "f" : "factory"; - const globalVariable = compact ? "g" : "global"; - if (hasExports && !name) { - return error(logMissingNameOptionForUmdExport()); - } - warnOnBuiltins(log, dependencies); - const amdDeps = dependencies.map((m) => `'${updateExtensionForRelativeAmdId(m.importPath, amd2.forceJsExtensionForImports)}'`); - const cjsDeps = dependencies.map((m) => `require('${m.importPath}')`); - const trimmedImports = trimEmptyImports(dependencies); - const globalDeps = trimmedImports.map((module) => globalProperty(module.globalName, globalVariable, getPropertyAccess)); - const factoryParameters = trimmedImports.map((m) => m.name); - if (namedExportsMode && (hasExports || noConflict)) { - amdDeps.unshift(`'exports'`); - cjsDeps.unshift(`exports`); - globalDeps.unshift(assignToDeepVariable(name, globalVariable, globals, `${extend ? `${globalProperty(name, globalVariable, getPropertyAccess)}${_}||${_}` : ""}{}`, snippets)); - factoryParameters.unshift("exports"); - } - const completeAmdId = getCompleteAmdId(amd2, id); - const amdParameters = (completeAmdId ? `'${completeAmdId}',${_}` : ``) + (amdDeps.length > 0 ? `[${amdDeps.join(`,${_}`)}],${_}` : ``); - const define = amd2.define; - const cjsExport = !namedExportsMode && hasExports ? `module.exports${_}=${_}` : ``; - const useStrict = strict ? `${_}'use strict';${n2}` : ``; - let iifeExport; - if (noConflict) { - const noConflictExportsVariable = compact ? "e" : "exports"; - let factory; - if (!namedExportsMode && hasExports) { - factory = `${cnst} ${noConflictExportsVariable}${_}=${_}${assignToDeepVariable(name, globalVariable, globals, `${factoryVariable}(${globalDeps.join(`,${_}`)})`, snippets)};`; - } else { - const module = globalDeps.shift(); - factory = `${cnst} ${noConflictExportsVariable}${_}=${_}${module};${n2}${t}${t}${factoryVariable}(${[noConflictExportsVariable, ...globalDeps].join(`,${_}`)});`; - } - iifeExport = `(${getFunctionIntro([], { isAsync: false, name: null })}{${n2}${t}${t}${cnst} current${_}=${_}${safeAccess(name, globalVariable, snippets)};${n2}${t}${t}${factory}${n2}${t}${t}${noConflictExportsVariable}.noConflict${_}=${_}${getFunctionIntro([], { - isAsync: false, - name: null - })}{${_}${globalProperty(name, globalVariable, getPropertyAccess)}${_}=${_}current;${_}return ${noConflictExportsVariable}${s}${_}};${n2}${t}})()`; - } else { - iifeExport = `${factoryVariable}(${globalDeps.join(`,${_}`)})`; - if (!namedExportsMode && hasExports) { - iifeExport = assignToDeepVariable(name, globalVariable, globals, iifeExport, snippets); - } - } - const iifeNeedsGlobal = hasExports || noConflict && namedExportsMode || globalDeps.length > 0; - const wrapperParameters = [factoryVariable]; - if (iifeNeedsGlobal) { - wrapperParameters.unshift(globalVariable); - } - const globalArgument = iifeNeedsGlobal ? `this,${_}` : ""; - const iifeStart = iifeNeedsGlobal ? `(${globalVariable}${_}=${_}typeof globalThis${_}!==${_}'undefined'${_}?${_}globalThis${_}:${_}${globalVariable}${_}||${_}self,${_}` : ""; - const iifeEnd = iifeNeedsGlobal ? ")" : ""; - const cjsIntro = iifeNeedsGlobal ? `${t}typeof exports${_}===${_}'object'${_}&&${_}typeof module${_}!==${_}'undefined'${_}?${_}${cjsExport}${factoryVariable}(${cjsDeps.join(`,${_}`)})${_}:${n2}` : ""; - const wrapperIntro = `(${getNonArrowFunctionIntro(wrapperParameters, { isAsync: false, name: null })}{${n2}` + cjsIntro + `${t}typeof ${define}${_}===${_}'function'${_}&&${_}${define}.amd${_}?${_}${define}(${amdParameters}${factoryVariable})${_}:${n2}${t}${iifeStart}${iifeExport}${iifeEnd};${n2}})(${globalArgument}(${getNonArrowFunctionIntro(factoryParameters, { - isAsync: false, - name: null - })}{${useStrict}${n2}`; - const wrapperOutro = n2 + n2 + "}));"; - magicString.prepend(`${intro}${getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets)}`); - const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal); - let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, esModule === true || esModule === "if-default-prop" && hasDefaultExport, symbols, snippets); - if (namespaceMarkers) { - namespaceMarkers = n2 + n2 + namespaceMarkers; - } - magicString.append(`${exportBlock}${namespaceMarkers}${outro}`).trim().indent(t).append(wrapperOutro).prepend(wrapperIntro); -} -var finalisers = { amd, cjs, es, iife, system, umd }; -var concatSeparator = (out, next) => next ? `${out} -${next}` : out; -var concatDblSeparator = (out, next) => next ? `${out} - -${next}` : out; -async function createAddons(options, outputPluginDriver, chunk) { - try { - let [banner, footer, intro, outro] = await Promise.all([ - outputPluginDriver.hookReduceValue("banner", options.banner(chunk), [chunk], concatSeparator), - outputPluginDriver.hookReduceValue("footer", options.footer(chunk), [chunk], concatSeparator), - outputPluginDriver.hookReduceValue("intro", options.intro(chunk), [chunk], concatDblSeparator), - outputPluginDriver.hookReduceValue("outro", options.outro(chunk), [chunk], concatDblSeparator) - ]); - if (intro) - intro += "\n\n"; - if (outro) - outro = ` - -${outro}`; - if (banner) - banner += "\n"; - if (footer) - footer = "\n" + footer; - return { banner, footer, intro, outro }; - } catch (error_) { - return error(logAddonNotGenerated(error_.message, error_.hook, error_.plugin)); - } -} -var DECONFLICT_IMPORTED_VARIABLES_BY_FORMAT = { - amd: deconflictImportsOther, - cjs: deconflictImportsOther, - es: deconflictImportsEsmOrSystem, - iife: deconflictImportsOther, - system: deconflictImportsEsmOrSystem, - umd: deconflictImportsOther -}; -function deconflictChunk(modules, dependenciesToBeDeconflicted, imports, usedNames, format, interop, preserveModules, externalLiveBindings, chunkByModule, externalChunkByModule, syntheticExports, exportNamesByVariable, accessedGlobalsByScope, includedNamespaces) { - const reversedModules = [...modules].reverse(); - for (const module of reversedModules) { - module.scope.addUsedOutsideNames(usedNames, format, exportNamesByVariable, accessedGlobalsByScope); - } - deconflictTopLevelVariables(usedNames, reversedModules, includedNamespaces); - DECONFLICT_IMPORTED_VARIABLES_BY_FORMAT[format](usedNames, imports, dependenciesToBeDeconflicted, interop, preserveModules, externalLiveBindings, chunkByModule, externalChunkByModule, syntheticExports); - for (const module of reversedModules) { - module.scope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope); - } -} -function deconflictImportsEsmOrSystem(usedNames, imports, dependenciesToBeDeconflicted, _interop, preserveModules, _externalLiveBindings, chunkByModule, externalChunkByModule, syntheticExports) { - for (const dependency of dependenciesToBeDeconflicted.dependencies) { - if (preserveModules || dependency instanceof ExternalChunk) { - dependency.variableName = getSafeName(dependency.suggestedVariableName, usedNames, null); - } - } - for (const variable of imports) { - const module = variable.module; - const name = variable.name; - if (variable.isNamespace && (preserveModules || module instanceof ExternalModule)) { - variable.setRenderNames(null, (module instanceof ExternalModule ? externalChunkByModule.get(module) : chunkByModule.get(module)).variableName); - } else if (module instanceof ExternalModule && name === "default") { - variable.setRenderNames(null, getSafeName([...module.exportedVariables].some(([exportedVariable, exportedName]) => exportedName === "*" && exportedVariable.included) ? module.suggestedVariableName + "__default" : module.suggestedVariableName, usedNames, variable.forbiddenNames)); - } else { - variable.setRenderNames(null, getSafeName(makeLegal(name), usedNames, variable.forbiddenNames)); - } - } - for (const variable of syntheticExports) { - variable.setRenderNames(null, getSafeName(variable.name, usedNames, variable.forbiddenNames)); - } -} -function deconflictImportsOther(usedNames, imports, { deconflictedDefault, deconflictedNamespace, dependencies }, interop, preserveModules, externalLiveBindings, chunkByModule, externalChunkByModule) { - for (const chunk of dependencies) { - chunk.variableName = getSafeName(chunk.suggestedVariableName, usedNames, null); - } - for (const chunk of deconflictedNamespace) { - chunk.namespaceVariableName = getSafeName(`${chunk.suggestedVariableName}__namespace`, usedNames, null); - } - for (const externalModule of deconflictedDefault) { - externalModule.defaultVariableName = deconflictedNamespace.has(externalModule) && canDefaultBeTakenFromNamespace(interop(externalModule.id), externalLiveBindings) ? externalModule.namespaceVariableName : getSafeName(`${externalModule.suggestedVariableName}__default`, usedNames, null); - } - for (const variable of imports) { - const module = variable.module; - if (module instanceof ExternalModule) { - const chunk = externalChunkByModule.get(module); - const name = variable.name; - if (name === "default") { - const moduleInterop = interop(module.id); - const variableName = defaultInteropHelpersByInteropType[moduleInterop] ? chunk.defaultVariableName : chunk.variableName; - if (isDefaultAProperty(moduleInterop, externalLiveBindings)) { - variable.setRenderNames(variableName, "default"); - } else { - variable.setRenderNames(null, variableName); - } - } else if (name === "*") { - variable.setRenderNames(null, namespaceInteropHelpersByInteropType[interop(module.id)] ? chunk.namespaceVariableName : chunk.variableName); - } else { - variable.setRenderNames(chunk.variableName, null); - } - } else { - const chunk = chunkByModule.get(module); - if (preserveModules && variable.isNamespace) { - variable.setRenderNames(null, chunk.exportMode === "default" ? chunk.namespaceVariableName : chunk.variableName); - } else if (chunk.exportMode === "default") { - variable.setRenderNames(null, chunk.variableName); - } else { - variable.setRenderNames(chunk.variableName, chunk.getVariableExportName(variable)); - } - } - } -} -function deconflictTopLevelVariables(usedNames, modules, includedNamespaces) { - for (const module of modules) { - for (const variable of module.scope.variables.values()) { - if (variable.included && // this will only happen for exports in some formats - !(variable.renderBaseName || variable instanceof ExportDefaultVariable && variable.getOriginalVariable() !== variable)) { - variable.setRenderNames(null, getSafeName(variable.name, usedNames, variable.forbiddenNames)); - } - } - if (includedNamespaces.has(module)) { - const namespace = module.namespace; - namespace.setRenderNames(null, getSafeName(namespace.name, usedNames, namespace.forbiddenNames)); - } - } -} -function assignExportsToMangledNames(exports, exportsByName, exportNamesByVariable) { - let nameIndex = 0; - for (const variable of exports) { - let [exportName] = variable.name; - if (exportsByName.has(exportName)) { - do { - exportName = toBase64(++nameIndex); - if (exportName.charCodeAt(0) === 49) { - nameIndex += 9 * 64 ** (exportName.length - 1); - exportName = toBase64(nameIndex); - } - } while (RESERVED_NAMES.has(exportName) || exportsByName.has(exportName)); - } - exportsByName.set(exportName, variable); - exportNamesByVariable.set(variable, [exportName]); - } -} -function assignExportsToNames(exports, exportsByName, exportNamesByVariable) { - for (const variable of exports) { - let nameIndex = 0; - let exportName = variable.name; - while (exportsByName.has(exportName)) { - exportName = variable.name + "$" + ++nameIndex; - } - exportsByName.set(exportName, variable); - exportNamesByVariable.set(variable, [exportName]); - } -} -function getExportMode(chunk, { exports: exportMode, name, format }, facadeModuleId, log) { - const exportKeys = chunk.getExportNames(); - if (exportMode === "default") { - if (exportKeys.length !== 1 || exportKeys[0] !== "default") { - return error(logIncompatibleExportOptionValue("default", exportKeys, facadeModuleId)); - } - } else if (exportMode === "none" && exportKeys.length > 0) { - return error(logIncompatibleExportOptionValue("none", exportKeys, facadeModuleId)); - } - if (exportMode === "auto") { - if (exportKeys.length === 0) { - exportMode = "none"; - } else if (exportKeys.length === 1 && exportKeys[0] === "default") { - exportMode = "default"; - } else { - if (format !== "es" && format !== "system" && exportKeys.includes("default")) { - log(LOGLEVEL_WARN, logMixedExport(facadeModuleId, name)); - } - exportMode = "named"; - } - } - return exportMode; -} -function guessIndentString(code) { - const lines = code.split("\n"); - const tabbed = lines.filter((line) => /^\t+/.test(line)); - const spaced = lines.filter((line) => /^ {2,}/.test(line)); - if (tabbed.length === 0 && spaced.length === 0) { - return null; - } - if (tabbed.length >= spaced.length) { - return " "; - } - const min = spaced.reduce((previous, current) => { - const numberSpaces = /^ +/.exec(current)[0].length; - return Math.min(numberSpaces, previous); - }, Infinity); - return " ".repeat(min); -} -function getIndentString(modules, options) { - if (options.indent !== true) - return options.indent; - for (const module of modules) { - const indent = guessIndentString(module.originalCode); - if (indent !== null) - return indent; - } - return " "; -} -function getStaticDependencies(chunk, orderedModules, chunkByModule, externalChunkByModule) { - const staticDependencyBlocks = []; - const handledDependencies = /* @__PURE__ */ new Set(); - for (let modulePos = orderedModules.length - 1; modulePos >= 0; modulePos--) { - const module = orderedModules[modulePos]; - if (!handledDependencies.has(module)) { - const staticDependencies = []; - addStaticDependencies(module, staticDependencies, handledDependencies, chunk, chunkByModule, externalChunkByModule); - staticDependencyBlocks.unshift(staticDependencies); - } - } - const dependencies = /* @__PURE__ */ new Set(); - for (const block of staticDependencyBlocks) { - for (const dependency of block) { - dependencies.add(dependency); - } - } - return dependencies; -} -function addStaticDependencies(module, staticDependencies, handledModules, chunk, chunkByModule, externalChunkByModule) { - const dependencies = module.getDependenciesToBeIncluded(); - for (const dependency of dependencies) { - if (dependency instanceof ExternalModule) { - staticDependencies.push(externalChunkByModule.get(dependency)); - continue; - } - const dependencyChunk = chunkByModule.get(dependency); - if (dependencyChunk !== chunk) { - staticDependencies.push(dependencyChunk); - continue; - } - if (!handledModules.has(dependency)) { - handledModules.add(dependency); - addStaticDependencies(dependency, staticDependencies, handledModules, chunk, chunkByModule, externalChunkByModule); - } - } -} -var hashPlaceholderLeft = "!~{"; -var hashPlaceholderRight = "}~"; -var hashPlaceholderOverhead = hashPlaceholderLeft.length + hashPlaceholderRight.length; -var MAX_HASH_SIZE = 22; -var DEFAULT_HASH_SIZE = 8; -var getHashPlaceholderGenerator = () => { - let nextIndex = 0; - return (optionName, hashSize) => { - if (hashSize > MAX_HASH_SIZE) { - return error(logFailedValidation(`Hashes cannot be longer than ${MAX_HASH_SIZE} characters, received ${hashSize}. Check the "${optionName}" option.`)); - } - const placeholder = `${hashPlaceholderLeft}${toBase64(++nextIndex).padStart(hashSize - hashPlaceholderOverhead, "0")}${hashPlaceholderRight}`; - if (placeholder.length > hashSize) { - return error(logFailedValidation(`To generate hashes for this number of chunks (currently ${nextIndex}), you need a minimum hash size of ${placeholder.length}, received ${hashSize}. Check the "${optionName}" option.`)); - } - return placeholder; - }; -}; -var REPLACER_REGEX = new RegExp(`${hashPlaceholderLeft}[0-9a-zA-Z_$]{1,${MAX_HASH_SIZE - hashPlaceholderOverhead}}${hashPlaceholderRight}`, "g"); -var replacePlaceholders = (code, hashesByPlaceholder) => code.replace(REPLACER_REGEX, (placeholder) => hashesByPlaceholder.get(placeholder) || placeholder); -var replaceSinglePlaceholder = (code, placeholder, value) => code.replace(REPLACER_REGEX, (match) => match === placeholder ? value : match); -var replacePlaceholdersWithDefaultAndGetContainedPlaceholders = (code, placeholders) => { - const containedPlaceholders = /* @__PURE__ */ new Set(); - const transformedCode = code.replace(REPLACER_REGEX, (placeholder) => { - if (placeholders.has(placeholder)) { - containedPlaceholders.add(placeholder); - return `${hashPlaceholderLeft}${"0".repeat(placeholder.length - hashPlaceholderOverhead)}${hashPlaceholderRight}`; - } - return placeholder; - }); - return { containedPlaceholders, transformedCode }; -}; -var lowercaseBundleKeys = Symbol("bundleKeys"); -var FILE_PLACEHOLDER = { - type: "placeholder" -}; -var getOutputBundle = (outputBundleBase) => { - const reservedLowercaseBundleKeys = /* @__PURE__ */ new Set(); - return new Proxy(outputBundleBase, { - deleteProperty(target, key) { - if (typeof key === "string") { - reservedLowercaseBundleKeys.delete(key.toLowerCase()); - } - return Reflect.deleteProperty(target, key); - }, - get(target, key) { - if (key === lowercaseBundleKeys) { - return reservedLowercaseBundleKeys; - } - return Reflect.get(target, key); - }, - set(target, key, value) { - if (typeof key === "string") { - reservedLowercaseBundleKeys.add(key.toLowerCase()); - } - return Reflect.set(target, key, value); - } - }); -}; -var removeUnreferencedAssets = (outputBundle) => { - const unreferencedAssets = /* @__PURE__ */ new Set(); - const bundleEntries = Object.values(outputBundle); - for (const asset of bundleEntries) { - asset.type === "asset" && asset.needsCodeReference && unreferencedAssets.add(asset.fileName); - } - for (const chunk of bundleEntries) { - if (chunk.type === "chunk") { - for (const referencedFile of chunk.referencedFiles) { - unreferencedAssets.has(referencedFile) && unreferencedAssets.delete(referencedFile); - } - } - } - for (const file of unreferencedAssets) { - delete outputBundle[file]; - } -}; -function renderNamePattern(pattern, patternName, replacements) { - if (isPathFragment(pattern)) - return error(logFailedValidation(`Invalid pattern "${pattern}" for "${patternName}", patterns can be neither absolute nor relative paths. If you want your files to be stored in a subdirectory, write its name without a leading slash like this: subdirectory/pattern.`)); - return pattern.replace(/\[(\w+)(:\d+)?]/g, (_match, type, size) => { - if (!replacements.hasOwnProperty(type) || size && type !== "hash") { - return error(logFailedValidation(`"[${type}${size || ""}]" is not a valid placeholder in the "${patternName}" pattern.`)); - } - const replacement = replacements[type](size && Number.parseInt(size.slice(1))); - if (isPathFragment(replacement)) - return error(logFailedValidation(`Invalid substitution "${replacement}" for placeholder "[${type}]" in "${patternName}" pattern, can be neither absolute nor relative path.`)); - return replacement; - }); -} -function makeUnique(name, { [lowercaseBundleKeys]: reservedLowercaseBundleKeys }) { - if (!reservedLowercaseBundleKeys.has(name.toLowerCase())) - return name; - const extension = (0, import_node_path.extname)(name); - name = name.slice(0, Math.max(0, name.length - extension.length)); - let uniqueName, uniqueIndex = 1; - while (reservedLowercaseBundleKeys.has((uniqueName = name + ++uniqueIndex + extension).toLowerCase())) - ; - return uniqueName; -} -var NON_ASSET_EXTENSIONS = /* @__PURE__ */ new Set([ - ".js", - ".jsx", - ".ts", - ".tsx", - ".mjs", - ".mts", - ".cjs", - ".cts" -]); -function getGlobalName(chunk, globals, hasExports, log) { - const globalName = typeof globals === "function" ? globals(chunk.id) : globals[chunk.id]; - if (globalName) { - return globalName; - } - if (hasExports) { - log(LOGLEVEL_WARN, logMissingGlobalName(chunk.id, chunk.variableName)); - return chunk.variableName; - } -} -var Chunk2 = class _Chunk { - constructor(orderedModules, inputOptions, outputOptions, unsetOptions, pluginDriver, modulesById, chunkByModule, externalChunkByModule, facadeChunkByModule, includedNamespaces, manualChunkAlias, getPlaceholder, bundle, inputBase, snippets) { - this.orderedModules = orderedModules; - this.inputOptions = inputOptions; - this.outputOptions = outputOptions; - this.unsetOptions = unsetOptions; - this.pluginDriver = pluginDriver; - this.modulesById = modulesById; - this.chunkByModule = chunkByModule; - this.externalChunkByModule = externalChunkByModule; - this.facadeChunkByModule = facadeChunkByModule; - this.includedNamespaces = includedNamespaces; - this.manualChunkAlias = manualChunkAlias; - this.getPlaceholder = getPlaceholder; - this.bundle = bundle; - this.inputBase = inputBase; - this.snippets = snippets; - this.entryModules = []; - this.exportMode = "named"; - this.facadeModule = null; - this.namespaceVariableName = ""; - this.variableName = ""; - this.accessedGlobalsByScope = /* @__PURE__ */ new Map(); - this.dependencies = /* @__PURE__ */ new Set(); - this.dynamicEntryModules = []; - this.dynamicName = null; - this.exportNamesByVariable = /* @__PURE__ */ new Map(); - this.exports = /* @__PURE__ */ new Set(); - this.exportsByName = /* @__PURE__ */ new Map(); - this.fileName = null; - this.implicitEntryModules = []; - this.implicitlyLoadedBefore = /* @__PURE__ */ new Set(); - this.imports = /* @__PURE__ */ new Set(); - this.includedDynamicImports = null; - this.includedReexportsByModule = /* @__PURE__ */ new Map(); - this.isEmpty = true; - this.name = null; - this.needsExportsShim = false; - this.preRenderedChunkInfo = null; - this.preliminaryFileName = null; - this.preliminarySourcemapFileName = null; - this.renderedChunkInfo = null; - this.renderedDependencies = null; - this.renderedModules = /* @__PURE__ */ Object.create(null); - this.sortedExportNames = null; - this.strictFacade = false; - this.execIndex = orderedModules.length > 0 ? orderedModules[0].execIndex : Infinity; - const chunkModules = new Set(orderedModules); - for (const module of orderedModules) { - chunkByModule.set(module, this); - if (module.namespace.included && !outputOptions.preserveModules) { - includedNamespaces.add(module); - } - if (this.isEmpty && module.isIncluded()) { - this.isEmpty = false; - } - if (module.info.isEntry || outputOptions.preserveModules) { - this.entryModules.push(module); - } - for (const importer of module.includedDynamicImporters) { - if (!chunkModules.has(importer)) { - this.dynamicEntryModules.push(module); - if (module.info.syntheticNamedExports) { - includedNamespaces.add(module); - this.exports.add(module.namespace); - } - } - } - if (module.implicitlyLoadedAfter.size > 0) { - this.implicitEntryModules.push(module); - } - } - this.suggestedVariableName = makeLegal(this.generateVariableName()); - } - static generateFacade(inputOptions, outputOptions, unsetOptions, pluginDriver, modulesById, chunkByModule, externalChunkByModule, facadeChunkByModule, includedNamespaces, facadedModule, facadeName, getPlaceholder, bundle, inputBase, snippets) { - const chunk = new _Chunk([], inputOptions, outputOptions, unsetOptions, pluginDriver, modulesById, chunkByModule, externalChunkByModule, facadeChunkByModule, includedNamespaces, null, getPlaceholder, bundle, inputBase, snippets); - chunk.assignFacadeName(facadeName, facadedModule); - if (!facadeChunkByModule.has(facadedModule)) { - facadeChunkByModule.set(facadedModule, chunk); - } - for (const dependency of facadedModule.getDependenciesToBeIncluded()) { - chunk.dependencies.add(dependency instanceof Module ? chunkByModule.get(dependency) : externalChunkByModule.get(dependency)); - } - if (!chunk.dependencies.has(chunkByModule.get(facadedModule)) && facadedModule.info.moduleSideEffects && facadedModule.hasEffects()) { - chunk.dependencies.add(chunkByModule.get(facadedModule)); - } - chunk.ensureReexportsAreAvailableForModule(facadedModule); - chunk.facadeModule = facadedModule; - chunk.strictFacade = true; - return chunk; - } - canModuleBeFacade(module, exposedVariables) { - const moduleExportNamesByVariable = module.getExportNamesByVariable(); - for (const exposedVariable of this.exports) { - if (!moduleExportNamesByVariable.has(exposedVariable)) { - return false; - } - } - for (const exposedVariable of exposedVariables) { - if (!(exposedVariable.module === module || moduleExportNamesByVariable.has(exposedVariable) || exposedVariable instanceof SyntheticNamedExportVariable && moduleExportNamesByVariable.has(exposedVariable.getBaseVariable()))) { - return false; - } - } - return true; - } - finalizeChunk(code, map, sourcemapFileName, hashesByPlaceholder) { - const renderedChunkInfo = this.getRenderedChunkInfo(); - const finalize = (code2) => replacePlaceholders(code2, hashesByPlaceholder); - const preliminaryFileName = renderedChunkInfo.fileName; - const fileName = this.fileName = finalize(preliminaryFileName); - return { - ...renderedChunkInfo, - code, - dynamicImports: renderedChunkInfo.dynamicImports.map(finalize), - fileName, - implicitlyLoadedBefore: renderedChunkInfo.implicitlyLoadedBefore.map(finalize), - importedBindings: Object.fromEntries(Object.entries(renderedChunkInfo.importedBindings).map(([fileName2, bindings]) => [ - finalize(fileName2), - bindings - ])), - imports: renderedChunkInfo.imports.map(finalize), - map, - preliminaryFileName, - referencedFiles: renderedChunkInfo.referencedFiles.map(finalize), - sourcemapFileName - }; - } - generateExports() { - this.sortedExportNames = null; - const remainingExports = new Set(this.exports); - if (this.facadeModule !== null && (this.facadeModule.preserveSignature !== false || this.strictFacade)) { - const exportNamesByVariable = this.facadeModule.getExportNamesByVariable(); - for (const [variable, exportNames] of exportNamesByVariable) { - this.exportNamesByVariable.set(variable, [...exportNames]); - for (const exportName of exportNames) { - this.exportsByName.set(exportName, variable); - } - remainingExports.delete(variable); - } - } - if (this.outputOptions.minifyInternalExports) { - assignExportsToMangledNames(remainingExports, this.exportsByName, this.exportNamesByVariable); - } else { - assignExportsToNames(remainingExports, this.exportsByName, this.exportNamesByVariable); - } - if (this.outputOptions.preserveModules || this.facadeModule && this.facadeModule.info.isEntry) - this.exportMode = getExportMode(this, this.outputOptions, this.facadeModule.id, this.inputOptions.onLog); - } - generateFacades() { - var _a; - const facades = []; - const entryModules = /* @__PURE__ */ new Set([...this.entryModules, ...this.implicitEntryModules]); - const exposedVariables = new Set(this.dynamicEntryModules.map(({ namespace }) => namespace)); - for (const module of entryModules) { - if (module.preserveSignature) { - for (const exportedVariable of module.getExportNamesByVariable().keys()) { - if (this.chunkByModule.get(exportedVariable.module) === this) { - exposedVariables.add(exportedVariable); - } - } - } - } - for (const module of entryModules) { - const requiredFacades = Array.from( - new Set(module.chunkNames.filter(({ isUserDefined }) => isUserDefined).map(({ name }) => name)), - // mapping must run after Set 'name' dedupe - (name) => ({ - name - }) - ); - if (requiredFacades.length === 0 && module.isUserDefinedEntryPoint) { - requiredFacades.push({}); - } - requiredFacades.push(...Array.from(module.chunkFileNames, (fileName) => ({ fileName }))); - if (requiredFacades.length === 0) { - requiredFacades.push({}); - } - if (!this.facadeModule) { - const needsStrictFacade = !this.outputOptions.preserveModules && (module.preserveSignature === "strict" || module.preserveSignature === "exports-only" && module.getExportNamesByVariable().size > 0); - if (!needsStrictFacade || this.canModuleBeFacade(module, exposedVariables)) { - this.facadeModule = module; - this.facadeChunkByModule.set(module, this); - if (module.preserveSignature) { - this.strictFacade = needsStrictFacade; - } - this.assignFacadeName(requiredFacades.shift(), module, this.outputOptions.preserveModules); - } - } - for (const facadeName of requiredFacades) { - facades.push(_Chunk.generateFacade(this.inputOptions, this.outputOptions, this.unsetOptions, this.pluginDriver, this.modulesById, this.chunkByModule, this.externalChunkByModule, this.facadeChunkByModule, this.includedNamespaces, module, facadeName, this.getPlaceholder, this.bundle, this.inputBase, this.snippets)); - } - } - for (const module of this.dynamicEntryModules) { - if (module.info.syntheticNamedExports) - continue; - if (!this.facadeModule && this.canModuleBeFacade(module, exposedVariables)) { - this.facadeModule = module; - this.facadeChunkByModule.set(module, this); - this.strictFacade = true; - this.dynamicName = getChunkNameFromModule(module); - } else if (this.facadeModule === module && !this.strictFacade && this.canModuleBeFacade(module, exposedVariables)) { - this.strictFacade = true; - } else if (!((_a = this.facadeChunkByModule.get(module)) == null ? void 0 : _a.strictFacade)) { - this.includedNamespaces.add(module); - this.exports.add(module.namespace); - } - } - if (!this.outputOptions.preserveModules) { - this.addNecessaryImportsForFacades(); - } - return facades; - } - getChunkName() { - return this.name ?? (this.name = this.outputOptions.sanitizeFileName(this.getFallbackChunkName())); - } - getExportNames() { - return this.sortedExportNames ?? (this.sortedExportNames = [...this.exportsByName.keys()].sort()); - } - getFileName() { - return this.fileName || this.getPreliminaryFileName().fileName; - } - getImportPath(importer) { - return escapeId(getImportPath(importer, this.getFileName(), this.outputOptions.format === "amd" && !this.outputOptions.amd.forceJsExtensionForImports, true)); - } - getPreliminaryFileName() { - var _a; - if (this.preliminaryFileName) { - return this.preliminaryFileName; - } - let fileName; - let hashPlaceholder = null; - const { chunkFileNames, entryFileNames, file, format, preserveModules } = this.outputOptions; - if (file) { - fileName = (0, import_node_path.basename)(file); - } else if (this.fileName === null) { - const [pattern, patternName] = preserveModules || ((_a = this.facadeModule) == null ? void 0 : _a.isUserDefinedEntryPoint) ? [entryFileNames, "output.entryFileNames"] : [chunkFileNames, "output.chunkFileNames"]; - fileName = renderNamePattern(typeof pattern === "function" ? pattern(this.getPreRenderedChunkInfo()) : pattern, patternName, { - format: () => format, - hash: (size) => hashPlaceholder || (hashPlaceholder = this.getPlaceholder(patternName, size || DEFAULT_HASH_SIZE)), - name: () => this.getChunkName() - }); - if (!hashPlaceholder) { - fileName = makeUnique(fileName, this.bundle); - } - } else { - fileName = this.fileName; - } - if (!hashPlaceholder) { - this.bundle[fileName] = FILE_PLACEHOLDER; - } - return this.preliminaryFileName = { fileName, hashPlaceholder }; - } - getPreliminarySourcemapFileName() { - if (this.preliminarySourcemapFileName) { - return this.preliminarySourcemapFileName; - } - let sourcemapFileName = null; - let hashPlaceholder = null; - const { sourcemapFileNames, format } = this.outputOptions; - if (sourcemapFileNames) { - const [pattern, patternName] = [sourcemapFileNames, "output.sourcemapFileNames"]; - sourcemapFileName = renderNamePattern(typeof pattern === "function" ? pattern(this.getPreRenderedChunkInfo()) : pattern, patternName, { - chunkhash: () => this.getPreliminaryFileName().hashPlaceholder || "", - format: () => format, - hash: (size) => hashPlaceholder || (hashPlaceholder = this.getPlaceholder(patternName, size || DEFAULT_HASH_SIZE)), - name: () => this.getChunkName() - }); - if (!hashPlaceholder) { - sourcemapFileName = makeUnique(sourcemapFileName, this.bundle); - } - } else { - return null; - } - return this.preliminarySourcemapFileName = { fileName: sourcemapFileName, hashPlaceholder }; - } - getRenderedChunkInfo() { - if (this.renderedChunkInfo) { - return this.renderedChunkInfo; - } - return this.renderedChunkInfo = { - ...this.getPreRenderedChunkInfo(), - dynamicImports: this.getDynamicDependencies().map(resolveFileName), - fileName: this.getFileName(), - // eslint-disable-next-line unicorn/prefer-spread - implicitlyLoadedBefore: Array.from(this.implicitlyLoadedBefore, resolveFileName), - importedBindings: getImportedBindingsPerDependency(this.getRenderedDependencies(), resolveFileName), - // eslint-disable-next-line unicorn/prefer-spread - imports: Array.from(this.dependencies, resolveFileName), - modules: this.renderedModules, - referencedFiles: this.getReferencedFiles() - }; - } - getVariableExportName(variable) { - if (this.outputOptions.preserveModules && variable instanceof NamespaceVariable) { - return "*"; - } - return this.exportNamesByVariable.get(variable)[0]; - } - link() { - this.dependencies = getStaticDependencies(this, this.orderedModules, this.chunkByModule, this.externalChunkByModule); - for (const module of this.orderedModules) { - this.addImplicitlyLoadedBeforeFromModule(module); - this.setUpChunkImportsAndExportsForModule(module); - } - } - async render() { - const { dependencies, exportMode, facadeModule, inputOptions: { onLog }, outputOptions, pluginDriver, snippets } = this; - const { format, hoistTransitiveImports, preserveModules } = outputOptions; - if (hoistTransitiveImports && !preserveModules && facadeModule !== null) { - for (const dep of dependencies) { - if (dep instanceof _Chunk) - this.inlineChunkDependencies(dep); - } - } - const preliminaryFileName = this.getPreliminaryFileName(); - const preliminarySourcemapFileName = this.getPreliminarySourcemapFileName(); - const { accessedGlobals, indent, magicString, renderedSource, usedModules, usesTopLevelAwait } = this.renderModules(preliminaryFileName.fileName); - const renderedDependencies = [...this.getRenderedDependencies().values()]; - const renderedExports = exportMode === "none" ? [] : this.getChunkExportDeclarations(format); - let hasExports = renderedExports.length > 0; - let hasDefaultExport = false; - for (const renderedDependency of renderedDependencies) { - const { reexports } = renderedDependency; - if (reexports == null ? void 0 : reexports.length) { - hasExports = true; - if (!hasDefaultExport && reexports.some((reexport) => reexport.reexported === "default")) { - hasDefaultExport = true; - } - if (format === "es") { - renderedDependency.reexports = reexports.filter( - // eslint-disable-next-line unicorn/prefer-array-some - ({ reexported }) => !renderedExports.find(({ exported }) => exported === reexported) - ); - } - } - } - if (!hasDefaultExport) { - for (const { exported } of renderedExports) { - if (exported === "default") { - hasDefaultExport = true; - break; - } - } - } - const { intro, outro, banner, footer } = await createAddons(outputOptions, pluginDriver, this.getRenderedChunkInfo()); - finalisers[format](renderedSource, { - accessedGlobals, - dependencies: renderedDependencies, - exports: renderedExports, - hasDefaultExport, - hasExports, - id: preliminaryFileName.fileName, - indent, - intro, - isEntryFacade: preserveModules || facadeModule !== null && facadeModule.info.isEntry, - isModuleFacade: facadeModule !== null, - log: onLog, - namedExportsMode: exportMode !== "default", - outro, - snippets, - usesTopLevelAwait - }, outputOptions); - if (banner) - magicString.prepend(banner); - if (format === "es" || format === "cjs") { - const shebang = facadeModule !== null && facadeModule.info.isEntry && facadeModule.shebang; - shebang && magicString.prepend(`#!${shebang} -`); - } - if (footer) - magicString.append(footer); - return { - chunk: this, - magicString, - preliminaryFileName, - preliminarySourcemapFileName, - usedModules - }; - } - addImplicitlyLoadedBeforeFromModule(baseModule) { - const { chunkByModule, implicitlyLoadedBefore } = this; - for (const module of baseModule.implicitlyLoadedBefore) { - const chunk = chunkByModule.get(module); - if (chunk && chunk !== this) { - implicitlyLoadedBefore.add(chunk); - } - } - } - addNecessaryImportsForFacades() { - for (const [module, variables] of this.includedReexportsByModule) { - if (this.includedNamespaces.has(module)) { - for (const variable of variables) { - this.imports.add(variable); - } - } - } - } - assignFacadeName({ fileName, name }, facadedModule, preservePath) { - if (fileName) { - this.fileName = fileName; - } else { - this.name = this.outputOptions.sanitizeFileName(name || (preservePath ? this.getPreserveModulesChunkNameFromModule(facadedModule) : getChunkNameFromModule(facadedModule))); - } - } - checkCircularDependencyImport(variable, importingModule) { - var _a; - const variableModule = variable.module; - if (variableModule instanceof Module) { - const exportChunk = this.chunkByModule.get(variableModule); - let alternativeReexportModule; - do { - alternativeReexportModule = importingModule.alternativeReexportModules.get(variable); - if (alternativeReexportModule) { - const exportingChunk = this.chunkByModule.get(alternativeReexportModule); - if (exportingChunk !== exportChunk) { - this.inputOptions.onLog(LOGLEVEL_WARN, logCyclicCrossChunkReexport( - // Namespaces do not have an export name - ((_a = variableModule.getExportNamesByVariable().get(variable)) == null ? void 0 : _a[0]) || "*", - variableModule.id, - alternativeReexportModule.id, - importingModule.id, - this.outputOptions.preserveModules - )); - } - importingModule = alternativeReexportModule; - } - } while (alternativeReexportModule); - } - } - ensureReexportsAreAvailableForModule(module) { - const includedReexports = []; - const map = module.getExportNamesByVariable(); - for (const exportedVariable of map.keys()) { - const isSynthetic = exportedVariable instanceof SyntheticNamedExportVariable; - const importedVariable = isSynthetic ? exportedVariable.getBaseVariable() : exportedVariable; - this.checkCircularDependencyImport(importedVariable, module); - if (!(importedVariable instanceof NamespaceVariable && this.outputOptions.preserveModules)) { - const exportingModule = importedVariable.module; - if (exportingModule instanceof Module) { - const chunk = this.chunkByModule.get(exportingModule); - if (chunk && chunk !== this) { - chunk.exports.add(importedVariable); - includedReexports.push(importedVariable); - if (isSynthetic) { - this.imports.add(importedVariable); - } - } - } - } - } - if (includedReexports.length > 0) { - this.includedReexportsByModule.set(module, includedReexports); - } - } - generateVariableName() { - if (this.manualChunkAlias) { - return this.manualChunkAlias; - } - const moduleForNaming = this.entryModules[0] || this.implicitEntryModules[0] || this.dynamicEntryModules[0] || this.orderedModules[this.orderedModules.length - 1]; - if (moduleForNaming) { - return getChunkNameFromModule(moduleForNaming); - } - return "chunk"; - } - getChunkExportDeclarations(format) { - const exports = []; - for (const exportName of this.getExportNames()) { - if (exportName[0] === "*") - continue; - const variable = this.exportsByName.get(exportName); - if (!(variable instanceof SyntheticNamedExportVariable)) { - const module = variable.module; - if (module) { - const chunk = this.chunkByModule.get(module); - if (chunk !== this) { - if (!chunk || format !== "es") { - continue; - } - const chunkDep = this.renderedDependencies.get(chunk); - if (!chunkDep) { - continue; - } - const { imports, reexports } = chunkDep; - const importedByReexported = reexports == null ? void 0 : reexports.find(({ reexported }) => reexported === exportName); - const isImported = imports == null ? void 0 : imports.find(({ imported }) => imported === (importedByReexported == null ? void 0 : importedByReexported.imported)); - if (!isImported) { - continue; - } - } - } - } - let expression = null; - let hoisted = false; - let local = variable.getName(this.snippets.getPropertyAccess); - if (variable instanceof LocalVariable) { - for (const declaration of variable.declarations) { - if (declaration.parent instanceof FunctionDeclaration || declaration instanceof ExportDefaultDeclaration2 && declaration.declaration instanceof FunctionDeclaration) { - hoisted = true; - break; - } - } - } else if (variable instanceof SyntheticNamedExportVariable) { - expression = local; - if (format === "es") { - local = variable.renderName; - } - } - exports.push({ - exported: exportName, - expression, - hoisted, - local - }); - } - return exports; - } - getDependenciesToBeDeconflicted(addNonNamespacesAndInteropHelpers, addDependenciesWithoutBindings, interop) { - var _a; - const dependencies = /* @__PURE__ */ new Set(); - const deconflictedDefault = /* @__PURE__ */ new Set(); - const deconflictedNamespace = /* @__PURE__ */ new Set(); - for (const variable of [...this.exportNamesByVariable.keys(), ...this.imports]) { - if (addNonNamespacesAndInteropHelpers || variable.isNamespace) { - const module = variable.module; - if (module instanceof ExternalModule) { - const chunk = this.externalChunkByModule.get(module); - dependencies.add(chunk); - if (addNonNamespacesAndInteropHelpers) { - if (variable.name === "default") { - if (defaultInteropHelpersByInteropType[interop(module.id)]) { - deconflictedDefault.add(chunk); - } - } else if (variable.isNamespace && namespaceInteropHelpersByInteropType[interop(module.id)] && (this.imports.has(variable) || !((_a = this.exportNamesByVariable.get(variable)) == null ? void 0 : _a.every((name) => name.startsWith("*"))))) { - deconflictedNamespace.add(chunk); - } - } - } else { - const chunk = this.chunkByModule.get(module); - if (chunk !== this) { - dependencies.add(chunk); - if (addNonNamespacesAndInteropHelpers && chunk.exportMode === "default" && variable.isNamespace) { - deconflictedNamespace.add(chunk); - } - } - } - } - } - if (addDependenciesWithoutBindings) { - for (const dependency of this.dependencies) { - dependencies.add(dependency); - } - } - return { deconflictedDefault, deconflictedNamespace, dependencies }; - } - getDynamicDependencies() { - return this.getIncludedDynamicImports().map((resolvedDynamicImport) => resolvedDynamicImport.facadeChunk || resolvedDynamicImport.chunk || resolvedDynamicImport.externalChunk || resolvedDynamicImport.resolution).filter((resolution) => resolution !== this && (resolution instanceof _Chunk || resolution instanceof ExternalChunk)); - } - getDynamicImportStringAndAttributes(resolution, fileName) { - if (resolution instanceof ExternalModule) { - const chunk = this.externalChunkByModule.get(resolution); - return [`'${chunk.getImportPath(fileName)}'`, chunk.getImportAttributes(this.snippets)]; - } - return [ - resolution || "", - this.outputOptions.format === "es" && this.outputOptions.externalImportAttributes || null - ]; - } - getFallbackChunkName() { - if (this.manualChunkAlias) { - return this.manualChunkAlias; - } - if (this.dynamicName) { - return this.dynamicName; - } - if (this.fileName) { - return getAliasName(this.fileName); - } - return getAliasName(this.orderedModules[this.orderedModules.length - 1].id); - } - getImportSpecifiers() { - const { interop } = this.outputOptions; - const importsByDependency = /* @__PURE__ */ new Map(); - for (const variable of this.imports) { - const module = variable.module; - let dependency; - let imported; - if (module instanceof ExternalModule) { - dependency = this.externalChunkByModule.get(module); - imported = variable.name; - if (imported !== "default" && imported !== "*" && interop(module.id) === "defaultOnly") { - return error(logUnexpectedNamedImport(module.id, imported, false)); - } - } else { - dependency = this.chunkByModule.get(module); - imported = dependency.getVariableExportName(variable); - } - getOrCreate(importsByDependency, dependency, getNewArray).push({ - imported, - local: variable.getName(this.snippets.getPropertyAccess) - }); - } - return importsByDependency; - } - getIncludedDynamicImports() { - if (this.includedDynamicImports) { - return this.includedDynamicImports; - } - const includedDynamicImports = []; - for (const module of this.orderedModules) { - for (const { node, resolution } of module.dynamicImports) { - if (!node.included) { - continue; - } - includedDynamicImports.push(resolution instanceof Module ? { - chunk: this.chunkByModule.get(resolution), - externalChunk: null, - facadeChunk: this.facadeChunkByModule.get(resolution), - node, - resolution - } : resolution instanceof ExternalModule ? { - chunk: null, - externalChunk: this.externalChunkByModule.get(resolution), - facadeChunk: null, - node, - resolution - } : { chunk: null, externalChunk: null, facadeChunk: null, node, resolution }); - } - } - return this.includedDynamicImports = includedDynamicImports; - } - getPreRenderedChunkInfo() { - if (this.preRenderedChunkInfo) { - return this.preRenderedChunkInfo; - } - const { dynamicEntryModules, facadeModule, implicitEntryModules, orderedModules } = this; - return this.preRenderedChunkInfo = { - exports: this.getExportNames(), - facadeModuleId: facadeModule && facadeModule.id, - isDynamicEntry: dynamicEntryModules.length > 0, - isEntry: !!(facadeModule == null ? void 0 : facadeModule.info.isEntry), - isImplicitEntry: implicitEntryModules.length > 0, - moduleIds: orderedModules.map(({ id }) => id), - name: this.getChunkName(), - type: "chunk" - }; - } - getPreserveModulesChunkNameFromModule(module) { - const predefinedChunkName = getPredefinedChunkNameFromModule(module); - if (predefinedChunkName) - return predefinedChunkName; - const { preserveModulesRoot, sanitizeFileName: sanitizeFileName2 } = this.outputOptions; - const sanitizedId = sanitizeFileName2(normalize(module.id.split(QUERY_HASH_REGEX, 1)[0])); - const extensionName = (0, import_node_path.extname)(sanitizedId); - const idWithoutExtension = NON_ASSET_EXTENSIONS.has(extensionName) ? sanitizedId.slice(0, -extensionName.length) : sanitizedId; - if (isAbsolute(idWithoutExtension)) { - return preserveModulesRoot && (0, import_node_path.resolve)(idWithoutExtension).startsWith(preserveModulesRoot) ? idWithoutExtension.slice(preserveModulesRoot.length).replace(/^[/\\]/, "") : relative(this.inputBase, idWithoutExtension); - } else { - return `_virtual/${(0, import_node_path.basename)(idWithoutExtension)}`; - } - } - getReexportSpecifiers() { - const { externalLiveBindings, interop } = this.outputOptions; - const reexportSpecifiers = /* @__PURE__ */ new Map(); - for (let exportName of this.getExportNames()) { - let dependency; - let imported; - let needsLiveBinding = false; - if (exportName[0] === "*") { - const id = exportName.slice(1); - if (interop(id) === "defaultOnly") { - this.inputOptions.onLog(LOGLEVEL_WARN, logUnexpectedNamespaceReexport(id)); - } - needsLiveBinding = externalLiveBindings; - dependency = this.externalChunkByModule.get(this.modulesById.get(id)); - imported = exportName = "*"; - } else { - const variable = this.exportsByName.get(exportName); - if (variable instanceof SyntheticNamedExportVariable) - continue; - const module = variable.module; - if (module instanceof Module) { - dependency = this.chunkByModule.get(module); - if (dependency === this) - continue; - imported = dependency.getVariableExportName(variable); - needsLiveBinding = variable.isReassigned; - } else { - dependency = this.externalChunkByModule.get(module); - imported = variable.name; - if (imported !== "default" && imported !== "*" && interop(module.id) === "defaultOnly") { - return error(logUnexpectedNamedImport(module.id, imported, true)); - } - needsLiveBinding = externalLiveBindings && (imported !== "default" || isDefaultAProperty(interop(module.id), true)); - } - } - getOrCreate(reexportSpecifiers, dependency, getNewArray).push({ - imported, - needsLiveBinding, - reexported: exportName - }); - } - return reexportSpecifiers; - } - getReferencedFiles() { - const referencedFiles = /* @__PURE__ */ new Set(); - for (const module of this.orderedModules) { - for (const meta of module.importMetas) { - const fileName = meta.getReferencedFileName(this.pluginDriver); - if (fileName) { - referencedFiles.add(fileName); - } - } - } - return [...referencedFiles]; - } - getRenderedDependencies() { - if (this.renderedDependencies) { - return this.renderedDependencies; - } - const importSpecifiers = this.getImportSpecifiers(); - const reexportSpecifiers = this.getReexportSpecifiers(); - const renderedDependencies = /* @__PURE__ */ new Map(); - const fileName = this.getFileName(); - for (const dependency of this.dependencies) { - const imports = importSpecifiers.get(dependency) || null; - const reexports = reexportSpecifiers.get(dependency) || null; - const namedExportsMode = dependency instanceof ExternalChunk || dependency.exportMode !== "default"; - const importPath = dependency.getImportPath(fileName); - renderedDependencies.set(dependency, { - attributes: dependency instanceof ExternalChunk ? dependency.getImportAttributes(this.snippets) : null, - defaultVariableName: dependency.defaultVariableName, - globalName: dependency instanceof ExternalChunk && (this.outputOptions.format === "umd" || this.outputOptions.format === "iife") && getGlobalName(dependency, this.outputOptions.globals, (imports || reexports) !== null, this.inputOptions.onLog), - importPath, - imports, - isChunk: dependency instanceof _Chunk, - name: dependency.variableName, - namedExportsMode, - namespaceVariableName: dependency.namespaceVariableName, - reexports - }); - } - return this.renderedDependencies = renderedDependencies; - } - inlineChunkDependencies(chunk) { - for (const dep of chunk.dependencies) { - if (this.dependencies.has(dep)) - continue; - this.dependencies.add(dep); - if (dep instanceof _Chunk) { - this.inlineChunkDependencies(dep); - } - } - } - // This method changes properties on the AST before rendering and must not be async - renderModules(fileName) { - var _a; - const { accessedGlobalsByScope, dependencies, exportNamesByVariable, includedNamespaces, inputOptions: { onLog }, isEmpty, orderedModules, outputOptions, pluginDriver, renderedModules, snippets } = this; - const { compact, format, freeze, generatedCode: { symbols } } = outputOptions; - const { _, cnst, n: n2 } = snippets; - this.setDynamicImportResolutions(fileName); - this.setImportMetaResolutions(fileName); - this.setIdentifierRenderResolutions(); - const magicString = new Bundle$1({ separator: `${n2}${n2}` }); - const indent = getIndentString(orderedModules, outputOptions); - const usedModules = []; - let hoistedSource = ""; - const accessedGlobals = /* @__PURE__ */ new Set(); - const renderedModuleSources = /* @__PURE__ */ new Map(); - const renderOptions = { - accessedDocumentCurrentScript: false, - exportNamesByVariable, - format, - freeze, - indent, - pluginDriver, - snippets, - symbols, - useOriginalName: null - }; - let usesTopLevelAwait = false; - for (const module of orderedModules) { - let renderedLength = 0; - let source; - if (module.isIncluded() || includedNamespaces.has(module)) { - const rendered = module.render(renderOptions); - if (!renderOptions.accessedDocumentCurrentScript && formatsMaybeAccessDocumentCurrentScript.includes(format)) { - (_a = this.accessedGlobalsByScope.get(module.scope)) == null ? void 0 : _a.delete(DOCUMENT_CURRENT_SCRIPT); - } - renderOptions.accessedDocumentCurrentScript = false; - ({ source } = rendered); - usesTopLevelAwait || (usesTopLevelAwait = rendered.usesTopLevelAwait); - renderedLength = source.length(); - if (renderedLength) { - if (compact && source.lastLine().includes("//")) - source.append("\n"); - renderedModuleSources.set(module, source); - magicString.addSource(source); - usedModules.push(module); - } - const namespace = module.namespace; - if (includedNamespaces.has(module)) { - const rendered2 = namespace.renderBlock(renderOptions); - if (namespace.renderFirst()) - hoistedSource += n2 + rendered2; - else - magicString.addSource(new MagicString(rendered2)); - } - const accessedGlobalVariables = accessedGlobalsByScope.get(module.scope); - if (accessedGlobalVariables) { - for (const name of accessedGlobalVariables) { - accessedGlobals.add(name); - } - } - } - const { renderedExports, removedExports } = module.getRenderedExports(); - renderedModules[module.id] = { - get code() { - return (source == null ? void 0 : source.toString()) ?? null; - }, - originalLength: module.originalCode.length, - removedExports, - renderedExports, - renderedLength - }; - } - if (hoistedSource) - magicString.prepend(hoistedSource + n2 + n2); - if (this.needsExportsShim) { - magicString.prepend(`${n2}${cnst} ${MISSING_EXPORT_SHIM_VARIABLE}${_}=${_}void 0;${n2}${n2}`); - } - const renderedSource = compact ? magicString : magicString.trim(); - if (isEmpty && this.getExportNames().length === 0 && dependencies.size === 0) { - onLog(LOGLEVEL_WARN, logEmptyChunk(this.getChunkName())); - } - return { accessedGlobals, indent, magicString, renderedSource, usedModules, usesTopLevelAwait }; - } - setDynamicImportResolutions(fileName) { - const { accessedGlobalsByScope, outputOptions, pluginDriver, snippets } = this; - for (const resolvedDynamicImport of this.getIncludedDynamicImports()) { - if (resolvedDynamicImport.chunk) { - const { chunk, facadeChunk, node, resolution } = resolvedDynamicImport; - if (chunk === this) { - node.setInternalResolution(resolution.namespace); - } else { - node.setExternalResolution((facadeChunk || chunk).exportMode, resolution, outputOptions, snippets, pluginDriver, accessedGlobalsByScope, `'${(facadeChunk || chunk).getImportPath(fileName)}'`, !(facadeChunk == null ? void 0 : facadeChunk.strictFacade) && chunk.exportNamesByVariable.get(resolution.namespace)[0], null); - } - } else { - const { node, resolution } = resolvedDynamicImport; - const [resolutionString, attributes] = this.getDynamicImportStringAndAttributes(resolution, fileName); - node.setExternalResolution("external", resolution, outputOptions, snippets, pluginDriver, accessedGlobalsByScope, resolutionString, false, attributes); - } - } - } - setIdentifierRenderResolutions() { - const { format, generatedCode: { symbols }, interop, preserveModules, externalLiveBindings } = this.outputOptions; - const syntheticExports = /* @__PURE__ */ new Set(); - for (const exportName of this.getExportNames()) { - const exportVariable = this.exportsByName.get(exportName); - if (format !== "es" && format !== "system" && exportVariable.isReassigned && !exportVariable.isId) { - exportVariable.setRenderNames("exports", exportName); - } else if (exportVariable instanceof SyntheticNamedExportVariable) { - syntheticExports.add(exportVariable); - } else { - exportVariable.setRenderNames(null, null); - } - } - for (const module of this.orderedModules) { - if (module.needsExportShim) { - this.needsExportsShim = true; - break; - } - } - const usedNames = /* @__PURE__ */ new Set(["Object", "Promise"]); - if (this.needsExportsShim) { - usedNames.add(MISSING_EXPORT_SHIM_VARIABLE); - } - if (symbols) { - usedNames.add("Symbol"); - } - switch (format) { - case "system": { - usedNames.add("module").add("exports"); - break; - } - case "es": { - break; - } - case "cjs": { - usedNames.add("module").add("require").add("__filename").add("__dirname"); - } - default: { - usedNames.add("exports"); - for (const helper of HELPER_NAMES) { - usedNames.add(helper); - } - } - } - deconflictChunk(this.orderedModules, this.getDependenciesToBeDeconflicted(format !== "es" && format !== "system", format === "amd" || format === "umd" || format === "iife", interop), this.imports, usedNames, format, interop, preserveModules, externalLiveBindings, this.chunkByModule, this.externalChunkByModule, syntheticExports, this.exportNamesByVariable, this.accessedGlobalsByScope, this.includedNamespaces); - } - setImportMetaResolutions(fileName) { - const { accessedGlobalsByScope, includedNamespaces, orderedModules, outputOptions: { format } } = this; - for (const module of orderedModules) { - for (const importMeta of module.importMetas) { - importMeta.setResolution(format, accessedGlobalsByScope, fileName); - } - if (includedNamespaces.has(module)) { - module.namespace.prepare(accessedGlobalsByScope); - } - } - } - setUpChunkImportsAndExportsForModule(module) { - const moduleImports = new Set(module.includedImports); - if (!this.outputOptions.preserveModules && this.includedNamespaces.has(module)) { - const memberVariables = module.namespace.getMemberVariables(); - for (const variable of Object.values(memberVariables)) { - if (variable.included) { - moduleImports.add(variable); - } - } - } - for (let variable of moduleImports) { - if (variable instanceof ExportDefaultVariable) { - variable = variable.getOriginalVariable(); - } - if (variable instanceof SyntheticNamedExportVariable) { - variable = variable.getBaseVariable(); - } - const chunk = this.chunkByModule.get(variable.module); - if (chunk !== this) { - this.imports.add(variable); - if (variable.module instanceof Module) { - this.checkCircularDependencyImport(variable, module); - if (!(variable instanceof NamespaceVariable && this.outputOptions.preserveModules)) { - chunk.exports.add(variable); - } - } - } - } - if (this.includedNamespaces.has(module) || module.info.isEntry && module.preserveSignature !== false || module.includedDynamicImporters.some((importer) => this.chunkByModule.get(importer) !== this)) { - this.ensureReexportsAreAvailableForModule(module); - } - for (const { node, resolution } of module.dynamicImports) { - if (node.included && resolution instanceof Module && this.chunkByModule.get(resolution) === this && !this.includedNamespaces.has(resolution)) { - this.includedNamespaces.add(resolution); - this.ensureReexportsAreAvailableForModule(resolution); - } - } - } -}; -function getChunkNameFromModule(module) { - return getPredefinedChunkNameFromModule(module) ?? getAliasName(module.id); -} -function getPredefinedChunkNameFromModule(module) { - var _a, _b; - return ((_a = module.chunkNames.find(({ isUserDefined }) => isUserDefined)) == null ? void 0 : _a.name) ?? ((_b = module.chunkNames[0]) == null ? void 0 : _b.name); -} -function getImportedBindingsPerDependency(renderedDependencies, resolveFileName2) { - const importedBindingsPerDependency = {}; - for (const [dependency, declaration] of renderedDependencies) { - const specifiers = /* @__PURE__ */ new Set(); - if (declaration.imports) { - for (const { imported } of declaration.imports) { - specifiers.add(imported); - } - } - if (declaration.reexports) { - for (const { imported } of declaration.reexports) { - specifiers.add(imported); - } - } - importedBindingsPerDependency[resolveFileName2(dependency)] = [...specifiers]; - } - return importedBindingsPerDependency; -} -var QUERY_HASH_REGEX = /[#?]/; -var resolveFileName = (dependency) => dependency.getFileName(); -function* concatLazy(iterables) { - for (const iterable of iterables) { - yield* iterable; - } -} -function getChunkAssignments(entries, manualChunkAliasByEntry, minChunkSize, log) { - const { chunkDefinitions, modulesInManualChunks } = getChunkDefinitionsFromManualChunks(manualChunkAliasByEntry); - const { allEntries, dependentEntriesByModule, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry } = analyzeModuleGraph(entries); - const chunkAtoms = getChunksWithSameDependentEntries(getModulesWithDependentEntries(dependentEntriesByModule, modulesInManualChunks)); - const staticDependencyAtomsByEntry = getStaticDependencyAtomsByEntry(allEntries, chunkAtoms); - const alreadyLoadedAtomsByEntry = getAlreadyLoadedAtomsByEntry(staticDependencyAtomsByEntry, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry, allEntries); - removeUnnecessaryDependentEntries(chunkAtoms, alreadyLoadedAtomsByEntry); - const { chunks, sideEffectAtoms, sizeByAtom } = getChunksWithSameDependentEntriesAndCorrelatedAtoms(chunkAtoms, staticDependencyAtomsByEntry, alreadyLoadedAtomsByEntry, minChunkSize); - chunkDefinitions.push(...getOptimizedChunks(chunks, minChunkSize, sideEffectAtoms, sizeByAtom, log).map(({ modules }) => ({ - alias: null, - modules - }))); - return chunkDefinitions; -} -function getChunkDefinitionsFromManualChunks(manualChunkAliasByEntry) { - const chunkDefinitions = []; - const modulesInManualChunks = new Set(manualChunkAliasByEntry.keys()); - const manualChunkModulesByAlias = /* @__PURE__ */ Object.create(null); - for (const [entry, alias] of manualChunkAliasByEntry) { - addStaticDependenciesToManualChunk(entry, manualChunkModulesByAlias[alias] || (manualChunkModulesByAlias[alias] = []), modulesInManualChunks); - } - for (const [alias, modules] of Object.entries(manualChunkModulesByAlias)) { - chunkDefinitions.push({ alias, modules }); - } - return { chunkDefinitions, modulesInManualChunks }; -} -function addStaticDependenciesToManualChunk(entry, manualChunkModules, modulesInManualChunks) { - const modulesToHandle = /* @__PURE__ */ new Set([entry]); - for (const module of modulesToHandle) { - modulesInManualChunks.add(module); - manualChunkModules.push(module); - for (const dependency of module.dependencies) { - if (!(dependency instanceof ExternalModule || modulesInManualChunks.has(dependency))) { - modulesToHandle.add(dependency); - } - } - } -} -function analyzeModuleGraph(entries) { - const dynamicEntryModules = /* @__PURE__ */ new Set(); - const dependentEntriesByModule = /* @__PURE__ */ new Map(); - const dynamicImportModulesByEntry = []; - const allEntriesSet = new Set(entries); - let entryIndex = 0; - for (const currentEntry of allEntriesSet) { - const dynamicImportsForCurrentEntry = /* @__PURE__ */ new Set(); - dynamicImportModulesByEntry.push(dynamicImportsForCurrentEntry); - const modulesToHandle = /* @__PURE__ */ new Set([currentEntry]); - for (const module of modulesToHandle) { - getOrCreate(dependentEntriesByModule, module, getNewSet).add(entryIndex); - for (const dependency of module.getDependenciesToBeIncluded()) { - if (!(dependency instanceof ExternalModule)) { - modulesToHandle.add(dependency); - } - } - for (const { resolution } of module.dynamicImports) { - if (resolution instanceof Module && resolution.includedDynamicImporters.length > 0 && !allEntriesSet.has(resolution)) { - dynamicEntryModules.add(resolution); - allEntriesSet.add(resolution); - dynamicImportsForCurrentEntry.add(resolution); - } - } - for (const dependency of module.implicitlyLoadedBefore) { - if (!allEntriesSet.has(dependency)) { - dynamicEntryModules.add(dependency); - allEntriesSet.add(dependency); - } - } - } - entryIndex++; - } - const allEntries = [...allEntriesSet]; - const { dynamicEntries, dynamicImportsByEntry } = getDynamicEntries(allEntries, dynamicEntryModules, dynamicImportModulesByEntry); - return { - allEntries, - dependentEntriesByModule, - dynamicallyDependentEntriesByDynamicEntry: getDynamicallyDependentEntriesByDynamicEntry(dependentEntriesByModule, dynamicEntries, allEntries), - dynamicImportsByEntry - }; -} -function getDynamicEntries(allEntries, dynamicEntryModules, dynamicImportModulesByEntry) { - const entryIndexByModule = /* @__PURE__ */ new Map(); - const dynamicEntries = /* @__PURE__ */ new Set(); - for (const [entryIndex, entry] of allEntries.entries()) { - entryIndexByModule.set(entry, entryIndex); - if (dynamicEntryModules.has(entry)) { - dynamicEntries.add(entryIndex); - } - } - const dynamicImportsByEntry = []; - for (const dynamicImportModules of dynamicImportModulesByEntry) { - const dynamicImports = /* @__PURE__ */ new Set(); - for (const dynamicEntry of dynamicImportModules) { - dynamicImports.add(entryIndexByModule.get(dynamicEntry)); - } - dynamicImportsByEntry.push(dynamicImports); - } - return { dynamicEntries, dynamicImportsByEntry }; -} -function getDynamicallyDependentEntriesByDynamicEntry(dependentEntriesByModule, dynamicEntries, allEntries) { - const dynamicallyDependentEntriesByDynamicEntry = /* @__PURE__ */ new Map(); - for (const dynamicEntryIndex of dynamicEntries) { - const dynamicallyDependentEntries = getOrCreate(dynamicallyDependentEntriesByDynamicEntry, dynamicEntryIndex, getNewSet); - const dynamicEntry = allEntries[dynamicEntryIndex]; - for (const importer of concatLazy([ - dynamicEntry.includedDynamicImporters, - dynamicEntry.implicitlyLoadedAfter - ])) { - for (const entry of dependentEntriesByModule.get(importer)) { - dynamicallyDependentEntries.add(entry); - } - } - } - return dynamicallyDependentEntriesByDynamicEntry; -} -function getChunksWithSameDependentEntries(modulesWithDependentEntries) { - var _a; - const chunkModules = /* @__PURE__ */ Object.create(null); - for (const { dependentEntries, modules } of modulesWithDependentEntries) { - let chunkSignature = 0n; - for (const entryIndex of dependentEntries) { - chunkSignature |= 1n << BigInt(entryIndex); - } - (chunkModules[_a = String(chunkSignature)] || (chunkModules[_a] = { - dependentEntries: new Set(dependentEntries), - modules: [] - })).modules.push(...modules); - } - return Object.values(chunkModules); -} -function* getModulesWithDependentEntries(dependentEntriesByModule, modulesInManualChunks) { - for (const [module, dependentEntries] of dependentEntriesByModule) { - if (!modulesInManualChunks.has(module)) { - yield { dependentEntries, modules: [module] }; - } - } -} -function getStaticDependencyAtomsByEntry(allEntries, chunkAtoms) { - const staticDependencyAtomsByEntry = allEntries.map(() => 0n); - let atomMask = 1n; - for (const { dependentEntries } of chunkAtoms) { - for (const entryIndex of dependentEntries) { - staticDependencyAtomsByEntry[entryIndex] |= atomMask; - } - atomMask <<= 1n; - } - return staticDependencyAtomsByEntry; -} -function getAlreadyLoadedAtomsByEntry(staticDependencyAtomsByEntry, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry, allEntries) { - const alreadyLoadedAtomsByEntry = allEntries.map((_entry, entryIndex) => dynamicallyDependentEntriesByDynamicEntry.has(entryIndex) ? -1n : 0n); - for (const [dynamicEntryIndex, dynamicallyDependentEntries] of dynamicallyDependentEntriesByDynamicEntry) { - dynamicallyDependentEntriesByDynamicEntry.delete(dynamicEntryIndex); - const knownLoadedAtoms = alreadyLoadedAtomsByEntry[dynamicEntryIndex]; - let updatedLoadedAtoms = knownLoadedAtoms; - for (const entryIndex of dynamicallyDependentEntries) { - updatedLoadedAtoms &= staticDependencyAtomsByEntry[entryIndex] | alreadyLoadedAtomsByEntry[entryIndex]; - } - if (updatedLoadedAtoms !== knownLoadedAtoms) { - alreadyLoadedAtomsByEntry[dynamicEntryIndex] = updatedLoadedAtoms; - for (const dynamicImport of dynamicImportsByEntry[dynamicEntryIndex]) { - getOrCreate(dynamicallyDependentEntriesByDynamicEntry, dynamicImport, getNewSet).add(dynamicEntryIndex); - } - } - } - return alreadyLoadedAtomsByEntry; -} -function removeUnnecessaryDependentEntries(chunkAtoms, alreadyLoadedAtomsByEntry) { - let chunkMask = 1n; - for (const { dependentEntries } of chunkAtoms) { - for (const entryIndex of dependentEntries) { - if ((alreadyLoadedAtomsByEntry[entryIndex] & chunkMask) === chunkMask) { - dependentEntries.delete(entryIndex); - } - } - chunkMask <<= 1n; - } -} -function getChunksWithSameDependentEntriesAndCorrelatedAtoms(chunkAtoms, staticDependencyAtomsByEntry, alreadyLoadedAtomsByEntry, minChunkSize) { - var _a; - const chunksBySignature = /* @__PURE__ */ Object.create(null); - const chunkByModule = /* @__PURE__ */ new Map(); - const sizeByAtom = []; - let sideEffectAtoms = 0n; - let atomMask = 1n; - for (const { dependentEntries, modules } of chunkAtoms) { - let chunkSignature = 0n; - let correlatedAtoms = -1n; - for (const entryIndex of dependentEntries) { - chunkSignature |= 1n << BigInt(entryIndex); - correlatedAtoms &= staticDependencyAtomsByEntry[entryIndex] | alreadyLoadedAtomsByEntry[entryIndex]; - } - const chunk = chunksBySignature[_a = String(chunkSignature)] || (chunksBySignature[_a] = { - containedAtoms: 0n, - correlatedAtoms, - dependencies: /* @__PURE__ */ new Set(), - dependentChunks: /* @__PURE__ */ new Set(), - dependentEntries: new Set(dependentEntries), - modules: [], - pure: true, - size: 0 - }); - let atomSize = 0; - let pure = true; - for (const module of modules) { - chunkByModule.set(module, chunk); - if (module.isIncluded()) { - pure && (pure = !module.hasEffects()); - atomSize += minChunkSize > 1 ? module.estimateSize() : 1; - } - } - if (!pure) { - sideEffectAtoms |= atomMask; - } - sizeByAtom.push(atomSize); - chunk.containedAtoms |= atomMask; - chunk.modules.push(...modules); - chunk.pure && (chunk.pure = pure); - chunk.size += atomSize; - atomMask <<= 1n; - } - const chunks = Object.values(chunksBySignature); - sideEffectAtoms |= addChunkDependenciesAndGetExternalSideEffectAtoms(chunks, chunkByModule, atomMask); - return { chunks, sideEffectAtoms, sizeByAtom }; -} -function addChunkDependenciesAndGetExternalSideEffectAtoms(chunks, chunkByModule, nextAvailableAtomMask) { - const signatureByExternalModule = /* @__PURE__ */ new Map(); - let externalSideEffectAtoms = 0n; - for (const chunk of chunks) { - const { dependencies, modules } = chunk; - for (const module of modules) { - for (const dependency of module.getDependenciesToBeIncluded()) { - if (dependency instanceof ExternalModule) { - if (dependency.info.moduleSideEffects) { - const signature = getOrCreate(signatureByExternalModule, dependency, () => { - const signature2 = nextAvailableAtomMask; - nextAvailableAtomMask <<= 1n; - externalSideEffectAtoms |= signature2; - return signature2; - }); - chunk.containedAtoms |= signature; - chunk.correlatedAtoms |= signature; - } - } else { - const dependencyChunk = chunkByModule.get(dependency); - if (dependencyChunk && dependencyChunk !== chunk) { - dependencies.add(dependencyChunk); - dependencyChunk.dependentChunks.add(chunk); - } - } - } - } - } - return externalSideEffectAtoms; -} -function getOptimizedChunks(chunks, minChunkSize, sideEffectAtoms, sizeByAtom, log) { - timeStart("optimize chunks", 3); - const chunkPartition = getPartitionedChunks(chunks, minChunkSize); - if (!chunkPartition) { - timeEnd("optimize chunks", 3); - return chunks; - } - minChunkSize > 1 && log("info", logOptimizeChunkStatus(chunks.length, chunkPartition.small.size, "Initially")); - mergeChunks(chunkPartition, minChunkSize, sideEffectAtoms, sizeByAtom); - minChunkSize > 1 && log("info", logOptimizeChunkStatus(chunkPartition.small.size + chunkPartition.big.size, chunkPartition.small.size, "After merging chunks")); - timeEnd("optimize chunks", 3); - return [...chunkPartition.small, ...chunkPartition.big]; -} -function getPartitionedChunks(chunks, minChunkSize) { - const smallChunks = []; - const bigChunks = []; - for (const chunk of chunks) { - (chunk.size < minChunkSize ? smallChunks : bigChunks).push(chunk); - } - if (smallChunks.length === 0) { - return null; - } - smallChunks.sort(compareChunkSize); - bigChunks.sort(compareChunkSize); - return { - big: new Set(bigChunks), - small: new Set(smallChunks) - }; -} -function compareChunkSize({ size: sizeA }, { size: sizeB }) { - return sizeA - sizeB; -} -function mergeChunks(chunkPartition, minChunkSize, sideEffectAtoms, sizeByAtom) { - const { small } = chunkPartition; - for (const mergedChunk of small) { - const bestTargetChunk = findBestMergeTarget( - mergedChunk, - chunkPartition, - sideEffectAtoms, - sizeByAtom, - // In the default case, we do not accept size increases - minChunkSize <= 1 ? 1 : Infinity - ); - if (bestTargetChunk) { - const { containedAtoms, correlatedAtoms, modules, pure, size } = mergedChunk; - small.delete(mergedChunk); - getChunksInPartition(bestTargetChunk, minChunkSize, chunkPartition).delete(bestTargetChunk); - bestTargetChunk.modules.push(...modules); - bestTargetChunk.size += size; - bestTargetChunk.pure && (bestTargetChunk.pure = pure); - const { dependencies, dependentChunks, dependentEntries } = bestTargetChunk; - bestTargetChunk.correlatedAtoms &= correlatedAtoms; - bestTargetChunk.containedAtoms |= containedAtoms; - for (const entry of mergedChunk.dependentEntries) { - dependentEntries.add(entry); - } - for (const dependency of mergedChunk.dependencies) { - dependencies.add(dependency); - dependency.dependentChunks.delete(mergedChunk); - dependency.dependentChunks.add(bestTargetChunk); - } - for (const dependentChunk of mergedChunk.dependentChunks) { - dependentChunks.add(dependentChunk); - dependentChunk.dependencies.delete(mergedChunk); - dependentChunk.dependencies.add(bestTargetChunk); - } - dependencies.delete(bestTargetChunk); - dependentChunks.delete(bestTargetChunk); - getChunksInPartition(bestTargetChunk, minChunkSize, chunkPartition).add(bestTargetChunk); - } - } -} -function findBestMergeTarget(mergedChunk, { big, small }, sideEffectAtoms, sizeByAtom, smallestAdditionalSize) { - let bestTargetChunk = null; - for (const targetChunk of concatLazy([small, big])) { - if (mergedChunk === targetChunk) - continue; - const additionalSizeAfterMerge = getAdditionalSizeAfterMerge(mergedChunk, targetChunk, smallestAdditionalSize, sideEffectAtoms, sizeByAtom); - if (additionalSizeAfterMerge < smallestAdditionalSize) { - bestTargetChunk = targetChunk; - if (additionalSizeAfterMerge === 0) - break; - smallestAdditionalSize = additionalSizeAfterMerge; - } - } - return bestTargetChunk; -} -function getAdditionalSizeAfterMerge(mergedChunk, targetChunk, currentAdditionalSize, sideEffectAtoms, sizeByAtom) { - const firstSize = getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(mergedChunk, targetChunk, currentAdditionalSize, sideEffectAtoms, sizeByAtom); - return firstSize < currentAdditionalSize ? firstSize + getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(targetChunk, mergedChunk, currentAdditionalSize - firstSize, sideEffectAtoms, sizeByAtom) : Infinity; -} -function getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(dependentChunk, dependencyChunk, currentAdditionalSize, sideEffectAtoms, sizeByAtom) { - const { correlatedAtoms } = dependencyChunk; - let dependencyAtoms = dependentChunk.containedAtoms; - const dependentContainedSideEffects = dependencyAtoms & sideEffectAtoms; - if ((correlatedAtoms & dependentContainedSideEffects) !== dependentContainedSideEffects) { - return Infinity; - } - const chunksToCheck = new Set(dependentChunk.dependencies); - for (const { dependencies, containedAtoms } of chunksToCheck) { - dependencyAtoms |= containedAtoms; - const containedSideEffects = containedAtoms & sideEffectAtoms; - if ((correlatedAtoms & containedSideEffects) !== containedSideEffects) { - return Infinity; - } - for (const dependency of dependencies) { - if (dependency === dependencyChunk) { - return Infinity; - } - chunksToCheck.add(dependency); - } - } - return getAtomsSizeIfBelowLimit(dependencyAtoms & ~correlatedAtoms, currentAdditionalSize, sizeByAtom); -} -function getAtomsSizeIfBelowLimit(atoms, currentAdditionalSize, sizeByAtom) { - let size = 0; - let atomIndex = 0; - let atomSignature = 1n; - const { length } = sizeByAtom; - for (; atomIndex < length; atomIndex++) { - if ((atoms & atomSignature) === atomSignature) { - size += sizeByAtom[atomIndex]; - } - atomSignature <<= 1n; - if (size >= currentAdditionalSize) { - return Infinity; - } - } - return size; -} -function getChunksInPartition(chunk, minChunkSize, chunkPartition) { - return chunk.size < minChunkSize ? chunkPartition.small : chunkPartition.big; -} -function commondir(files) { - if (files.length === 0) - return "/"; - if (files.length === 1) - return (0, import_node_path.dirname)(files[0]); - const commonSegments = files.slice(1).reduce((commonSegments2, file) => { - const pathSegments = file.split(/\/+|\\+/); - let index; - for (index = 0; commonSegments2[index] === pathSegments[index] && index < Math.min(commonSegments2.length, pathSegments.length); index++) - ; - return commonSegments2.slice(0, index); - }, files[0].split(/\/+|\\+/)); - return commonSegments.length > 1 ? commonSegments.join("/") : "/"; -} -var compareExecIndex = (unitA, unitB) => unitA.execIndex > unitB.execIndex ? 1 : -1; -function sortByExecutionOrder(units) { - units.sort(compareExecIndex); -} -function analyseModuleExecution(entryModules) { - let nextExecIndex = 0; - const cyclePaths = []; - const analysedModules = /* @__PURE__ */ new Set(); - const dynamicImports = /* @__PURE__ */ new Set(); - const parents = /* @__PURE__ */ new Map(); - const orderedModules = []; - const analyseModule = (module) => { - if (module instanceof Module) { - for (const dependency of module.dependencies) { - if (parents.has(dependency)) { - if (!analysedModules.has(dependency)) { - cyclePaths.push(getCyclePath(dependency, module, parents)); - } - continue; - } - parents.set(dependency, module); - analyseModule(dependency); - } - for (const dependency of module.implicitlyLoadedBefore) { - dynamicImports.add(dependency); - } - for (const { resolution } of module.dynamicImports) { - if (resolution instanceof Module) { - dynamicImports.add(resolution); - } - } - orderedModules.push(module); - } - module.execIndex = nextExecIndex++; - analysedModules.add(module); - }; - for (const currentEntry of entryModules) { - if (!parents.has(currentEntry)) { - parents.set(currentEntry, null); - analyseModule(currentEntry); - } - } - for (const currentEntry of dynamicImports) { - if (!parents.has(currentEntry)) { - parents.set(currentEntry, null); - analyseModule(currentEntry); - } - } - return { cyclePaths, orderedModules }; -} -function getCyclePath(module, parent, parents) { - const cycleSymbol = Symbol(module.id); - const path2 = [module.id]; - let nextModule = parent; - module.cycles.add(cycleSymbol); - while (nextModule !== module) { - nextModule.cycles.add(cycleSymbol); - path2.push(nextModule.id); - nextModule = parents.get(nextModule); - } - path2.push(path2[0]); - path2.reverse(); - return path2; -} -function getGenerateCodeSnippets({ compact, generatedCode: { arrowFunctions, constBindings, objectShorthand, reservedNamesAsProps } }) { - const { _, n: n2, s } = compact ? { _: "", n: "", s: "" } : { _: " ", n: "\n", s: ";" }; - const cnst = constBindings ? "const" : "var"; - const getNonArrowFunctionIntro = (parameters, { isAsync, name }) => `${isAsync ? `async ` : ""}function${name ? ` ${name}` : ""}${_}(${parameters.join(`,${_}`)})${_}`; - const getFunctionIntro = arrowFunctions ? (parameters, { isAsync, name }) => { - const singleParameter = parameters.length === 1; - const asyncString = isAsync ? `async${singleParameter ? " " : _}` : ""; - return `${name ? `${cnst} ${name}${_}=${_}` : ""}${asyncString}${singleParameter ? parameters[0] : `(${parameters.join(`,${_}`)})`}${_}=>${_}`; - } : getNonArrowFunctionIntro; - const getDirectReturnFunction = (parameters, { functionReturn, lineBreakIndent, name }) => [ - `${getFunctionIntro(parameters, { - isAsync: false, - name - })}${arrowFunctions ? lineBreakIndent ? `${n2}${lineBreakIndent.base}${lineBreakIndent.t}` : "" : `{${lineBreakIndent ? `${n2}${lineBreakIndent.base}${lineBreakIndent.t}` : _}${functionReturn ? "return " : ""}`}`, - arrowFunctions ? `${name ? ";" : ""}${lineBreakIndent ? `${n2}${lineBreakIndent.base}` : ""}` : `${s}${lineBreakIndent ? `${n2}${lineBreakIndent.base}` : _}}` - ]; - const isValidPropertyName = reservedNamesAsProps ? (name) => VALID_IDENTIFIER_REGEXP.test(name) : (name) => !RESERVED_NAMES.has(name) && VALID_IDENTIFIER_REGEXP.test(name); - return { - _, - cnst, - getDirectReturnFunction, - getDirectReturnIifeLeft: (parameters, returned, { needsArrowReturnParens, needsWrappedFunction }) => { - const [left, right] = getDirectReturnFunction(parameters, { - functionReturn: true, - lineBreakIndent: null, - name: null - }); - return `${wrapIfNeeded(`${left}${wrapIfNeeded(returned, arrowFunctions && needsArrowReturnParens)}${right}`, arrowFunctions || needsWrappedFunction)}(`; - }, - getFunctionIntro, - getNonArrowFunctionIntro, - getObject(fields, { lineBreakIndent }) { - const prefix = lineBreakIndent ? `${n2}${lineBreakIndent.base}${lineBreakIndent.t}` : _; - return `{${fields.map(([key, value]) => { - if (key === null) - return `${prefix}${value}`; - const keyInObject = stringifyObjectKeyIfNeeded(key); - return key === value && objectShorthand && key === keyInObject ? prefix + key : `${prefix}${keyInObject}:${_}${value}`; - }).join(`,`)}${fields.length === 0 ? "" : lineBreakIndent ? `${n2}${lineBreakIndent.base}` : _}}`; - }, - getPropertyAccess: (name) => isValidPropertyName(name) ? `.${name}` : `[${JSON.stringify(name)}]`, - n: n2, - s - }; -} -var wrapIfNeeded = (code, needsParens) => needsParens ? `(${code})` : code; -var Source = class { - constructor(filename, content) { - this.isOriginal = true; - this.filename = filename; - this.content = content; - } - traceSegment(line, column, name) { - return { column, line, name, source: this }; - } -}; -var Link = class { - constructor(map, sources) { - this.sources = sources; - this.names = map.names; - this.mappings = map.mappings; - } - traceMappings() { - const sources = []; - const sourceIndexMap = /* @__PURE__ */ new Map(); - const sourcesContent = []; - const names = []; - const nameIndexMap = /* @__PURE__ */ new Map(); - const mappings = []; - for (const line of this.mappings) { - const tracedLine = []; - for (const segment of line) { - if (segment.length === 1) - continue; - const source = this.sources[segment[1]]; - if (!source) - continue; - const traced = source.traceSegment(segment[2], segment[3], segment.length === 5 ? this.names[segment[4]] : ""); - if (traced) { - const { column, line: line2, name, source: { content, filename } } = traced; - let sourceIndex = sourceIndexMap.get(filename); - if (sourceIndex === void 0) { - sourceIndex = sources.length; - sources.push(filename); - sourceIndexMap.set(filename, sourceIndex); - sourcesContent[sourceIndex] = content; - } else if (sourcesContent[sourceIndex] == null) { - sourcesContent[sourceIndex] = content; - } else if (content != null && sourcesContent[sourceIndex] !== content) { - return error(logConflictingSourcemapSources(filename)); - } - const tracedSegment = [segment[0], sourceIndex, line2, column]; - if (name) { - let nameIndex = nameIndexMap.get(name); - if (nameIndex === void 0) { - nameIndex = names.length; - names.push(name); - nameIndexMap.set(name, nameIndex); - } - tracedSegment[4] = nameIndex; - } - tracedLine.push(tracedSegment); - } - } - mappings.push(tracedLine); - } - return { mappings, names, sources, sourcesContent }; - } - traceSegment(line, column, name) { - const segments = this.mappings[line]; - if (!segments) - return null; - let searchStart = 0; - let searchEnd = segments.length - 1; - while (searchStart <= searchEnd) { - const m = searchStart + searchEnd >> 1; - const segment = segments[m]; - if (segment[0] === column || searchStart === searchEnd) { - if (segment.length == 1) - return null; - const source = this.sources[segment[1]]; - if (!source) - return null; - return source.traceSegment(segment[2], segment[3], segment.length === 5 ? this.names[segment[4]] : name); - } - if (segment[0] > column) { - searchEnd = m - 1; - } else { - searchStart = m + 1; - } - } - return null; - } -}; -function getLinkMap(log) { - return function linkMap(source, map) { - if (!map.missing) { - return new Link(map, [source]); - } - log(LOGLEVEL_WARN, logSourcemapBroken(map.plugin)); - return new Link({ - mappings: [], - names: [] - }, [source]); - }; -} -function getCollapsedSourcemap(id, originalCode, originalSourcemap, sourcemapChain, linkMap) { - let source; - if (originalSourcemap) { - const sources = originalSourcemap.sources; - const sourcesContent = originalSourcemap.sourcesContent || []; - const directory = (0, import_node_path.dirname)(id) || "."; - const sourceRoot = originalSourcemap.sourceRoot || "."; - const baseSources = sources.map((source2, index) => new Source((0, import_node_path.resolve)(directory, sourceRoot, source2), sourcesContent[index])); - source = new Link(originalSourcemap, baseSources); - } else { - source = new Source(id, originalCode); - } - return sourcemapChain.reduce(linkMap, source); -} -function collapseSourcemaps(file, map, modules, bundleSourcemapChain, excludeContent, log) { - const linkMap = getLinkMap(log); - const moduleSources = modules.filter((module) => !module.excludeFromSourcemap).map((module) => getCollapsedSourcemap(module.id, module.originalCode, module.originalSourcemap, module.sourcemapChain, linkMap)); - const link = new Link(map, moduleSources); - const source = bundleSourcemapChain.reduce(linkMap, link); - let { sources, sourcesContent, names, mappings } = source.traceMappings(); - if (file) { - const directory = (0, import_node_path.dirname)(file); - sources = sources.map((source2) => (0, import_node_path.relative)(directory, source2)); - file = (0, import_node_path.basename)(file); - } - sourcesContent = excludeContent ? null : sourcesContent; - for (const module of modules) { - resetSourcemapCache(module.originalSourcemap, module.sourcemapChain); - } - return new SourceMap({ file, mappings, names, sources, sourcesContent }); -} -function collapseSourcemap(id, originalCode, originalSourcemap, sourcemapChain, log) { - if (sourcemapChain.length === 0) { - return originalSourcemap; - } - const source = getCollapsedSourcemap(id, originalCode, originalSourcemap, sourcemapChain, getLinkMap(log)); - const map = source.traceMappings(); - return decodedSourcemap({ version: 3, ...map }); -} -var textEncoder; -var getHash64 = (input) => (0, import_native.xxhashBase64Url)(ensureBuffer(input)); -var getHash36 = (input) => (0, import_native.xxhashBase36)(ensureBuffer(input)); -var getHash16 = (input) => (0, import_native.xxhashBase16)(ensureBuffer(input)); -var hasherByType = { - base36: getHash36, - base64: getHash64, - hex: getHash16 -}; -function ensureBuffer(input) { - if (typeof input === "string") { - if (typeof Buffer === "undefined") { - textEncoder ?? (textEncoder = new TextEncoder()); - return textEncoder.encode(input); - } - return Buffer.from(input); - } - return input; -} -var SOURCEMAPPING_URL = "sourceMa"; -SOURCEMAPPING_URL += "ppingURL"; -async function renderChunks(chunks, bundle, pluginDriver, outputOptions, log) { - timeStart("render chunks", 2); - reserveEntryChunksInBundle(chunks); - const renderedChunks = await Promise.all(chunks.map((chunk) => chunk.render())); - timeEnd("render chunks", 2); - timeStart("transform chunks", 2); - const getHash = hasherByType[outputOptions.hashCharacters]; - const chunkGraph = getChunkGraph(chunks); - const { initialHashesByPlaceholder, nonHashedChunksWithPlaceholders, renderedChunksByPlaceholder, hashDependenciesByPlaceholder } = await transformChunksAndGenerateContentHashes(renderedChunks, chunkGraph, outputOptions, pluginDriver, getHash, log); - const hashesByPlaceholder = generateFinalHashes(renderedChunksByPlaceholder, hashDependenciesByPlaceholder, initialHashesByPlaceholder, bundle, getHash); - addChunksToBundle(renderedChunksByPlaceholder, hashesByPlaceholder, bundle, nonHashedChunksWithPlaceholders, pluginDriver, outputOptions); - timeEnd("transform chunks", 2); -} -function reserveEntryChunksInBundle(chunks) { - for (const chunk of chunks) { - if (chunk.facadeModule && chunk.facadeModule.isUserDefinedEntryPoint) { - chunk.getPreliminaryFileName(); - } - } -} -function getChunkGraph(chunks) { - return Object.fromEntries(chunks.map((chunk) => { - const renderedChunkInfo = chunk.getRenderedChunkInfo(); - return [renderedChunkInfo.fileName, renderedChunkInfo]; - })); -} -async function transformChunk(magicString, fileName, usedModules, chunkGraph, options, outputPluginDriver, log) { - let map = null; - const sourcemapChain = []; - let code = await outputPluginDriver.hookReduceArg0("renderChunk", [magicString.toString(), chunkGraph[fileName], options, { chunks: chunkGraph }], (code2, result, plugin) => { - if (result == null) - return code2; - if (typeof result === "string") - result = { - code: result, - map: void 0 - }; - if (result.map !== null) { - const map2 = decodedSourcemap(result.map); - sourcemapChain.push(map2 || { missing: true, plugin: plugin.name }); - } - return result.code; - }); - const { compact, dir, file, sourcemap, sourcemapExcludeSources, sourcemapFile, sourcemapPathTransform, sourcemapIgnoreList } = options; - if (!compact && code[code.length - 1] !== "\n") - code += "\n"; - if (sourcemap) { - timeStart("sourcemaps", 3); - let resultingFile; - if (file) - resultingFile = (0, import_node_path.resolve)(sourcemapFile || file); - else if (dir) - resultingFile = (0, import_node_path.resolve)(dir, fileName); - else - resultingFile = (0, import_node_path.resolve)(fileName); - const decodedMap = magicString.generateDecodedMap({}); - map = collapseSourcemaps(resultingFile, decodedMap, usedModules, sourcemapChain, sourcemapExcludeSources, log); - for (let sourcesIndex = 0; sourcesIndex < map.sources.length; ++sourcesIndex) { - let sourcePath = map.sources[sourcesIndex]; - const sourcemapPath = `${resultingFile}.map`; - const ignoreList = sourcemapIgnoreList(sourcePath, sourcemapPath); - if (typeof ignoreList !== "boolean") { - error(logFailedValidation("sourcemapIgnoreList function must return a boolean.")); - } - if (ignoreList) { - if (map.x_google_ignoreList === void 0) { - map.x_google_ignoreList = []; - } - if (!map.x_google_ignoreList.includes(sourcesIndex)) { - map.x_google_ignoreList.push(sourcesIndex); - } - } - if (sourcemapPathTransform) { - sourcePath = sourcemapPathTransform(sourcePath, sourcemapPath); - if (typeof sourcePath !== "string") { - error(logFailedValidation(`sourcemapPathTransform function must return a string.`)); - } - } - map.sources[sourcesIndex] = normalize(sourcePath); - } - timeEnd("sourcemaps", 3); - } - return { - code, - map - }; -} -async function transformChunksAndGenerateContentHashes(renderedChunks, chunkGraph, outputOptions, pluginDriver, getHash, log) { - const nonHashedChunksWithPlaceholders = []; - const renderedChunksByPlaceholder = /* @__PURE__ */ new Map(); - const hashDependenciesByPlaceholder = /* @__PURE__ */ new Map(); - const initialHashesByPlaceholder = /* @__PURE__ */ new Map(); - const placeholders = /* @__PURE__ */ new Set(); - for (const { preliminaryFileName: { hashPlaceholder } } of renderedChunks) { - if (hashPlaceholder) - placeholders.add(hashPlaceholder); - } - await Promise.all(renderedChunks.map(async ({ chunk, preliminaryFileName: { fileName, hashPlaceholder }, preliminarySourcemapFileName, magicString, usedModules }) => { - const transformedChunk = { - chunk, - fileName, - sourcemapFileName: (preliminarySourcemapFileName == null ? void 0 : preliminarySourcemapFileName.fileName) ?? null, - ...await transformChunk(magicString, fileName, usedModules, chunkGraph, outputOptions, pluginDriver, log) - }; - const { code, map } = transformedChunk; - if (hashPlaceholder) { - const { containedPlaceholders, transformedCode } = replacePlaceholdersWithDefaultAndGetContainedPlaceholders(code, placeholders); - let contentToHash = transformedCode; - const hashAugmentation = pluginDriver.hookReduceValueSync("augmentChunkHash", "", [chunk.getRenderedChunkInfo()], (augmentation, pluginHash) => { - if (pluginHash) { - augmentation += pluginHash; - } - return augmentation; - }); - if (hashAugmentation) { - contentToHash += hashAugmentation; - } - renderedChunksByPlaceholder.set(hashPlaceholder, transformedChunk); - hashDependenciesByPlaceholder.set(hashPlaceholder, { - containedPlaceholders, - contentHash: getHash(contentToHash) - }); - } else { - nonHashedChunksWithPlaceholders.push(transformedChunk); - } - const sourcemapHashPlaceholder = preliminarySourcemapFileName == null ? void 0 : preliminarySourcemapFileName.hashPlaceholder; - if (map && sourcemapHashPlaceholder) { - initialHashesByPlaceholder.set(preliminarySourcemapFileName.hashPlaceholder, getHash(map.toString()).slice(0, preliminarySourcemapFileName.hashPlaceholder.length)); - } - })); - return { - hashDependenciesByPlaceholder, - initialHashesByPlaceholder, - nonHashedChunksWithPlaceholders, - renderedChunksByPlaceholder - }; -} -function generateFinalHashes(renderedChunksByPlaceholder, hashDependenciesByPlaceholder, initialHashesByPlaceholder, bundle, getHash) { - const hashesByPlaceholder = new Map(initialHashesByPlaceholder); - for (const [placeholder, { fileName }] of renderedChunksByPlaceholder) { - let contentToHash = ""; - const hashDependencyPlaceholders = /* @__PURE__ */ new Set([placeholder]); - for (const dependencyPlaceholder of hashDependencyPlaceholders) { - const { containedPlaceholders, contentHash } = hashDependenciesByPlaceholder.get(dependencyPlaceholder); - contentToHash += contentHash; - for (const containedPlaceholder of containedPlaceholders) { - hashDependencyPlaceholders.add(containedPlaceholder); - } - } - let finalFileName; - let finalHash; - do { - if (finalHash) { - contentToHash = finalHash; - } - finalHash = getHash(contentToHash).slice(0, placeholder.length); - finalFileName = replaceSinglePlaceholder(fileName, placeholder, finalHash); - } while (bundle[lowercaseBundleKeys].has(finalFileName.toLowerCase())); - bundle[finalFileName] = FILE_PLACEHOLDER; - hashesByPlaceholder.set(placeholder, finalHash); - } - return hashesByPlaceholder; -} -function addChunksToBundle(renderedChunksByPlaceholder, hashesByPlaceholder, bundle, nonHashedChunksWithPlaceholders, pluginDriver, options) { - for (const { chunk, code, fileName, sourcemapFileName, map } of renderedChunksByPlaceholder.values()) { - let updatedCode = replacePlaceholders(code, hashesByPlaceholder); - const finalFileName = replacePlaceholders(fileName, hashesByPlaceholder); - let finalSourcemapFileName = null; - if (map) { - finalSourcemapFileName = sourcemapFileName ? replacePlaceholders(sourcemapFileName, hashesByPlaceholder) : `${finalFileName}.map`; - map.file = replacePlaceholders(map.file, hashesByPlaceholder); - updatedCode += emitSourceMapAndGetComment(finalSourcemapFileName, map, pluginDriver, options); - } - bundle[finalFileName] = chunk.finalizeChunk(updatedCode, map, finalSourcemapFileName, hashesByPlaceholder); - } - for (const { chunk, code, fileName, sourcemapFileName, map } of nonHashedChunksWithPlaceholders) { - let updatedCode = hashesByPlaceholder.size > 0 ? replacePlaceholders(code, hashesByPlaceholder) : code; - let finalSourcemapFileName = null; - if (map) { - finalSourcemapFileName = sourcemapFileName ? replacePlaceholders(sourcemapFileName, hashesByPlaceholder) : `${fileName}.map`; - updatedCode += emitSourceMapAndGetComment(finalSourcemapFileName, map, pluginDriver, options); - } - bundle[fileName] = chunk.finalizeChunk(updatedCode, map, finalSourcemapFileName, hashesByPlaceholder); - } -} -function emitSourceMapAndGetComment(fileName, map, pluginDriver, { sourcemap, sourcemapBaseUrl }) { - let url; - if (sourcemap === "inline") { - url = map.toUrl(); - } else { - const sourcemapFileName = (0, import_node_path.basename)(fileName); - url = sourcemapBaseUrl ? new URL(sourcemapFileName, sourcemapBaseUrl).toString() : sourcemapFileName; - pluginDriver.emitFile({ fileName, source: map.toString(), type: "asset" }); - } - return sourcemap === "hidden" ? "" : `//# ${SOURCEMAPPING_URL}=${url} -`; -} -var Bundle2 = class { - constructor(outputOptions, unsetOptions, inputOptions, pluginDriver, graph) { - this.outputOptions = outputOptions; - this.unsetOptions = unsetOptions; - this.inputOptions = inputOptions; - this.pluginDriver = pluginDriver; - this.graph = graph; - this.facadeChunkByModule = /* @__PURE__ */ new Map(); - this.includedNamespaces = /* @__PURE__ */ new Set(); - } - async generate(isWrite) { - timeStart("GENERATE", 1); - const outputBundleBase = /* @__PURE__ */ Object.create(null); - const outputBundle = getOutputBundle(outputBundleBase); - this.pluginDriver.setOutputBundle(outputBundle, this.outputOptions); - try { - timeStart("initialize render", 2); - await this.pluginDriver.hookParallel("renderStart", [this.outputOptions, this.inputOptions]); - timeEnd("initialize render", 2); - timeStart("generate chunks", 2); - const getHashPlaceholder = getHashPlaceholderGenerator(); - const chunks = await this.generateChunks(outputBundle, getHashPlaceholder); - if (chunks.length > 1) { - validateOptionsForMultiChunkOutput(this.outputOptions, this.inputOptions.onLog); - } - this.pluginDriver.setChunkInformation(this.facadeChunkByModule); - for (const chunk of chunks) { - chunk.generateExports(); - } - timeEnd("generate chunks", 2); - await renderChunks(chunks, outputBundle, this.pluginDriver, this.outputOptions, this.inputOptions.onLog); - } catch (error_) { - await this.pluginDriver.hookParallel("renderError", [error_]); - throw error_; - } - removeUnreferencedAssets(outputBundle); - timeStart("generate bundle", 2); - await this.pluginDriver.hookSeq("generateBundle", [ - this.outputOptions, - outputBundle, - isWrite - ]); - this.finaliseAssets(outputBundle); - timeEnd("generate bundle", 2); - timeEnd("GENERATE", 1); - return outputBundleBase; - } - async addManualChunks(manualChunks) { - const manualChunkAliasByEntry = /* @__PURE__ */ new Map(); - const chunkEntries = await Promise.all(Object.entries(manualChunks).map(async ([alias, files]) => ({ - alias, - entries: await this.graph.moduleLoader.addAdditionalModules(files, true) - }))); - for (const { alias, entries } of chunkEntries) { - for (const entry of entries) { - addModuleToManualChunk(alias, entry, manualChunkAliasByEntry); - } - } - return manualChunkAliasByEntry; - } - assignManualChunks(getManualChunk) { - const manualChunkAliasesWithEntry = []; - const manualChunksApi = { - getModuleIds: () => this.graph.modulesById.keys(), - getModuleInfo: this.graph.getModuleInfo - }; - for (const module of this.graph.modulesById.values()) { - if (module instanceof Module) { - const manualChunkAlias = getManualChunk(module.id, manualChunksApi); - if (typeof manualChunkAlias === "string") { - manualChunkAliasesWithEntry.push([manualChunkAlias, module]); - } - } - } - manualChunkAliasesWithEntry.sort(([aliasA], [aliasB]) => aliasA > aliasB ? 1 : aliasA < aliasB ? -1 : 0); - const manualChunkAliasByEntry = /* @__PURE__ */ new Map(); - for (const [alias, module] of manualChunkAliasesWithEntry) { - addModuleToManualChunk(alias, module, manualChunkAliasByEntry); - } - return manualChunkAliasByEntry; - } - finaliseAssets(bundle) { - if (this.outputOptions.validate) { - for (const file of Object.values(bundle)) { - if ("code" in file) { - try { - parseAst(file.code); - } catch (error_) { - this.inputOptions.onLog(LOGLEVEL_WARN, logChunkInvalid(file, error_)); - } - } - } - } - this.pluginDriver.finaliseAssets(); - } - async generateChunks(bundle, getHashPlaceholder) { - const { experimentalMinChunkSize, inlineDynamicImports, manualChunks, preserveModules } = this.outputOptions; - const manualChunkAliasByEntry = typeof manualChunks === "object" ? await this.addManualChunks(manualChunks) : this.assignManualChunks(manualChunks); - const snippets = getGenerateCodeSnippets(this.outputOptions); - const includedModules = getIncludedModules(this.graph.modulesById); - const inputBase = commondir(getAbsoluteEntryModulePaths(includedModules, preserveModules)); - const externalChunkByModule = getExternalChunkByModule(this.graph.modulesById, this.outputOptions, inputBase); - const chunks = []; - const chunkByModule = /* @__PURE__ */ new Map(); - for (const { alias, modules } of inlineDynamicImports ? [{ alias: null, modules: includedModules }] : preserveModules ? includedModules.map((module) => ({ alias: null, modules: [module] })) : getChunkAssignments(this.graph.entryModules, manualChunkAliasByEntry, experimentalMinChunkSize, this.inputOptions.onLog)) { - sortByExecutionOrder(modules); - const chunk = new Chunk2(modules, this.inputOptions, this.outputOptions, this.unsetOptions, this.pluginDriver, this.graph.modulesById, chunkByModule, externalChunkByModule, this.facadeChunkByModule, this.includedNamespaces, alias, getHashPlaceholder, bundle, inputBase, snippets); - chunks.push(chunk); - } - for (const chunk of chunks) { - chunk.link(); - } - const facades = []; - for (const chunk of chunks) { - facades.push(...chunk.generateFacades()); - } - return [...chunks, ...facades]; - } -}; -function validateOptionsForMultiChunkOutput(outputOptions, log) { - if (outputOptions.format === "umd" || outputOptions.format === "iife") - return error(logInvalidOption("output.format", URL_OUTPUT_FORMAT, "UMD and IIFE output formats are not supported for code-splitting builds", outputOptions.format)); - if (typeof outputOptions.file === "string") - return error(logInvalidOption("output.file", URL_OUTPUT_DIR, 'when building multiple chunks, the "output.dir" option must be used, not "output.file". To inline dynamic imports, set the "inlineDynamicImports" option')); - if (outputOptions.sourcemapFile) - return error(logInvalidOption("output.sourcemapFile", URL_OUTPUT_SOURCEMAPFILE, '"output.sourcemapFile" is only supported for single-file builds')); - if (!outputOptions.amd.autoId && outputOptions.amd.id) - log(LOGLEVEL_WARN, logInvalidOption("output.amd.id", URL_OUTPUT_AMD_ID, 'this option is only properly supported for single-file builds. Use "output.amd.autoId" and "output.amd.basePath" instead')); -} -function getIncludedModules(modulesById) { - const includedModules = []; - for (const module of modulesById.values()) { - if (module instanceof Module && (module.isIncluded() || module.info.isEntry || module.includedDynamicImporters.length > 0)) { - includedModules.push(module); - } - } - return includedModules; -} -function getAbsoluteEntryModulePaths(includedModules, preserveModules) { - const absoluteEntryModulePaths = []; - for (const module of includedModules) { - if ((module.info.isEntry || preserveModules) && isAbsolute(module.id)) { - absoluteEntryModulePaths.push(module.id); - } - } - return absoluteEntryModulePaths; -} -function getExternalChunkByModule(modulesById, outputOptions, inputBase) { - const externalChunkByModule = /* @__PURE__ */ new Map(); - for (const module of modulesById.values()) { - if (module instanceof ExternalModule) { - externalChunkByModule.set(module, new ExternalChunk(module, outputOptions, inputBase)); - } - } - return externalChunkByModule; -} -function addModuleToManualChunk(alias, module, manualChunkAliasByEntry) { - const existingAlias = manualChunkAliasByEntry.get(module); - if (typeof existingAlias === "string" && existingAlias !== alias) { - return error(logCannotAssignModuleToChunk(module.id, alias, existingAlias)); - } - manualChunkAliasByEntry.set(module, alias); -} -function flru(max) { - var num, curr, prev; - var limit = max; - function keep(key, value) { - if (++num > limit) { - prev = curr; - reset(1); - ++num; - } - curr[key] = value; - } - function reset(isPartial) { - num = 0; - curr = /* @__PURE__ */ Object.create(null); - isPartial || (prev = /* @__PURE__ */ Object.create(null)); - } - reset(); - return { - clear: reset, - has: function(key) { - return curr[key] !== void 0 || prev[key] !== void 0; - }, - get: function(key) { - var val = curr[key]; - if (val !== void 0) return val; - if ((val = prev[key]) !== void 0) { - keep(key, val); - return val; - } - }, - set: function(key, value) { - if (curr[key] !== void 0) { - curr[key] = value; - } else { - keep(key, value); - } - } - }; -} -function resolveIdViaPlugins(source, importer, pluginDriver, moduleLoaderResolveId, skip, customOptions, isEntry, attributes) { - let skipped = null; - let replaceContext = null; - if (skip) { - skipped = /* @__PURE__ */ new Set(); - for (const skippedCall of skip) { - if (source === skippedCall.source && importer === skippedCall.importer) { - skipped.add(skippedCall.plugin); - } - } - replaceContext = (pluginContext, plugin) => ({ - ...pluginContext, - resolve: (source2, importer2, { attributes: attributes2, custom, isEntry: isEntry2, skipSelf } = BLANK) => { - skipSelf ?? (skipSelf = true); - return moduleLoaderResolveId(source2, importer2, custom, isEntry2, attributes2 || EMPTY_OBJECT, skipSelf ? [...skip, { importer: importer2, plugin, source: source2 }] : skip); - } - }); - } - return pluginDriver.hookFirstAndGetPlugin("resolveId", [source, importer, { attributes, custom: customOptions, isEntry }], replaceContext, skipped); -} -async function resolveId(source, importer, preserveSymlinks, pluginDriver, moduleLoaderResolveId, skip, customOptions, isEntry, attributes) { - const pluginResult = await resolveIdViaPlugins(source, importer, pluginDriver, moduleLoaderResolveId, skip, customOptions, isEntry, attributes); - if (pluginResult != null) { - const [resolveIdResult, plugin] = pluginResult; - if (typeof resolveIdResult === "object" && !resolveIdResult.resolvedBy) { - return { - ...resolveIdResult, - resolvedBy: plugin.name - }; - } - if (typeof resolveIdResult === "string") { - return { - id: resolveIdResult, - resolvedBy: plugin.name - }; - } - return resolveIdResult; - } - if (importer !== void 0 && !isAbsolute(source) && source[0] !== ".") - return null; - return addJsExtensionIfNecessary(importer ? (0, import_node_path.resolve)((0, import_node_path.dirname)(importer), source) : (0, import_node_path.resolve)(source), preserveSymlinks); -} -async function addJsExtensionIfNecessary(file, preserveSymlinks) { - return await findFile(file, preserveSymlinks) ?? await findFile(file + ".mjs", preserveSymlinks) ?? await findFile(file + ".js", preserveSymlinks); -} -async function findFile(file, preserveSymlinks) { - try { - const stats = await (0, import_promises.lstat)(file); - if (!preserveSymlinks && stats.isSymbolicLink()) - return await findFile(await (0, import_promises.realpath)(file), preserveSymlinks); - if (preserveSymlinks && stats.isSymbolicLink() || stats.isFile()) { - const name = (0, import_node_path.basename)(file); - const files = await (0, import_promises.readdir)((0, import_node_path.dirname)(file)); - if (files.includes(name)) - return file; - } - } catch { - } -} -var ANONYMOUS_PLUGIN_PREFIX = "at position "; -var ANONYMOUS_OUTPUT_PLUGIN_PREFIX = "at output position "; -function createPluginCache(cache) { - return { - delete(id) { - return delete cache[id]; - }, - get(id) { - const item = cache[id]; - if (!item) - return; - item[0] = 0; - return item[1]; - }, - has(id) { - const item = cache[id]; - if (!item) - return false; - item[0] = 0; - return true; - }, - set(id, value) { - cache[id] = [0, value]; - } - }; -} -function getTrackedPluginCache(pluginCache, onUse) { - return { - delete(id) { - onUse(); - return pluginCache.delete(id); - }, - get(id) { - onUse(); - return pluginCache.get(id); - }, - has(id) { - onUse(); - return pluginCache.has(id); - }, - set(id, value) { - onUse(); - return pluginCache.set(id, value); - } - }; -} -var NO_CACHE = { - delete() { - return false; - }, - get() { - return void 0; - }, - has() { - return false; - }, - set() { - } -}; -function uncacheablePluginError(pluginName) { - if (pluginName.startsWith(ANONYMOUS_PLUGIN_PREFIX) || pluginName.startsWith(ANONYMOUS_OUTPUT_PLUGIN_PREFIX)) { - return error(logAnonymousPluginCache()); - } - return error(logDuplicatePluginName(pluginName)); -} -function getCacheForUncacheablePlugin(pluginName) { - return { - delete() { - return uncacheablePluginError(pluginName); - }, - get() { - return uncacheablePluginError(pluginName); - }, - has() { - return uncacheablePluginError(pluginName); - }, - set() { - return uncacheablePluginError(pluginName); - } - }; -} -async function asyncFlatten(array) { - do { - array = (await Promise.all(array)).flat(Infinity); - } while (array.some((v) => v == null ? void 0 : v.then)); - return array; -} -var getOnLog = (config, logLevel, printLog = defaultPrintLog) => { - const { onwarn, onLog } = config; - const defaultOnLog = getDefaultOnLog(printLog, onwarn); - if (onLog) { - const minimalPriority = logLevelPriority[logLevel]; - return (level, log) => onLog(level, addLogToString(log), (level2, handledLog) => { - if (level2 === LOGLEVEL_ERROR) { - return error(normalizeLog(handledLog)); - } - if (logLevelPriority[level2] >= minimalPriority) { - defaultOnLog(level2, normalizeLog(handledLog)); - } - }); - } - return defaultOnLog; -}; -var getDefaultOnLog = (printLog, onwarn) => onwarn ? (level, log) => { - if (level === LOGLEVEL_WARN) { - onwarn(addLogToString(log), (warning) => printLog(LOGLEVEL_WARN, normalizeLog(warning))); - } else { - printLog(level, log); - } -} : printLog; -var addLogToString = (log) => { - Object.defineProperty(log, "toString", { - value: () => log.message, - writable: true - }); - return log; -}; -var normalizeLog = (log) => typeof log === "string" ? { message: log } : typeof log === "function" ? normalizeLog(log()) : log; -var defaultPrintLog = (level, { message }) => { - switch (level) { - case LOGLEVEL_WARN: { - return console.warn(message); - } - case LOGLEVEL_DEBUG: { - return console.debug(message); - } - default: { - return console.info(message); - } - } -}; -function warnUnknownOptions(passedOptions, validOptions, optionType, log, ignoredKeys = /$./) { - const validOptionSet = new Set(validOptions); - const unknownOptions = Object.keys(passedOptions).filter((key) => !(validOptionSet.has(key) || ignoredKeys.test(key))); - if (unknownOptions.length > 0) { - log(LOGLEVEL_WARN, logUnknownOption(optionType, unknownOptions, [...validOptionSet].sort())); - } -} -var treeshakePresets = { - recommended: { - annotations: true, - correctVarValueBeforeDeclaration: false, - manualPureFunctions: EMPTY_ARRAY, - moduleSideEffects: () => true, - propertyReadSideEffects: true, - tryCatchDeoptimization: true, - unknownGlobalSideEffects: false - }, - safest: { - annotations: true, - correctVarValueBeforeDeclaration: true, - manualPureFunctions: EMPTY_ARRAY, - moduleSideEffects: () => true, - propertyReadSideEffects: true, - tryCatchDeoptimization: true, - unknownGlobalSideEffects: true - }, - smallest: { - annotations: true, - correctVarValueBeforeDeclaration: false, - manualPureFunctions: EMPTY_ARRAY, - moduleSideEffects: () => false, - propertyReadSideEffects: false, - tryCatchDeoptimization: false, - unknownGlobalSideEffects: false - } -}; -var generatedCodePresets = { - es2015: { - arrowFunctions: true, - constBindings: true, - objectShorthand: true, - reservedNamesAsProps: true, - symbols: true - }, - es5: { - arrowFunctions: false, - constBindings: false, - objectShorthand: false, - reservedNamesAsProps: true, - symbols: false - } -}; -var objectifyOption = (value) => value && typeof value === "object" ? value : {}; -var objectifyOptionWithPresets = (presets, optionName, urlSnippet, additionalValues) => (value) => { - if (typeof value === "string") { - const preset = presets[value]; - if (preset) { - return preset; - } - error(logInvalidOption(optionName, urlSnippet, `valid values are ${additionalValues}${printQuotedStringList(Object.keys(presets))}. You can also supply an object for more fine-grained control`, value)); - } - return objectifyOption(value); -}; -var getOptionWithPreset = (value, presets, optionName, urlSnippet, additionalValues) => { - const presetName = value == null ? void 0 : value.preset; - if (presetName) { - const preset = presets[presetName]; - if (preset) { - return { ...preset, ...value }; - } else { - error(logInvalidOption(`${optionName}.preset`, urlSnippet, `valid values are ${printQuotedStringList(Object.keys(presets))}`, presetName)); - } - } - return objectifyOptionWithPresets(presets, optionName, urlSnippet, additionalValues)(value); -}; -var normalizePluginOption = async (plugins) => (await asyncFlatten([plugins])).filter(Boolean); -async function transform(source, module, pluginDriver, log) { - const id = module.id; - const sourcemapChain = []; - let originalSourcemap = source.map === null ? null : decodedSourcemap(source.map); - const originalCode = source.code; - let ast = source.ast; - const transformDependencies = []; - const emittedFiles = []; - let customTransformCache = false; - const useCustomTransformCache = () => customTransformCache = true; - let pluginName = ""; - let currentSource = source.code; - function transformReducer(previousCode, result, plugin) { - let code2; - let map; - if (typeof result === "string") { - code2 = result; - } else if (result && typeof result === "object") { - module.updateOptions(result); - if (result.code == null) { - if (result.map || result.ast) { - log(LOGLEVEL_WARN, logNoTransformMapOrAstWithoutCode(plugin.name)); - } - return previousCode; - } - ({ code: code2, map, ast } = result); - } else { - return previousCode; - } - if (map !== null) { - sourcemapChain.push(decodedSourcemap(typeof map === "string" ? JSON.parse(map) : map) || { - missing: true, - plugin: plugin.name - }); - } - currentSource = code2; - return code2; - } - const getLogHandler2 = (handler) => (log2, pos) => { - log2 = normalizeLog(log2); - if (pos) - augmentCodeLocation(log2, pos, currentSource, id); - log2.id = id; - log2.hook = "transform"; - handler(log2); - }; - let code; - try { - code = await pluginDriver.hookReduceArg0("transform", [currentSource, id], transformReducer, (pluginContext, plugin) => { - pluginName = plugin.name; - return { - ...pluginContext, - addWatchFile(id2) { - transformDependencies.push(id2); - pluginContext.addWatchFile(id2); - }, - cache: customTransformCache ? pluginContext.cache : getTrackedPluginCache(pluginContext.cache, useCustomTransformCache), - debug: getLogHandler2(pluginContext.debug), - emitFile(emittedFile) { - emittedFiles.push(emittedFile); - return pluginDriver.emitFile(emittedFile); - }, - error(error_, pos) { - if (typeof error_ === "string") - error_ = { message: error_ }; - if (pos) - augmentCodeLocation(error_, pos, currentSource, id); - error_.id = id; - error_.hook = "transform"; - return pluginContext.error(error_); - }, - getCombinedSourcemap() { - const combinedMap = collapseSourcemap(id, originalCode, originalSourcemap, sourcemapChain, log); - if (!combinedMap) { - const magicString = new MagicString(originalCode); - return magicString.generateMap({ hires: true, includeContent: true, source: id }); - } - if (originalSourcemap !== combinedMap) { - originalSourcemap = combinedMap; - sourcemapChain.length = 0; - } - return new SourceMap({ - ...combinedMap, - file: null, - sourcesContent: combinedMap.sourcesContent - }); - }, - info: getLogHandler2(pluginContext.info), - setAssetSource() { - return this.error(logInvalidSetAssetSourceCall()); - }, - warn: getLogHandler2(pluginContext.warn) - }; - }); - } catch (error_) { - return error(logPluginError(error_, pluginName, { hook: "transform", id })); - } - if (!customTransformCache && // files emitted by a transform hook need to be emitted again if the hook is skipped - emittedFiles.length > 0) - module.transformFiles = emittedFiles; - return { - ast, - code, - customTransformCache, - originalCode, - originalSourcemap, - sourcemapChain, - transformDependencies - }; -} -var RESOLVE_DEPENDENCIES = "resolveDependencies"; -var ModuleLoader = class { - constructor(graph, modulesById, options, pluginDriver) { - this.graph = graph; - this.modulesById = modulesById; - this.options = options; - this.pluginDriver = pluginDriver; - this.implicitEntryModules = /* @__PURE__ */ new Set(); - this.indexedEntryModules = []; - this.latestLoadModulesPromise = Promise.resolve(); - this.moduleLoadPromises = /* @__PURE__ */ new Map(); - this.modulesWithLoadedDependencies = /* @__PURE__ */ new Set(); - this.nextChunkNamePriority = 0; - this.nextEntryModuleIndex = 0; - this.resolveId = async (source, importer, customOptions, isEntry, attributes, skip = null) => this.getResolvedIdWithDefaults(this.getNormalizedResolvedIdWithoutDefaults(this.options.external(source, importer, false) ? false : await resolveId(source, importer, this.options.preserveSymlinks, this.pluginDriver, this.resolveId, skip, customOptions, typeof isEntry === "boolean" ? isEntry : !importer, attributes), importer, source), attributes); - this.hasModuleSideEffects = options.treeshake ? options.treeshake.moduleSideEffects : () => true; - } - async addAdditionalModules(unresolvedModules, isAddForManualChunks) { - const result = this.extendLoadModulesPromise(Promise.all(unresolvedModules.map((id) => this.loadEntryModule(id, false, void 0, null, isAddForManualChunks)))); - await this.awaitLoadModulesPromise(); - return result; - } - async addEntryModules(unresolvedEntryModules, isUserDefined) { - const firstEntryModuleIndex = this.nextEntryModuleIndex; - this.nextEntryModuleIndex += unresolvedEntryModules.length; - const firstChunkNamePriority = this.nextChunkNamePriority; - this.nextChunkNamePriority += unresolvedEntryModules.length; - const newEntryModules = await this.extendLoadModulesPromise(Promise.all(unresolvedEntryModules.map(({ id, importer }) => this.loadEntryModule(id, true, importer, null))).then((entryModules) => { - for (const [index, entryModule] of entryModules.entries()) { - entryModule.isUserDefinedEntryPoint = entryModule.isUserDefinedEntryPoint || isUserDefined; - addChunkNamesToModule(entryModule, unresolvedEntryModules[index], isUserDefined, firstChunkNamePriority + index); - const existingIndexedModule = this.indexedEntryModules.find((indexedModule) => indexedModule.module === entryModule); - if (existingIndexedModule) { - existingIndexedModule.index = Math.min(existingIndexedModule.index, firstEntryModuleIndex + index); - } else { - this.indexedEntryModules.push({ - index: firstEntryModuleIndex + index, - module: entryModule - }); - } - } - this.indexedEntryModules.sort(({ index: indexA }, { index: indexB }) => indexA > indexB ? 1 : -1); - return entryModules; - })); - await this.awaitLoadModulesPromise(); - return { - entryModules: this.indexedEntryModules.map(({ module }) => module), - implicitEntryModules: [...this.implicitEntryModules], - newEntryModules - }; - } - async emitChunk({ fileName, id, importer, name, implicitlyLoadedAfterOneOf, preserveSignature }) { - const unresolvedModule = { - fileName: fileName || null, - id, - importer, - name: name || null - }; - const module = implicitlyLoadedAfterOneOf ? await this.addEntryWithImplicitDependants(unresolvedModule, implicitlyLoadedAfterOneOf) : (await this.addEntryModules([unresolvedModule], false)).newEntryModules[0]; - if (preserveSignature != null) { - module.preserveSignature = preserveSignature; - } - return module; - } - async preloadModule(resolvedId) { - const module = await this.fetchModule(this.getResolvedIdWithDefaults(resolvedId, EMPTY_OBJECT), void 0, false, resolvedId.resolveDependencies ? RESOLVE_DEPENDENCIES : true); - return module.info; - } - addEntryWithImplicitDependants(unresolvedModule, implicitlyLoadedAfter) { - const chunkNamePriority = this.nextChunkNamePriority++; - return this.extendLoadModulesPromise(this.loadEntryModule(unresolvedModule.id, false, unresolvedModule.importer, null).then(async (entryModule) => { - addChunkNamesToModule(entryModule, unresolvedModule, false, chunkNamePriority); - if (!entryModule.info.isEntry) { - const implicitlyLoadedAfterModules = await Promise.all(implicitlyLoadedAfter.map((id) => this.loadEntryModule(id, false, unresolvedModule.importer, entryModule.id))); - if (!entryModule.info.isEntry) { - this.implicitEntryModules.add(entryModule); - for (const module of implicitlyLoadedAfterModules) { - entryModule.implicitlyLoadedAfter.add(module); - } - for (const dependant of entryModule.implicitlyLoadedAfter) { - dependant.implicitlyLoadedBefore.add(entryModule); - } - } - } - return entryModule; - })); - } - async addModuleSource(id, importer, module) { - let source; - try { - source = await this.graph.fileOperationQueue.run(async () => { - const content = await this.pluginDriver.hookFirst("load", [id]); - if (content !== null) - return content; - this.graph.watchFiles[id] = true; - return await (0, import_promises.readFile)(id, "utf8"); - }); - } catch (error_) { - let message = `Could not load ${id}`; - if (importer) - message += ` (imported by ${relativeId(importer)})`; - message += `: ${error_.message}`; - error_.message = message; - throw error_; - } - const sourceDescription = typeof source === "string" ? { code: source } : source != null && typeof source === "object" && typeof source.code === "string" ? source : error(logBadLoader(id)); - const code = sourceDescription.code; - if (code.charCodeAt(0) === 65279) { - sourceDescription.code = code.slice(1); - } - const cachedModule = this.graph.cachedModules.get(id); - if (cachedModule && !cachedModule.customTransformCache && cachedModule.originalCode === sourceDescription.code && !await this.pluginDriver.hookFirst("shouldTransformCachedModule", [ - { - ast: cachedModule.ast, - code: cachedModule.code, - id: cachedModule.id, - meta: cachedModule.meta, - moduleSideEffects: cachedModule.moduleSideEffects, - resolvedSources: cachedModule.resolvedIds, - syntheticNamedExports: cachedModule.syntheticNamedExports - } - ])) { - if (cachedModule.transformFiles) { - for (const emittedFile of cachedModule.transformFiles) - this.pluginDriver.emitFile(emittedFile); - } - await module.setSource(cachedModule); - } else { - module.updateOptions(sourceDescription); - await module.setSource(await transform(sourceDescription, module, this.pluginDriver, this.options.onLog)); - } - } - async awaitLoadModulesPromise() { - let startingPromise; - do { - startingPromise = this.latestLoadModulesPromise; - await startingPromise; - } while (startingPromise !== this.latestLoadModulesPromise); - } - extendLoadModulesPromise(loadNewModulesPromise) { - this.latestLoadModulesPromise = Promise.all([ - loadNewModulesPromise, - this.latestLoadModulesPromise - ]); - this.latestLoadModulesPromise.catch(() => { - }); - return loadNewModulesPromise; - } - async fetchDynamicDependencies(module, resolveDynamicImportPromises) { - const dependencies = await Promise.all(resolveDynamicImportPromises.map((resolveDynamicImportPromise) => resolveDynamicImportPromise.then(async ([dynamicImport, resolvedId]) => { - if (resolvedId === null) - return null; - if (typeof resolvedId === "string") { - dynamicImport.resolution = resolvedId; - return null; - } - return dynamicImport.resolution = await this.fetchResolvedDependency(relativeId(resolvedId.id), module.id, resolvedId); - }))); - for (const dependency of dependencies) { - if (dependency) { - module.dynamicDependencies.add(dependency); - dependency.dynamicImporters.push(module.id); - } - } - } - // If this is a preload, then this method always waits for the dependencies of - // the module to be resolved. - // Otherwise, if the module does not exist, it waits for the module and all - // its dependencies to be loaded. - // Otherwise, it returns immediately. - async fetchModule({ attributes, id, meta, moduleSideEffects, syntheticNamedExports }, importer, isEntry, isPreload) { - const existingModule = this.modulesById.get(id); - if (existingModule instanceof Module) { - if (importer && doAttributesDiffer(attributes, existingModule.info.attributes)) { - this.options.onLog(LOGLEVEL_WARN, logInconsistentImportAttributes(existingModule.info.attributes, attributes, id, importer)); - } - await this.handleExistingModule(existingModule, isEntry, isPreload); - return existingModule; - } - if (existingModule instanceof ExternalModule) { - return error(logExternalModulesCannotBeTransformedToModules(existingModule.id)); - } - const module = new Module(this.graph, id, this.options, isEntry, moduleSideEffects, syntheticNamedExports, meta, attributes); - this.modulesById.set(id, module); - const loadPromise = this.addModuleSource(id, importer, module).then(() => [ - this.getResolveStaticDependencyPromises(module), - this.getResolveDynamicImportPromises(module), - loadAndResolveDependenciesPromise - ]); - const loadAndResolveDependenciesPromise = waitForDependencyResolution(loadPromise).then(() => this.pluginDriver.hookParallel("moduleParsed", [module.info])); - loadAndResolveDependenciesPromise.catch(() => { - }); - this.moduleLoadPromises.set(module, loadPromise); - const resolveDependencyPromises = await loadPromise; - if (!isPreload) { - await this.fetchModuleDependencies(module, ...resolveDependencyPromises); - } else if (isPreload === RESOLVE_DEPENDENCIES) { - await loadAndResolveDependenciesPromise; - } - return module; - } - async fetchModuleDependencies(module, resolveStaticDependencyPromises, resolveDynamicDependencyPromises, loadAndResolveDependenciesPromise) { - if (this.modulesWithLoadedDependencies.has(module)) { - return; - } - this.modulesWithLoadedDependencies.add(module); - await Promise.all([ - this.fetchStaticDependencies(module, resolveStaticDependencyPromises), - this.fetchDynamicDependencies(module, resolveDynamicDependencyPromises) - ]); - module.linkImports(); - await loadAndResolveDependenciesPromise; - } - fetchResolvedDependency(source, importer, resolvedId) { - if (resolvedId.external) { - const { attributes, external, id, moduleSideEffects, meta } = resolvedId; - let externalModule = this.modulesById.get(id); - if (!externalModule) { - externalModule = new ExternalModule(this.options, id, moduleSideEffects, meta, external !== "absolute" && isAbsolute(id), attributes); - this.modulesById.set(id, externalModule); - } else if (!(externalModule instanceof ExternalModule)) { - return error(logInternalIdCannotBeExternal(source, importer)); - } else if (doAttributesDiffer(externalModule.info.attributes, attributes)) { - this.options.onLog(LOGLEVEL_WARN, logInconsistentImportAttributes(externalModule.info.attributes, attributes, source, importer)); - } - return Promise.resolve(externalModule); - } - return this.fetchModule(resolvedId, importer, false, false); - } - async fetchStaticDependencies(module, resolveStaticDependencyPromises) { - for (const dependency of await Promise.all(resolveStaticDependencyPromises.map((resolveStaticDependencyPromise) => resolveStaticDependencyPromise.then(([source, resolvedId]) => this.fetchResolvedDependency(source, module.id, resolvedId))))) { - module.dependencies.add(dependency); - dependency.importers.push(module.id); - } - if (!this.options.treeshake || module.info.moduleSideEffects === "no-treeshake") { - for (const dependency of module.dependencies) { - if (dependency instanceof Module) { - dependency.importedFromNotTreeshaken = true; - } - } - } - } - getNormalizedResolvedIdWithoutDefaults(resolveIdResult, importer, source) { - const { makeAbsoluteExternalsRelative } = this.options; - if (resolveIdResult) { - if (typeof resolveIdResult === "object") { - const external2 = resolveIdResult.external || this.options.external(resolveIdResult.id, importer, true); - return { - ...resolveIdResult, - external: external2 && (external2 === "relative" || !isAbsolute(resolveIdResult.id) || external2 === true && isNotAbsoluteExternal(resolveIdResult.id, source, makeAbsoluteExternalsRelative) || "absolute") - }; - } - const external = this.options.external(resolveIdResult, importer, true); - return { - external: external && (isNotAbsoluteExternal(resolveIdResult, source, makeAbsoluteExternalsRelative) || "absolute"), - id: external && makeAbsoluteExternalsRelative ? normalizeRelativeExternalId(resolveIdResult, importer) : resolveIdResult - }; - } - const id = makeAbsoluteExternalsRelative ? normalizeRelativeExternalId(source, importer) : source; - if (resolveIdResult !== false && !this.options.external(id, importer, true)) { - return null; - } - return { - external: isNotAbsoluteExternal(id, source, makeAbsoluteExternalsRelative) || "absolute", - id - }; - } - getResolveDynamicImportPromises(module) { - return module.dynamicImports.map(async (dynamicImport) => { - const resolvedId = await this.resolveDynamicImport(module, dynamicImport.argument, module.id, getAttributesFromImportExpression(dynamicImport.node)); - if (resolvedId && typeof resolvedId === "object") { - dynamicImport.id = resolvedId.id; - } - return [dynamicImport, resolvedId]; - }); - } - getResolveStaticDependencyPromises(module) { - return Array.from(module.sourcesWithAttributes, async ([source, attributes]) => [ - source, - module.resolvedIds[source] = module.resolvedIds[source] || this.handleInvalidResolvedId(await this.resolveId(source, module.id, EMPTY_OBJECT, false, attributes), source, module.id, attributes) - ]); - } - getResolvedIdWithDefaults(resolvedId, attributes) { - if (!resolvedId) { - return null; - } - const external = resolvedId.external || false; - return { - attributes: resolvedId.attributes || attributes, - external, - id: resolvedId.id, - meta: resolvedId.meta || {}, - moduleSideEffects: resolvedId.moduleSideEffects ?? this.hasModuleSideEffects(resolvedId.id, !!external), - resolvedBy: resolvedId.resolvedBy ?? "rollup", - syntheticNamedExports: resolvedId.syntheticNamedExports ?? false - }; - } - async handleExistingModule(module, isEntry, isPreload) { - const loadPromise = this.moduleLoadPromises.get(module); - if (isPreload) { - return isPreload === RESOLVE_DEPENDENCIES ? waitForDependencyResolution(loadPromise) : loadPromise; - } - if (isEntry) { - module.info.isEntry = true; - this.implicitEntryModules.delete(module); - for (const dependant of module.implicitlyLoadedAfter) { - dependant.implicitlyLoadedBefore.delete(module); - } - module.implicitlyLoadedAfter.clear(); - } - return this.fetchModuleDependencies(module, ...await loadPromise); - } - handleInvalidResolvedId(resolvedId, source, importer, attributes) { - if (resolvedId === null) { - if (isRelative(source)) { - return error(logUnresolvedImport(source, importer)); - } - this.options.onLog(LOGLEVEL_WARN, logUnresolvedImportTreatedAsExternal(source, importer)); - return { - attributes, - external: true, - id: source, - meta: {}, - moduleSideEffects: this.hasModuleSideEffects(source, true), - resolvedBy: "rollup", - syntheticNamedExports: false - }; - } else if (resolvedId.external && resolvedId.syntheticNamedExports) { - this.options.onLog(LOGLEVEL_WARN, logExternalSyntheticExports(source, importer)); - } - return resolvedId; - } - async loadEntryModule(unresolvedId, isEntry, importer, implicitlyLoadedBefore, isLoadForManualChunks = false) { - const resolveIdResult = await resolveId(unresolvedId, importer, this.options.preserveSymlinks, this.pluginDriver, this.resolveId, null, EMPTY_OBJECT, true, EMPTY_OBJECT); - if (resolveIdResult == null) { - return error(implicitlyLoadedBefore === null ? logUnresolvedEntry(unresolvedId) : logUnresolvedImplicitDependant(unresolvedId, implicitlyLoadedBefore)); - } - const isExternalModules = typeof resolveIdResult === "object" && resolveIdResult.external; - if (resolveIdResult === false || isExternalModules) { - return error(implicitlyLoadedBefore === null ? isExternalModules && isLoadForManualChunks ? logExternalModulesCannotBeIncludedInManualChunks(unresolvedId) : logEntryCannotBeExternal(unresolvedId) : logImplicitDependantCannotBeExternal(unresolvedId, implicitlyLoadedBefore)); - } - return this.fetchModule(this.getResolvedIdWithDefaults(typeof resolveIdResult === "object" ? resolveIdResult : { id: resolveIdResult }, EMPTY_OBJECT), void 0, isEntry, false); - } - async resolveDynamicImport(module, specifier, importer, attributes) { - const resolution = await this.pluginDriver.hookFirst("resolveDynamicImport", [ - specifier, - importer, - { attributes } - ]); - if (typeof specifier !== "string") { - if (typeof resolution === "string") { - return resolution; - } - if (!resolution) { - return null; - } - return this.getResolvedIdWithDefaults(resolution, attributes); - } - if (resolution == null) { - const existingResolution = module.resolvedIds[specifier]; - if (existingResolution) { - if (doAttributesDiffer(existingResolution.attributes, attributes)) { - this.options.onLog(LOGLEVEL_WARN, logInconsistentImportAttributes(existingResolution.attributes, attributes, specifier, importer)); - } - return existingResolution; - } - return module.resolvedIds[specifier] = this.handleInvalidResolvedId(await this.resolveId(specifier, module.id, EMPTY_OBJECT, false, attributes), specifier, module.id, attributes); - } - return this.handleInvalidResolvedId(this.getResolvedIdWithDefaults(this.getNormalizedResolvedIdWithoutDefaults(resolution, importer, specifier), attributes), specifier, importer, attributes); - } -}; -function normalizeRelativeExternalId(source, importer) { - return isRelative(source) ? importer ? (0, import_node_path.resolve)(importer, "..", source) : (0, import_node_path.resolve)(source) : source; -} -function addChunkNamesToModule(module, { fileName, name }, isUserDefined, priority) { - var _a; - if (fileName !== null) { - module.chunkFileNames.add(fileName); - } else if (name !== null) { - let namePosition = 0; - while (((_a = module.chunkNames[namePosition]) == null ? void 0 : _a.priority) < priority) - namePosition++; - module.chunkNames.splice(namePosition, 0, { isUserDefined, name, priority }); - } -} -function isNotAbsoluteExternal(id, source, makeAbsoluteExternalsRelative) { - return makeAbsoluteExternalsRelative === true || makeAbsoluteExternalsRelative === "ifRelativeSource" && isRelative(source) || !isAbsolute(id); -} -async function waitForDependencyResolution(loadPromise) { - const [resolveStaticDependencyPromises, resolveDynamicImportPromises] = await loadPromise; - return Promise.all([...resolveStaticDependencyPromises, ...resolveDynamicImportPromises]); -} -var GlobalScope = class extends Scope { - constructor() { - super(); - this.parent = null; - this.variables.set("undefined", new UndefinedVariable()); - } - findVariable(name) { - let variable = this.variables.get(name); - if (!variable) { - variable = new GlobalVariable(name); - this.variables.set(name, variable); - } - return variable; - } -}; -function generateAssetFileName(name, source, sourceHash, outputOptions, bundle) { - const emittedName = outputOptions.sanitizeFileName(name || "asset"); - return makeUnique(renderNamePattern(typeof outputOptions.assetFileNames === "function" ? outputOptions.assetFileNames({ name, source, type: "asset" }) : outputOptions.assetFileNames, "output.assetFileNames", { - ext: () => (0, import_node_path.extname)(emittedName).slice(1), - extname: () => (0, import_node_path.extname)(emittedName), - hash: (size) => sourceHash.slice(0, Math.max(0, size || DEFAULT_HASH_SIZE)), - name: () => emittedName.slice(0, Math.max(0, emittedName.length - (0, import_node_path.extname)(emittedName).length)) - }), bundle); -} -function reserveFileNameInBundle(fileName, { bundle }, log) { - if (bundle[lowercaseBundleKeys].has(fileName.toLowerCase())) { - log(LOGLEVEL_WARN, logFileNameConflict(fileName)); - } else { - bundle[fileName] = FILE_PLACEHOLDER; - } -} -var emittedFileTypes = /* @__PURE__ */ new Set(["chunk", "asset", "prebuilt-chunk"]); -function hasValidType(emittedFile) { - return Boolean(emittedFile && emittedFileTypes.has(emittedFile.type)); -} -function hasValidName(emittedFile) { - const validatedName = emittedFile.fileName || emittedFile.name; - return !validatedName || typeof validatedName === "string" && !isPathFragment(validatedName); -} -function getValidSource(source, emittedFile, fileReferenceId) { - if (!(typeof source === "string" || source instanceof Uint8Array)) { - const assetName = emittedFile.fileName || emittedFile.name || fileReferenceId; - return error(logFailedValidation(`Could not set source for ${typeof assetName === "string" ? `asset "${assetName}"` : "unnamed asset"}, asset source needs to be a string, Uint8Array or Buffer.`)); - } - return source; -} -function getAssetFileName(file, referenceId) { - if (typeof file.fileName !== "string") { - return error(logAssetNotFinalisedForFileName(file.name || referenceId)); - } - return file.fileName; -} -function getChunkFileName(file, facadeChunkByModule) { - if (file.fileName) { - return file.fileName; - } - if (facadeChunkByModule) { - return facadeChunkByModule.get(file.module).getFileName(); - } - return error(logChunkNotGeneratedForFileName(file.fileName || file.name)); -} -var FileEmitter = class { - constructor(graph, options, baseFileEmitter) { - this.graph = graph; - this.options = options; - this.facadeChunkByModule = null; - this.nextIdBase = 1; - this.output = null; - this.outputFileEmitters = []; - this.emitFile = (emittedFile) => { - if (!hasValidType(emittedFile)) { - return error(logFailedValidation(`Emitted files must be of type "asset", "chunk" or "prebuilt-chunk", received "${emittedFile && emittedFile.type}".`)); - } - if (emittedFile.type === "prebuilt-chunk") { - return this.emitPrebuiltChunk(emittedFile); - } - if (!hasValidName(emittedFile)) { - return error(logFailedValidation(`The "fileName" or "name" properties of emitted chunks and assets must be strings that are neither absolute nor relative paths, received "${emittedFile.fileName || emittedFile.name}".`)); - } - if (emittedFile.type === "chunk") { - return this.emitChunk(emittedFile); - } - return this.emitAsset(emittedFile); - }; - this.finaliseAssets = () => { - for (const [referenceId, emittedFile] of this.filesByReferenceId) { - if (emittedFile.type === "asset" && typeof emittedFile.fileName !== "string") - return error(logNoAssetSourceSet(emittedFile.name || referenceId)); - } - }; - this.getFileName = (fileReferenceId) => { - const emittedFile = this.filesByReferenceId.get(fileReferenceId); - if (!emittedFile) - return error(logFileReferenceIdNotFoundForFilename(fileReferenceId)); - if (emittedFile.type === "chunk") { - return getChunkFileName(emittedFile, this.facadeChunkByModule); - } - if (emittedFile.type === "prebuilt-chunk") { - return emittedFile.fileName; - } - return getAssetFileName(emittedFile, fileReferenceId); - }; - this.setAssetSource = (referenceId, requestedSource) => { - const consumedFile = this.filesByReferenceId.get(referenceId); - if (!consumedFile) - return error(logAssetReferenceIdNotFoundForSetSource(referenceId)); - if (consumedFile.type !== "asset") { - return error(logFailedValidation(`Asset sources can only be set for emitted assets but "${referenceId}" is an emitted chunk.`)); - } - if (consumedFile.source !== void 0) { - return error(logAssetSourceAlreadySet(consumedFile.name || referenceId)); - } - const source = getValidSource(requestedSource, consumedFile, referenceId); - if (this.output) { - this.finalizeAdditionalAsset(consumedFile, source, this.output); - } else { - consumedFile.source = source; - for (const emitter of this.outputFileEmitters) { - emitter.finalizeAdditionalAsset(consumedFile, source, emitter.output); - } - } - }; - this.setChunkInformation = (facadeChunkByModule) => { - this.facadeChunkByModule = facadeChunkByModule; - }; - this.setOutputBundle = (bundle, outputOptions) => { - const getHash = hasherByType[outputOptions.hashCharacters]; - const output = this.output = { - bundle, - fileNamesBySource: /* @__PURE__ */ new Map(), - getHash, - outputOptions - }; - for (const emittedFile of this.filesByReferenceId.values()) { - if (emittedFile.fileName) { - reserveFileNameInBundle(emittedFile.fileName, output, this.options.onLog); - } - } - const consumedAssetsByHash = /* @__PURE__ */ new Map(); - for (const consumedFile of this.filesByReferenceId.values()) { - if (consumedFile.type === "asset" && consumedFile.source !== void 0) { - if (consumedFile.fileName) { - this.finalizeAdditionalAsset(consumedFile, consumedFile.source, output); - } else { - const sourceHash = getHash(consumedFile.source); - getOrCreate(consumedAssetsByHash, sourceHash, () => []).push(consumedFile); - } - } else if (consumedFile.type === "prebuilt-chunk") { - this.output.bundle[consumedFile.fileName] = this.createPrebuiltChunk(consumedFile); - } - } - for (const [sourceHash, consumedFiles] of consumedAssetsByHash) { - this.finalizeAssetsWithSameSource(consumedFiles, sourceHash, output); - } - }; - this.filesByReferenceId = baseFileEmitter ? new Map(baseFileEmitter.filesByReferenceId) : /* @__PURE__ */ new Map(); - baseFileEmitter == null ? void 0 : baseFileEmitter.addOutputFileEmitter(this); - } - addOutputFileEmitter(outputFileEmitter) { - this.outputFileEmitters.push(outputFileEmitter); - } - assignReferenceId(file, idBase) { - let referenceId = idBase; - do { - referenceId = getHash64(referenceId).slice(0, 8).replaceAll("-", "$"); - } while (this.filesByReferenceId.has(referenceId) || this.outputFileEmitters.some(({ filesByReferenceId }) => filesByReferenceId.has(referenceId))); - file.referenceId = referenceId; - this.filesByReferenceId.set(referenceId, file); - for (const { filesByReferenceId } of this.outputFileEmitters) { - filesByReferenceId.set(referenceId, file); - } - return referenceId; - } - createPrebuiltChunk(prebuiltChunk) { - return { - code: prebuiltChunk.code, - dynamicImports: [], - exports: prebuiltChunk.exports || [], - facadeModuleId: null, - fileName: prebuiltChunk.fileName, - implicitlyLoadedBefore: [], - importedBindings: {}, - imports: [], - isDynamicEntry: false, - isEntry: false, - isImplicitEntry: false, - map: prebuiltChunk.map || null, - moduleIds: [], - modules: {}, - name: prebuiltChunk.fileName, - preliminaryFileName: prebuiltChunk.fileName, - referencedFiles: [], - sourcemapFileName: prebuiltChunk.sourcemapFileName || null, - type: "chunk" - }; - } - emitAsset(emittedAsset) { - const source = emittedAsset.source === void 0 ? void 0 : getValidSource(emittedAsset.source, emittedAsset, null); - const consumedAsset = { - fileName: emittedAsset.fileName, - name: emittedAsset.name, - needsCodeReference: !!emittedAsset.needsCodeReference, - referenceId: "", - source, - type: "asset" - }; - const referenceId = this.assignReferenceId(consumedAsset, emittedAsset.fileName || emittedAsset.name || String(this.nextIdBase++)); - if (this.output) { - this.emitAssetWithReferenceId(consumedAsset, this.output); - } else { - for (const fileEmitter of this.outputFileEmitters) { - fileEmitter.emitAssetWithReferenceId(consumedAsset, fileEmitter.output); - } - } - return referenceId; - } - emitAssetWithReferenceId(consumedAsset, output) { - const { fileName, source } = consumedAsset; - if (fileName) { - reserveFileNameInBundle(fileName, output, this.options.onLog); - } - if (source !== void 0) { - this.finalizeAdditionalAsset(consumedAsset, source, output); - } - } - emitChunk(emittedChunk) { - if (this.graph.phase > BuildPhase.LOAD_AND_PARSE) { - return error(logInvalidRollupPhaseForChunkEmission()); - } - if (typeof emittedChunk.id !== "string") { - return error(logFailedValidation(`Emitted chunks need to have a valid string id, received "${emittedChunk.id}"`)); - } - const consumedChunk = { - fileName: emittedChunk.fileName, - module: null, - name: emittedChunk.name || emittedChunk.id, - referenceId: "", - type: "chunk" - }; - this.graph.moduleLoader.emitChunk(emittedChunk).then((module) => consumedChunk.module = module).catch(() => { - }); - return this.assignReferenceId(consumedChunk, emittedChunk.id); - } - emitPrebuiltChunk(emitPrebuiltChunk) { - if (typeof emitPrebuiltChunk.code !== "string") { - return error(logFailedValidation(`Emitted prebuilt chunks need to have a valid string code, received "${emitPrebuiltChunk.code}".`)); - } - if (typeof emitPrebuiltChunk.fileName !== "string" || isPathFragment(emitPrebuiltChunk.fileName)) { - return error(logFailedValidation(`The "fileName" property of emitted prebuilt chunks must be strings that are neither absolute nor relative paths, received "${emitPrebuiltChunk.fileName}".`)); - } - const consumedPrebuiltChunk = { - code: emitPrebuiltChunk.code, - exports: emitPrebuiltChunk.exports, - fileName: emitPrebuiltChunk.fileName, - map: emitPrebuiltChunk.map, - referenceId: "", - type: "prebuilt-chunk" - }; - const referenceId = this.assignReferenceId(consumedPrebuiltChunk, consumedPrebuiltChunk.fileName); - if (this.output) { - this.output.bundle[consumedPrebuiltChunk.fileName] = this.createPrebuiltChunk(consumedPrebuiltChunk); - } - return referenceId; - } - finalizeAdditionalAsset(consumedFile, source, { bundle, fileNamesBySource, getHash, outputOptions }) { - let { fileName, needsCodeReference, referenceId } = consumedFile; - if (!fileName) { - const sourceHash = getHash(source); - fileName = fileNamesBySource.get(sourceHash); - if (!fileName) { - fileName = generateAssetFileName(consumedFile.name, source, sourceHash, outputOptions, bundle); - fileNamesBySource.set(sourceHash, fileName); - } - } - const assetWithFileName = { ...consumedFile, fileName, source }; - this.filesByReferenceId.set(referenceId, assetWithFileName); - const existingAsset = bundle[fileName]; - if ((existingAsset == null ? void 0 : existingAsset.type) === "asset") { - existingAsset.needsCodeReference && (existingAsset.needsCodeReference = needsCodeReference); - } else { - bundle[fileName] = { - fileName, - name: consumedFile.name, - needsCodeReference, - source, - type: "asset" - }; - } - } - finalizeAssetsWithSameSource(consumedFiles, sourceHash, { bundle, fileNamesBySource, outputOptions }) { - let fileName = ""; - let usedConsumedFile; - let needsCodeReference = true; - for (const consumedFile of consumedFiles) { - needsCodeReference && (needsCodeReference = consumedFile.needsCodeReference); - const assetFileName = generateAssetFileName(consumedFile.name, consumedFile.source, sourceHash, outputOptions, bundle); - if (!fileName || assetFileName.length < fileName.length || assetFileName.length === fileName.length && assetFileName < fileName) { - fileName = assetFileName; - usedConsumedFile = consumedFile; - } - } - fileNamesBySource.set(sourceHash, fileName); - for (const consumedFile of consumedFiles) { - const assetWithFileName = { ...consumedFile, fileName }; - this.filesByReferenceId.set(consumedFile.referenceId, assetWithFileName); - } - bundle[fileName] = { - fileName, - name: usedConsumedFile.name, - needsCodeReference, - source: usedConsumedFile.source, - type: "asset" - }; - } -}; -function getLogHandler(level, code, logger, pluginName, logLevel) { - if (logLevelPriority[level] < logLevelPriority[logLevel]) { - return doNothing; - } - return (log, pos) => { - if (pos != null) { - logger(LOGLEVEL_WARN, logInvalidLogPosition(pluginName)); - } - log = normalizeLog(log); - if (log.code && !log.pluginCode) { - log.pluginCode = log.code; - } - log.code = code; - log.plugin = pluginName; - logger(level, log); - }; -} -function getPluginContext(plugin, pluginCache, graph, options, fileEmitter, existingPluginNames) { - const { logLevel, onLog } = options; - let cacheable = true; - if (typeof plugin.cacheKey !== "string") { - if (plugin.name.startsWith(ANONYMOUS_PLUGIN_PREFIX) || plugin.name.startsWith(ANONYMOUS_OUTPUT_PLUGIN_PREFIX) || existingPluginNames.has(plugin.name)) { - cacheable = false; - } else { - existingPluginNames.add(plugin.name); - } - } - let cacheInstance; - if (!pluginCache) { - cacheInstance = NO_CACHE; - } else if (cacheable) { - const cacheKey = plugin.cacheKey || plugin.name; - cacheInstance = createPluginCache(pluginCache[cacheKey] || (pluginCache[cacheKey] = /* @__PURE__ */ Object.create(null))); - } else { - cacheInstance = getCacheForUncacheablePlugin(plugin.name); - } - return { - addWatchFile(id) { - graph.watchFiles[id] = true; - }, - cache: cacheInstance, - debug: getLogHandler(LOGLEVEL_DEBUG, "PLUGIN_LOG", onLog, plugin.name, logLevel), - emitFile: fileEmitter.emitFile.bind(fileEmitter), - error(error_) { - return error(logPluginError(normalizeLog(error_), plugin.name)); - }, - getFileName: fileEmitter.getFileName, - getModuleIds: () => graph.modulesById.keys(), - getModuleInfo: graph.getModuleInfo, - getWatchFiles: () => Object.keys(graph.watchFiles), - info: getLogHandler(LOGLEVEL_INFO, "PLUGIN_LOG", onLog, plugin.name, logLevel), - load(resolvedId) { - return graph.moduleLoader.preloadModule(resolvedId); - }, - meta: { - rollupVersion: version, - watchMode: graph.watchMode - }, - parse: parseAst, - resolve(source, importer, { attributes, custom, isEntry, skipSelf } = BLANK) { - skipSelf ?? (skipSelf = true); - return graph.moduleLoader.resolveId(source, importer, custom, isEntry, attributes || EMPTY_OBJECT, skipSelf ? [{ importer, plugin, source }] : null); - }, - setAssetSource: fileEmitter.setAssetSource, - warn: getLogHandler(LOGLEVEL_WARN, "PLUGIN_WARNING", onLog, plugin.name, logLevel) - }; -} -var inputHookNames = { - buildEnd: 1, - buildStart: 1, - closeBundle: 1, - closeWatcher: 1, - load: 1, - moduleParsed: 1, - onLog: 1, - options: 1, - resolveDynamicImport: 1, - resolveId: 1, - shouldTransformCachedModule: 1, - transform: 1, - watchChange: 1 -}; -var inputHooks = Object.keys(inputHookNames); -var PluginDriver = class _PluginDriver { - constructor(graph, options, userPlugins, pluginCache, basePluginDriver) { - this.graph = graph; - this.options = options; - this.pluginCache = pluginCache; - this.sortedPlugins = /* @__PURE__ */ new Map(); - this.unfulfilledActions = /* @__PURE__ */ new Set(); - this.fileEmitter = new FileEmitter(graph, options, basePluginDriver && basePluginDriver.fileEmitter); - this.emitFile = this.fileEmitter.emitFile.bind(this.fileEmitter); - this.getFileName = this.fileEmitter.getFileName.bind(this.fileEmitter); - this.finaliseAssets = this.fileEmitter.finaliseAssets.bind(this.fileEmitter); - this.setChunkInformation = this.fileEmitter.setChunkInformation.bind(this.fileEmitter); - this.setOutputBundle = this.fileEmitter.setOutputBundle.bind(this.fileEmitter); - this.plugins = [...basePluginDriver ? basePluginDriver.plugins : [], ...userPlugins]; - const existingPluginNames = /* @__PURE__ */ new Set(); - this.pluginContexts = new Map(this.plugins.map((plugin) => [ - plugin, - getPluginContext(plugin, pluginCache, graph, options, this.fileEmitter, existingPluginNames) - ])); - if (basePluginDriver) { - for (const plugin of userPlugins) { - for (const hook of inputHooks) { - if (hook in plugin) { - options.onLog(LOGLEVEL_WARN, logInputHookInOutputPlugin(plugin.name, hook)); - } - } - } - } - } - createOutputPluginDriver(plugins) { - return new _PluginDriver(this.graph, this.options, plugins, this.pluginCache, this); - } - getUnfulfilledHookActions() { - return this.unfulfilledActions; - } - // chains, first non-null result stops and returns - hookFirst(hookName, parameters, replaceContext, skipped) { - return this.hookFirstAndGetPlugin(hookName, parameters, replaceContext, skipped).then((result) => result && result[0]); - } - // chains, first non-null result stops and returns result and last plugin - async hookFirstAndGetPlugin(hookName, parameters, replaceContext, skipped) { - for (const plugin of this.getSortedPlugins(hookName)) { - if (skipped == null ? void 0 : skipped.has(plugin)) - continue; - const result = await this.runHook(hookName, parameters, plugin, replaceContext); - if (result != null) - return [result, plugin]; - } - return null; - } - // chains synchronously, first non-null result stops and returns - hookFirstSync(hookName, parameters, replaceContext) { - for (const plugin of this.getSortedPlugins(hookName)) { - const result = this.runHookSync(hookName, parameters, plugin, replaceContext); - if (result != null) - return result; - } - return null; - } - // parallel, ignores returns - async hookParallel(hookName, parameters, replaceContext) { - const parallelPromises = []; - for (const plugin of this.getSortedPlugins(hookName)) { - if (plugin[hookName].sequential) { - await Promise.all(parallelPromises); - parallelPromises.length = 0; - await this.runHook(hookName, parameters, plugin, replaceContext); - } else { - parallelPromises.push(this.runHook(hookName, parameters, plugin, replaceContext)); - } - } - await Promise.all(parallelPromises); - } - // chains, reduces returned value, handling the reduced value as the first hook argument - hookReduceArg0(hookName, [argument0, ...rest], reduce, replaceContext) { - let promise = Promise.resolve(argument0); - for (const plugin of this.getSortedPlugins(hookName)) { - promise = promise.then((argument02) => this.runHook(hookName, [argument02, ...rest], plugin, replaceContext).then((result) => reduce.call(this.pluginContexts.get(plugin), argument02, result, plugin))); - } - return promise; - } - // chains synchronously, reduces returned value, handling the reduced value as the first hook argument - hookReduceArg0Sync(hookName, [argument0, ...rest], reduce, replaceContext) { - for (const plugin of this.getSortedPlugins(hookName)) { - const parameters = [argument0, ...rest]; - const result = this.runHookSync(hookName, parameters, plugin, replaceContext); - argument0 = reduce.call(this.pluginContexts.get(plugin), argument0, result, plugin); - } - return argument0; - } - // chains, reduces returned value to type string, handling the reduced value separately. permits hooks as values. - async hookReduceValue(hookName, initialValue, parameters, reducer) { - const results = []; - const parallelResults = []; - for (const plugin of this.getSortedPlugins(hookName, validateAddonPluginHandler)) { - if (plugin[hookName].sequential) { - results.push(...await Promise.all(parallelResults)); - parallelResults.length = 0; - results.push(await this.runHook(hookName, parameters, plugin)); - } else { - parallelResults.push(this.runHook(hookName, parameters, plugin)); - } - } - results.push(...await Promise.all(parallelResults)); - return results.reduce(reducer, await initialValue); - } - // chains synchronously, reduces returned value to type T, handling the reduced value separately. permits hooks as values. - hookReduceValueSync(hookName, initialValue, parameters, reduce, replaceContext) { - let accumulator = initialValue; - for (const plugin of this.getSortedPlugins(hookName)) { - const result = this.runHookSync(hookName, parameters, plugin, replaceContext); - accumulator = reduce.call(this.pluginContexts.get(plugin), accumulator, result, plugin); - } - return accumulator; - } - // chains, ignores returns - hookSeq(hookName, parameters, replaceContext) { - let promise = Promise.resolve(); - for (const plugin of this.getSortedPlugins(hookName)) { - promise = promise.then(() => this.runHook(hookName, parameters, plugin, replaceContext)); - } - return promise.then(noReturn); - } - getSortedPlugins(hookName, validateHandler) { - return getOrCreate(this.sortedPlugins, hookName, () => getSortedValidatedPlugins(hookName, this.plugins, validateHandler)); - } - // Implementation signature - runHook(hookName, parameters, plugin, replaceContext) { - const hook = plugin[hookName]; - const handler = typeof hook === "object" ? hook.handler : hook; - let context = this.pluginContexts.get(plugin); - if (replaceContext) { - context = replaceContext(context, plugin); - } - let action = null; - return Promise.resolve().then(() => { - if (typeof handler !== "function") { - return handler; - } - const hookResult = handler.apply(context, parameters); - if (!(hookResult == null ? void 0 : hookResult.then)) { - return hookResult; - } - action = [plugin.name, hookName, parameters]; - this.unfulfilledActions.add(action); - return Promise.resolve(hookResult).then((result) => { - this.unfulfilledActions.delete(action); - return result; - }); - }).catch((error_) => { - if (action !== null) { - this.unfulfilledActions.delete(action); - } - return error(logPluginError(error_, plugin.name, { hook: hookName })); - }); - } - /** - * Run a sync plugin hook and return the result. - * @param hookName Name of the plugin hook. Must be in `PluginHooks`. - * @param args Arguments passed to the plugin hook. - * @param plugin The acutal plugin - * @param replaceContext When passed, the plugin context can be overridden. - */ - runHookSync(hookName, parameters, plugin, replaceContext) { - const hook = plugin[hookName]; - const handler = typeof hook === "object" ? hook.handler : hook; - let context = this.pluginContexts.get(plugin); - if (replaceContext) { - context = replaceContext(context, plugin); - } - try { - return handler.apply(context, parameters); - } catch (error_) { - return error(logPluginError(error_, plugin.name, { hook: hookName })); - } - } -}; -function getSortedValidatedPlugins(hookName, plugins, validateHandler = validateFunctionPluginHandler) { - const pre = []; - const normal = []; - const post = []; - for (const plugin of plugins) { - const hook = plugin[hookName]; - if (hook) { - if (typeof hook === "object") { - validateHandler(hook.handler, hookName, plugin); - if (hook.order === "pre") { - pre.push(plugin); - continue; - } - if (hook.order === "post") { - post.push(plugin); - continue; - } - } else { - validateHandler(hook, hookName, plugin); - } - normal.push(plugin); - } - } - return [...pre, ...normal, ...post]; -} -function validateFunctionPluginHandler(handler, hookName, plugin) { - if (typeof handler !== "function") { - error(logInvalidFunctionPluginHook(hookName, plugin.name)); - } -} -function validateAddonPluginHandler(handler, hookName, plugin) { - if (typeof handler !== "string" && typeof handler !== "function") { - return error(logInvalidAddonPluginHook(hookName, plugin.name)); - } -} -function noReturn() { -} -var Queue = class { - constructor(maxParallel) { - this.maxParallel = maxParallel; - this.queue = []; - this.workerCount = 0; - } - run(task) { - return new Promise((resolve2, reject) => { - this.queue.push({ reject, resolve: resolve2, task }); - this.work(); - }); - } - async work() { - if (this.workerCount >= this.maxParallel) - return; - this.workerCount++; - let entry; - while (entry = this.queue.shift()) { - const { reject, resolve: resolve2, task } = entry; - try { - const result = await task(); - resolve2(result); - } catch (error2) { - reject(error2); - } - } - this.workerCount--; - } -}; -function normalizeEntryModules(entryModules) { - if (Array.isArray(entryModules)) { - return entryModules.map((id) => ({ - fileName: null, - id, - implicitlyLoadedAfter: [], - importer: void 0, - name: null - })); - } - return Object.entries(entryModules).map(([name, id]) => ({ - fileName: null, - id, - implicitlyLoadedAfter: [], - importer: void 0, - name - })); -} -var Graph = class { - constructor(options, watcher) { - var _a, _b; - this.options = options; - this.astLru = flru(5); - this.cachedModules = /* @__PURE__ */ new Map(); - this.deoptimizationTracker = new PathTracker(); - this.entryModules = []; - this.modulesById = /* @__PURE__ */ new Map(); - this.needsTreeshakingPass = false; - this.phase = BuildPhase.LOAD_AND_PARSE; - this.scope = new GlobalScope(); - this.watchFiles = /* @__PURE__ */ Object.create(null); - this.watchMode = false; - this.externalModules = []; - this.implicitEntryModules = []; - this.modules = []; - this.getModuleInfo = (moduleId) => { - const foundModule = this.modulesById.get(moduleId); - if (!foundModule) - return null; - return foundModule.info; - }; - if (options.cache !== false) { - if ((_a = options.cache) == null ? void 0 : _a.modules) { - for (const module of options.cache.modules) - this.cachedModules.set(module.id, module); - } - this.pluginCache = ((_b = options.cache) == null ? void 0 : _b.plugins) || /* @__PURE__ */ Object.create(null); - for (const name in this.pluginCache) { - const cache = this.pluginCache[name]; - for (const value of Object.values(cache)) - value[0]++; - } - } - if (watcher) { - this.watchMode = true; - const handleChange = (...parameters) => this.pluginDriver.hookParallel("watchChange", parameters); - const handleClose = () => this.pluginDriver.hookParallel("closeWatcher", []); - watcher.onCurrentRun("change", handleChange); - watcher.onCurrentRun("close", handleClose); - } - this.pluginDriver = new PluginDriver(this, options, options.plugins, this.pluginCache); - this.moduleLoader = new ModuleLoader(this, this.modulesById, this.options, this.pluginDriver); - this.fileOperationQueue = new Queue(options.maxParallelFileOps); - this.pureFunctions = getPureFunctions(options); - } - async build() { - timeStart("generate module graph", 2); - await this.generateModuleGraph(); - timeEnd("generate module graph", 2); - timeStart("sort and bind modules", 2); - this.phase = BuildPhase.ANALYSE; - this.sortModules(); - timeEnd("sort and bind modules", 2); - timeStart("mark included statements", 2); - this.includeStatements(); - timeEnd("mark included statements", 2); - this.phase = BuildPhase.GENERATE; - } - getCache() { - for (const name in this.pluginCache) { - const cache = this.pluginCache[name]; - let allDeleted = true; - for (const [key, value] of Object.entries(cache)) { - if (value[0] >= this.options.experimentalCacheExpiry) - delete cache[key]; - else - allDeleted = false; - } - if (allDeleted) - delete this.pluginCache[name]; - } - return { - modules: this.modules.map((module) => module.toJSON()), - plugins: this.pluginCache - }; - } - async generateModuleGraph() { - ({ entryModules: this.entryModules, implicitEntryModules: this.implicitEntryModules } = await this.moduleLoader.addEntryModules(normalizeEntryModules(this.options.input), true)); - if (this.entryModules.length === 0) { - throw new Error("You must supply options.input to rollup"); - } - for (const module of this.modulesById.values()) { - module.cacheInfoGetters(); - if (module instanceof Module) { - this.modules.push(module); - } else { - this.externalModules.push(module); - } - } - } - includeStatements() { - const entryModules = [...this.entryModules, ...this.implicitEntryModules]; - for (const module of entryModules) { - markModuleAndImpureDependenciesAsExecuted(module); - } - if (this.options.treeshake) { - let treeshakingPass = 1; - do { - timeStart(`treeshaking pass ${treeshakingPass}`, 3); - this.needsTreeshakingPass = false; - for (const module of this.modules) { - if (module.isExecuted) { - if (module.info.moduleSideEffects === "no-treeshake") { - module.includeAllInBundle(); - } else { - module.include(); - } - } - } - if (treeshakingPass === 1) { - for (const module of entryModules) { - if (module.preserveSignature !== false) { - module.includeAllExports(false); - this.needsTreeshakingPass = true; - } - } - } - timeEnd(`treeshaking pass ${treeshakingPass++}`, 3); - } while (this.needsTreeshakingPass); - } else { - for (const module of this.modules) - module.includeAllInBundle(); - } - for (const externalModule of this.externalModules) - externalModule.warnUnusedImports(); - for (const module of this.implicitEntryModules) { - for (const dependant of module.implicitlyLoadedAfter) { - if (!(dependant.info.isEntry || dependant.isIncluded())) { - error(logImplicitDependantIsNotIncluded(dependant)); - } - } - } - } - sortModules() { - const { orderedModules, cyclePaths } = analyseModuleExecution(this.entryModules); - for (const cyclePath of cyclePaths) { - this.options.onLog(LOGLEVEL_WARN, logCircularDependency(cyclePath)); - } - this.modules = orderedModules; - for (const module of this.modules) { - module.bindReferences(); - } - this.warnForMissingExports(); - } - warnForMissingExports() { - for (const module of this.modules) { - for (const importDescription of module.importDescriptions.values()) { - if (importDescription.name !== "*" && !importDescription.module.getVariableForExportName(importDescription.name)[0]) { - module.log(LOGLEVEL_WARN, logMissingExport(importDescription.name, module.id, importDescription.module.id), importDescription.start); - } - } - } - } -}; -function formatAction([pluginName, hookName, parameters]) { - const action = `(${pluginName}) ${hookName}`; - const s = JSON.stringify; - switch (hookName) { - case "resolveId": { - return `${action} ${s(parameters[0])} ${s(parameters[1])}`; - } - case "load": { - return `${action} ${s(parameters[0])}`; - } - case "transform": { - return `${action} ${s(parameters[1])}`; - } - case "shouldTransformCachedModule": { - return `${action} ${s(parameters[0].id)}`; - } - case "moduleParsed": { - return `${action} ${s(parameters[0].id)}`; - } - } - return action; -} -var handleBeforeExit = null; -var rejectByPluginDriver = /* @__PURE__ */ new Map(); -async function catchUnfinishedHookActions(pluginDriver, callback) { - const emptyEventLoopPromise = new Promise((_, reject) => { - rejectByPluginDriver.set(pluginDriver, reject); - if (!handleBeforeExit) { - handleBeforeExit = () => { - for (const [pluginDriver2, reject2] of rejectByPluginDriver) { - const unfulfilledActions = pluginDriver2.getUnfulfilledHookActions(); - reject2(new Error(`Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit: -` + [...unfulfilledActions].map(formatAction).join("\n"))); - } - }; - import_node_process.default.once("beforeExit", handleBeforeExit); - } - }); - try { - return await Promise.race([callback(), emptyEventLoopPromise]); - } finally { - rejectByPluginDriver.delete(pluginDriver); - if (rejectByPluginDriver.size === 0) { - import_node_process.default.off("beforeExit", handleBeforeExit); - handleBeforeExit = null; - } - } -} -async function initWasm() { -} -function getLogger(plugins, onLog, watchMode, logLevel) { - plugins = getSortedValidatedPlugins("onLog", plugins); - const minimalPriority = logLevelPriority[logLevel]; - const logger = (level, log, skipped = EMPTY_SET) => { - augmentLogMessage(log); - const logPriority = logLevelPriority[level]; - if (logPriority < minimalPriority) { - return; - } - for (const plugin of plugins) { - if (skipped.has(plugin)) - continue; - const { onLog: pluginOnLog } = plugin; - const getLogHandler2 = (level2) => { - if (logLevelPriority[level2] < minimalPriority) { - return doNothing; - } - return (log2) => logger(level2, normalizeLog(log2), new Set(skipped).add(plugin)); - }; - const handler = "handler" in pluginOnLog ? pluginOnLog.handler : pluginOnLog; - if (handler.call({ - debug: getLogHandler2(LOGLEVEL_DEBUG), - error: (log2) => error(normalizeLog(log2)), - info: getLogHandler2(LOGLEVEL_INFO), - meta: { rollupVersion: version, watchMode }, - warn: getLogHandler2(LOGLEVEL_WARN) - }, level, log) === false) { - return; - } - } - onLog(level, log); - }; - return logger; -} -function ensureArray(items) { - if (Array.isArray(items)) { - return items.filter(Boolean); - } - if (items) { - return [items]; - } - return []; -} -async function normalizeInputOptions(config, watchMode) { - const unsetOptions = /* @__PURE__ */ new Set(); - const context = config.context ?? "undefined"; - const plugins = await normalizePluginOption(config.plugins); - const logLevel = config.logLevel || LOGLEVEL_INFO; - const onLog = getLogger(plugins, getOnLog(config, logLevel), watchMode, logLevel); - const strictDeprecations = config.strictDeprecations || false; - const maxParallelFileOps = getMaxParallelFileOps(config); - const options = { - cache: getCache(config), - context, - experimentalCacheExpiry: config.experimentalCacheExpiry ?? 10, - experimentalLogSideEffects: config.experimentalLogSideEffects || false, - external: getIdMatcher(config.external), - input: getInput(config), - logLevel, - makeAbsoluteExternalsRelative: config.makeAbsoluteExternalsRelative ?? "ifRelativeSource", - maxParallelFileOps, - moduleContext: getModuleContext(config, context), - onLog, - perf: config.perf || false, - plugins, - preserveEntrySignatures: config.preserveEntrySignatures ?? "exports-only", - preserveSymlinks: config.preserveSymlinks || false, - shimMissingExports: config.shimMissingExports || false, - strictDeprecations, - treeshake: getTreeshake(config) - }; - warnUnknownOptions(config, [...Object.keys(options), "onwarn", "watch"], "input options", onLog, /^(output)$/); - return { options, unsetOptions }; -} -var getCache = (config) => { - var _a; - return config.cache === true ? void 0 : ((_a = config.cache) == null ? void 0 : _a.cache) || config.cache; -}; -var getIdMatcher = (option) => { - if (option === true) { - return () => true; - } - if (typeof option === "function") { - return (id, ...parameters) => !id.startsWith("\0") && option(id, ...parameters) || false; - } - if (option) { - const ids = /* @__PURE__ */ new Set(); - const matchers = []; - for (const value of ensureArray(option)) { - if (value instanceof RegExp) { - matchers.push(value); - } else { - ids.add(value); - } - } - return (id, ..._arguments) => ids.has(id) || matchers.some((matcher) => matcher.test(id)); - } - return () => false; -}; -var getInput = (config) => { - const configInput = config.input; - return configInput == null ? [] : typeof configInput === "string" ? [configInput] : configInput; -}; -var getMaxParallelFileOps = (config) => { - const maxParallelFileOps = config.maxParallelFileOps; - if (typeof maxParallelFileOps === "number") { - if (maxParallelFileOps <= 0) - return Infinity; - return maxParallelFileOps; - } - return 20; -}; -var getModuleContext = (config, context) => { - const configModuleContext = config.moduleContext; - if (typeof configModuleContext === "function") { - return (id) => configModuleContext(id) ?? context; - } - if (configModuleContext) { - const contextByModuleId = /* @__PURE__ */ Object.create(null); - for (const [key, moduleContext] of Object.entries(configModuleContext)) { - contextByModuleId[(0, import_node_path.resolve)(key)] = moduleContext; - } - return (id) => contextByModuleId[id] ?? context; - } - return () => context; -}; -var getTreeshake = (config) => { - const configTreeshake = config.treeshake; - if (configTreeshake === false) { - return false; - } - const configWithPreset = getOptionWithPreset(config.treeshake, treeshakePresets, "treeshake", URL_TREESHAKE, "false, true, "); - return { - annotations: configWithPreset.annotations !== false, - correctVarValueBeforeDeclaration: configWithPreset.correctVarValueBeforeDeclaration === true, - manualPureFunctions: configWithPreset.manualPureFunctions ?? EMPTY_ARRAY, - moduleSideEffects: getHasModuleSideEffects(configWithPreset.moduleSideEffects), - propertyReadSideEffects: configWithPreset.propertyReadSideEffects === "always" ? "always" : configWithPreset.propertyReadSideEffects !== false, - tryCatchDeoptimization: configWithPreset.tryCatchDeoptimization !== false, - unknownGlobalSideEffects: configWithPreset.unknownGlobalSideEffects !== false - }; -}; -var getHasModuleSideEffects = (moduleSideEffectsOption) => { - if (typeof moduleSideEffectsOption === "boolean") { - return () => moduleSideEffectsOption; - } - if (moduleSideEffectsOption === "no-external") { - return (_id, external) => !external; - } - if (typeof moduleSideEffectsOption === "function") { - return (id, external) => id.startsWith("\0") ? true : moduleSideEffectsOption(id, external) !== false; - } - if (Array.isArray(moduleSideEffectsOption)) { - const ids = new Set(moduleSideEffectsOption); - return (id) => ids.has(id); - } - if (moduleSideEffectsOption) { - error(logInvalidOption("treeshake.moduleSideEffects", URL_TREESHAKE_MODULESIDEEFFECTS, 'please use one of false, "no-external", a function or an array')); - } - return () => true; -}; -var INVALID_CHAR_REGEX = /[\u0000-\u001F"#$%&*+,:;<=>?[\]^`{|}\u007F]/g; -var DRIVE_LETTER_REGEX = /^[a-z]:/i; -function sanitizeFileName(name) { - const match = DRIVE_LETTER_REGEX.exec(name); - const driveLetter = match ? match[0] : ""; - return driveLetter + name.slice(driveLetter.length).replace(INVALID_CHAR_REGEX, "_"); -} -async function normalizeOutputOptions(config, inputOptions, unsetInputOptions) { - const unsetOptions = new Set(unsetInputOptions); - const compact = config.compact || false; - const format = getFormat(config); - const inlineDynamicImports = getInlineDynamicImports(config, inputOptions); - const preserveModules = getPreserveModules(config, inlineDynamicImports, inputOptions); - const file = getFile(config, preserveModules, inputOptions); - const generatedCode = getGeneratedCode(config); - const externalImportAttributes = getExternalImportAttributes(config, inputOptions); - const outputOptions = { - amd: getAmd(config), - assetFileNames: config.assetFileNames ?? "assets/[name]-[hash][extname]", - banner: getAddon(config, "banner"), - chunkFileNames: config.chunkFileNames ?? "[name]-[hash].js", - compact, - dir: getDir(config, file), - dynamicImportInCjs: config.dynamicImportInCjs ?? true, - entryFileNames: getEntryFileNames(config, unsetOptions), - esModule: config.esModule ?? "if-default-prop", - experimentalMinChunkSize: config.experimentalMinChunkSize ?? 1, - exports: getExports(config, unsetOptions), - extend: config.extend || false, - externalImportAssertions: externalImportAttributes, - externalImportAttributes, - externalLiveBindings: config.externalLiveBindings ?? true, - file, - footer: getAddon(config, "footer"), - format, - freeze: config.freeze ?? true, - generatedCode, - globals: config.globals || {}, - hashCharacters: config.hashCharacters ?? "base64", - hoistTransitiveImports: config.hoistTransitiveImports ?? true, - importAttributesKey: config.importAttributesKey ?? "assert", - indent: getIndent(config, compact), - inlineDynamicImports, - interop: getInterop(config), - intro: getAddon(config, "intro"), - manualChunks: getManualChunks(config, inlineDynamicImports, preserveModules), - minifyInternalExports: getMinifyInternalExports(config, format, compact), - name: config.name, - noConflict: config.noConflict || false, - outro: getAddon(config, "outro"), - paths: config.paths || {}, - plugins: await normalizePluginOption(config.plugins), - preserveModules, - preserveModulesRoot: getPreserveModulesRoot(config), - reexportProtoFromExternal: config.reexportProtoFromExternal ?? true, - sanitizeFileName: typeof config.sanitizeFileName === "function" ? config.sanitizeFileName : config.sanitizeFileName === false ? (id) => id : sanitizeFileName, - sourcemap: config.sourcemap || false, - sourcemapBaseUrl: getSourcemapBaseUrl(config), - sourcemapExcludeSources: config.sourcemapExcludeSources || false, - sourcemapFile: config.sourcemapFile, - sourcemapFileNames: getSourcemapFileNames(config, unsetOptions), - sourcemapIgnoreList: typeof config.sourcemapIgnoreList === "function" ? config.sourcemapIgnoreList : config.sourcemapIgnoreList === false ? () => false : (relativeSourcePath) => relativeSourcePath.includes("node_modules"), - sourcemapPathTransform: config.sourcemapPathTransform, - strict: config.strict ?? true, - systemNullSetters: config.systemNullSetters ?? true, - validate: config.validate || false - }; - warnUnknownOptions(config, Object.keys(outputOptions), "output options", inputOptions.onLog); - return { options: outputOptions, unsetOptions }; -} -var getFile = (config, preserveModules, inputOptions) => { - const { file } = config; - if (typeof file === "string") { - if (preserveModules) { - return error(logInvalidOption("output.file", URL_OUTPUT_DIR, 'you must set "output.dir" instead of "output.file" when using the "output.preserveModules" option')); - } - if (!Array.isArray(inputOptions.input)) - return error(logInvalidOption("output.file", URL_OUTPUT_DIR, 'you must set "output.dir" instead of "output.file" when providing named inputs')); - } - return file; -}; -var getFormat = (config) => { - const configFormat = config.format; - switch (configFormat) { - case void 0: - case "es": - case "esm": - case "module": { - return "es"; - } - case "cjs": - case "commonjs": { - return "cjs"; - } - case "system": - case "systemjs": { - return "system"; - } - case "amd": - case "iife": - case "umd": { - return configFormat; - } - default: { - return error(logInvalidOption("output.format", URL_OUTPUT_FORMAT, `Valid values are "amd", "cjs", "system", "es", "iife" or "umd"`, configFormat)); - } - } -}; -var getInlineDynamicImports = (config, inputOptions) => { - const inlineDynamicImports = config.inlineDynamicImports || false; - const { input } = inputOptions; - if (inlineDynamicImports && (Array.isArray(input) ? input : Object.keys(input)).length > 1) { - return error(logInvalidOption("output.inlineDynamicImports", URL_OUTPUT_INLINEDYNAMICIMPORTS, 'multiple inputs are not supported when "output.inlineDynamicImports" is true')); - } - return inlineDynamicImports; -}; -var getPreserveModules = (config, inlineDynamicImports, inputOptions) => { - const preserveModules = config.preserveModules || false; - if (preserveModules) { - if (inlineDynamicImports) { - return error(logInvalidOption("output.inlineDynamicImports", URL_OUTPUT_INLINEDYNAMICIMPORTS, `this option is not supported for "output.preserveModules"`)); - } - if (inputOptions.preserveEntrySignatures === false) { - return error(logInvalidOption("preserveEntrySignatures", URL_PRESERVEENTRYSIGNATURES, 'setting this option to false is not supported for "output.preserveModules"')); - } - } - return preserveModules; -}; -var getPreserveModulesRoot = (config) => { - const { preserveModulesRoot } = config; - if (preserveModulesRoot === null || preserveModulesRoot === void 0) { - return void 0; - } - return (0, import_node_path.resolve)(preserveModulesRoot); -}; -var getAmd = (config) => { - const mergedOption = { - autoId: false, - basePath: "", - define: "define", - forceJsExtensionForImports: false, - ...config.amd - }; - if ((mergedOption.autoId || mergedOption.basePath) && mergedOption.id) { - return error(logInvalidOption("output.amd.id", URL_OUTPUT_AMD_ID, 'this option cannot be used together with "output.amd.autoId"/"output.amd.basePath"')); - } - if (mergedOption.basePath && !mergedOption.autoId) { - return error(logInvalidOption("output.amd.basePath", URL_OUTPUT_AMD_BASEPATH, 'this option only works with "output.amd.autoId"')); - } - return mergedOption.autoId ? { - autoId: true, - basePath: mergedOption.basePath, - define: mergedOption.define, - forceJsExtensionForImports: mergedOption.forceJsExtensionForImports - } : { - autoId: false, - define: mergedOption.define, - forceJsExtensionForImports: mergedOption.forceJsExtensionForImports, - id: mergedOption.id - }; -}; -var getAddon = (config, name) => { - const configAddon = config[name]; - if (typeof configAddon === "function") { - return configAddon; - } - return () => configAddon || ""; -}; -var getDir = (config, file) => { - const { dir } = config; - if (typeof dir === "string" && typeof file === "string") { - return error(logInvalidOption("output.dir", URL_OUTPUT_DIR, 'you must set either "output.file" for a single-file build or "output.dir" when generating multiple chunks')); - } - return dir; -}; -var getEntryFileNames = (config, unsetOptions) => { - const configEntryFileNames = config.entryFileNames; - if (configEntryFileNames == null) { - unsetOptions.add("entryFileNames"); - } - return configEntryFileNames ?? "[name].js"; -}; -function getExports(config, unsetOptions) { - const configExports = config.exports; - if (configExports == null) { - unsetOptions.add("exports"); - } else if (!["default", "named", "none", "auto"].includes(configExports)) { - return error(logInvalidExportOptionValue(configExports)); - } - return configExports || "auto"; -} -var getExternalImportAttributes = (config, inputOptions) => { - if (config.externalImportAssertions != void 0) { - warnDeprecation(`The "output.externalImportAssertions" option is deprecated. Use the "output.externalImportAttributes" option instead.`, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, true, inputOptions); - } - return config.externalImportAttributes ?? config.externalImportAssertions ?? true; -}; -var getGeneratedCode = (config) => { - const configWithPreset = getOptionWithPreset(config.generatedCode, generatedCodePresets, "output.generatedCode", URL_OUTPUT_GENERATEDCODE, ""); - return { - arrowFunctions: configWithPreset.arrowFunctions === true, - constBindings: configWithPreset.constBindings === true, - objectShorthand: configWithPreset.objectShorthand === true, - reservedNamesAsProps: configWithPreset.reservedNamesAsProps !== false, - symbols: configWithPreset.symbols === true - }; -}; -var getIndent = (config, compact) => { - if (compact) { - return ""; - } - const configIndent = config.indent; - return configIndent === false ? "" : configIndent ?? true; -}; -var ALLOWED_INTEROP_TYPES = /* @__PURE__ */ new Set([ - "compat", - "auto", - "esModule", - "default", - "defaultOnly" -]); -var getInterop = (config) => { - const configInterop = config.interop; - if (typeof configInterop === "function") { - const interopPerId = /* @__PURE__ */ Object.create(null); - let defaultInterop = null; - return (id) => id === null ? defaultInterop || validateInterop(defaultInterop = configInterop(id)) : id in interopPerId ? interopPerId[id] : validateInterop(interopPerId[id] = configInterop(id)); - } - return configInterop === void 0 ? () => "default" : () => validateInterop(configInterop); -}; -var validateInterop = (interop) => { - if (!ALLOWED_INTEROP_TYPES.has(interop)) { - return error(logInvalidOption( - "output.interop", - URL_OUTPUT_INTEROP, - // eslint-disable-next-line unicorn/prefer-spread - `use one of ${Array.from(ALLOWED_INTEROP_TYPES, (value) => JSON.stringify(value)).join(", ")}`, - interop - )); - } - return interop; -}; -var getManualChunks = (config, inlineDynamicImports, preserveModules) => { - const configManualChunks = config.manualChunks; - if (configManualChunks) { - if (inlineDynamicImports) { - return error(logInvalidOption("output.manualChunks", URL_OUTPUT_MANUALCHUNKS, 'this option is not supported for "output.inlineDynamicImports"')); - } - if (preserveModules) { - return error(logInvalidOption("output.manualChunks", URL_OUTPUT_MANUALCHUNKS, 'this option is not supported for "output.preserveModules"')); - } - } - return configManualChunks || {}; -}; -var getMinifyInternalExports = (config, format, compact) => config.minifyInternalExports ?? (compact || format === "es" || format === "system"); -var getSourcemapFileNames = (config, unsetOptions) => { - const configSourcemapFileNames = config.sourcemapFileNames; - if (configSourcemapFileNames == null) { - unsetOptions.add("sourcemapFileNames"); - } - return configSourcemapFileNames; -}; -var getSourcemapBaseUrl = (config) => { - const { sourcemapBaseUrl } = config; - if (sourcemapBaseUrl) { - if (isValidUrl(sourcemapBaseUrl)) { - return addTrailingSlashIfMissed(sourcemapBaseUrl); - } - return error(logInvalidOption("output.sourcemapBaseUrl", URL_OUTPUT_SOURCEMAPBASEURL, `must be a valid URL, received ${JSON.stringify(sourcemapBaseUrl)}`)); - } -}; -function rollup(rawInputOptions) { - return rollupInternal(rawInputOptions, null); -} -async function rollupInternal(rawInputOptions, watcher) { - const { options: inputOptions, unsetOptions: unsetInputOptions } = await getInputOptions(rawInputOptions, watcher !== null); - initialiseTimers(inputOptions); - await initWasm(); - const graph = new Graph(inputOptions, watcher); - const useCache = rawInputOptions.cache !== false; - if (rawInputOptions.cache) { - inputOptions.cache = void 0; - rawInputOptions.cache = void 0; - } - timeStart("BUILD", 1); - await catchUnfinishedHookActions(graph.pluginDriver, async () => { - try { - timeStart("initialize", 2); - await graph.pluginDriver.hookParallel("buildStart", [inputOptions]); - timeEnd("initialize", 2); - await graph.build(); - } catch (error_) { - const watchFiles = Object.keys(graph.watchFiles); - if (watchFiles.length > 0) { - error_.watchFiles = watchFiles; - } - await graph.pluginDriver.hookParallel("buildEnd", [error_]); - await graph.pluginDriver.hookParallel("closeBundle", []); - throw error_; - } - await graph.pluginDriver.hookParallel("buildEnd", []); - }); - timeEnd("BUILD", 1); - const result = { - cache: useCache ? graph.getCache() : void 0, - async close() { - if (result.closed) - return; - result.closed = true; - await graph.pluginDriver.hookParallel("closeBundle", []); - }, - closed: false, - async generate(rawOutputOptions) { - if (result.closed) - return error(logAlreadyClosed()); - return handleGenerateWrite(false, inputOptions, unsetInputOptions, rawOutputOptions, graph); - }, - get watchFiles() { - return Object.keys(graph.watchFiles); - }, - async write(rawOutputOptions) { - if (result.closed) - return error(logAlreadyClosed()); - return handleGenerateWrite(true, inputOptions, unsetInputOptions, rawOutputOptions, graph); - } - }; - if (inputOptions.perf) - result.getTimings = getTimings; - return result; -} -async function getInputOptions(initialInputOptions, watchMode) { - if (!initialInputOptions) { - throw new Error("You must supply an options object to rollup"); - } - const processedInputOptions = await getProcessedInputOptions(initialInputOptions, watchMode); - const { options, unsetOptions } = await normalizeInputOptions(processedInputOptions, watchMode); - normalizePlugins(options.plugins, ANONYMOUS_PLUGIN_PREFIX); - return { options, unsetOptions }; -} -async function getProcessedInputOptions(inputOptions, watchMode) { - const plugins = getSortedValidatedPlugins("options", await normalizePluginOption(inputOptions.plugins)); - const logLevel = inputOptions.logLevel || LOGLEVEL_INFO; - const logger = getLogger(plugins, getOnLog(inputOptions, logLevel), watchMode, logLevel); - for (const plugin of plugins) { - const { name, options } = plugin; - const handler = "handler" in options ? options.handler : options; - const processedOptions = await handler.call({ - debug: getLogHandler(LOGLEVEL_DEBUG, "PLUGIN_LOG", logger, name, logLevel), - error: (error_) => error(logPluginError(normalizeLog(error_), name, { hook: "onLog" })), - info: getLogHandler(LOGLEVEL_INFO, "PLUGIN_LOG", logger, name, logLevel), - meta: { rollupVersion: version, watchMode }, - warn: getLogHandler(LOGLEVEL_WARN, "PLUGIN_WARNING", logger, name, logLevel) - }, inputOptions); - if (processedOptions) { - inputOptions = processedOptions; - } - } - return inputOptions; -} -function normalizePlugins(plugins, anonymousPrefix) { - for (const [index, plugin] of plugins.entries()) { - if (!plugin.name) { - plugin.name = `${anonymousPrefix}${index + 1}`; - } - } -} -async function handleGenerateWrite(isWrite, inputOptions, unsetInputOptions, rawOutputOptions, graph) { - const { options: outputOptions, outputPluginDriver, unsetOptions } = await getOutputOptionsAndPluginDriver(rawOutputOptions, graph.pluginDriver, inputOptions, unsetInputOptions); - return catchUnfinishedHookActions(outputPluginDriver, async () => { - const bundle = new Bundle2(outputOptions, unsetOptions, inputOptions, outputPluginDriver, graph); - const generated = await bundle.generate(isWrite); - if (isWrite) { - timeStart("WRITE", 1); - if (!outputOptions.dir && !outputOptions.file) { - return error(logMissingFileOrDirOption()); - } - await Promise.all(Object.values(generated).map((chunk) => graph.fileOperationQueue.run(() => writeOutputFile(chunk, outputOptions)))); - await outputPluginDriver.hookParallel("writeBundle", [outputOptions, generated]); - timeEnd("WRITE", 1); - } - return createOutput(generated); - }); -} -async function getOutputOptionsAndPluginDriver(rawOutputOptions, inputPluginDriver, inputOptions, unsetInputOptions) { - if (!rawOutputOptions) { - throw new Error("You must supply an options object"); - } - const rawPlugins = await normalizePluginOption(rawOutputOptions.plugins); - normalizePlugins(rawPlugins, ANONYMOUS_OUTPUT_PLUGIN_PREFIX); - const outputPluginDriver = inputPluginDriver.createOutputPluginDriver(rawPlugins); - return { - ...await getOutputOptions(inputOptions, unsetInputOptions, rawOutputOptions, outputPluginDriver), - outputPluginDriver - }; -} -function getOutputOptions(inputOptions, unsetInputOptions, rawOutputOptions, outputPluginDriver) { - return normalizeOutputOptions(outputPluginDriver.hookReduceArg0Sync("outputOptions", [rawOutputOptions], (outputOptions, result) => result || outputOptions, (pluginContext) => { - const emitError = () => pluginContext.error(logCannotEmitFromOptionsHook()); - return { - ...pluginContext, - emitFile: emitError, - setAssetSource: emitError - }; - }), inputOptions, unsetInputOptions); -} -function createOutput(outputBundle) { - return { - output: Object.values(outputBundle).filter((outputFile) => Object.keys(outputFile).length > 0).sort((outputFileA, outputFileB) => getSortingFileType(outputFileA) - getSortingFileType(outputFileB)) - }; -} -var SortingFileType; -(function(SortingFileType2) { - SortingFileType2[SortingFileType2["ENTRY_CHUNK"] = 0] = "ENTRY_CHUNK"; - SortingFileType2[SortingFileType2["SECONDARY_CHUNK"] = 1] = "SECONDARY_CHUNK"; - SortingFileType2[SortingFileType2["ASSET"] = 2] = "ASSET"; -})(SortingFileType || (SortingFileType = {})); -function getSortingFileType(file) { - if (file.type === "asset") { - return SortingFileType.ASSET; - } - if (file.isEntry) { - return SortingFileType.ENTRY_CHUNK; - } - return SortingFileType.SECONDARY_CHUNK; -} -async function writeOutputFile(outputFile, outputOptions) { - const fileName = (0, import_node_path.resolve)(outputOptions.dir || (0, import_node_path.dirname)(outputOptions.file), outputFile.fileName); - await (0, import_promises.mkdir)((0, import_node_path.dirname)(fileName), { recursive: true }); - return (0, import_promises.writeFile)(fileName, outputFile.type === "asset" ? outputFile.source : outputFile.code); -} -function defineConfig(options) { - return options; -} -var { - env = {}, - argv = [], - platform = "" -} = typeof process === "undefined" ? {} : process; -var isDisabled = "NO_COLOR" in env || argv.includes("--no-color"); -var isForced = "FORCE_COLOR" in env || argv.includes("--color"); -var isWindows = platform === "win32"; -var isDumbTerminal = env.TERM === "dumb"; -var isCompatibleTerminal = tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal; -var isCI = "CI" in env && ("GITHUB_ACTIONS" in env || "GITLAB_CI" in env || "CIRCLECI" in env); -var isColorSupported = !isDisabled && (isForced || isWindows && !isDumbTerminal || isCompatibleTerminal || isCI); -var replaceClose = (index, string, close, replace, head = string.substring(0, index) + replace, tail = string.substring(index + close.length), next = tail.indexOf(close)) => head + (next < 0 ? tail : replaceClose(next, tail, close, replace)); -var clearBleed = (index, string, open, close, replace) => index < 0 ? open + string + close : open + replaceClose(index, string, close, replace) + close; -var filterEmpty = (open, close, replace = open, at = open.length + 1) => (string) => string || !(string === "" || string === void 0) ? clearBleed( - ("" + string).indexOf(close, at), - string, - open, - close, - replace -) : ""; -var init = (open, close, replace) => filterEmpty(`\x1B[${open}m`, `\x1B[${close}m`, replace); -var colors = { - reset: init(0, 0), - bold: init(1, 22, "\x1B[22m\x1B[1m"), - dim: init(2, 22, "\x1B[22m\x1B[2m"), - italic: init(3, 23), - underline: init(4, 24), - inverse: init(7, 27), - hidden: init(8, 28), - strikethrough: init(9, 29), - black: init(30, 39), - red: init(31, 39), - green: init(32, 39), - yellow: init(33, 39), - blue: init(34, 39), - magenta: init(35, 39), - cyan: init(36, 39), - white: init(37, 39), - gray: init(90, 39), - bgBlack: init(40, 49), - bgRed: init(41, 49), - bgGreen: init(42, 49), - bgYellow: init(43, 49), - bgBlue: init(44, 49), - bgMagenta: init(45, 49), - bgCyan: init(46, 49), - bgWhite: init(47, 49), - blackBright: init(90, 39), - redBright: init(91, 39), - greenBright: init(92, 39), - yellowBright: init(93, 39), - blueBright: init(94, 39), - magentaBright: init(95, 39), - cyanBright: init(96, 39), - whiteBright: init(97, 39), - bgBlackBright: init(100, 49), - bgRedBright: init(101, 49), - bgGreenBright: init(102, 49), - bgYellowBright: init(103, 49), - bgBlueBright: init(104, 49), - bgMagentaBright: init(105, 49), - bgCyanBright: init(106, 49), - bgWhiteBright: init(107, 49) -}; -var createColors = ({ useColor = isColorSupported } = {}) => useColor ? colors : Object.keys(colors).reduce( - (colors2, key) => ({ ...colors2, [key]: String }), - {} -); -createColors(); -var { bold, cyan, dim, gray, green, red, underline, yellow } = createColors({ - useColor: import_node_process.env.FORCE_COLOR !== "0" && !import_node_process.env.NO_COLOR -}); -var stderr = (...parameters) => import_node_process.default.stderr.write(`${parameters.join("")} -`); -function handleError(error2, recover = false) { - var _a, _b; - const name = error2.name || ((_a = error2.cause) == null ? void 0 : _a.name); - const nameSection = name ? `${name}: ` : ""; - const pluginSection = error2.plugin ? `(plugin ${error2.plugin}) ` : ""; - const message = `${pluginSection}${nameSection}${error2.message}`; - const outputLines = [bold(red(`[!] ${bold(message.toString())}`))]; - if (error2.url) { - outputLines.push(cyan(error2.url)); - } - if (error2.loc) { - outputLines.push(`${relativeId(error2.loc.file || error2.id)} (${error2.loc.line}:${error2.loc.column})`); - } else if (error2.id) { - outputLines.push(relativeId(error2.id)); - } - if (error2.frame) { - outputLines.push(dim(error2.frame)); - } - if (error2.stack) { - outputLines.push(dim((_b = error2.stack) == null ? void 0 : _b.replace(`${nameSection}${error2.message} -`, ""))); - } - if (error2.cause) { - let cause = error2.cause; - const causeErrorLines = []; - let indent = ""; - while (cause) { - indent += " "; - const message2 = cause.stack || cause; - causeErrorLines.push(...`[cause] ${message2}`.split("\n").map((line) => indent + line)); - cause = cause.cause; - } - outputLines.push(dim(causeErrorLines.join("\n"))); - } - outputLines.push("", ""); - stderr(outputLines.join("\n")); - if (!recover) - import_node_process.default.exit(1); -} -var commandAliases = { - c: "config", - d: "dir", - e: "external", - f: "format", - g: "globals", - h: "help", - i: "input", - m: "sourcemap", - n: "name", - o: "file", - p: "plugin", - v: "version", - w: "watch" -}; -var EMPTY_COMMAND_OPTIONS = { external: [], globals: void 0 }; -async function mergeOptions(config, watchMode, rawCommandOptions = EMPTY_COMMAND_OPTIONS, printLog) { - const command = getCommandOptions(rawCommandOptions); - const plugins = await normalizePluginOption(config.plugins); - const logLevel = config.logLevel || LOGLEVEL_INFO; - const onLog = getOnLog(config, logLevel, printLog); - const log = getLogger(plugins, onLog, watchMode, logLevel); - const inputOptions = mergeInputOptions(config, command, plugins, log, onLog); - if (command.output) { - Object.assign(command, command.output); - } - const outputOptionsArray = ensureArray(config.output); - if (outputOptionsArray.length === 0) - outputOptionsArray.push({}); - const outputOptions = await Promise.all(outputOptionsArray.map((singleOutputOptions) => mergeOutputOptions(singleOutputOptions, command, log))); - warnUnknownOptions(command, [ - ...Object.keys(inputOptions), - ...Object.keys(outputOptions[0]).filter((option) => option !== "sourcemapIgnoreList" && option !== "sourcemapPathTransform"), - ...Object.keys(commandAliases), - "bundleConfigAsCjs", - "config", - "configPlugin", - "environment", - "failAfterWarnings", - "filterLogs", - "forceExit", - "plugin", - "silent", - "stdin", - "waitForBundleInput" - ], "CLI flags", log, /^_$|output$|config/); - inputOptions.output = outputOptions; - return inputOptions; -} -function getCommandOptions(rawCommandOptions) { - const external = rawCommandOptions.external && typeof rawCommandOptions.external === "string" ? rawCommandOptions.external.split(",") : []; - return { - ...rawCommandOptions, - external, - globals: typeof rawCommandOptions.globals === "string" ? rawCommandOptions.globals.split(",").reduce((globals, globalDefinition) => { - const [id, variableName] = globalDefinition.split(":"); - globals[id] = variableName; - if (!external.includes(id)) { - external.push(id); - } - return globals; - }, /* @__PURE__ */ Object.create(null)) : void 0 - }; -} -function mergeInputOptions(config, overrides, plugins, log, onLog) { - const getOption = (name) => overrides[name] ?? config[name]; - const inputOptions = { - cache: config.cache, - context: getOption("context"), - experimentalCacheExpiry: getOption("experimentalCacheExpiry"), - experimentalLogSideEffects: getOption("experimentalLogSideEffects"), - external: getExternal(config, overrides), - input: getOption("input") || [], - logLevel: getOption("logLevel"), - makeAbsoluteExternalsRelative: getOption("makeAbsoluteExternalsRelative"), - maxParallelFileOps: getOption("maxParallelFileOps"), - moduleContext: getOption("moduleContext"), - onLog, - onwarn: void 0, - perf: getOption("perf"), - plugins, - preserveEntrySignatures: getOption("preserveEntrySignatures"), - preserveSymlinks: getOption("preserveSymlinks"), - shimMissingExports: getOption("shimMissingExports"), - strictDeprecations: getOption("strictDeprecations"), - treeshake: getObjectOption(config, overrides, "treeshake", objectifyOptionWithPresets(treeshakePresets, "treeshake", URL_TREESHAKE, "false, true, ")), - watch: getWatch(config, overrides) - }; - warnUnknownOptions(config, Object.keys(inputOptions), "input options", log, /^output$/); - return inputOptions; -} -var getExternal = (config, overrides) => { - const configExternal = config.external; - return typeof configExternal === "function" ? (source, importer, isResolved) => configExternal(source, importer, isResolved) || overrides.external.includes(source) : [...ensureArray(configExternal), ...overrides.external]; -}; -var getObjectOption = (config, overrides, name, objectifyValue = objectifyOption) => { - const commandOption = normalizeObjectOptionValue(overrides[name], objectifyValue); - const configOption = normalizeObjectOptionValue(config[name], objectifyValue); - if (commandOption !== void 0) { - return commandOption && { ...configOption, ...commandOption }; - } - return configOption; -}; -var getWatch = (config, overrides) => config.watch !== false && getObjectOption(config, overrides, "watch"); -var normalizeObjectOptionValue = (optionValue, objectifyValue) => { - if (!optionValue) { - return optionValue; - } - if (Array.isArray(optionValue)) { - return optionValue.reduce((result, value) => value && result && { ...result, ...objectifyValue(value) }, {}); - } - return objectifyValue(optionValue); -}; -async function mergeOutputOptions(config, overrides, log) { - const getOption = (name) => overrides[name] ?? config[name]; - const outputOptions = { - amd: getObjectOption(config, overrides, "amd"), - assetFileNames: getOption("assetFileNames"), - banner: getOption("banner"), - chunkFileNames: getOption("chunkFileNames"), - compact: getOption("compact"), - dir: getOption("dir"), - dynamicImportInCjs: getOption("dynamicImportInCjs"), - entryFileNames: getOption("entryFileNames"), - esModule: getOption("esModule"), - experimentalMinChunkSize: getOption("experimentalMinChunkSize"), - exports: getOption("exports"), - extend: getOption("extend"), - externalImportAssertions: getOption("externalImportAssertions"), - externalImportAttributes: getOption("externalImportAttributes"), - externalLiveBindings: getOption("externalLiveBindings"), - file: getOption("file"), - footer: getOption("footer"), - format: getOption("format"), - freeze: getOption("freeze"), - generatedCode: getObjectOption(config, overrides, "generatedCode", objectifyOptionWithPresets(generatedCodePresets, "output.generatedCode", URL_OUTPUT_GENERATEDCODE, "")), - globals: getOption("globals"), - hashCharacters: getOption("hashCharacters"), - hoistTransitiveImports: getOption("hoistTransitiveImports"), - importAttributesKey: getOption("importAttributesKey"), - indent: getOption("indent"), - inlineDynamicImports: getOption("inlineDynamicImports"), - interop: getOption("interop"), - intro: getOption("intro"), - manualChunks: getOption("manualChunks"), - minifyInternalExports: getOption("minifyInternalExports"), - name: getOption("name"), - noConflict: getOption("noConflict"), - outro: getOption("outro"), - paths: getOption("paths"), - plugins: await normalizePluginOption(config.plugins), - preserveModules: getOption("preserveModules"), - preserveModulesRoot: getOption("preserveModulesRoot"), - reexportProtoFromExternal: getOption("reexportProtoFromExternal"), - sanitizeFileName: getOption("sanitizeFileName"), - sourcemap: getOption("sourcemap"), - sourcemapBaseUrl: getOption("sourcemapBaseUrl"), - sourcemapExcludeSources: getOption("sourcemapExcludeSources"), - sourcemapFile: getOption("sourcemapFile"), - sourcemapFileNames: getOption("sourcemapFileNames"), - sourcemapIgnoreList: getOption("sourcemapIgnoreList"), - sourcemapPathTransform: getOption("sourcemapPathTransform"), - strict: getOption("strict"), - systemNullSetters: getOption("systemNullSetters"), - validate: getOption("validate") - }; - warnUnknownOptions(config, Object.keys(outputOptions), "output options", log); - return outputOptions; -} -var WatchEmitter = class { - constructor() { - this.currentHandlers = /* @__PURE__ */ Object.create(null); - this.persistentHandlers = /* @__PURE__ */ 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) { - 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 = /* @__PURE__ */ Object.create(null); - return this; - } - removeListenersForCurrentRun() { - this.currentHandlers = /* @__PURE__ */ Object.create(null); - return this; - } - getCurrentHandlers(event) { - return this.currentHandlers[event] || (this.currentHandlers[event] = []); - } - getPersistentHandlers(event) { - return this.persistentHandlers[event] || (this.persistentHandlers[event] = []); - } -}; -var fsEvents; -var fsEventsImportError; -async function loadFsEvents() { - try { - ({ default: fsEvents } = await import("fsevents")); - } catch (error2) { - fsEventsImportError = error2; - } -} -function getFsEvents() { - if (fsEventsImportError) - throw fsEventsImportError; - return fsEvents; -} -var fseventsImporter = Object.defineProperty({ - __proto__: null, - getFsEvents, - loadFsEvents -}, Symbol.toStringTag, { value: "Module" }); -function watch(configs) { - const emitter = new WatchEmitter(); - watchInternal(configs, emitter).catch((error2) => { - handleError(error2); - }); - return emitter; -} -async function watchInternal(configs, emitter) { - const optionsList = await Promise.all(ensureArray(configs).map((config) => mergeOptions(config, true))); - const watchOptionsList = optionsList.filter((config) => config.watch !== false); - if (watchOptionsList.length === 0) { - return error(logInvalidOption("watch", URL_WATCH, 'there must be at least one config where "watch" is not set to "false"')); - } - await loadFsEvents(); - const { Watcher } = await import("./watch-EFW4YXCL.js"); - new Watcher(watchOptionsList, emitter); -} - -export { - version, - getAugmentedNamespace, - picomatch, - createFilter, - rollup, - rollupInternal, - defineConfig, - fseventsImporter, - watch -}; -/*! Bundled license information: - -rollup/dist/es/shared/node-entry.js: - (* - @license - Rollup.js v4.19.1 - Sat, 27 Jul 2024 04:53:31 GMT - commit 8b967917c2923dc6a02ca1238261387aefa2cb2f - - https://github.com/rollup/rollup - - Released under the MIT License. - *) -*/ -//# sourceMappingURL=chunk-PTYCI75C.js.map diff --git a/site/game/node_modules/.vite/deps/chunk-PTYCI75C.js.map b/site/game/node_modules/.vite/deps/chunk-PTYCI75C.js.map deleted file mode 100644 index c6e3f07..0000000 --- a/site/game/node_modules/.vite/deps/chunk-PTYCI75C.js.map +++ /dev/null @@ -1,7 +0,0 @@ -{ - "version": 3, - "sources": ["../../rollup/dist/es/shared/node-entry.js"], - "sourcesContent": ["/*\n @license\n\tRollup.js v4.19.1\n\tSat, 27 Jul 2024 04:53:31 GMT - commit 8b967917c2923dc6a02ca1238261387aefa2cb2f\n\n\thttps://github.com/rollup/rollup\n\n\tReleased under the MIT License.\n*/\nimport { normalize, getImportPath, ExportDefaultDeclaration as ExportDefaultDeclaration$1, CallExpression as CallExpression$1, EMPTY_ARRAY, LOGLEVEL_WARN, logUnusedExternalImports, ANNOTATION_KEY, INVALID_ANNOTATION_KEY, Program as Program$1, BLANK, logIllegalImportReassignment, logRedeclarationError, CatchClause as CatchClause$1, logDuplicateArgumentNameError, logModuleLevelDirective, ReturnStatement as ReturnStatement$1, VariableDeclarator as VariableDeclarator$1, Property as Property$1, logConstVariableReassignError, ExpressionStatement as ExpressionStatement$1, ArrowFunctionExpression as ArrowFunctionExpression$1, logMissingExport, EMPTY_SET, logCannotCallNamespace, logEval, StaticBlock as StaticBlock$1, BlockStatement as BlockStatement$1, getRollupError, logParseError, logModuleParseError, error, LOGLEVEL_INFO, logFirstSideEffect, locate, logInvalidAnnotation, Identifier as Identifier$1, logThisIsUndefined, getAstBuffer, convertAnnotations, FIXED_STRINGS, convertNode as convertNode$1, EMPTY_OBJECT, logImportAttributeIsInvalid, logImportOptionsAreInvalid, logSyntheticNamedExportsNeedNamespaceExport, logMissingEntryExport, logInvalidFormatForTopLevelAwait, logDuplicateExportError, logInvalidSourcemapForError, augmentCodeLocation, logInconsistentImportAttributes, logNamespaceConflict, logAmbiguousExternalNamespaces, logShimmedExport, parseAst, logCircularReexport, TemplateLiteral as TemplateLiteral$1, Literal as Literal$1, logMissingNodeBuiltins, logIllegalIdentifierAsName, logMissingNameOptionForIifeExport, logMissingNameOptionForUmdExport, logAddonNotGenerated, logIncompatibleExportOptionValue, logMixedExport, logFailedValidation, isPathFragment, logCyclicCrossChunkReexport, getAliasName, logUnexpectedNamedImport, isAbsolute as isAbsolute$1, relative as relative$1, logUnexpectedNamespaceReexport, logEmptyChunk, logMissingGlobalName, logOptimizeChunkStatus, logSourcemapBroken, logConflictingSourcemapSources, logChunkInvalid, logInvalidOption, URL_OUTPUT_FORMAT, URL_OUTPUT_DIR, URL_OUTPUT_SOURCEMAPFILE, URL_OUTPUT_AMD_ID, logCannotAssignModuleToChunk, logAnonymousPluginCache, logDuplicatePluginName, LOGLEVEL_ERROR, logLevelPriority, LOGLEVEL_DEBUG, logUnknownOption, printQuotedStringList, logInvalidSetAssetSourceCall, logPluginError, logNoTransformMapOrAstWithoutCode, relativeId, logBadLoader, logExternalModulesCannotBeTransformedToModules, logInternalIdCannotBeExternal, isRelative, logUnresolvedImport, logUnresolvedImportTreatedAsExternal, logExternalSyntheticExports, logUnresolvedEntry, logUnresolvedImplicitDependant, logExternalModulesCannotBeIncludedInManualChunks, logEntryCannotBeExternal, logImplicitDependantCannotBeExternal, logNoAssetSourceSet, logFileReferenceIdNotFoundForFilename, logAssetReferenceIdNotFoundForSetSource, logAssetSourceAlreadySet, logInvalidRollupPhaseForChunkEmission, logFileNameConflict, logAssetNotFinalisedForFileName, logChunkNotGeneratedForFileName, logInvalidLogPosition, logInputHookInOutputPlugin, logInvalidFunctionPluginHook, logInvalidAddonPluginHook, logImplicitDependantIsNotIncluded, logCircularDependency, augmentLogMessage, URL_TREESHAKE_MODULESIDEEFFECTS, URL_TREESHAKE, URL_OUTPUT_INLINEDYNAMICIMPORTS, URL_PRESERVEENTRYSIGNATURES, URL_OUTPUT_AMD_BASEPATH, logInvalidExportOptionValue, warnDeprecation, URL_OUTPUT_INTEROP, URL_OUTPUT_MANUALCHUNKS, isValidUrl, addTrailingSlashIfMissed, URL_OUTPUT_SOURCEMAPBASEURL, URL_OUTPUT_GENERATEDCODE, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, logAlreadyClosed, logMissingFileOrDirOption, logCannotEmitFromOptionsHook, URL_WATCH } from './parseAst.js';\nimport { relative, dirname, basename, extname, resolve as resolve$1 } from 'node:path';\nimport require$$0, { win32, posix, isAbsolute, resolve } from 'path';\nimport { parseAsync, xxhashBase64Url, xxhashBase36, xxhashBase16 } from '../../native.js';\nimport process$1, { env as env$1 } from 'node:process';\nimport { performance } from 'node:perf_hooks';\nimport { lstat, realpath, readdir, readFile, mkdir, writeFile } from 'node:fs/promises';\nimport * as tty from 'tty';\n\nvar version = \"4.19.1\";\n\nconst comma = ','.charCodeAt(0);\nconst semicolon = ';'.charCodeAt(0);\nconst chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst intToChar = new Uint8Array(64); // 64 possible chars.\nconst charToInt = new Uint8Array(128); // z is 122 in ASCII\nfor (let i = 0; i < chars$1.length; i++) {\n const c = chars$1.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n}\nfunction decodeInteger(reader, relative) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = reader.next();\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n return relative + value;\n}\nfunction encodeInteger(builder, num, relative) {\n let delta = num - relative;\n delta = delta < 0 ? (-delta << 1) | 1 : delta << 1;\n do {\n let clamped = delta & 0b011111;\n delta >>>= 5;\n if (delta > 0)\n clamped |= 0b100000;\n builder.write(intToChar[clamped]);\n } while (delta > 0);\n return num;\n}\nfunction hasMoreVlq(reader, max) {\n if (reader.pos >= max)\n return false;\n return reader.peek() !== comma;\n}\n\nconst bufLength = 1024 * 16;\n// Provide a fallback for older environments.\nconst td = typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf) {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\nclass StringWriter {\n constructor() {\n this.pos = 0;\n this.out = '';\n this.buffer = new Uint8Array(bufLength);\n }\n write(v) {\n const { buffer } = this;\n buffer[this.pos++] = v;\n if (this.pos === bufLength) {\n this.out += td.decode(buffer);\n this.pos = 0;\n }\n }\n flush() {\n const { buffer, out, pos } = this;\n return pos > 0 ? out + td.decode(buffer.subarray(0, pos)) : out;\n }\n}\nclass StringReader {\n constructor(buffer) {\n this.pos = 0;\n this.buffer = buffer;\n }\n next() {\n return this.buffer.charCodeAt(this.pos++);\n }\n peek() {\n return this.buffer.charCodeAt(this.pos);\n }\n indexOf(char) {\n const { buffer, pos } = this;\n const idx = buffer.indexOf(char, pos);\n return idx === -1 ? buffer.length : idx;\n }\n}\n\nfunction decode(mappings) {\n const { length } = mappings;\n const reader = new StringReader(mappings);\n const decoded = [];\n let genColumn = 0;\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n do {\n const semi = reader.indexOf(';');\n const line = [];\n let sorted = true;\n let lastCol = 0;\n genColumn = 0;\n while (reader.pos < semi) {\n let seg;\n genColumn = decodeInteger(reader, genColumn);\n if (genColumn < lastCol)\n sorted = false;\n lastCol = genColumn;\n if (hasMoreVlq(reader, semi)) {\n sourcesIndex = decodeInteger(reader, sourcesIndex);\n sourceLine = decodeInteger(reader, sourceLine);\n sourceColumn = decodeInteger(reader, sourceColumn);\n if (hasMoreVlq(reader, semi)) {\n namesIndex = decodeInteger(reader, namesIndex);\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex];\n }\n else {\n seg = [genColumn, sourcesIndex, sourceLine, sourceColumn];\n }\n }\n else {\n seg = [genColumn];\n }\n line.push(seg);\n reader.pos++;\n }\n if (!sorted)\n sort(line);\n decoded.push(line);\n reader.pos = semi + 1;\n } while (reader.pos <= length);\n return decoded;\n}\nfunction sort(line) {\n line.sort(sortComparator);\n}\nfunction sortComparator(a, b) {\n return a[0] - b[0];\n}\nfunction encode(decoded) {\n const writer = new StringWriter();\n let sourcesIndex = 0;\n let sourceLine = 0;\n let sourceColumn = 0;\n let namesIndex = 0;\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0)\n writer.write(semicolon);\n if (line.length === 0)\n continue;\n let genColumn = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n if (j > 0)\n writer.write(comma);\n genColumn = encodeInteger(writer, segment[0], genColumn);\n if (segment.length === 1)\n continue;\n sourcesIndex = encodeInteger(writer, segment[1], sourcesIndex);\n sourceLine = encodeInteger(writer, segment[2], sourceLine);\n sourceColumn = encodeInteger(writer, segment[3], sourceColumn);\n if (segment.length === 4)\n continue;\n namesIndex = encodeInteger(writer, segment[4], namesIndex);\n }\n }\n return writer.flush();\n}\n\nclass BitSet {\n\tconstructor(arg) {\n\t\tthis.bits = arg instanceof BitSet ? arg.bits.slice() : [];\n\t}\n\n\tadd(n) {\n\t\tthis.bits[n >> 5] |= 1 << (n & 31);\n\t}\n\n\thas(n) {\n\t\treturn !!(this.bits[n >> 5] & (1 << (n & 31)));\n\t}\n}\n\nlet Chunk$1 = class Chunk {\n\tconstructor(start, end, content) {\n\t\tthis.start = start;\n\t\tthis.end = end;\n\t\tthis.original = content;\n\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\n\t\tthis.content = content;\n\t\tthis.storeName = false;\n\t\tthis.edited = false;\n\n\t\t{\n\t\t\tthis.previous = null;\n\t\t\tthis.next = null;\n\t\t}\n\t}\n\n\tappendLeft(content) {\n\t\tthis.outro += content;\n\t}\n\n\tappendRight(content) {\n\t\tthis.intro = this.intro + content;\n\t}\n\n\tclone() {\n\t\tconst chunk = new Chunk(this.start, this.end, this.original);\n\n\t\tchunk.intro = this.intro;\n\t\tchunk.outro = this.outro;\n\t\tchunk.content = this.content;\n\t\tchunk.storeName = this.storeName;\n\t\tchunk.edited = this.edited;\n\n\t\treturn chunk;\n\t}\n\n\tcontains(index) {\n\t\treturn this.start < index && index < this.end;\n\t}\n\n\teachNext(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.next;\n\t\t}\n\t}\n\n\teachPrevious(fn) {\n\t\tlet chunk = this;\n\t\twhile (chunk) {\n\t\t\tfn(chunk);\n\t\t\tchunk = chunk.previous;\n\t\t}\n\t}\n\n\tedit(content, storeName, contentOnly) {\n\t\tthis.content = content;\n\t\tif (!contentOnly) {\n\t\t\tthis.intro = '';\n\t\t\tthis.outro = '';\n\t\t}\n\t\tthis.storeName = storeName;\n\n\t\tthis.edited = true;\n\n\t\treturn this;\n\t}\n\n\tprependLeft(content) {\n\t\tthis.outro = content + this.outro;\n\t}\n\n\tprependRight(content) {\n\t\tthis.intro = content + this.intro;\n\t}\n\n\treset() {\n\t\tthis.intro = '';\n\t\tthis.outro = '';\n\t\tif (this.edited) {\n\t\t\tthis.content = this.original;\n\t\t\tthis.storeName = false;\n\t\t\tthis.edited = false;\n\t\t}\n\t}\n\n\tsplit(index) {\n\t\tconst sliceIndex = index - this.start;\n\n\t\tconst originalBefore = this.original.slice(0, sliceIndex);\n\t\tconst originalAfter = this.original.slice(sliceIndex);\n\n\t\tthis.original = originalBefore;\n\n\t\tconst newChunk = new Chunk(index, this.end, originalAfter);\n\t\tnewChunk.outro = this.outro;\n\t\tthis.outro = '';\n\n\t\tthis.end = index;\n\n\t\tif (this.edited) {\n\t\t\t// after split we should save the edit content record into the correct chunk\n\t\t\t// to make sure sourcemap correct\n\t\t\t// For example:\n\t\t\t// ' test'.trim()\n\t\t\t// split -> ' ' + 'test'\n\t\t\t// ✔️ edit -> '' + 'test'\n\t\t\t// ✖️ edit -> 'test' + '' \n\t\t\t// TODO is this block necessary?...\n\t\t\tnewChunk.edit('', false);\n\t\t\tthis.content = '';\n\t\t} else {\n\t\t\tthis.content = originalBefore;\n\t\t}\n\n\t\tnewChunk.next = this.next;\n\t\tif (newChunk.next) newChunk.next.previous = newChunk;\n\t\tnewChunk.previous = this;\n\t\tthis.next = newChunk;\n\n\t\treturn newChunk;\n\t}\n\n\ttoString() {\n\t\treturn this.intro + this.content + this.outro;\n\t}\n\n\ttrimEnd(rx) {\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tthis.split(this.start + trimmed.length).edit('', undefined, true);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tthis.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\tif (this.intro.length) return true;\n\t\t}\n\t}\n\n\ttrimStart(rx) {\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tconst trimmed = this.content.replace(rx, '');\n\n\t\tif (trimmed.length) {\n\t\t\tif (trimmed !== this.content) {\n\t\t\t\tconst newChunk = this.split(this.end - trimmed.length);\n\t\t\t\tif (this.edited) {\n\t\t\t\t\t// save the change, if it has been edited\n\t\t\t\t\tnewChunk.edit(trimmed, this.storeName, true);\n\t\t\t\t}\n\t\t\t\tthis.edit('', undefined, true);\n\t\t\t}\n\t\t\treturn true;\n\t\t} else {\n\t\t\tthis.edit('', undefined, true);\n\n\t\t\tthis.outro = this.outro.replace(rx, '');\n\t\t\tif (this.outro.length) return true;\n\t\t}\n\t}\n};\n\nfunction getBtoa() {\n\tif (typeof globalThis !== 'undefined' && typeof globalThis.btoa === 'function') {\n\t\treturn (str) => globalThis.btoa(unescape(encodeURIComponent(str)));\n\t} else if (typeof Buffer === 'function') {\n\t\treturn (str) => Buffer.from(str, 'utf-8').toString('base64');\n\t} else {\n\t\treturn () => {\n\t\t\tthrow new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');\n\t\t};\n\t}\n}\n\nconst btoa = /*#__PURE__*/ getBtoa();\n\nclass SourceMap {\n\tconstructor(properties) {\n\t\tthis.version = 3;\n\t\tthis.file = properties.file;\n\t\tthis.sources = properties.sources;\n\t\tthis.sourcesContent = properties.sourcesContent;\n\t\tthis.names = properties.names;\n\t\tthis.mappings = encode(properties.mappings);\n\t\tif (typeof properties.x_google_ignoreList !== 'undefined') {\n\t\t\tthis.x_google_ignoreList = properties.x_google_ignoreList;\n\t\t}\n\t}\n\n\ttoString() {\n\t\treturn JSON.stringify(this);\n\t}\n\n\ttoUrl() {\n\t\treturn 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());\n\t}\n}\n\nfunction guessIndent(code) {\n\tconst lines = code.split('\\n');\n\n\tconst tabbed = lines.filter((line) => /^\\t+/.test(line));\n\tconst spaced = lines.filter((line) => /^ {2,}/.test(line));\n\n\tif (tabbed.length === 0 && spaced.length === 0) {\n\t\treturn null;\n\t}\n\n\t// More lines tabbed than spaced? Assume tabs, and\n\t// default to tabs in the case of a tie (or nothing\n\t// to go on)\n\tif (tabbed.length >= spaced.length) {\n\t\treturn '\\t';\n\t}\n\n\t// Otherwise, we need to guess the multiple\n\tconst min = spaced.reduce((previous, current) => {\n\t\tconst numSpaces = /^ +/.exec(current)[0].length;\n\t\treturn Math.min(numSpaces, previous);\n\t}, Infinity);\n\n\treturn new Array(min + 1).join(' ');\n}\n\nfunction getRelativePath(from, to) {\n\tconst fromParts = from.split(/[/\\\\]/);\n\tconst toParts = to.split(/[/\\\\]/);\n\n\tfromParts.pop(); // get dirname\n\n\twhile (fromParts[0] === toParts[0]) {\n\t\tfromParts.shift();\n\t\ttoParts.shift();\n\t}\n\n\tif (fromParts.length) {\n\t\tlet i = fromParts.length;\n\t\twhile (i--) fromParts[i] = '..';\n\t}\n\n\treturn fromParts.concat(toParts).join('/');\n}\n\nconst toString = Object.prototype.toString;\n\nfunction isObject$1(thing) {\n\treturn toString.call(thing) === '[object Object]';\n}\n\nfunction getLocator(source) {\n\tconst originalLines = source.split('\\n');\n\tconst lineOffsets = [];\n\n\tfor (let i = 0, pos = 0; i < originalLines.length; i++) {\n\t\tlineOffsets.push(pos);\n\t\tpos += originalLines[i].length + 1;\n\t}\n\n\treturn function locate(index) {\n\t\tlet i = 0;\n\t\tlet j = lineOffsets.length;\n\t\twhile (i < j) {\n\t\t\tconst m = (i + j) >> 1;\n\t\t\tif (index < lineOffsets[m]) {\n\t\t\t\tj = m;\n\t\t\t} else {\n\t\t\t\ti = m + 1;\n\t\t\t}\n\t\t}\n\t\tconst line = i - 1;\n\t\tconst column = index - lineOffsets[line];\n\t\treturn { line, column };\n\t};\n}\n\nconst wordRegex = /\\w/;\n\nclass Mappings {\n\tconstructor(hires) {\n\t\tthis.hires = hires;\n\t\tthis.generatedCodeLine = 0;\n\t\tthis.generatedCodeColumn = 0;\n\t\tthis.raw = [];\n\t\tthis.rawSegments = this.raw[this.generatedCodeLine] = [];\n\t\tthis.pending = null;\n\t}\n\n\taddEdit(sourceIndex, content, loc, nameIndex) {\n\t\tif (content.length) {\n\t\t\tconst contentLengthMinusOne = content.length - 1;\n\t\t\tlet contentLineEnd = content.indexOf('\\n', 0);\n\t\t\tlet previousContentLineEnd = -1;\n\t\t\t// Loop through each line in the content and add a segment, but stop if the last line is empty,\n\t\t\t// else code afterwards would fill one line too many\n\t\t\twhile (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\t\tif (nameIndex >= 0) {\n\t\t\t\t\tsegment.push(nameIndex);\n\t\t\t\t}\n\t\t\t\tthis.rawSegments.push(segment);\n\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\n\t\t\t\tpreviousContentLineEnd = contentLineEnd;\n\t\t\t\tcontentLineEnd = content.indexOf('\\n', contentLineEnd + 1);\n\t\t\t}\n\n\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\t\t\tif (nameIndex >= 0) {\n\t\t\t\tsegment.push(nameIndex);\n\t\t\t}\n\t\t\tthis.rawSegments.push(segment);\n\n\t\t\tthis.advance(content.slice(previousContentLineEnd + 1));\n\t\t} else if (this.pending) {\n\t\t\tthis.rawSegments.push(this.pending);\n\t\t\tthis.advance(content);\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\taddUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {\n\t\tlet originalCharIndex = chunk.start;\n\t\tlet first = true;\n\t\t// when iterating each char, check if it's in a word boundary\n\t\tlet charInHiresBoundary = false;\n\n\t\twhile (originalCharIndex < chunk.end) {\n\t\t\tif (this.hires || first || sourcemapLocations.has(originalCharIndex)) {\n\t\t\t\tconst segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];\n\n\t\t\t\tif (this.hires === 'boundary') {\n\t\t\t\t\t// in hires \"boundary\", group segments per word boundary than per char\n\t\t\t\t\tif (wordRegex.test(original[originalCharIndex])) {\n\t\t\t\t\t\t// for first char in the boundary found, start the boundary by pushing a segment\n\t\t\t\t\t\tif (!charInHiresBoundary) {\n\t\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\t\tcharInHiresBoundary = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// for non-word char, end the boundary by pushing a segment\n\t\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t\t\tcharInHiresBoundary = false;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.rawSegments.push(segment);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (original[originalCharIndex] === '\\n') {\n\t\t\t\tloc.line += 1;\n\t\t\t\tloc.column = 0;\n\t\t\t\tthis.generatedCodeLine += 1;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t\tthis.generatedCodeColumn = 0;\n\t\t\t\tfirst = true;\n\t\t\t} else {\n\t\t\t\tloc.column += 1;\n\t\t\t\tthis.generatedCodeColumn += 1;\n\t\t\t\tfirst = false;\n\t\t\t}\n\n\t\t\toriginalCharIndex += 1;\n\t\t}\n\n\t\tthis.pending = null;\n\t}\n\n\tadvance(str) {\n\t\tif (!str) return;\n\n\t\tconst lines = str.split('\\n');\n\n\t\tif (lines.length > 1) {\n\t\t\tfor (let i = 0; i < lines.length - 1; i++) {\n\t\t\t\tthis.generatedCodeLine++;\n\t\t\t\tthis.raw[this.generatedCodeLine] = this.rawSegments = [];\n\t\t\t}\n\t\t\tthis.generatedCodeColumn = 0;\n\t\t}\n\n\t\tthis.generatedCodeColumn += lines[lines.length - 1].length;\n\t}\n}\n\nconst n = '\\n';\n\nconst warned = {\n\tinsertLeft: false,\n\tinsertRight: false,\n\tstoreName: false,\n};\n\nclass MagicString {\n\tconstructor(string, options = {}) {\n\t\tconst chunk = new Chunk$1(0, string.length, string);\n\n\t\tObject.defineProperties(this, {\n\t\t\toriginal: { writable: true, value: string },\n\t\t\toutro: { writable: true, value: '' },\n\t\t\tintro: { writable: true, value: '' },\n\t\t\tfirstChunk: { writable: true, value: chunk },\n\t\t\tlastChunk: { writable: true, value: chunk },\n\t\t\tlastSearchedChunk: { writable: true, value: chunk },\n\t\t\tbyStart: { writable: true, value: {} },\n\t\t\tbyEnd: { writable: true, value: {} },\n\t\t\tfilename: { writable: true, value: options.filename },\n\t\t\tindentExclusionRanges: { writable: true, value: options.indentExclusionRanges },\n\t\t\tsourcemapLocations: { writable: true, value: new BitSet() },\n\t\t\tstoredNames: { writable: true, value: {} },\n\t\t\tindentStr: { writable: true, value: undefined },\n\t\t\tignoreList: { writable: true, value: options.ignoreList },\n\t\t});\n\n\t\tthis.byStart[0] = chunk;\n\t\tthis.byEnd[string.length] = chunk;\n\t}\n\n\taddSourcemapLocation(char) {\n\t\tthis.sourcemapLocations.add(char);\n\t}\n\n\tappend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.outro += content;\n\t\treturn this;\n\t}\n\n\tappendLeft(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendLeft(content);\n\t\t} else {\n\t\t\tthis.intro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tappendRight(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.appendRight(content);\n\t\t} else {\n\t\t\tthis.outro += content;\n\t\t}\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst cloned = new MagicString(this.original, { filename: this.filename });\n\n\t\tlet originalChunk = this.firstChunk;\n\t\tlet clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());\n\n\t\twhile (originalChunk) {\n\t\t\tcloned.byStart[clonedChunk.start] = clonedChunk;\n\t\t\tcloned.byEnd[clonedChunk.end] = clonedChunk;\n\n\t\t\tconst nextOriginalChunk = originalChunk.next;\n\t\t\tconst nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();\n\n\t\t\tif (nextClonedChunk) {\n\t\t\t\tclonedChunk.next = nextClonedChunk;\n\t\t\t\tnextClonedChunk.previous = clonedChunk;\n\n\t\t\t\tclonedChunk = nextClonedChunk;\n\t\t\t}\n\n\t\t\toriginalChunk = nextOriginalChunk;\n\t\t}\n\n\t\tcloned.lastChunk = clonedChunk;\n\n\t\tif (this.indentExclusionRanges) {\n\t\t\tcloned.indentExclusionRanges = this.indentExclusionRanges.slice();\n\t\t}\n\n\t\tcloned.sourcemapLocations = new BitSet(this.sourcemapLocations);\n\n\t\tcloned.intro = this.intro;\n\t\tcloned.outro = this.outro;\n\n\t\treturn cloned;\n\t}\n\n\tgenerateDecodedMap(options) {\n\t\toptions = options || {};\n\n\t\tconst sourceIndex = 0;\n\t\tconst names = Object.keys(this.storedNames);\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tconst locate = getLocator(this.original);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.firstChunk.eachNext((chunk) => {\n\t\t\tconst loc = locate(chunk.start);\n\n\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tmappings.addEdit(\n\t\t\t\t\tsourceIndex,\n\t\t\t\t\tchunk.content,\n\t\t\t\t\tloc,\n\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);\n\t\t\t}\n\n\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: [\n\t\t\t\toptions.source ? getRelativePath(options.file || '', options.source) : options.file || '',\n\t\t\t],\n\t\t\tsourcesContent: options.includeContent ? [this.original] : undefined,\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList: this.ignoreList ? [sourceIndex] : undefined,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\t_ensureindentStr() {\n\t\tif (this.indentStr === undefined) {\n\t\t\tthis.indentStr = guessIndent(this.original);\n\t\t}\n\t}\n\n\t_getRawIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr;\n\t}\n\n\tgetIndentString() {\n\t\tthis._ensureindentStr();\n\t\treturn this.indentStr === null ? '\\t' : this.indentStr;\n\t}\n\n\tindent(indentStr, options) {\n\t\tconst pattern = /^[^\\r\\n]/gm;\n\n\t\tif (isObject$1(indentStr)) {\n\t\t\toptions = indentStr;\n\t\t\tindentStr = undefined;\n\t\t}\n\n\t\tif (indentStr === undefined) {\n\t\t\tthis._ensureindentStr();\n\t\t\tindentStr = this.indentStr || '\\t';\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\toptions = options || {};\n\n\t\t// Process exclusion ranges\n\t\tconst isExcluded = {};\n\n\t\tif (options.exclude) {\n\t\t\tconst exclusions =\n\t\t\t\ttypeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;\n\t\t\texclusions.forEach((exclusion) => {\n\t\t\t\tfor (let i = exclusion[0]; i < exclusion[1]; i += 1) {\n\t\t\t\t\tisExcluded[i] = true;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet shouldIndentNextCharacter = options.indentStart !== false;\n\t\tconst replacer = (match) => {\n\t\t\tif (shouldIndentNextCharacter) return `${indentStr}${match}`;\n\t\t\tshouldIndentNextCharacter = true;\n\t\t\treturn match;\n\t\t};\n\n\t\tthis.intro = this.intro.replace(pattern, replacer);\n\n\t\tlet charIndex = 0;\n\t\tlet chunk = this.firstChunk;\n\n\t\twhile (chunk) {\n\t\t\tconst end = chunk.end;\n\n\t\t\tif (chunk.edited) {\n\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\tchunk.content = chunk.content.replace(pattern, replacer);\n\n\t\t\t\t\tif (chunk.content.length) {\n\t\t\t\t\t\tshouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\\n';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcharIndex = chunk.start;\n\n\t\t\t\twhile (charIndex < end) {\n\t\t\t\t\tif (!isExcluded[charIndex]) {\n\t\t\t\t\t\tconst char = this.original[charIndex];\n\n\t\t\t\t\t\tif (char === '\\n') {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = true;\n\t\t\t\t\t\t} else if (char !== '\\r' && shouldIndentNextCharacter) {\n\t\t\t\t\t\t\tshouldIndentNextCharacter = false;\n\n\t\t\t\t\t\t\tif (charIndex === chunk.start) {\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._splitChunk(chunk, charIndex);\n\t\t\t\t\t\t\t\tchunk = chunk.next;\n\t\t\t\t\t\t\t\tchunk.prependRight(indentStr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tcharIndex += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcharIndex = chunk.end;\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tthis.outro = this.outro.replace(pattern, replacer);\n\n\t\treturn this;\n\t}\n\n\tinsert() {\n\t\tthrow new Error(\n\t\t\t'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)',\n\t\t);\n\t}\n\n\tinsertLeft(index, content) {\n\t\tif (!warned.insertLeft) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead',\n\t\t\t); // eslint-disable-line no-console\n\t\t\twarned.insertLeft = true;\n\t\t}\n\n\t\treturn this.appendLeft(index, content);\n\t}\n\n\tinsertRight(index, content) {\n\t\tif (!warned.insertRight) {\n\t\t\tconsole.warn(\n\t\t\t\t'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead',\n\t\t\t); // eslint-disable-line no-console\n\t\t\twarned.insertRight = true;\n\t\t}\n\n\t\treturn this.prependRight(index, content);\n\t}\n\n\tmove(start, end, index) {\n\t\tif (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\t\tthis._split(index);\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tconst oldLeft = first.previous;\n\t\tconst oldRight = last.next;\n\n\t\tconst newRight = this.byStart[index];\n\t\tif (!newRight && last === this.lastChunk) return this;\n\t\tconst newLeft = newRight ? newRight.previous : this.lastChunk;\n\n\t\tif (oldLeft) oldLeft.next = oldRight;\n\t\tif (oldRight) oldRight.previous = oldLeft;\n\n\t\tif (newLeft) newLeft.next = first;\n\t\tif (newRight) newRight.previous = last;\n\n\t\tif (!first.previous) this.firstChunk = last.next;\n\t\tif (!last.next) {\n\t\t\tthis.lastChunk = first.previous;\n\t\t\tthis.lastChunk.next = null;\n\t\t}\n\n\t\tfirst.previous = newLeft;\n\t\tlast.next = newRight || null;\n\n\t\tif (!newLeft) this.firstChunk = first;\n\t\tif (!newRight) this.lastChunk = last;\n\t\treturn this;\n\t}\n\n\toverwrite(start, end, content, options) {\n\t\toptions = options || {};\n\t\treturn this.update(start, end, content, { ...options, overwrite: !options.contentOnly });\n\t}\n\n\tupdate(start, end, content, options) {\n\t\tif (typeof content !== 'string') throw new TypeError('replacement content must be a string');\n\n\t\twhile (start < 0) start += this.original.length;\n\t\twhile (end < 0) end += this.original.length;\n\n\t\tif (end > this.original.length) throw new Error('end is out of bounds');\n\t\tif (start === end)\n\t\t\tthrow new Error(\n\t\t\t\t'Cannot overwrite a zero-length range – use appendLeft or prependRight instead',\n\t\t\t);\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tif (options === true) {\n\t\t\tif (!warned.storeName) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string',\n\t\t\t\t); // eslint-disable-line no-console\n\t\t\t\twarned.storeName = true;\n\t\t\t}\n\n\t\t\toptions = { storeName: true };\n\t\t}\n\t\tconst storeName = options !== undefined ? options.storeName : false;\n\t\tconst overwrite = options !== undefined ? options.overwrite : false;\n\n\t\tif (storeName) {\n\t\t\tconst original = this.original.slice(start, end);\n\t\t\tObject.defineProperty(this.storedNames, original, {\n\t\t\t\twritable: true,\n\t\t\t\tvalue: true,\n\t\t\t\tenumerable: true,\n\t\t\t});\n\t\t}\n\n\t\tconst first = this.byStart[start];\n\t\tconst last = this.byEnd[end];\n\n\t\tif (first) {\n\t\t\tlet chunk = first;\n\t\t\twhile (chunk !== last) {\n\t\t\t\tif (chunk.next !== this.byStart[chunk.end]) {\n\t\t\t\t\tthrow new Error('Cannot overwrite across a split point');\n\t\t\t\t}\n\t\t\t\tchunk = chunk.next;\n\t\t\t\tchunk.edit('', false);\n\t\t\t}\n\n\t\t\tfirst.edit(content, storeName, !overwrite);\n\t\t} else {\n\t\t\t// must be inserting at the end\n\t\t\tconst newChunk = new Chunk$1(start, end, '').edit(content, storeName);\n\n\t\t\t// TODO last chunk in the array may not be the last chunk, if it's moved...\n\t\t\tlast.next = newChunk;\n\t\t\tnewChunk.previous = last;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprepend(content) {\n\t\tif (typeof content !== 'string') throw new TypeError('outro content must be a string');\n\n\t\tthis.intro = content + this.intro;\n\t\treturn this;\n\t}\n\n\tprependLeft(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byEnd[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependLeft(content);\n\t\t} else {\n\t\t\tthis.intro = content + this.intro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tprependRight(index, content) {\n\t\tif (typeof content !== 'string') throw new TypeError('inserted content must be a string');\n\n\t\tthis._split(index);\n\n\t\tconst chunk = this.byStart[index];\n\n\t\tif (chunk) {\n\t\t\tchunk.prependRight(content);\n\t\t} else {\n\t\t\tthis.outro = content + this.outro;\n\t\t}\n\t\treturn this;\n\t}\n\n\tremove(start, end) {\n\t\twhile (start < 0) start += this.original.length;\n\t\twhile (end < 0) end += this.original.length;\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.intro = '';\n\t\t\tchunk.outro = '';\n\t\t\tchunk.edit('');\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\treset(start, end) {\n\t\twhile (start < 0) start += this.original.length;\n\t\twhile (end < 0) end += this.original.length;\n\n\t\tif (start === end) return this;\n\n\t\tif (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');\n\t\tif (start > end) throw new Error('end must be greater than start');\n\n\t\tthis._split(start);\n\t\tthis._split(end);\n\n\t\tlet chunk = this.byStart[start];\n\n\t\twhile (chunk) {\n\t\t\tchunk.reset();\n\n\t\t\tchunk = end > chunk.end ? this.byStart[chunk.end] : null;\n\t\t}\n\t\treturn this;\n\t}\n\n\tlastChar() {\n\t\tif (this.outro.length) return this.outro[this.outro.length - 1];\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];\n\t\t\tif (chunk.content.length) return chunk.content[chunk.content.length - 1];\n\t\t\tif (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];\n\t\t} while ((chunk = chunk.previous));\n\t\tif (this.intro.length) return this.intro[this.intro.length - 1];\n\t\treturn '';\n\t}\n\n\tlastLine() {\n\t\tlet lineIndex = this.outro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.outro.substr(lineIndex + 1);\n\t\tlet lineStr = this.outro;\n\t\tlet chunk = this.lastChunk;\n\t\tdo {\n\t\t\tif (chunk.outro.length > 0) {\n\t\t\t\tlineIndex = chunk.outro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.outro + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.content.length > 0) {\n\t\t\t\tlineIndex = chunk.content.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.content + lineStr;\n\t\t\t}\n\n\t\t\tif (chunk.intro.length > 0) {\n\t\t\t\tlineIndex = chunk.intro.lastIndexOf(n);\n\t\t\t\tif (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;\n\t\t\t\tlineStr = chunk.intro + lineStr;\n\t\t\t}\n\t\t} while ((chunk = chunk.previous));\n\t\tlineIndex = this.intro.lastIndexOf(n);\n\t\tif (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;\n\t\treturn this.intro + lineStr;\n\t}\n\n\tslice(start = 0, end = this.original.length) {\n\t\twhile (start < 0) start += this.original.length;\n\t\twhile (end < 0) end += this.original.length;\n\n\t\tlet result = '';\n\n\t\t// find start chunk\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk && (chunk.start > start || chunk.end <= start)) {\n\t\t\t// found end chunk before start\n\t\t\tif (chunk.start < end && chunk.end >= end) {\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\tif (chunk && chunk.edited && chunk.start !== start)\n\t\t\tthrow new Error(`Cannot use replaced character ${start} as slice start anchor.`);\n\n\t\tconst startChunk = chunk;\n\t\twhile (chunk) {\n\t\t\tif (chunk.intro && (startChunk !== chunk || chunk.start === start)) {\n\t\t\t\tresult += chunk.intro;\n\t\t\t}\n\n\t\t\tconst containsEnd = chunk.start < end && chunk.end >= end;\n\t\t\tif (containsEnd && chunk.edited && chunk.end !== end)\n\t\t\t\tthrow new Error(`Cannot use replaced character ${end} as slice end anchor.`);\n\n\t\t\tconst sliceStart = startChunk === chunk ? start - chunk.start : 0;\n\t\t\tconst sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;\n\n\t\t\tresult += chunk.content.slice(sliceStart, sliceEnd);\n\n\t\t\tif (chunk.outro && (!containsEnd || chunk.end === end)) {\n\t\t\t\tresult += chunk.outro;\n\t\t\t}\n\n\t\t\tif (containsEnd) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t// TODO deprecate this? not really very useful\n\tsnip(start, end) {\n\t\tconst clone = this.clone();\n\t\tclone.remove(0, start);\n\t\tclone.remove(end, clone.original.length);\n\n\t\treturn clone;\n\t}\n\n\t_split(index) {\n\t\tif (this.byStart[index] || this.byEnd[index]) return;\n\n\t\tlet chunk = this.lastSearchedChunk;\n\t\tconst searchForward = index > chunk.end;\n\n\t\twhile (chunk) {\n\t\t\tif (chunk.contains(index)) return this._splitChunk(chunk, index);\n\n\t\t\tchunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];\n\t\t}\n\t}\n\n\t_splitChunk(chunk, index) {\n\t\tif (chunk.edited && chunk.content.length) {\n\t\t\t// zero-length edited chunks are a special case (overlapping replacements)\n\t\t\tconst loc = getLocator(this.original)(index);\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – \"${chunk.original}\")`,\n\t\t\t);\n\t\t}\n\n\t\tconst newChunk = chunk.split(index);\n\n\t\tthis.byEnd[index] = chunk;\n\t\tthis.byStart[index] = newChunk;\n\t\tthis.byEnd[newChunk.end] = newChunk;\n\n\t\tif (chunk === this.lastChunk) this.lastChunk = newChunk;\n\n\t\tthis.lastSearchedChunk = chunk;\n\t\treturn true;\n\t}\n\n\ttoString() {\n\t\tlet str = this.intro;\n\n\t\tlet chunk = this.firstChunk;\n\t\twhile (chunk) {\n\t\t\tstr += chunk.toString();\n\t\t\tchunk = chunk.next;\n\t\t}\n\n\t\treturn str + this.outro;\n\t}\n\n\tisEmpty() {\n\t\tlet chunk = this.firstChunk;\n\t\tdo {\n\t\t\tif (\n\t\t\t\t(chunk.intro.length && chunk.intro.trim()) ||\n\t\t\t\t(chunk.content.length && chunk.content.trim()) ||\n\t\t\t\t(chunk.outro.length && chunk.outro.trim())\n\t\t\t)\n\t\t\t\treturn false;\n\t\t} while ((chunk = chunk.next));\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\tlet chunk = this.firstChunk;\n\t\tlet length = 0;\n\t\tdo {\n\t\t\tlength += chunk.intro.length + chunk.content.length + chunk.outro.length;\n\t\t} while ((chunk = chunk.next));\n\t\treturn length;\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimEndAborted(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tthis.outro = this.outro.replace(rx, '');\n\t\tif (this.outro.length) return true;\n\n\t\tlet chunk = this.lastChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimEnd(rx);\n\n\t\t\t// if chunk was trimmed, we have a new lastChunk\n\t\t\tif (chunk.end !== end) {\n\t\t\t\tif (this.lastChunk === chunk) {\n\t\t\t\t\tthis.lastChunk = chunk.next;\n\t\t\t\t}\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.previous;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimEnd(charType) {\n\t\tthis.trimEndAborted(charType);\n\t\treturn this;\n\t}\n\ttrimStartAborted(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\n\t\tthis.intro = this.intro.replace(rx, '');\n\t\tif (this.intro.length) return true;\n\n\t\tlet chunk = this.firstChunk;\n\n\t\tdo {\n\t\t\tconst end = chunk.end;\n\t\t\tconst aborted = chunk.trimStart(rx);\n\n\t\t\tif (chunk.end !== end) {\n\t\t\t\t// special case...\n\t\t\t\tif (chunk === this.lastChunk) this.lastChunk = chunk.next;\n\n\t\t\t\tthis.byEnd[chunk.end] = chunk;\n\t\t\t\tthis.byStart[chunk.next.start] = chunk.next;\n\t\t\t\tthis.byEnd[chunk.next.end] = chunk.next;\n\t\t\t}\n\n\t\t\tif (aborted) return true;\n\t\t\tchunk = chunk.next;\n\t\t} while (chunk);\n\n\t\treturn false;\n\t}\n\n\ttrimStart(charType) {\n\t\tthis.trimStartAborted(charType);\n\t\treturn this;\n\t}\n\n\thasChanged() {\n\t\treturn this.original !== this.toString();\n\t}\n\n\t_replaceRegexp(searchValue, replacement) {\n\t\tfunction getReplacement(match, str) {\n\t\t\tif (typeof replacement === 'string') {\n\t\t\t\treturn replacement.replace(/\\$(\\$|&|\\d+)/g, (_, i) => {\n\t\t\t\t\t// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter\n\t\t\t\t\tif (i === '$') return '$';\n\t\t\t\t\tif (i === '&') return match[0];\n\t\t\t\t\tconst num = +i;\n\t\t\t\t\tif (num < match.length) return match[+i];\n\t\t\t\t\treturn `$${i}`;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\treturn replacement(...match, match.index, str, match.groups);\n\t\t\t}\n\t\t}\n\t\tfunction matchAll(re, str) {\n\t\t\tlet match;\n\t\t\tconst matches = [];\n\t\t\twhile ((match = re.exec(str))) {\n\t\t\t\tmatches.push(match);\n\t\t\t}\n\t\t\treturn matches;\n\t\t}\n\t\tif (searchValue.global) {\n\t\t\tconst matches = matchAll(searchValue, this.original);\n\t\t\tmatches.forEach((match) => {\n\t\t\t\tif (match.index != null) {\n\t\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\t\tthis.overwrite(\n\t\t\t\t\t\t\tmatch.index,\n\t\t\t\t\t\t\tmatch.index + match[0].length,\n\t\t\t\t\t\t\treplacement\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tconst match = this.original.match(searchValue);\n\t\t\tif (match && match.index != null) {\n\t\t\t\tconst replacement = getReplacement(match, this.original);\n\t\t\t\tif (replacement !== match[0]) {\n\t\t\t\t\tthis.overwrite(\n\t\t\t\t\t\tmatch.index,\n\t\t\t\t\t\tmatch.index + match[0].length,\n\t\t\t\t\t\treplacement\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\t_replaceString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst index = original.indexOf(string);\n\n\t\tif (index !== -1) {\n\t\t\tthis.overwrite(index, index + string.length, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplace(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceString(searchValue, replacement);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n\n\t_replaceAllString(string, replacement) {\n\t\tconst { original } = this;\n\t\tconst stringLength = string.length;\n\t\tfor (\n\t\t\tlet index = original.indexOf(string);\n\t\t\tindex !== -1;\n\t\t\tindex = original.indexOf(string, index + stringLength)\n\t\t) {\n\t\t\tconst previous = original.slice(index, index + stringLength);\n\t\t\tif (previous !== replacement)\n\t\t\t\tthis.overwrite(index, index + stringLength, replacement);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\treplaceAll(searchValue, replacement) {\n\t\tif (typeof searchValue === 'string') {\n\t\t\treturn this._replaceAllString(searchValue, replacement);\n\t\t}\n\n\t\tif (!searchValue.global) {\n\t\t\tthrow new TypeError(\n\t\t\t\t'MagicString.prototype.replaceAll called with a non-global RegExp argument',\n\t\t\t);\n\t\t}\n\n\t\treturn this._replaceRegexp(searchValue, replacement);\n\t}\n}\n\nconst hasOwnProp = Object.prototype.hasOwnProperty;\n\nlet Bundle$1 = class Bundle {\n\tconstructor(options = {}) {\n\t\tthis.intro = options.intro || '';\n\t\tthis.separator = options.separator !== undefined ? options.separator : '\\n';\n\t\tthis.sources = [];\n\t\tthis.uniqueSources = [];\n\t\tthis.uniqueSourceIndexByFilename = {};\n\t}\n\n\taddSource(source) {\n\t\tif (source instanceof MagicString) {\n\t\t\treturn this.addSource({\n\t\t\t\tcontent: source,\n\t\t\t\tfilename: source.filename,\n\t\t\t\tseparator: this.separator,\n\t\t\t});\n\t\t}\n\n\t\tif (!isObject$1(source) || !source.content) {\n\t\t\tthrow new Error(\n\t\t\t\t'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`',\n\t\t\t);\n\t\t}\n\n\t\t['filename', 'ignoreList', 'indentExclusionRanges', 'separator'].forEach((option) => {\n\t\t\tif (!hasOwnProp.call(source, option)) source[option] = source.content[option];\n\t\t});\n\n\t\tif (source.separator === undefined) {\n\t\t\t// TODO there's a bunch of this sort of thing, needs cleaning up\n\t\t\tsource.separator = this.separator;\n\t\t}\n\n\t\tif (source.filename) {\n\t\t\tif (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {\n\t\t\t\tthis.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;\n\t\t\t\tthis.uniqueSources.push({ filename: source.filename, content: source.content.original });\n\t\t\t} else {\n\t\t\t\tconst uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];\n\t\t\t\tif (source.content.original !== uniqueSource.content) {\n\t\t\t\t\tthrow new Error(`Illegal source: same filename (${source.filename}), different contents`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tthis.sources.push(source);\n\t\treturn this;\n\t}\n\n\tappend(str, options) {\n\t\tthis.addSource({\n\t\t\tcontent: new MagicString(str),\n\t\t\tseparator: (options && options.separator) || '',\n\t\t});\n\n\t\treturn this;\n\t}\n\n\tclone() {\n\t\tconst bundle = new Bundle({\n\t\t\tintro: this.intro,\n\t\t\tseparator: this.separator,\n\t\t});\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tbundle.addSource({\n\t\t\t\tfilename: source.filename,\n\t\t\t\tcontent: source.content.clone(),\n\t\t\t\tseparator: source.separator,\n\t\t\t});\n\t\t});\n\n\t\treturn bundle;\n\t}\n\n\tgenerateDecodedMap(options = {}) {\n\t\tconst names = [];\n\t\tlet x_google_ignoreList = undefined;\n\t\tthis.sources.forEach((source) => {\n\t\t\tObject.keys(source.content.storedNames).forEach((name) => {\n\t\t\t\tif (!~names.indexOf(name)) names.push(name);\n\t\t\t});\n\t\t});\n\n\t\tconst mappings = new Mappings(options.hires);\n\n\t\tif (this.intro) {\n\t\t\tmappings.advance(this.intro);\n\t\t}\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tif (i > 0) {\n\t\t\t\tmappings.advance(this.separator);\n\t\t\t}\n\n\t\t\tconst sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;\n\t\t\tconst magicString = source.content;\n\t\t\tconst locate = getLocator(magicString.original);\n\n\t\t\tif (magicString.intro) {\n\t\t\t\tmappings.advance(magicString.intro);\n\t\t\t}\n\n\t\t\tmagicString.firstChunk.eachNext((chunk) => {\n\t\t\t\tconst loc = locate(chunk.start);\n\n\t\t\t\tif (chunk.intro.length) mappings.advance(chunk.intro);\n\n\t\t\t\tif (source.filename) {\n\t\t\t\t\tif (chunk.edited) {\n\t\t\t\t\t\tmappings.addEdit(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk.content,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tchunk.storeName ? names.indexOf(chunk.original) : -1,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmappings.addUneditedChunk(\n\t\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\t\tchunk,\n\t\t\t\t\t\t\tmagicString.original,\n\t\t\t\t\t\t\tloc,\n\t\t\t\t\t\t\tmagicString.sourcemapLocations,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tmappings.advance(chunk.content);\n\t\t\t\t}\n\n\t\t\t\tif (chunk.outro.length) mappings.advance(chunk.outro);\n\t\t\t});\n\n\t\t\tif (magicString.outro) {\n\t\t\t\tmappings.advance(magicString.outro);\n\t\t\t}\n\n\t\t\tif (source.ignoreList && sourceIndex !== -1) {\n\t\t\t\tif (x_google_ignoreList === undefined) {\n\t\t\t\t\tx_google_ignoreList = [];\n\t\t\t\t}\n\t\t\t\tx_google_ignoreList.push(sourceIndex);\n\t\t\t}\n\t\t});\n\n\t\treturn {\n\t\t\tfile: options.file ? options.file.split(/[/\\\\]/).pop() : undefined,\n\t\t\tsources: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.file ? getRelativePath(options.file, source.filename) : source.filename;\n\t\t\t}),\n\t\t\tsourcesContent: this.uniqueSources.map((source) => {\n\t\t\t\treturn options.includeContent ? source.content : null;\n\t\t\t}),\n\t\t\tnames,\n\t\t\tmappings: mappings.raw,\n\t\t\tx_google_ignoreList,\n\t\t};\n\t}\n\n\tgenerateMap(options) {\n\t\treturn new SourceMap(this.generateDecodedMap(options));\n\t}\n\n\tgetIndentString() {\n\t\tconst indentStringCounts = {};\n\n\t\tthis.sources.forEach((source) => {\n\t\t\tconst indentStr = source.content._getRawIndentString();\n\n\t\t\tif (indentStr === null) return;\n\n\t\t\tif (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;\n\t\t\tindentStringCounts[indentStr] += 1;\n\t\t});\n\n\t\treturn (\n\t\t\tObject.keys(indentStringCounts).sort((a, b) => {\n\t\t\t\treturn indentStringCounts[a] - indentStringCounts[b];\n\t\t\t})[0] || '\\t'\n\t\t);\n\t}\n\n\tindent(indentStr) {\n\t\tif (!arguments.length) {\n\t\t\tindentStr = this.getIndentString();\n\t\t}\n\n\t\tif (indentStr === '') return this; // noop\n\n\t\tlet trailingNewline = !this.intro || this.intro.slice(-1) === '\\n';\n\n\t\tthis.sources.forEach((source, i) => {\n\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\tconst indentStart = trailingNewline || (i > 0 && /\\r?\\n$/.test(separator));\n\n\t\t\tsource.content.indent(indentStr, {\n\t\t\t\texclude: source.indentExclusionRanges,\n\t\t\t\tindentStart, //: trailingNewline || /\\r?\\n$/.test( separator ) //true///\\r?\\n/.test( separator )\n\t\t\t});\n\n\t\t\ttrailingNewline = source.content.lastChar() === '\\n';\n\t\t});\n\n\t\tif (this.intro) {\n\t\t\tthis.intro =\n\t\t\t\tindentStr +\n\t\t\t\tthis.intro.replace(/^[^\\n]/gm, (match, index) => {\n\t\t\t\t\treturn index > 0 ? indentStr + match : match;\n\t\t\t\t});\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tprepend(str) {\n\t\tthis.intro = str + this.intro;\n\t\treturn this;\n\t}\n\n\ttoString() {\n\t\tconst body = this.sources\n\t\t\t.map((source, i) => {\n\t\t\t\tconst separator = source.separator !== undefined ? source.separator : this.separator;\n\t\t\t\tconst str = (i > 0 ? separator : '') + source.content.toString();\n\n\t\t\t\treturn str;\n\t\t\t})\n\t\t\t.join('');\n\n\t\treturn this.intro + body;\n\t}\n\n\tisEmpty() {\n\t\tif (this.intro.length && this.intro.trim()) return false;\n\t\tif (this.sources.some((source) => !source.content.isEmpty())) return false;\n\t\treturn true;\n\t}\n\n\tlength() {\n\t\treturn this.sources.reduce(\n\t\t\t(length, source) => length + source.content.length(),\n\t\t\tthis.intro.length,\n\t\t);\n\t}\n\n\ttrimLines() {\n\t\treturn this.trim('[\\\\r\\\\n]');\n\t}\n\n\ttrim(charType) {\n\t\treturn this.trimStart(charType).trimEnd(charType);\n\t}\n\n\ttrimStart(charType) {\n\t\tconst rx = new RegExp('^' + (charType || '\\\\s') + '+');\n\t\tthis.intro = this.intro.replace(rx, '');\n\n\t\tif (!this.intro) {\n\t\t\tlet source;\n\t\t\tlet i = 0;\n\n\t\t\tdo {\n\t\t\t\tsource = this.sources[i++];\n\t\t\t\tif (!source) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} while (!source.content.trimStartAborted(charType));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\ttrimEnd(charType) {\n\t\tconst rx = new RegExp((charType || '\\\\s') + '+$');\n\n\t\tlet source;\n\t\tlet i = this.sources.length - 1;\n\n\t\tdo {\n\t\t\tsource = this.sources[i--];\n\t\t\tif (!source) {\n\t\t\t\tthis.intro = this.intro.replace(rx, '');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} while (!source.content.trimEndAborted(charType));\n\n\t\treturn this;\n\t}\n};\n\nconst needsEscapeRegEx = /[\\n\\r'\\\\\\u2028\\u2029]/;\nconst quoteNewlineRegEx = /([\\n\\r'\\u2028\\u2029])/g;\nconst backSlashRegEx = /\\\\/g;\nfunction escapeId(id) {\n if (!needsEscapeRegEx.test(id))\n return id;\n return id.replace(backSlashRegEx, '\\\\\\\\').replace(quoteNewlineRegEx, '\\\\$1');\n}\n\nclass ExternalChunk {\n constructor(module, options, inputBase) {\n this.options = options;\n this.inputBase = inputBase;\n this.defaultVariableName = '';\n this.namespaceVariableName = '';\n this.variableName = '';\n this.fileName = null;\n this.importAttributes = null;\n this.id = module.id;\n this.moduleInfo = module.info;\n this.renormalizeRenderPath = module.renormalizeRenderPath;\n this.suggestedVariableName = module.suggestedVariableName;\n }\n getFileName() {\n if (this.fileName) {\n return this.fileName;\n }\n const { paths } = this.options;\n return (this.fileName =\n (typeof paths === 'function' ? paths(this.id) : paths[this.id]) ||\n (this.renormalizeRenderPath ? normalize(relative(this.inputBase, this.id)) : this.id));\n }\n getImportAttributes(snippets) {\n return (this.importAttributes ||= formatAttributes(this.options.format === 'es' &&\n this.options.externalImportAttributes &&\n this.moduleInfo.attributes, snippets));\n }\n getImportPath(importer) {\n return escapeId(this.renormalizeRenderPath\n ? getImportPath(importer, this.getFileName(), this.options.format === 'amd', false)\n : this.getFileName());\n }\n}\nfunction formatAttributes(attributes, { getObject }) {\n if (!attributes) {\n return null;\n }\n const assertionEntries = Object.entries(attributes).map(([key, value]) => [key, `'${value}'`]);\n if (assertionEntries.length > 0) {\n return getObject(assertionEntries, { lineBreakIndent: null });\n }\n return null;\n}\n\nfunction getOrCreate(map, key, init) {\n const existing = map.get(key);\n if (existing !== undefined) {\n return existing;\n }\n const value = init();\n map.set(key, value);\n return value;\n}\nfunction getNewSet() {\n return new Set();\n}\nfunction getNewArray() {\n return [];\n}\n\nconst UnknownKey = Symbol('Unknown Key');\nconst UnknownNonAccessorKey = Symbol('Unknown Non-Accessor Key');\nconst UnknownInteger = Symbol('Unknown Integer');\nconst SymbolToStringTag = Symbol('Symbol.toStringTag');\nconst EMPTY_PATH = [];\nconst UNKNOWN_PATH = [UnknownKey];\n// For deoptimizations, this means we are modifying an unknown property but did\n// not lose track of the object or are creating a setter/getter;\n// For assignment effects it means we do not check for setter/getter effects\n// but only if something is mutated that is included, which is relevant for\n// Object.defineProperty\nconst UNKNOWN_NON_ACCESSOR_PATH = [UnknownNonAccessorKey];\nconst UNKNOWN_INTEGER_PATH = [UnknownInteger];\nconst EntitiesKey = Symbol('Entities');\nclass PathTracker {\n constructor() {\n this.entityPaths = Object.create(null, {\n [EntitiesKey]: { value: new Set() }\n });\n }\n trackEntityAtPathAndGetIfTracked(path, entity) {\n const trackedEntities = this.getEntities(path);\n if (trackedEntities.has(entity))\n return true;\n trackedEntities.add(entity);\n return false;\n }\n withTrackedEntityAtPath(path, entity, onUntracked, returnIfTracked) {\n const trackedEntities = this.getEntities(path);\n if (trackedEntities.has(entity))\n return returnIfTracked;\n trackedEntities.add(entity);\n const result = onUntracked();\n trackedEntities.delete(entity);\n return result;\n }\n getEntities(path) {\n let currentPaths = this.entityPaths;\n for (const pathSegment of path) {\n currentPaths = currentPaths[pathSegment] =\n currentPaths[pathSegment] ||\n Object.create(null, { [EntitiesKey]: { value: new Set() } });\n }\n return currentPaths[EntitiesKey];\n }\n}\nconst SHARED_RECURSION_TRACKER = new PathTracker();\nclass DiscriminatedPathTracker {\n constructor() {\n this.entityPaths = Object.create(null, {\n [EntitiesKey]: { value: new Map() }\n });\n }\n trackEntityAtPathAndGetIfTracked(path, discriminator, entity) {\n let currentPaths = this.entityPaths;\n for (const pathSegment of path) {\n currentPaths = currentPaths[pathSegment] =\n currentPaths[pathSegment] ||\n Object.create(null, { [EntitiesKey]: { value: new Map() } });\n }\n const trackedEntities = getOrCreate(currentPaths[EntitiesKey], discriminator, (getNewSet));\n if (trackedEntities.has(entity))\n return true;\n trackedEntities.add(entity);\n return false;\n }\n}\n\nfunction isFlagSet(flags, flag) {\n return (flags & flag) !== 0;\n}\nfunction setFlag(flags, flag, value) {\n return (flags & ~flag) | (-value & flag);\n}\n\nconst UnknownValue = Symbol('Unknown Value');\nconst UnknownTruthyValue = Symbol('Unknown Truthy Value');\nclass ExpressionEntity {\n constructor() {\n this.flags = 0;\n }\n get included() {\n return isFlagSet(this.flags, 1 /* Flag.included */);\n }\n set included(value) {\n this.flags = setFlag(this.flags, 1 /* Flag.included */, value);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, _path, _recursionTracker) {\n deoptimizeInteraction(interaction);\n }\n deoptimizePath(_path) { }\n /**\n * If possible it returns a stringifyable literal value for this node that\n * can be used for inlining or comparing values. Otherwise, it should return\n * UnknownValue.\n */\n getLiteralValueAtPath(_path, _recursionTracker, _origin) {\n return UnknownValue;\n }\n getReturnExpressionWhenCalledAtPath(_path, _interaction, _recursionTracker, _origin) {\n return UNKNOWN_RETURN_EXPRESSION;\n }\n hasEffectsOnInteractionAtPath(_path, _interaction, _context) {\n return true;\n }\n include(_context, _includeChildrenRecursively, _options) {\n this.included = true;\n }\n includeCallArguments(context, parameters) {\n for (const argument of parameters) {\n argument.include(context, false);\n }\n }\n shouldBeIncluded(_context) {\n return true;\n }\n}\nconst UNKNOWN_EXPRESSION = new (class UnknownExpression extends ExpressionEntity {\n})();\nconst UNKNOWN_RETURN_EXPRESSION = [\n UNKNOWN_EXPRESSION,\n false\n];\nconst deoptimizeInteraction = (interaction) => {\n for (const argument of interaction.args) {\n argument?.deoptimizePath(UNKNOWN_PATH);\n }\n};\n\nconst INTERACTION_ACCESSED = 0;\nconst INTERACTION_ASSIGNED = 1;\nconst INTERACTION_CALLED = 2;\nconst NODE_INTERACTION_UNKNOWN_ACCESS = {\n args: [null],\n type: INTERACTION_ACCESSED\n};\nconst NODE_INTERACTION_UNKNOWN_ASSIGNMENT = {\n args: [null, UNKNOWN_EXPRESSION],\n type: INTERACTION_ASSIGNED\n};\n// While this is technically a call without arguments, we can compare against\n// this reference in places where precise values or this argument would make a\n// difference\nconst NODE_INTERACTION_UNKNOWN_CALL = {\n args: [null],\n type: INTERACTION_CALLED,\n withNew: false\n};\n\nclass Variable extends ExpressionEntity {\n markReassigned() {\n this.isReassigned = true;\n }\n constructor(name) {\n super();\n this.name = name;\n this.alwaysRendered = false;\n this.forbiddenNames = null;\n this.initReached = false;\n this.isId = false;\n this.kind = null;\n this.renderBaseName = null;\n this.renderName = null;\n this.isReassigned = false;\n this.onlyFunctionCallUsed = true;\n }\n /**\n * Binds identifiers that reference this variable to this variable.\n * Necessary to be able to change variable names.\n */\n addReference(_identifier) { }\n /**\n * Check if the identifier variable is only used as function call\n * @returns true if the variable is only used as function call\n */\n getOnlyFunctionCallUsed() {\n return this.onlyFunctionCallUsed;\n }\n /**\n * Collect the places where the identifier variable is used\n * @param usedPlace Where the variable is used\n */\n addUsedPlace(usedPlace) {\n const isFunctionCall = usedPlace.parent.type === CallExpression$1 &&\n usedPlace.parent.callee === usedPlace;\n if (!isFunctionCall && usedPlace.parent.type !== ExportDefaultDeclaration$1) {\n this.onlyFunctionCallUsed = false;\n }\n }\n /**\n * Prevent this variable from being renamed to this name to avoid name\n * collisions\n */\n forbidName(name) {\n (this.forbiddenNames ||= new Set()).add(name);\n }\n getBaseVariableName() {\n return (this.renderedLikeHoisted?.getBaseVariableName() ||\n this.renderBaseName ||\n this.renderName ||\n this.name);\n }\n getName(getPropertyAccess, useOriginalName) {\n if (useOriginalName?.(this)) {\n return this.name;\n }\n if (this.renderedLikeHoisted) {\n return this.renderedLikeHoisted.getName(getPropertyAccess, useOriginalName);\n }\n const name = this.renderName || this.name;\n return this.renderBaseName ? `${this.renderBaseName}${getPropertyAccess(name)}` : name;\n }\n hasEffectsOnInteractionAtPath(path, { type }, _context) {\n return type !== INTERACTION_ACCESSED || path.length > 0;\n }\n /**\n * Marks this variable as being part of the bundle, which is usually the case when one of\n * its identifiers becomes part of the bundle. Returns true if it has not been included\n * previously.\n * Once a variable is included, it should take care all its declarations are included.\n */\n include() {\n this.included = true;\n this.renderedLikeHoisted?.include();\n }\n /**\n * Links the rendered name of this variable to another variable and includes\n * this variable if the other variable is included.\n */\n renderLikeHoisted(variable) {\n this.renderedLikeHoisted = variable;\n }\n markCalledFromTryStatement() { }\n setRenderNames(baseName, name) {\n this.renderBaseName = baseName;\n this.renderName = name;\n }\n}\n\nclass ExternalVariable extends Variable {\n constructor(module, name) {\n super(name);\n this.referenced = false;\n this.module = module;\n this.isNamespace = name === '*';\n }\n addReference(identifier) {\n this.referenced = true;\n if (this.name === 'default' || this.name === '*') {\n this.module.suggestName(identifier.name);\n }\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return type !== INTERACTION_ACCESSED || path.length > (this.isNamespace ? 1 : 0);\n }\n include() {\n super.include();\n this.module.used = true;\n }\n}\n\nfunction cacheObjectGetters(object, getterProperties) {\n for (const property of getterProperties) {\n const propertyGetter = Object.getOwnPropertyDescriptor(object, property).get;\n Object.defineProperty(object, property, {\n get() {\n const value = propertyGetter.call(object);\n // This replaces the getter with a fixed value for subsequent calls\n Object.defineProperty(object, property, { value });\n return value;\n }\n });\n }\n}\n\nconst RESERVED_NAMES = new Set([\n 'await',\n 'break',\n 'case',\n 'catch',\n 'class',\n 'const',\n 'continue',\n 'debugger',\n 'default',\n 'delete',\n 'do',\n 'else',\n 'enum',\n 'eval',\n 'export',\n 'extends',\n 'false',\n 'finally',\n 'for',\n 'function',\n 'if',\n 'implements',\n 'import',\n 'in',\n 'instanceof',\n 'interface',\n 'let',\n 'NaN',\n 'new',\n 'null',\n 'package',\n 'private',\n 'protected',\n 'public',\n 'return',\n 'static',\n 'super',\n 'switch',\n 'this',\n 'throw',\n 'true',\n 'try',\n 'typeof',\n 'undefined',\n 'var',\n 'void',\n 'while',\n 'with',\n 'yield'\n]);\n\nconst illegalCharacters = /[^\\w$]/g;\nconst startsWithDigit = (value) => /\\d/.test(value[0]);\nconst needsEscape = (value) => startsWithDigit(value) || RESERVED_NAMES.has(value) || value === 'arguments';\nfunction isLegal(value) {\n if (needsEscape(value)) {\n return false;\n }\n return !illegalCharacters.test(value);\n}\nfunction makeLegal(value) {\n value = value\n .replace(/-(\\w)/g, (_, letter) => letter.toUpperCase())\n .replace(illegalCharacters, '_');\n if (needsEscape(value))\n value = `_${value}`;\n return value || '_';\n}\nconst VALID_IDENTIFIER_REGEXP = /^[$_\\p{ID_Start}][$\\u200C\\u200D\\p{ID_Continue}]*$/u;\nconst NUMBER_REGEXP = /^(?:0|[1-9]\\d*)$/;\nfunction stringifyObjectKeyIfNeeded(key) {\n if (VALID_IDENTIFIER_REGEXP.test(key)) {\n return key === '__proto__' ? '[\"__proto__\"]' : key;\n }\n if (NUMBER_REGEXP.test(key) && +key <= Number.MAX_SAFE_INTEGER) {\n return key;\n }\n return JSON.stringify(key);\n}\nfunction stringifyIdentifierIfNeeded(key) {\n if (VALID_IDENTIFIER_REGEXP.test(key)) {\n return key;\n }\n return JSON.stringify(key);\n}\n\nclass ExternalModule {\n constructor(options, id, moduleSideEffects, meta, renormalizeRenderPath, attributes) {\n this.options = options;\n this.id = id;\n this.renormalizeRenderPath = renormalizeRenderPath;\n this.dynamicImporters = [];\n this.execIndex = Infinity;\n this.exportedVariables = new Map();\n this.importers = [];\n this.reexported = false;\n this.used = false;\n this.declarations = new Map();\n this.mostCommonSuggestion = 0;\n this.nameSuggestions = new Map();\n this.suggestedVariableName = makeLegal(id.split(/[/\\\\]/).pop());\n const { importers, dynamicImporters } = this;\n this.info = {\n ast: null,\n attributes,\n code: null,\n dynamicallyImportedIdResolutions: EMPTY_ARRAY,\n dynamicallyImportedIds: EMPTY_ARRAY,\n get dynamicImporters() {\n return dynamicImporters.sort();\n },\n exportedBindings: null,\n exports: null,\n hasDefaultExport: null,\n id,\n implicitlyLoadedAfterOneOf: EMPTY_ARRAY,\n implicitlyLoadedBefore: EMPTY_ARRAY,\n importedIdResolutions: EMPTY_ARRAY,\n importedIds: EMPTY_ARRAY,\n get importers() {\n return importers.sort();\n },\n isEntry: false,\n isExternal: true,\n isIncluded: null,\n meta,\n moduleSideEffects,\n syntheticNamedExports: false\n };\n }\n cacheInfoGetters() {\n cacheObjectGetters(this.info, ['dynamicImporters', 'importers']);\n }\n getVariableForExportName(name) {\n const declaration = this.declarations.get(name);\n if (declaration)\n return [declaration];\n const externalVariable = new ExternalVariable(this, name);\n this.declarations.set(name, externalVariable);\n this.exportedVariables.set(externalVariable, name);\n return [externalVariable];\n }\n suggestName(name) {\n const value = (this.nameSuggestions.get(name) ?? 0) + 1;\n this.nameSuggestions.set(name, value);\n if (value > this.mostCommonSuggestion) {\n this.mostCommonSuggestion = value;\n this.suggestedVariableName = name;\n }\n }\n warnUnusedImports() {\n const unused = [...this.declarations]\n .filter(([name, declaration]) => name !== '*' && !declaration.included && !this.reexported && !declaration.referenced)\n .map(([name]) => name);\n if (unused.length === 0)\n return;\n const importersSet = new Set();\n for (const name of unused) {\n for (const importer of this.declarations.get(name).module.importers) {\n importersSet.add(importer);\n }\n }\n const importersArray = [...importersSet];\n this.options.onLog(LOGLEVEL_WARN, logUnusedExternalImports(this.id, unused, importersArray));\n }\n}\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction getAugmentedNamespace(n) {\n if (n.__esModule) return n;\n var f = n.default;\n\tif (typeof f == \"function\") {\n\t\tvar a = function a () {\n\t\t\tif (this instanceof a) {\n return Reflect.construct(f, arguments, this.constructor);\n\t\t\t}\n\t\t\treturn f.apply(this, arguments);\n\t\t};\n\t\ta.prototype = f.prototype;\n } else a = {};\n Object.defineProperty(a, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nvar utils$3 = {};\n\nconst path$1 = require$$0;\nconst WIN_SLASH = '\\\\\\\\/';\nconst WIN_NO_SLASH = `[^${WIN_SLASH}]`;\n\n/**\n * Posix glob regex\n */\n\nconst DOT_LITERAL = '\\\\.';\nconst PLUS_LITERAL = '\\\\+';\nconst QMARK_LITERAL = '\\\\?';\nconst SLASH_LITERAL = '\\\\/';\nconst ONE_CHAR = '(?=.)';\nconst QMARK = '[^/]';\nconst END_ANCHOR = `(?:${SLASH_LITERAL}|$)`;\nconst START_ANCHOR = `(?:^|${SLASH_LITERAL})`;\nconst DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`;\nconst NO_DOT = `(?!${DOT_LITERAL})`;\nconst NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`;\nconst NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`;\nconst NO_DOTS_SLASH = `(?!${DOTS_SLASH})`;\nconst QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`;\nconst STAR = `${QMARK}*?`;\n\nconst POSIX_CHARS = {\n DOT_LITERAL,\n PLUS_LITERAL,\n QMARK_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n QMARK,\n END_ANCHOR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n};\n\n/**\n * Windows glob regex\n */\n\nconst WINDOWS_CHARS = {\n ...POSIX_CHARS,\n\n SLASH_LITERAL: `[${WIN_SLASH}]`,\n QMARK: WIN_NO_SLASH,\n STAR: `${WIN_NO_SLASH}*?`,\n DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`,\n NO_DOT: `(?!${DOT_LITERAL})`,\n NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`,\n NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`,\n QMARK_NO_DOT: `[^.${WIN_SLASH}]`,\n START_ANCHOR: `(?:^|[${WIN_SLASH}])`,\n END_ANCHOR: `(?:[${WIN_SLASH}]|$)`\n};\n\n/**\n * POSIX Bracket Regex\n */\n\nconst POSIX_REGEX_SOURCE$1 = {\n alnum: 'a-zA-Z0-9',\n alpha: 'a-zA-Z',\n ascii: '\\\\x00-\\\\x7F',\n blank: ' \\\\t',\n cntrl: '\\\\x00-\\\\x1F\\\\x7F',\n digit: '0-9',\n graph: '\\\\x21-\\\\x7E',\n lower: 'a-z',\n print: '\\\\x20-\\\\x7E ',\n punct: '\\\\-!\"#$%&\\'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~',\n space: ' \\\\t\\\\r\\\\n\\\\v\\\\f',\n upper: 'A-Z',\n word: 'A-Za-z0-9_',\n xdigit: 'A-Fa-f0-9'\n};\n\nvar constants$2 = {\n MAX_LENGTH: 1024 * 64,\n POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1,\n\n // regular expressions\n REGEX_BACKSLASH: /\\\\(?![*+?^${}(|)[\\]])/g,\n REGEX_NON_SPECIAL_CHARS: /^[^@![\\].,$*+?^{}()|\\\\/]+/,\n REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\\]]/,\n REGEX_SPECIAL_CHARS_BACKREF: /(\\\\?)((\\W)(\\3*))/g,\n REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\\]])/g,\n REGEX_REMOVE_BACKSLASH: /(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,\n\n // Replace globs with equivalent patterns to reduce parsing time.\n REPLACEMENTS: {\n '***': '*',\n '**/**': '**',\n '**/**/**': '**'\n },\n\n // Digits\n CHAR_0: 48, /* 0 */\n CHAR_9: 57, /* 9 */\n\n // Alphabet chars.\n CHAR_UPPERCASE_A: 65, /* A */\n CHAR_LOWERCASE_A: 97, /* a */\n CHAR_UPPERCASE_Z: 90, /* Z */\n CHAR_LOWERCASE_Z: 122, /* z */\n\n CHAR_LEFT_PARENTHESES: 40, /* ( */\n CHAR_RIGHT_PARENTHESES: 41, /* ) */\n\n CHAR_ASTERISK: 42, /* * */\n\n // Non-alphabetic chars.\n CHAR_AMPERSAND: 38, /* & */\n CHAR_AT: 64, /* @ */\n CHAR_BACKWARD_SLASH: 92, /* \\ */\n CHAR_CARRIAGE_RETURN: 13, /* \\r */\n CHAR_CIRCUMFLEX_ACCENT: 94, /* ^ */\n CHAR_COLON: 58, /* : */\n CHAR_COMMA: 44, /* , */\n CHAR_DOT: 46, /* . */\n CHAR_DOUBLE_QUOTE: 34, /* \" */\n CHAR_EQUAL: 61, /* = */\n CHAR_EXCLAMATION_MARK: 33, /* ! */\n CHAR_FORM_FEED: 12, /* \\f */\n CHAR_FORWARD_SLASH: 47, /* / */\n CHAR_GRAVE_ACCENT: 96, /* ` */\n CHAR_HASH: 35, /* # */\n CHAR_HYPHEN_MINUS: 45, /* - */\n CHAR_LEFT_ANGLE_BRACKET: 60, /* < */\n CHAR_LEFT_CURLY_BRACE: 123, /* { */\n CHAR_LEFT_SQUARE_BRACKET: 91, /* [ */\n CHAR_LINE_FEED: 10, /* \\n */\n CHAR_NO_BREAK_SPACE: 160, /* \\u00A0 */\n CHAR_PERCENT: 37, /* % */\n CHAR_PLUS: 43, /* + */\n CHAR_QUESTION_MARK: 63, /* ? */\n CHAR_RIGHT_ANGLE_BRACKET: 62, /* > */\n CHAR_RIGHT_CURLY_BRACE: 125, /* } */\n CHAR_RIGHT_SQUARE_BRACKET: 93, /* ] */\n CHAR_SEMICOLON: 59, /* ; */\n CHAR_SINGLE_QUOTE: 39, /* ' */\n CHAR_SPACE: 32, /* */\n CHAR_TAB: 9, /* \\t */\n CHAR_UNDERSCORE: 95, /* _ */\n CHAR_VERTICAL_LINE: 124, /* | */\n CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, /* \\uFEFF */\n\n SEP: path$1.sep,\n\n /**\n * Create EXTGLOB_CHARS\n */\n\n extglobChars(chars) {\n return {\n '!': { type: 'negate', open: '(?:(?!(?:', close: `))${chars.STAR})` },\n '?': { type: 'qmark', open: '(?:', close: ')?' },\n '+': { type: 'plus', open: '(?:', close: ')+' },\n '*': { type: 'star', open: '(?:', close: ')*' },\n '@': { type: 'at', open: '(?:', close: ')' }\n };\n },\n\n /**\n * Create GLOB_CHARS\n */\n\n globChars(win32) {\n return win32 === true ? WINDOWS_CHARS : POSIX_CHARS;\n }\n};\n\n(function (exports) {\n\n\tconst path = require$$0;\n\tconst win32 = process.platform === 'win32';\n\tconst {\n\t REGEX_BACKSLASH,\n\t REGEX_REMOVE_BACKSLASH,\n\t REGEX_SPECIAL_CHARS,\n\t REGEX_SPECIAL_CHARS_GLOBAL\n\t} = constants$2;\n\n\texports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);\n\texports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);\n\texports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);\n\texports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\\\$1');\n\texports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');\n\n\texports.removeBackslashes = str => {\n\t return str.replace(REGEX_REMOVE_BACKSLASH, match => {\n\t return match === '\\\\' ? '' : match;\n\t });\n\t};\n\n\texports.supportsLookbehinds = () => {\n\t const segs = process.version.slice(1).split('.').map(Number);\n\t if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {\n\t return true;\n\t }\n\t return false;\n\t};\n\n\texports.isWindows = options => {\n\t if (options && typeof options.windows === 'boolean') {\n\t return options.windows;\n\t }\n\t return win32 === true || path.sep === '\\\\';\n\t};\n\n\texports.escapeLast = (input, char, lastIdx) => {\n\t const idx = input.lastIndexOf(char, lastIdx);\n\t if (idx === -1) return input;\n\t if (input[idx - 1] === '\\\\') return exports.escapeLast(input, char, idx - 1);\n\t return `${input.slice(0, idx)}\\\\${input.slice(idx)}`;\n\t};\n\n\texports.removePrefix = (input, state = {}) => {\n\t let output = input;\n\t if (output.startsWith('./')) {\n\t output = output.slice(2);\n\t state.prefix = './';\n\t }\n\t return output;\n\t};\n\n\texports.wrapOutput = (input, state = {}, options = {}) => {\n\t const prepend = options.contains ? '' : '^';\n\t const append = options.contains ? '' : '$';\n\n\t let output = `${prepend}(?:${input})${append}`;\n\t if (state.negated === true) {\n\t output = `(?:^(?!${output}).*$)`;\n\t }\n\t return output;\n\t}; \n} (utils$3));\n\nconst utils$2 = utils$3;\nconst {\n CHAR_ASTERISK, /* * */\n CHAR_AT, /* @ */\n CHAR_BACKWARD_SLASH, /* \\ */\n CHAR_COMMA, /* , */\n CHAR_DOT, /* . */\n CHAR_EXCLAMATION_MARK, /* ! */\n CHAR_FORWARD_SLASH, /* / */\n CHAR_LEFT_CURLY_BRACE, /* { */\n CHAR_LEFT_PARENTHESES, /* ( */\n CHAR_LEFT_SQUARE_BRACKET, /* [ */\n CHAR_PLUS, /* + */\n CHAR_QUESTION_MARK, /* ? */\n CHAR_RIGHT_CURLY_BRACE, /* } */\n CHAR_RIGHT_PARENTHESES, /* ) */\n CHAR_RIGHT_SQUARE_BRACKET /* ] */\n} = constants$2;\n\nconst isPathSeparator = code => {\n return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH;\n};\n\nconst depth = token => {\n if (token.isPrefix !== true) {\n token.depth = token.isGlobstar ? Infinity : 1;\n }\n};\n\n/**\n * Quickly scans a glob pattern and returns an object with a handful of\n * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),\n * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not\n * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).\n *\n * ```js\n * const pm = require('picomatch');\n * console.log(pm.scan('foo/bar/*.js'));\n * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }\n * ```\n * @param {String} `str`\n * @param {Object} `options`\n * @return {Object} Returns an object with tokens and regex source string.\n * @api public\n */\n\nconst scan$1 = (input, options) => {\n const opts = options || {};\n\n const length = input.length - 1;\n const scanToEnd = opts.parts === true || opts.scanToEnd === true;\n const slashes = [];\n const tokens = [];\n const parts = [];\n\n let str = input;\n let index = -1;\n let start = 0;\n let lastIndex = 0;\n let isBrace = false;\n let isBracket = false;\n let isGlob = false;\n let isExtglob = false;\n let isGlobstar = false;\n let braceEscaped = false;\n let backslashes = false;\n let negated = false;\n let negatedExtglob = false;\n let finished = false;\n let braces = 0;\n let prev;\n let code;\n let token = { value: '', depth: 0, isGlob: false };\n\n const eos = () => index >= length;\n const peek = () => str.charCodeAt(index + 1);\n const advance = () => {\n prev = code;\n return str.charCodeAt(++index);\n };\n\n while (index < length) {\n code = advance();\n let next;\n\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braceEscaped = true;\n }\n continue;\n }\n\n if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (code === CHAR_LEFT_CURLY_BRACE) {\n braces++;\n continue;\n }\n\n if (braceEscaped !== true && code === CHAR_DOT && (code = advance()) === CHAR_DOT) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (braceEscaped !== true && code === CHAR_COMMA) {\n isBrace = token.isBrace = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_RIGHT_CURLY_BRACE) {\n braces--;\n\n if (braces === 0) {\n braceEscaped = false;\n isBrace = token.isBrace = true;\n finished = true;\n break;\n }\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (code === CHAR_FORWARD_SLASH) {\n slashes.push(index);\n tokens.push(token);\n token = { value: '', depth: 0, isGlob: false };\n\n if (finished === true) continue;\n if (prev === CHAR_DOT && index === (start + 1)) {\n start += 2;\n continue;\n }\n\n lastIndex = index + 1;\n continue;\n }\n\n if (opts.noext !== true) {\n const isExtglobChar = code === CHAR_PLUS\n || code === CHAR_AT\n || code === CHAR_ASTERISK\n || code === CHAR_QUESTION_MARK\n || code === CHAR_EXCLAMATION_MARK;\n\n if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n isExtglob = token.isExtglob = true;\n finished = true;\n if (code === CHAR_EXCLAMATION_MARK && index === start) {\n negatedExtglob = true;\n }\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n }\n\n if (code === CHAR_ASTERISK) {\n if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true;\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_QUESTION_MARK) {\n isGlob = token.isGlob = true;\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n break;\n }\n\n if (code === CHAR_LEFT_SQUARE_BRACKET) {\n while (eos() !== true && (next = advance())) {\n if (next === CHAR_BACKWARD_SLASH) {\n backslashes = token.backslashes = true;\n advance();\n continue;\n }\n\n if (next === CHAR_RIGHT_SQUARE_BRACKET) {\n isBracket = token.isBracket = true;\n isGlob = token.isGlob = true;\n finished = true;\n break;\n }\n }\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n\n if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) {\n negated = token.negated = true;\n start++;\n continue;\n }\n\n if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES) {\n isGlob = token.isGlob = true;\n\n if (scanToEnd === true) {\n while (eos() !== true && (code = advance())) {\n if (code === CHAR_LEFT_PARENTHESES) {\n backslashes = token.backslashes = true;\n code = advance();\n continue;\n }\n\n if (code === CHAR_RIGHT_PARENTHESES) {\n finished = true;\n break;\n }\n }\n continue;\n }\n break;\n }\n\n if (isGlob === true) {\n finished = true;\n\n if (scanToEnd === true) {\n continue;\n }\n\n break;\n }\n }\n\n if (opts.noext === true) {\n isExtglob = false;\n isGlob = false;\n }\n\n let base = str;\n let prefix = '';\n let glob = '';\n\n if (start > 0) {\n prefix = str.slice(0, start);\n str = str.slice(start);\n lastIndex -= start;\n }\n\n if (base && isGlob === true && lastIndex > 0) {\n base = str.slice(0, lastIndex);\n glob = str.slice(lastIndex);\n } else if (isGlob === true) {\n base = '';\n glob = str;\n } else {\n base = str;\n }\n\n if (base && base !== '' && base !== '/' && base !== str) {\n if (isPathSeparator(base.charCodeAt(base.length - 1))) {\n base = base.slice(0, -1);\n }\n }\n\n if (opts.unescape === true) {\n if (glob) glob = utils$2.removeBackslashes(glob);\n\n if (base && backslashes === true) {\n base = utils$2.removeBackslashes(base);\n }\n }\n\n const state = {\n prefix,\n input,\n start,\n base,\n glob,\n isBrace,\n isBracket,\n isGlob,\n isExtglob,\n isGlobstar,\n negated,\n negatedExtglob\n };\n\n if (opts.tokens === true) {\n state.maxDepth = 0;\n if (!isPathSeparator(code)) {\n tokens.push(token);\n }\n state.tokens = tokens;\n }\n\n if (opts.parts === true || opts.tokens === true) {\n let prevIndex;\n\n for (let idx = 0; idx < slashes.length; idx++) {\n const n = prevIndex ? prevIndex + 1 : start;\n const i = slashes[idx];\n const value = input.slice(n, i);\n if (opts.tokens) {\n if (idx === 0 && start !== 0) {\n tokens[idx].isPrefix = true;\n tokens[idx].value = prefix;\n } else {\n tokens[idx].value = value;\n }\n depth(tokens[idx]);\n state.maxDepth += tokens[idx].depth;\n }\n if (idx !== 0 || value !== '') {\n parts.push(value);\n }\n prevIndex = i;\n }\n\n if (prevIndex && prevIndex + 1 < input.length) {\n const value = input.slice(prevIndex + 1);\n parts.push(value);\n\n if (opts.tokens) {\n tokens[tokens.length - 1].value = value;\n depth(tokens[tokens.length - 1]);\n state.maxDepth += tokens[tokens.length - 1].depth;\n }\n }\n\n state.slashes = slashes;\n state.parts = parts;\n }\n\n return state;\n};\n\nvar scan_1 = scan$1;\n\nconst constants$1 = constants$2;\nconst utils$1 = utils$3;\n\n/**\n * Constants\n */\n\nconst {\n MAX_LENGTH,\n POSIX_REGEX_SOURCE,\n REGEX_NON_SPECIAL_CHARS,\n REGEX_SPECIAL_CHARS_BACKREF,\n REPLACEMENTS\n} = constants$1;\n\n/**\n * Helpers\n */\n\nconst expandRange = (args, options) => {\n if (typeof options.expandRange === 'function') {\n return options.expandRange(...args, options);\n }\n\n args.sort();\n const value = `[${args.join('-')}]`;\n\n return value;\n};\n\n/**\n * Create the message for a syntax error\n */\n\nconst syntaxError = (type, char) => {\n return `Missing ${type}: \"${char}\" - use \"\\\\\\\\${char}\" to match literal characters`;\n};\n\n/**\n * Parse the given input string.\n * @param {String} input\n * @param {Object} options\n * @return {Object}\n */\n\nconst parse$1 = (input, options) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected a string');\n }\n\n input = REPLACEMENTS[input] || input;\n\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n\n let len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n const bos = { type: 'bos', value: '', output: opts.prepend || '' };\n const tokens = [bos];\n\n const capture = opts.capture ? '' : '?:';\n const win32 = utils$1.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const PLATFORM_CHARS = constants$1.globChars(win32);\n const EXTGLOB_CHARS = constants$1.extglobChars(PLATFORM_CHARS);\n\n const {\n DOT_LITERAL,\n PLUS_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOT_SLASH,\n NO_DOTS_SLASH,\n QMARK,\n QMARK_NO_DOT,\n STAR,\n START_ANCHOR\n } = PLATFORM_CHARS;\n\n const globstar = opts => {\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const nodot = opts.dot ? '' : NO_DOT;\n const qmarkNoDot = opts.dot ? QMARK : QMARK_NO_DOT;\n let star = opts.bash === true ? globstar(opts) : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n // minimatch options support\n if (typeof opts.noext === 'boolean') {\n opts.noextglob = opts.noext;\n }\n\n const state = {\n input,\n index: -1,\n start: 0,\n dot: opts.dot === true,\n consumed: '',\n output: '',\n prefix: '',\n backtrack: false,\n negated: false,\n brackets: 0,\n braces: 0,\n parens: 0,\n quotes: 0,\n globstar: false,\n tokens\n };\n\n input = utils$1.removePrefix(input, state);\n len = input.length;\n\n const extglobs = [];\n const braces = [];\n const stack = [];\n let prev = bos;\n let value;\n\n /**\n * Tokenizing helpers\n */\n\n const eos = () => state.index === len - 1;\n const peek = state.peek = (n = 1) => input[state.index + n];\n const advance = state.advance = () => input[++state.index] || '';\n const remaining = () => input.slice(state.index + 1);\n const consume = (value = '', num = 0) => {\n state.consumed += value;\n state.index += num;\n };\n\n const append = token => {\n state.output += token.output != null ? token.output : token.value;\n consume(token.value);\n };\n\n const negate = () => {\n let count = 1;\n\n while (peek() === '!' && (peek(2) !== '(' || peek(3) === '?')) {\n advance();\n state.start++;\n count++;\n }\n\n if (count % 2 === 0) {\n return false;\n }\n\n state.negated = true;\n state.start++;\n return true;\n };\n\n const increment = type => {\n state[type]++;\n stack.push(type);\n };\n\n const decrement = type => {\n state[type]--;\n stack.pop();\n };\n\n /**\n * Push tokens onto the tokens array. This helper speeds up\n * tokenizing by 1) helping us avoid backtracking as much as possible,\n * and 2) helping us avoid creating extra tokens when consecutive\n * characters are plain text. This improves performance and simplifies\n * lookbehinds.\n */\n\n const push = tok => {\n if (prev.type === 'globstar') {\n const isBrace = state.braces > 0 && (tok.type === 'comma' || tok.type === 'brace');\n const isExtglob = tok.extglob === true || (extglobs.length && (tok.type === 'pipe' || tok.type === 'paren'));\n\n if (tok.type !== 'slash' && tok.type !== 'paren' && !isBrace && !isExtglob) {\n state.output = state.output.slice(0, -prev.output.length);\n prev.type = 'star';\n prev.value = '*';\n prev.output = star;\n state.output += prev.output;\n }\n }\n\n if (extglobs.length && tok.type !== 'paren') {\n extglobs[extglobs.length - 1].inner += tok.value;\n }\n\n if (tok.value || tok.output) append(tok);\n if (prev && prev.type === 'text' && tok.type === 'text') {\n prev.value += tok.value;\n prev.output = (prev.output || '') + tok.value;\n return;\n }\n\n tok.prev = prev;\n tokens.push(tok);\n prev = tok;\n };\n\n const extglobOpen = (type, value) => {\n const token = { ...EXTGLOB_CHARS[value], conditions: 1, inner: '' };\n\n token.prev = prev;\n token.parens = state.parens;\n token.output = state.output;\n const output = (opts.capture ? '(' : '') + token.open;\n\n increment('parens');\n push({ type, value, output: state.output ? '' : ONE_CHAR });\n push({ type: 'paren', extglob: true, value: advance(), output });\n extglobs.push(token);\n };\n\n const extglobClose = token => {\n let output = token.close + (opts.capture ? ')' : '');\n let rest;\n\n if (token.type === 'negate') {\n let extglobStar = star;\n\n if (token.inner && token.inner.length > 1 && token.inner.includes('/')) {\n extglobStar = globstar(opts);\n }\n\n if (extglobStar !== star || eos() || /^\\)+$/.test(remaining())) {\n output = token.close = `)$))${extglobStar}`;\n }\n\n if (token.inner.includes('*') && (rest = remaining()) && /^\\.[^\\\\/.]+$/.test(rest)) {\n // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.\n // In this case, we need to parse the string and use it in the output of the original pattern.\n // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.\n //\n // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.\n const expression = parse$1(rest, { ...options, fastpaths: false }).output;\n\n output = token.close = `)${expression})${extglobStar})`;\n }\n\n if (token.prev.type === 'bos') {\n state.negatedExtglob = true;\n }\n }\n\n push({ type: 'paren', extglob: true, value, output });\n decrement('parens');\n };\n\n /**\n * Fast paths\n */\n\n if (opts.fastpaths !== false && !/(^[*!]|[/()[\\]{}\"])/.test(input)) {\n let backslashes = false;\n\n let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars, first, rest, index) => {\n if (first === '\\\\') {\n backslashes = true;\n return m;\n }\n\n if (first === '?') {\n if (esc) {\n return esc + first + (rest ? QMARK.repeat(rest.length) : '');\n }\n if (index === 0) {\n return qmarkNoDot + (rest ? QMARK.repeat(rest.length) : '');\n }\n return QMARK.repeat(chars.length);\n }\n\n if (first === '.') {\n return DOT_LITERAL.repeat(chars.length);\n }\n\n if (first === '*') {\n if (esc) {\n return esc + first + (rest ? star : '');\n }\n return star;\n }\n return esc ? m : `\\\\${m}`;\n });\n\n if (backslashes === true) {\n if (opts.unescape === true) {\n output = output.replace(/\\\\/g, '');\n } else {\n output = output.replace(/\\\\+/g, m => {\n return m.length % 2 === 0 ? '\\\\\\\\' : (m ? '\\\\' : '');\n });\n }\n }\n\n if (output === input && opts.contains === true) {\n state.output = input;\n return state;\n }\n\n state.output = utils$1.wrapOutput(output, state, options);\n return state;\n }\n\n /**\n * Tokenize input until we reach end-of-string\n */\n\n while (!eos()) {\n value = advance();\n\n if (value === '\\u0000') {\n continue;\n }\n\n /**\n * Escaped characters\n */\n\n if (value === '\\\\') {\n const next = peek();\n\n if (next === '/' && opts.bash !== true) {\n continue;\n }\n\n if (next === '.' || next === ';') {\n continue;\n }\n\n if (!next) {\n value += '\\\\';\n push({ type: 'text', value });\n continue;\n }\n\n // collapse slashes to reduce potential for exploits\n const match = /^\\\\+/.exec(remaining());\n let slashes = 0;\n\n if (match && match[0].length > 2) {\n slashes = match[0].length;\n state.index += slashes;\n if (slashes % 2 !== 0) {\n value += '\\\\';\n }\n }\n\n if (opts.unescape === true) {\n value = advance();\n } else {\n value += advance();\n }\n\n if (state.brackets === 0) {\n push({ type: 'text', value });\n continue;\n }\n }\n\n /**\n * If we're inside a regex character class, continue\n * until we reach the closing bracket.\n */\n\n if (state.brackets > 0 && (value !== ']' || prev.value === '[' || prev.value === '[^')) {\n if (opts.posix !== false && value === ':') {\n const inner = prev.value.slice(1);\n if (inner.includes('[')) {\n prev.posix = true;\n\n if (inner.includes(':')) {\n const idx = prev.value.lastIndexOf('[');\n const pre = prev.value.slice(0, idx);\n const rest = prev.value.slice(idx + 2);\n const posix = POSIX_REGEX_SOURCE[rest];\n if (posix) {\n prev.value = pre + posix;\n state.backtrack = true;\n advance();\n\n if (!bos.output && tokens.indexOf(prev) === 1) {\n bos.output = ONE_CHAR;\n }\n continue;\n }\n }\n }\n }\n\n if ((value === '[' && peek() !== ':') || (value === '-' && peek() === ']')) {\n value = `\\\\${value}`;\n }\n\n if (value === ']' && (prev.value === '[' || prev.value === '[^')) {\n value = `\\\\${value}`;\n }\n\n if (opts.posix === true && value === '!' && prev.value === '[') {\n value = '^';\n }\n\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * If we're inside a quoted string, continue\n * until we reach the closing double quote.\n */\n\n if (state.quotes === 1 && value !== '\"') {\n value = utils$1.escapeRegex(value);\n prev.value += value;\n append({ value });\n continue;\n }\n\n /**\n * Double quotes\n */\n\n if (value === '\"') {\n state.quotes = state.quotes === 1 ? 0 : 1;\n if (opts.keepQuotes === true) {\n push({ type: 'text', value });\n }\n continue;\n }\n\n /**\n * Parentheses\n */\n\n if (value === '(') {\n increment('parens');\n push({ type: 'paren', value });\n continue;\n }\n\n if (value === ')') {\n if (state.parens === 0 && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '('));\n }\n\n const extglob = extglobs[extglobs.length - 1];\n if (extglob && state.parens === extglob.parens + 1) {\n extglobClose(extglobs.pop());\n continue;\n }\n\n push({ type: 'paren', value, output: state.parens ? ')' : '\\\\)' });\n decrement('parens');\n continue;\n }\n\n /**\n * Square brackets\n */\n\n if (value === '[') {\n if (opts.nobracket === true || !remaining().includes(']')) {\n if (opts.nobracket !== true && opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('closing', ']'));\n }\n\n value = `\\\\${value}`;\n } else {\n increment('brackets');\n }\n\n push({ type: 'bracket', value });\n continue;\n }\n\n if (value === ']') {\n if (opts.nobracket === true || (prev && prev.type === 'bracket' && prev.value.length === 1)) {\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n if (state.brackets === 0) {\n if (opts.strictBrackets === true) {\n throw new SyntaxError(syntaxError('opening', '['));\n }\n\n push({ type: 'text', value, output: `\\\\${value}` });\n continue;\n }\n\n decrement('brackets');\n\n const prevValue = prev.value.slice(1);\n if (prev.posix !== true && prevValue[0] === '^' && !prevValue.includes('/')) {\n value = `/${value}`;\n }\n\n prev.value += value;\n append({ value });\n\n // when literal brackets are explicitly disabled\n // assume we should match with a regex character class\n if (opts.literalBrackets === false || utils$1.hasRegexChars(prevValue)) {\n continue;\n }\n\n const escaped = utils$1.escapeRegex(prev.value);\n state.output = state.output.slice(0, -prev.value.length);\n\n // when literal brackets are explicitly enabled\n // assume we should escape the brackets to match literal characters\n if (opts.literalBrackets === true) {\n state.output += escaped;\n prev.value = escaped;\n continue;\n }\n\n // when the user specifies nothing, try to match both\n prev.value = `(${capture}${escaped}|${prev.value})`;\n state.output += prev.value;\n continue;\n }\n\n /**\n * Braces\n */\n\n if (value === '{' && opts.nobrace !== true) {\n increment('braces');\n\n const open = {\n type: 'brace',\n value,\n output: '(',\n outputIndex: state.output.length,\n tokensIndex: state.tokens.length\n };\n\n braces.push(open);\n push(open);\n continue;\n }\n\n if (value === '}') {\n const brace = braces[braces.length - 1];\n\n if (opts.nobrace === true || !brace) {\n push({ type: 'text', value, output: value });\n continue;\n }\n\n let output = ')';\n\n if (brace.dots === true) {\n const arr = tokens.slice();\n const range = [];\n\n for (let i = arr.length - 1; i >= 0; i--) {\n tokens.pop();\n if (arr[i].type === 'brace') {\n break;\n }\n if (arr[i].type !== 'dots') {\n range.unshift(arr[i].value);\n }\n }\n\n output = expandRange(range, opts);\n state.backtrack = true;\n }\n\n if (brace.comma !== true && brace.dots !== true) {\n const out = state.output.slice(0, brace.outputIndex);\n const toks = state.tokens.slice(brace.tokensIndex);\n brace.value = brace.output = '\\\\{';\n value = output = '\\\\}';\n state.output = out;\n for (const t of toks) {\n state.output += (t.output || t.value);\n }\n }\n\n push({ type: 'brace', value, output });\n decrement('braces');\n braces.pop();\n continue;\n }\n\n /**\n * Pipes\n */\n\n if (value === '|') {\n if (extglobs.length > 0) {\n extglobs[extglobs.length - 1].conditions++;\n }\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Commas\n */\n\n if (value === ',') {\n let output = value;\n\n const brace = braces[braces.length - 1];\n if (brace && stack[stack.length - 1] === 'braces') {\n brace.comma = true;\n output = '|';\n }\n\n push({ type: 'comma', value, output });\n continue;\n }\n\n /**\n * Slashes\n */\n\n if (value === '/') {\n // if the beginning of the glob is \"./\", advance the start\n // to the current index, and don't add the \"./\" characters\n // to the state. This greatly simplifies lookbehinds when\n // checking for BOS characters like \"!\" and \".\" (not \"./\")\n if (prev.type === 'dot' && state.index === state.start + 1) {\n state.start = state.index + 1;\n state.consumed = '';\n state.output = '';\n tokens.pop();\n prev = bos; // reset \"prev\" to the first token\n continue;\n }\n\n push({ type: 'slash', value, output: SLASH_LITERAL });\n continue;\n }\n\n /**\n * Dots\n */\n\n if (value === '.') {\n if (state.braces > 0 && prev.type === 'dot') {\n if (prev.value === '.') prev.output = DOT_LITERAL;\n const brace = braces[braces.length - 1];\n prev.type = 'dots';\n prev.output += value;\n prev.value += value;\n brace.dots = true;\n continue;\n }\n\n if ((state.braces + state.parens) === 0 && prev.type !== 'bos' && prev.type !== 'slash') {\n push({ type: 'text', value, output: DOT_LITERAL });\n continue;\n }\n\n push({ type: 'dot', value, output: DOT_LITERAL });\n continue;\n }\n\n /**\n * Question marks\n */\n\n if (value === '?') {\n const isGroup = prev && prev.value === '(';\n if (!isGroup && opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('qmark', value);\n continue;\n }\n\n if (prev && prev.type === 'paren') {\n const next = peek();\n let output = value;\n\n if (next === '<' && !utils$1.supportsLookbehinds()) {\n throw new Error('Node.js v10 or higher is required for regex lookbehinds');\n }\n\n if ((prev.value === '(' && !/[!=<:]/.test(next)) || (next === '<' && !/<([!=]|\\w+>)/.test(remaining()))) {\n output = `\\\\${value}`;\n }\n\n push({ type: 'text', value, output });\n continue;\n }\n\n if (opts.dot !== true && (prev.type === 'slash' || prev.type === 'bos')) {\n push({ type: 'qmark', value, output: QMARK_NO_DOT });\n continue;\n }\n\n push({ type: 'qmark', value, output: QMARK });\n continue;\n }\n\n /**\n * Exclamation\n */\n\n if (value === '!') {\n if (opts.noextglob !== true && peek() === '(') {\n if (peek(2) !== '?' || !/[!=<:]/.test(peek(3))) {\n extglobOpen('negate', value);\n continue;\n }\n }\n\n if (opts.nonegate !== true && state.index === 0) {\n negate();\n continue;\n }\n }\n\n /**\n * Plus\n */\n\n if (value === '+') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n extglobOpen('plus', value);\n continue;\n }\n\n if ((prev && prev.value === '(') || opts.regex === false) {\n push({ type: 'plus', value, output: PLUS_LITERAL });\n continue;\n }\n\n if ((prev && (prev.type === 'bracket' || prev.type === 'paren' || prev.type === 'brace')) || state.parens > 0) {\n push({ type: 'plus', value });\n continue;\n }\n\n push({ type: 'plus', value: PLUS_LITERAL });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value === '@') {\n if (opts.noextglob !== true && peek() === '(' && peek(2) !== '?') {\n push({ type: 'at', extglob: true, value, output: '' });\n continue;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Plain text\n */\n\n if (value !== '*') {\n if (value === '$' || value === '^') {\n value = `\\\\${value}`;\n }\n\n const match = REGEX_NON_SPECIAL_CHARS.exec(remaining());\n if (match) {\n value += match[0];\n state.index += match[0].length;\n }\n\n push({ type: 'text', value });\n continue;\n }\n\n /**\n * Stars\n */\n\n if (prev && (prev.type === 'globstar' || prev.star === true)) {\n prev.type = 'star';\n prev.star = true;\n prev.value += value;\n prev.output = star;\n state.backtrack = true;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n let rest = remaining();\n if (opts.noextglob !== true && /^\\([^?]/.test(rest)) {\n extglobOpen('star', value);\n continue;\n }\n\n if (prev.type === 'star') {\n if (opts.noglobstar === true) {\n consume(value);\n continue;\n }\n\n const prior = prev.prev;\n const before = prior.prev;\n const isStart = prior.type === 'slash' || prior.type === 'bos';\n const afterStar = before && (before.type === 'star' || before.type === 'globstar');\n\n if (opts.bash === true && (!isStart || (rest[0] && rest[0] !== '/'))) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n const isBrace = state.braces > 0 && (prior.type === 'comma' || prior.type === 'brace');\n const isExtglob = extglobs.length && (prior.type === 'pipe' || prior.type === 'paren');\n if (!isStart && prior.type !== 'paren' && !isBrace && !isExtglob) {\n push({ type: 'star', value, output: '' });\n continue;\n }\n\n // strip consecutive `/**/`\n while (rest.slice(0, 3) === '/**') {\n const after = input[state.index + 4];\n if (after && after !== '/') {\n break;\n }\n rest = rest.slice(3);\n consume('/**', 3);\n }\n\n if (prior.type === 'bos' && eos()) {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = globstar(opts);\n state.output = prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = globstar(opts) + (opts.strictSlashes ? ')' : '|$)');\n prev.value += value;\n state.globstar = true;\n state.output += prior.output + prev.output;\n consume(value);\n continue;\n }\n\n if (prior.type === 'slash' && prior.prev.type !== 'bos' && rest[0] === '/') {\n const end = rest[1] !== void 0 ? '|$' : '';\n\n state.output = state.output.slice(0, -(prior.output + prev.output).length);\n prior.output = `(?:${prior.output}`;\n\n prev.type = 'globstar';\n prev.output = `${globstar(opts)}${SLASH_LITERAL}|${SLASH_LITERAL}${end})`;\n prev.value += value;\n\n state.output += prior.output + prev.output;\n state.globstar = true;\n\n consume(value + advance());\n\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n if (prior.type === 'bos' && rest[0] === '/') {\n prev.type = 'globstar';\n prev.value += value;\n prev.output = `(?:^|${SLASH_LITERAL}|${globstar(opts)}${SLASH_LITERAL})`;\n state.output = prev.output;\n state.globstar = true;\n consume(value + advance());\n push({ type: 'slash', value: '/', output: '' });\n continue;\n }\n\n // remove single star from output\n state.output = state.output.slice(0, -prev.output.length);\n\n // reset previous token to globstar\n prev.type = 'globstar';\n prev.output = globstar(opts);\n prev.value += value;\n\n // reset output with globstar\n state.output += prev.output;\n state.globstar = true;\n consume(value);\n continue;\n }\n\n const token = { type: 'star', value, output: star };\n\n if (opts.bash === true) {\n token.output = '.*?';\n if (prev.type === 'bos' || prev.type === 'slash') {\n token.output = nodot + token.output;\n }\n push(token);\n continue;\n }\n\n if (prev && (prev.type === 'bracket' || prev.type === 'paren') && opts.regex === true) {\n token.output = value;\n push(token);\n continue;\n }\n\n if (state.index === state.start || prev.type === 'slash' || prev.type === 'dot') {\n if (prev.type === 'dot') {\n state.output += NO_DOT_SLASH;\n prev.output += NO_DOT_SLASH;\n\n } else if (opts.dot === true) {\n state.output += NO_DOTS_SLASH;\n prev.output += NO_DOTS_SLASH;\n\n } else {\n state.output += nodot;\n prev.output += nodot;\n }\n\n if (peek() !== '*') {\n state.output += ONE_CHAR;\n prev.output += ONE_CHAR;\n }\n }\n\n push(token);\n }\n\n while (state.brackets > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ']'));\n state.output = utils$1.escapeLast(state.output, '[');\n decrement('brackets');\n }\n\n while (state.parens > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', ')'));\n state.output = utils$1.escapeLast(state.output, '(');\n decrement('parens');\n }\n\n while (state.braces > 0) {\n if (opts.strictBrackets === true) throw new SyntaxError(syntaxError('closing', '}'));\n state.output = utils$1.escapeLast(state.output, '{');\n decrement('braces');\n }\n\n if (opts.strictSlashes !== true && (prev.type === 'star' || prev.type === 'bracket')) {\n push({ type: 'maybe_slash', value: '', output: `${SLASH_LITERAL}?` });\n }\n\n // rebuild the output if we had to backtrack at any point\n if (state.backtrack === true) {\n state.output = '';\n\n for (const token of state.tokens) {\n state.output += token.output != null ? token.output : token.value;\n\n if (token.suffix) {\n state.output += token.suffix;\n }\n }\n }\n\n return state;\n};\n\n/**\n * Fast paths for creating regular expressions for common glob patterns.\n * This can significantly speed up processing and has very little downside\n * impact when none of the fast paths match.\n */\n\nparse$1.fastpaths = (input, options) => {\n const opts = { ...options };\n const max = typeof opts.maxLength === 'number' ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;\n const len = input.length;\n if (len > max) {\n throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`);\n }\n\n input = REPLACEMENTS[input] || input;\n const win32 = utils$1.isWindows(options);\n\n // create constants based on platform, for windows or posix\n const {\n DOT_LITERAL,\n SLASH_LITERAL,\n ONE_CHAR,\n DOTS_SLASH,\n NO_DOT,\n NO_DOTS,\n NO_DOTS_SLASH,\n STAR,\n START_ANCHOR\n } = constants$1.globChars(win32);\n\n const nodot = opts.dot ? NO_DOTS : NO_DOT;\n const slashDot = opts.dot ? NO_DOTS_SLASH : NO_DOT;\n const capture = opts.capture ? '' : '?:';\n const state = { negated: false, prefix: '' };\n let star = opts.bash === true ? '.*?' : STAR;\n\n if (opts.capture) {\n star = `(${star})`;\n }\n\n const globstar = opts => {\n if (opts.noglobstar === true) return star;\n return `(${capture}(?:(?!${START_ANCHOR}${opts.dot ? DOTS_SLASH : DOT_LITERAL}).)*?)`;\n };\n\n const create = str => {\n switch (str) {\n case '*':\n return `${nodot}${ONE_CHAR}${star}`;\n\n case '.*':\n return `${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*.*':\n return `${nodot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '*/*':\n return `${nodot}${star}${SLASH_LITERAL}${ONE_CHAR}${slashDot}${star}`;\n\n case '**':\n return nodot + globstar(opts);\n\n case '**/*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${ONE_CHAR}${star}`;\n\n case '**/*.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${slashDot}${star}${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n case '**/.*':\n return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL})?${DOT_LITERAL}${ONE_CHAR}${star}`;\n\n default: {\n const match = /^(.*?)\\.(\\w+)$/.exec(str);\n if (!match) return;\n\n const source = create(match[1]);\n if (!source) return;\n\n return source + DOT_LITERAL + match[2];\n }\n }\n };\n\n const output = utils$1.removePrefix(input, state);\n let source = create(output);\n\n if (source && opts.strictSlashes !== true) {\n source += `${SLASH_LITERAL}?`;\n }\n\n return source;\n};\n\nvar parse_1 = parse$1;\n\nconst path = require$$0;\nconst scan = scan_1;\nconst parse = parse_1;\nconst utils = utils$3;\nconst constants = constants$2;\nconst isObject = val => val && typeof val === 'object' && !Array.isArray(val);\n\n/**\n * Creates a matcher function from one or more glob patterns. The\n * returned function takes a string to match as its first argument,\n * and returns true if the string is a match. The returned matcher\n * function also takes a boolean as the second argument that, when true,\n * returns an object with additional information.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch(glob[, options]);\n *\n * const isMatch = picomatch('*.!(*a)');\n * console.log(isMatch('a.a')); //=> false\n * console.log(isMatch('a.b')); //=> true\n * ```\n * @name picomatch\n * @param {String|Array} `globs` One or more glob patterns.\n * @param {Object=} `options`\n * @return {Function=} Returns a matcher function.\n * @api public\n */\n\nconst picomatch$1 = (glob, options, returnState = false) => {\n if (Array.isArray(glob)) {\n const fns = glob.map(input => picomatch$1(input, options, returnState));\n const arrayMatcher = str => {\n for (const isMatch of fns) {\n const state = isMatch(str);\n if (state) return state;\n }\n return false;\n };\n return arrayMatcher;\n }\n\n const isState = isObject(glob) && glob.tokens && glob.input;\n\n if (glob === '' || (typeof glob !== 'string' && !isState)) {\n throw new TypeError('Expected pattern to be a non-empty string');\n }\n\n const opts = options || {};\n const posix = utils.isWindows(options);\n const regex = isState\n ? picomatch$1.compileRe(glob, options)\n : picomatch$1.makeRe(glob, options, false, true);\n\n const state = regex.state;\n delete regex.state;\n\n let isIgnored = () => false;\n if (opts.ignore) {\n const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };\n isIgnored = picomatch$1(opts.ignore, ignoreOpts, returnState);\n }\n\n const matcher = (input, returnObject = false) => {\n const { isMatch, match, output } = picomatch$1.test(input, regex, options, { glob, posix });\n const result = { glob, state, regex, posix, input, output, match, isMatch };\n\n if (typeof opts.onResult === 'function') {\n opts.onResult(result);\n }\n\n if (isMatch === false) {\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (isIgnored(input)) {\n if (typeof opts.onIgnore === 'function') {\n opts.onIgnore(result);\n }\n result.isMatch = false;\n return returnObject ? result : false;\n }\n\n if (typeof opts.onMatch === 'function') {\n opts.onMatch(result);\n }\n return returnObject ? result : true;\n };\n\n if (returnState) {\n matcher.state = state;\n }\n\n return matcher;\n};\n\n/**\n * Test `input` with the given `regex`. This is used by the main\n * `picomatch()` function to test the input string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.test(input, regex[, options]);\n *\n * console.log(picomatch.test('foo/bar', /^(?:([^/]*?)\\/([^/]*?))$/));\n * // { isMatch: true, match: [ 'foo/', 'foo', 'bar' ], output: 'foo/bar' }\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp} `regex`\n * @return {Object} Returns an object with matching info.\n * @api public\n */\n\npicomatch$1.test = (input, regex, options, { glob, posix } = {}) => {\n if (typeof input !== 'string') {\n throw new TypeError('Expected input to be a string');\n }\n\n if (input === '') {\n return { isMatch: false, output: '' };\n }\n\n const opts = options || {};\n const format = opts.format || (posix ? utils.toPosixSlashes : null);\n let match = input === glob;\n let output = (match && format) ? format(input) : input;\n\n if (match === false) {\n output = format ? format(input) : input;\n match = output === glob;\n }\n\n if (match === false || opts.capture === true) {\n if (opts.matchBase === true || opts.basename === true) {\n match = picomatch$1.matchBase(input, regex, options, posix);\n } else {\n match = regex.exec(output);\n }\n }\n\n return { isMatch: Boolean(match), match, output };\n};\n\n/**\n * Match the basename of a filepath.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.matchBase(input, glob[, options]);\n * console.log(picomatch.matchBase('foo/bar.js', '*.js'); // true\n * ```\n * @param {String} `input` String to test.\n * @param {RegExp|String} `glob` Glob pattern or regex created by [.makeRe](#makeRe).\n * @return {Boolean}\n * @api public\n */\n\npicomatch$1.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {\n const regex = glob instanceof RegExp ? glob : picomatch$1.makeRe(glob, options);\n return regex.test(path.basename(input));\n};\n\n/**\n * Returns true if **any** of the given glob `patterns` match the specified `string`.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.isMatch(string, patterns[, options]);\n *\n * console.log(picomatch.isMatch('a.a', ['b.*', '*.a'])); //=> true\n * console.log(picomatch.isMatch('a.a', 'b.*')); //=> false\n * ```\n * @param {String|Array} str The string to test.\n * @param {String|Array} patterns One or more glob patterns to use for matching.\n * @param {Object} [options] See available [options](#options).\n * @return {Boolean} Returns true if any patterns match `str`\n * @api public\n */\n\npicomatch$1.isMatch = (str, patterns, options) => picomatch$1(patterns, options)(str);\n\n/**\n * Parse a glob pattern to create the source string for a regular\n * expression.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const result = picomatch.parse(pattern[, options]);\n * ```\n * @param {String} `pattern`\n * @param {Object} `options`\n * @return {Object} Returns an object with useful properties and output to be used as a regex source string.\n * @api public\n */\n\npicomatch$1.parse = (pattern, options) => {\n if (Array.isArray(pattern)) return pattern.map(p => picomatch$1.parse(p, options));\n return parse(pattern, { ...options, fastpaths: false });\n};\n\n/**\n * Scan a glob pattern to separate the pattern into segments.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.scan(input[, options]);\n *\n * const result = picomatch.scan('!./foo/*.js');\n * console.log(result);\n * { prefix: '!./',\n * input: '!./foo/*.js',\n * start: 3,\n * base: 'foo',\n * glob: '*.js',\n * isBrace: false,\n * isBracket: false,\n * isGlob: true,\n * isExtglob: false,\n * isGlobstar: false,\n * negated: true }\n * ```\n * @param {String} `input` Glob pattern to scan.\n * @param {Object} `options`\n * @return {Object} Returns an object with\n * @api public\n */\n\npicomatch$1.scan = (input, options) => scan(input, options);\n\n/**\n * Compile a regular expression from the `state` object returned by the\n * [parse()](#parse) method.\n *\n * @param {Object} `state`\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Intended for implementors, this argument allows you to return the raw output from the parser.\n * @param {Boolean} `returnState` Adds the state to a `state` property on the returned regex. Useful for implementors and debugging.\n * @return {RegExp}\n * @api public\n */\n\npicomatch$1.compileRe = (state, options, returnOutput = false, returnState = false) => {\n if (returnOutput === true) {\n return state.output;\n }\n\n const opts = options || {};\n const prepend = opts.contains ? '' : '^';\n const append = opts.contains ? '' : '$';\n\n let source = `${prepend}(?:${state.output})${append}`;\n if (state && state.negated === true) {\n source = `^(?!${source}).*$`;\n }\n\n const regex = picomatch$1.toRegex(source, options);\n if (returnState === true) {\n regex.state = state;\n }\n\n return regex;\n};\n\n/**\n * Create a regular expression from a parsed glob pattern.\n *\n * ```js\n * const picomatch = require('picomatch');\n * const state = picomatch.parse('*.js');\n * // picomatch.compileRe(state[, options]);\n *\n * console.log(picomatch.compileRe(state));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `state` The object returned from the `.parse` method.\n * @param {Object} `options`\n * @param {Boolean} `returnOutput` Implementors may use this argument to return the compiled output, instead of a regular expression. This is not exposed on the options to prevent end-users from mutating the result.\n * @param {Boolean} `returnState` Implementors may use this argument to return the state from the parsed glob with the returned regular expression.\n * @return {RegExp} Returns a regex created from the given pattern.\n * @api public\n */\n\npicomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {\n if (!input || typeof input !== 'string') {\n throw new TypeError('Expected a non-empty string');\n }\n\n let parsed = { negated: false, fastpaths: true };\n\n if (options.fastpaths !== false && (input[0] === '.' || input[0] === '*')) {\n parsed.output = parse.fastpaths(input, options);\n }\n\n if (!parsed.output) {\n parsed = parse(input, options);\n }\n\n return picomatch$1.compileRe(parsed, options, returnOutput, returnState);\n};\n\n/**\n * Create a regular expression from the given regex source string.\n *\n * ```js\n * const picomatch = require('picomatch');\n * // picomatch.toRegex(source[, options]);\n *\n * const { output } = picomatch.parse('*.js');\n * console.log(picomatch.toRegex(output));\n * //=> /^(?:(?!\\.)(?=.)[^/]*?\\.js)$/\n * ```\n * @param {String} `source` Regular expression source string.\n * @param {Object} `options`\n * @return {RegExp}\n * @api public\n */\n\npicomatch$1.toRegex = (source, options) => {\n try {\n const opts = options || {};\n return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));\n } catch (err) {\n if (options && options.debug === true) throw err;\n return /$^/;\n }\n};\n\n/**\n * Picomatch constants.\n * @return {Object}\n */\n\npicomatch$1.constants = constants;\n\n/**\n * Expose \"picomatch\"\n */\n\nvar picomatch_1 = picomatch$1;\n\nvar picomatch = picomatch_1;\n\nconst pm = /*@__PURE__*/getDefaultExportFromCjs(picomatch);\n\nconst extractors = {\n ArrayPattern(names, param) {\n for (const element of param.elements) {\n if (element)\n extractors[element.type](names, element);\n }\n },\n AssignmentPattern(names, param) {\n extractors[param.left.type](names, param.left);\n },\n Identifier(names, param) {\n names.push(param.name);\n },\n MemberExpression() { },\n ObjectPattern(names, param) {\n for (const prop of param.properties) {\n // @ts-ignore Typescript reports that this is not a valid type\n if (prop.type === 'RestElement') {\n extractors.RestElement(names, prop);\n }\n else {\n extractors[prop.value.type](names, prop.value);\n }\n }\n },\n RestElement(names, param) {\n extractors[param.argument.type](names, param.argument);\n }\n};\nconst extractAssignedNames = function extractAssignedNames(param) {\n const names = [];\n extractors[param.type](names, param);\n return names;\n};\n\n// Helper since Typescript can't detect readonly arrays with Array.isArray\nfunction isArray(arg) {\n return Array.isArray(arg);\n}\nfunction ensureArray$1(thing) {\n if (isArray(thing))\n return thing;\n if (thing == null)\n return [];\n return [thing];\n}\n\nconst normalizePath = function normalizePath(filename) {\n return filename.split(win32.sep).join(posix.sep);\n};\n\nfunction getMatcherString(id, resolutionBase) {\n if (resolutionBase === false || isAbsolute(id) || id.startsWith('**')) {\n return normalizePath(id);\n }\n // resolve('') is valid and will default to process.cwd()\n const basePath = normalizePath(resolve(resolutionBase || ''))\n // escape all possible (posix + win) path characters that might interfere with regex\n .replace(/[-^$*+?.()|[\\]{}]/g, '\\\\$&');\n // Note that we use posix.join because:\n // 1. the basePath has been normalized to use /\n // 2. the incoming glob (id) matcher, also uses /\n // otherwise Node will force backslash (\\) on windows\n return posix.join(basePath, normalizePath(id));\n}\nconst createFilter = function createFilter(include, exclude, options) {\n const resolutionBase = options && options.resolve;\n const getMatcher = (id) => id instanceof RegExp\n ? id\n : {\n test: (what) => {\n // this refactor is a tad overly verbose but makes for easy debugging\n const pattern = getMatcherString(id, resolutionBase);\n const fn = pm(pattern, { dot: true });\n const result = fn(what);\n return result;\n }\n };\n const includeMatchers = ensureArray$1(include).map(getMatcher);\n const excludeMatchers = ensureArray$1(exclude).map(getMatcher);\n return function result(id) {\n if (typeof id !== 'string')\n return false;\n if (/\\0/.test(id))\n return false;\n const pathId = normalizePath(id);\n for (let i = 0; i < excludeMatchers.length; ++i) {\n const matcher = excludeMatchers[i];\n if (matcher.test(pathId))\n return false;\n }\n for (let i = 0; i < includeMatchers.length; ++i) {\n const matcher = includeMatchers[i];\n if (matcher.test(pathId))\n return true;\n }\n return !includeMatchers.length;\n };\n};\n\nconst reservedWords = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public';\nconst builtins = 'arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl';\nconst forbiddenIdentifiers = new Set(`${reservedWords} ${builtins}`.split(' '));\nforbiddenIdentifiers.add('');\n\nfunction createInclusionContext() {\n return {\n brokenFlow: false,\n hasBreak: false,\n hasContinue: false,\n includedCallArguments: new Set(),\n includedLabels: new Set()\n };\n}\nfunction createHasEffectsContext() {\n return {\n accessed: new PathTracker(),\n assigned: new PathTracker(),\n brokenFlow: false,\n called: new DiscriminatedPathTracker(),\n hasBreak: false,\n hasContinue: false,\n ignore: {\n breaks: false,\n continues: false,\n labels: new Set(),\n returnYield: false,\n this: false\n },\n includedLabels: new Set(),\n instantiated: new DiscriminatedPathTracker(),\n replacedVariableInits: new Map()\n };\n}\n\nfunction assembleMemberDescriptions(memberDescriptions, inheritedDescriptions = null) {\n return Object.create(inheritedDescriptions, memberDescriptions);\n}\nconst UNDEFINED_EXPRESSION = new (class UndefinedExpression extends ExpressionEntity {\n getLiteralValueAtPath() {\n return undefined;\n }\n})();\nconst returnsUnknown = {\n value: {\n hasEffectsWhenCalled: null,\n returns: UNKNOWN_EXPRESSION\n }\n};\nconst UNKNOWN_LITERAL_BOOLEAN = new (class UnknownBoolean extends ExpressionEntity {\n getReturnExpressionWhenCalledAtPath(path) {\n if (path.length === 1) {\n return getMemberReturnExpressionWhenCalled(literalBooleanMembers, path[0]);\n }\n return UNKNOWN_RETURN_EXPRESSION;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (interaction.type === INTERACTION_ACCESSED) {\n return path.length > 1;\n }\n if (interaction.type === INTERACTION_CALLED && path.length === 1) {\n return hasMemberEffectWhenCalled(literalBooleanMembers, path[0], interaction, context);\n }\n return true;\n }\n})();\nconst returnsBoolean = {\n value: {\n hasEffectsWhenCalled: null,\n returns: UNKNOWN_LITERAL_BOOLEAN\n }\n};\nconst UNKNOWN_LITERAL_NUMBER = new (class UnknownNumber extends ExpressionEntity {\n getReturnExpressionWhenCalledAtPath(path) {\n if (path.length === 1) {\n return getMemberReturnExpressionWhenCalled(literalNumberMembers, path[0]);\n }\n return UNKNOWN_RETURN_EXPRESSION;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (interaction.type === INTERACTION_ACCESSED) {\n return path.length > 1;\n }\n if (interaction.type === INTERACTION_CALLED && path.length === 1) {\n return hasMemberEffectWhenCalled(literalNumberMembers, path[0], interaction, context);\n }\n return true;\n }\n})();\nconst returnsNumber = {\n value: {\n hasEffectsWhenCalled: null,\n returns: UNKNOWN_LITERAL_NUMBER\n }\n};\nconst UNKNOWN_LITERAL_STRING = new (class UnknownString extends ExpressionEntity {\n getReturnExpressionWhenCalledAtPath(path) {\n if (path.length === 1) {\n return getMemberReturnExpressionWhenCalled(literalStringMembers, path[0]);\n }\n return UNKNOWN_RETURN_EXPRESSION;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (interaction.type === INTERACTION_ACCESSED) {\n return path.length > 1;\n }\n if (interaction.type === INTERACTION_CALLED && path.length === 1) {\n return hasMemberEffectWhenCalled(literalStringMembers, path[0], interaction, context);\n }\n return true;\n }\n})();\nconst returnsString = {\n value: {\n hasEffectsWhenCalled: null,\n returns: UNKNOWN_LITERAL_STRING\n }\n};\nconst stringReplace = {\n value: {\n hasEffectsWhenCalled({ args }, context) {\n const argument1 = args[2];\n return (args.length < 3 ||\n (typeof argument1.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, {\n deoptimizeCache() { }\n }) === 'symbol' &&\n argument1.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, context)));\n },\n returns: UNKNOWN_LITERAL_STRING\n }\n};\nconst objectMembers = assembleMemberDescriptions({\n hasOwnProperty: returnsBoolean,\n isPrototypeOf: returnsBoolean,\n propertyIsEnumerable: returnsBoolean,\n toLocaleString: returnsString,\n toString: returnsString,\n valueOf: returnsUnknown\n});\nconst literalBooleanMembers = assembleMemberDescriptions({\n valueOf: returnsBoolean\n}, objectMembers);\nconst literalNumberMembers = assembleMemberDescriptions({\n toExponential: returnsString,\n toFixed: returnsString,\n toLocaleString: returnsString,\n toPrecision: returnsString,\n valueOf: returnsNumber\n}, objectMembers);\n/**\n * RegExp are stateful when they have the global or sticky flags set.\n * But if we actually don't use them, the side effect does not matter.\n * the check logic in `hasEffectsOnInteractionAtPath`.\n */\nconst literalRegExpMembers = assembleMemberDescriptions({\n exec: returnsUnknown,\n test: returnsBoolean\n}, objectMembers);\nconst literalStringMembers = assembleMemberDescriptions({\n anchor: returnsString,\n at: returnsUnknown,\n big: returnsString,\n blink: returnsString,\n bold: returnsString,\n charAt: returnsString,\n charCodeAt: returnsNumber,\n codePointAt: returnsUnknown,\n concat: returnsString,\n endsWith: returnsBoolean,\n fixed: returnsString,\n fontcolor: returnsString,\n fontsize: returnsString,\n includes: returnsBoolean,\n indexOf: returnsNumber,\n italics: returnsString,\n lastIndexOf: returnsNumber,\n link: returnsString,\n localeCompare: returnsNumber,\n match: returnsUnknown,\n matchAll: returnsUnknown,\n normalize: returnsString,\n padEnd: returnsString,\n padStart: returnsString,\n repeat: returnsString,\n replace: stringReplace,\n replaceAll: stringReplace,\n search: returnsNumber,\n slice: returnsString,\n small: returnsString,\n split: returnsUnknown,\n startsWith: returnsBoolean,\n strike: returnsString,\n sub: returnsString,\n substr: returnsString,\n substring: returnsString,\n sup: returnsString,\n toLocaleLowerCase: returnsString,\n toLocaleUpperCase: returnsString,\n toLowerCase: returnsString,\n toString: returnsString, // overrides the toString() method of the Object object; it does not inherit Object.prototype.toString()\n toUpperCase: returnsString,\n trim: returnsString,\n trimEnd: returnsString,\n trimLeft: returnsString,\n trimRight: returnsString,\n trimStart: returnsString,\n valueOf: returnsString\n}, objectMembers);\nfunction getLiteralMembersForValue(value) {\n if (value instanceof RegExp) {\n return literalRegExpMembers;\n }\n switch (typeof value) {\n case 'boolean': {\n return literalBooleanMembers;\n }\n case 'number': {\n return literalNumberMembers;\n }\n case 'string': {\n return literalStringMembers;\n }\n }\n return Object.create(null);\n}\nfunction hasMemberEffectWhenCalled(members, memberName, interaction, context) {\n if (typeof memberName !== 'string' || !members[memberName]) {\n return true;\n }\n return members[memberName].hasEffectsWhenCalled?.(interaction, context) || false;\n}\nfunction getMemberReturnExpressionWhenCalled(members, memberName) {\n if (typeof memberName !== 'string' || !members[memberName])\n return UNKNOWN_RETURN_EXPRESSION;\n return [members[memberName].returns, false];\n}\n\n// This file is generated by scripts/generate-child-node-keys.js.\n// Do not edit this file directly.\nconst childNodeKeys = {\n ArrayExpression: ['elements'],\n ArrayPattern: ['elements'],\n ArrowFunctionExpression: ['params', 'body'],\n AssignmentExpression: ['left', 'right'],\n AssignmentPattern: ['left', 'right'],\n AwaitExpression: ['argument'],\n BinaryExpression: ['left', 'right'],\n BlockStatement: ['body'],\n BreakStatement: ['label'],\n CallExpression: ['callee', 'arguments'],\n CatchClause: ['param', 'body'],\n ChainExpression: ['expression'],\n ClassBody: ['body'],\n ClassDeclaration: ['decorators', 'id', 'superClass', 'body'],\n ClassExpression: ['decorators', 'id', 'superClass', 'body'],\n ConditionalExpression: ['test', 'consequent', 'alternate'],\n ContinueStatement: ['label'],\n DebuggerStatement: [],\n Decorator: ['expression'],\n DoWhileStatement: ['body', 'test'],\n EmptyStatement: [],\n ExportAllDeclaration: ['exported', 'source', 'attributes'],\n ExportDefaultDeclaration: ['declaration'],\n ExportNamedDeclaration: ['specifiers', 'source', 'attributes', 'declaration'],\n ExportSpecifier: ['local', 'exported'],\n ExpressionStatement: ['expression'],\n ForInStatement: ['left', 'right', 'body'],\n ForOfStatement: ['left', 'right', 'body'],\n ForStatement: ['init', 'test', 'update', 'body'],\n FunctionDeclaration: ['id', 'params', 'body'],\n FunctionExpression: ['id', 'params', 'body'],\n Identifier: [],\n IfStatement: ['test', 'consequent', 'alternate'],\n ImportAttribute: ['key', 'value'],\n ImportDeclaration: ['specifiers', 'source', 'attributes'],\n ImportDefaultSpecifier: ['local'],\n ImportExpression: ['source', 'options'],\n ImportNamespaceSpecifier: ['local'],\n ImportSpecifier: ['imported', 'local'],\n LabeledStatement: ['label', 'body'],\n Literal: [],\n LogicalExpression: ['left', 'right'],\n MemberExpression: ['object', 'property'],\n MetaProperty: ['meta', 'property'],\n MethodDefinition: ['decorators', 'key', 'value'],\n NewExpression: ['callee', 'arguments'],\n ObjectExpression: ['properties'],\n ObjectPattern: ['properties'],\n PanicError: [],\n ParseError: [],\n PrivateIdentifier: [],\n Program: ['body'],\n Property: ['key', 'value'],\n PropertyDefinition: ['decorators', 'key', 'value'],\n RestElement: ['argument'],\n ReturnStatement: ['argument'],\n SequenceExpression: ['expressions'],\n SpreadElement: ['argument'],\n StaticBlock: ['body'],\n Super: [],\n SwitchCase: ['test', 'consequent'],\n SwitchStatement: ['discriminant', 'cases'],\n TaggedTemplateExpression: ['tag', 'quasi'],\n TemplateElement: [],\n TemplateLiteral: ['quasis', 'expressions'],\n ThisExpression: [],\n ThrowStatement: ['argument'],\n TryStatement: ['block', 'handler', 'finalizer'],\n UnaryExpression: ['argument'],\n UpdateExpression: ['argument'],\n VariableDeclaration: ['declarations'],\n VariableDeclarator: ['id', 'init'],\n WhileStatement: ['test', 'body'],\n YieldExpression: ['argument']\n};\n\nconst INCLUDE_PARAMETERS = 'variables';\nconst IS_SKIPPED_CHAIN = Symbol('IS_SKIPPED_CHAIN');\nclass NodeBase extends ExpressionEntity {\n /**\n * Nodes can apply custom deoptimizations once they become part of the\n * executed code. To do this, they must initialize this as false, implement\n * applyDeoptimizations and call this from include and hasEffects if they have\n * custom handlers\n */\n get deoptimized() {\n return isFlagSet(this.flags, 2 /* Flag.deoptimized */);\n }\n set deoptimized(value) {\n this.flags = setFlag(this.flags, 2 /* Flag.deoptimized */, value);\n }\n constructor(parent, parentScope) {\n super();\n this.parent = parent;\n this.scope = parentScope;\n this.createScope(parentScope);\n }\n addExportedVariables(_variables, _exportNamesByVariable) { }\n /**\n * Override this to bind assignments to variables and do any initialisations\n * that require the scopes to be populated with variables.\n */\n bind() {\n for (const key of childNodeKeys[this.type]) {\n const value = this[key];\n if (Array.isArray(value)) {\n for (const child of value) {\n child?.bind();\n }\n }\n else if (value) {\n value.bind();\n }\n }\n }\n /**\n * Override if this node should receive a different scope than the parent\n * scope.\n */\n createScope(parentScope) {\n this.scope = parentScope;\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n for (const key of childNodeKeys[this.type]) {\n const value = this[key];\n if (value === null)\n continue;\n if (Array.isArray(value)) {\n for (const child of value) {\n if (child?.hasEffects(context))\n return true;\n }\n }\n else if (value.hasEffects(context))\n return true;\n }\n return false;\n }\n hasEffectsAsAssignmentTarget(context, _checkAccess) {\n return (this.hasEffects(context) ||\n this.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.assignmentInteraction, context));\n }\n include(context, includeChildrenRecursively, _options) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n for (const key of childNodeKeys[this.type]) {\n const value = this[key];\n if (value === null)\n continue;\n if (Array.isArray(value)) {\n for (const child of value) {\n child?.include(context, includeChildrenRecursively);\n }\n }\n else {\n value.include(context, includeChildrenRecursively);\n }\n }\n }\n includeAsAssignmentTarget(context, includeChildrenRecursively, _deoptimizeAccess) {\n this.include(context, includeChildrenRecursively);\n }\n /**\n * Override to perform special initialisation steps after the scope is\n * initialised\n */\n initialise() {\n this.scope.context.magicString.addSourcemapLocation(this.start);\n this.scope.context.magicString.addSourcemapLocation(this.end);\n }\n parseNode(esTreeNode) {\n for (const [key, value] of Object.entries(esTreeNode)) {\n // Skip properties defined on the class already.\n // This way, we can override this function to add custom initialisation and then call super.parseNode\n // Note: this doesn't skip properties with defined getters/setters which we use to pack wrap booleans\n // in bitfields. Those are still assigned from the value in the esTreeNode.\n if (this.hasOwnProperty(key))\n continue;\n if (key.charCodeAt(0) === 95 /* _ */) {\n if (key === ANNOTATION_KEY) {\n this.annotations = value;\n }\n else if (key === INVALID_ANNOTATION_KEY) {\n this.invalidAnnotations = value;\n }\n }\n else if (typeof value !== 'object' || value === null) {\n this[key] = value;\n }\n else if (Array.isArray(value)) {\n this[key] = [];\n for (const child of value) {\n this[key].push(child === null\n ? null\n : new (this.scope.context.getNodeConstructor(child.type))(this, this.scope).parseNode(child));\n }\n }\n else {\n this[key] = new (this.scope.context.getNodeConstructor(value.type))(this, this.scope).parseNode(value);\n }\n }\n // extend child keys for unknown node types\n childNodeKeys[esTreeNode.type] ||= createChildNodeKeysForNode(esTreeNode);\n this.initialise();\n return this;\n }\n removeAnnotations(code) {\n if (this.annotations) {\n for (const annotation of this.annotations) {\n code.remove(annotation.start, annotation.end);\n }\n }\n }\n render(code, options) {\n for (const key of childNodeKeys[this.type]) {\n const value = this[key];\n if (value === null)\n continue;\n if (Array.isArray(value)) {\n for (const child of value) {\n child?.render(code, options);\n }\n }\n else {\n value.render(code, options);\n }\n }\n }\n setAssignedValue(value) {\n this.assignmentInteraction = { args: [null, value], type: INTERACTION_ASSIGNED };\n }\n shouldBeIncluded(context) {\n return this.included || (!context.brokenFlow && this.hasEffects(createHasEffectsContext()));\n }\n /**\n * Just deoptimize everything by default so that when e.g. we do not track\n * something properly, it is deoptimized.\n * @protected\n */\n applyDeoptimizations() {\n this.deoptimized = true;\n for (const key of childNodeKeys[this.type]) {\n const value = this[key];\n if (value === null)\n continue;\n if (Array.isArray(value)) {\n for (const child of value) {\n child?.deoptimizePath(UNKNOWN_PATH);\n }\n }\n else {\n value.deoptimizePath(UNKNOWN_PATH);\n }\n }\n this.scope.context.requestTreeshakingPass();\n }\n}\nfunction createChildNodeKeysForNode(esTreeNode) {\n return Object.keys(esTreeNode).filter(key => typeof esTreeNode[key] === 'object' && key.charCodeAt(0) !== 95 /* _ */);\n}\n\nclass SpreadElement extends NodeBase {\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n if (path.length > 0) {\n this.argument.deoptimizeArgumentsOnInteractionAtPath(interaction, [UnknownKey, ...path], recursionTracker);\n }\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n const { propertyReadSideEffects } = this.scope.context.options\n .treeshake;\n return (this.argument.hasEffects(context) ||\n (propertyReadSideEffects &&\n (propertyReadSideEffects === 'always' ||\n this.argument.hasEffectsOnInteractionAtPath(UNKNOWN_PATH, NODE_INTERACTION_UNKNOWN_ACCESS, context))));\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n // Only properties of properties of the argument could become subject to reassignment\n // This will also reassign the return values of iterators\n this.argument.deoptimizePath([UnknownKey, UnknownKey]);\n this.scope.context.requestTreeshakingPass();\n }\n}\n\nclass Method extends ExpressionEntity {\n constructor(description) {\n super();\n this.description = description;\n }\n deoptimizeArgumentsOnInteractionAtPath({ args, type }, path) {\n if (type === INTERACTION_CALLED && path.length === 0) {\n if (this.description.mutatesSelfAsArray) {\n args[0]?.deoptimizePath(UNKNOWN_INTEGER_PATH);\n }\n if (this.description.mutatesArgs) {\n for (let index = 1; index < args.length; index++) {\n args[index].deoptimizePath(UNKNOWN_PATH);\n }\n }\n }\n }\n getReturnExpressionWhenCalledAtPath(path, { args }) {\n if (path.length > 0) {\n return UNKNOWN_RETURN_EXPRESSION;\n }\n return [\n this.description.returnsPrimitive ||\n (this.description.returns === 'self'\n ? args[0] || UNKNOWN_EXPRESSION\n : this.description.returns()),\n false\n ];\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n const { type } = interaction;\n if (path.length > (type === INTERACTION_ACCESSED ? 1 : 0)) {\n return true;\n }\n if (type === INTERACTION_CALLED) {\n const { args } = interaction;\n if (this.description.mutatesSelfAsArray === true &&\n args[0]?.hasEffectsOnInteractionAtPath(UNKNOWN_INTEGER_PATH, NODE_INTERACTION_UNKNOWN_ASSIGNMENT, context)) {\n return true;\n }\n if (this.description.callsArgs) {\n for (const argumentIndex of this.description.callsArgs) {\n if (args[argumentIndex + 1]?.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, context)) {\n return true;\n }\n }\n }\n }\n return false;\n }\n}\nconst METHOD_RETURNS_BOOLEAN = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: false,\n returns: null,\n returnsPrimitive: UNKNOWN_LITERAL_BOOLEAN\n })\n];\nconst METHOD_RETURNS_STRING = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: false,\n returns: null,\n returnsPrimitive: UNKNOWN_LITERAL_STRING\n })\n];\nconst METHOD_RETURNS_NUMBER = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: false,\n returns: null,\n returnsPrimitive: UNKNOWN_LITERAL_NUMBER\n })\n];\nconst METHOD_RETURNS_UNKNOWN = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: false,\n returns: null,\n returnsPrimitive: UNKNOWN_EXPRESSION\n })\n];\n\nconst INTEGER_REG_EXP = /^\\d+$/;\nclass ObjectEntity extends ExpressionEntity {\n get hasLostTrack() {\n return isFlagSet(this.flags, 2048 /* Flag.hasLostTrack */);\n }\n set hasLostTrack(value) {\n this.flags = setFlag(this.flags, 2048 /* Flag.hasLostTrack */, value);\n }\n get hasUnknownDeoptimizedInteger() {\n return isFlagSet(this.flags, 4096 /* Flag.hasUnknownDeoptimizedInteger */);\n }\n set hasUnknownDeoptimizedInteger(value) {\n this.flags = setFlag(this.flags, 4096 /* Flag.hasUnknownDeoptimizedInteger */, value);\n }\n get hasUnknownDeoptimizedProperty() {\n return isFlagSet(this.flags, 8192 /* Flag.hasUnknownDeoptimizedProperty */);\n }\n set hasUnknownDeoptimizedProperty(value) {\n this.flags = setFlag(this.flags, 8192 /* Flag.hasUnknownDeoptimizedProperty */, value);\n }\n // If a PropertyMap is used, this will be taken as propertiesAndGettersByKey\n // and we assume there are no setters or getters\n constructor(properties, prototypeExpression, immutable = false) {\n super();\n this.prototypeExpression = prototypeExpression;\n this.immutable = immutable;\n this.additionalExpressionsToBeDeoptimized = new Set();\n this.allProperties = [];\n this.deoptimizedPaths = Object.create(null);\n this.expressionsToBeDeoptimizedByKey = Object.create(null);\n this.gettersByKey = Object.create(null);\n this.propertiesAndGettersByKey = Object.create(null);\n this.propertiesAndSettersByKey = Object.create(null);\n this.settersByKey = Object.create(null);\n this.unknownIntegerProps = [];\n this.unmatchableGetters = [];\n this.unmatchablePropertiesAndGetters = [];\n this.unmatchableSetters = [];\n if (Array.isArray(properties)) {\n this.buildPropertyMaps(properties);\n }\n else {\n this.propertiesAndGettersByKey = this.propertiesAndSettersByKey = properties;\n for (const propertiesForKey of Object.values(properties)) {\n this.allProperties.push(...propertiesForKey);\n }\n }\n }\n deoptimizeAllProperties(noAccessors) {\n const isDeoptimized = this.hasLostTrack || this.hasUnknownDeoptimizedProperty;\n if (noAccessors) {\n this.hasUnknownDeoptimizedProperty = true;\n }\n else {\n this.hasLostTrack = true;\n }\n if (isDeoptimized) {\n return;\n }\n for (const properties of [\n ...Object.values(this.propertiesAndGettersByKey),\n ...Object.values(this.settersByKey)\n ]) {\n for (const property of properties) {\n property.deoptimizePath(UNKNOWN_PATH);\n }\n }\n // While the prototype itself cannot be mutated, each property can\n this.prototypeExpression?.deoptimizePath([UnknownKey, UnknownKey]);\n this.deoptimizeCachedEntities();\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n const [key, ...subPath] = path;\n const { args, type } = interaction;\n if (this.hasLostTrack ||\n // single paths that are deoptimized will not become getters or setters\n ((type === INTERACTION_CALLED || path.length > 1) &&\n (this.hasUnknownDeoptimizedProperty ||\n (typeof key === 'string' && this.deoptimizedPaths[key])))) {\n deoptimizeInteraction(interaction);\n return;\n }\n const [propertiesForExactMatchByKey, relevantPropertiesByKey, relevantUnmatchableProperties] = type === INTERACTION_CALLED || path.length > 1\n ? [\n this.propertiesAndGettersByKey,\n this.propertiesAndGettersByKey,\n this.unmatchablePropertiesAndGetters\n ]\n : type === INTERACTION_ACCESSED\n ? [this.propertiesAndGettersByKey, this.gettersByKey, this.unmatchableGetters]\n : [this.propertiesAndSettersByKey, this.settersByKey, this.unmatchableSetters];\n if (typeof key === 'string') {\n if (propertiesForExactMatchByKey[key]) {\n const properties = relevantPropertiesByKey[key];\n if (properties) {\n for (const property of properties) {\n property.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker);\n }\n }\n if (!this.immutable) {\n for (const argument of args) {\n if (argument) {\n this.additionalExpressionsToBeDeoptimized.add(argument);\n }\n }\n }\n return;\n }\n for (const property of relevantUnmatchableProperties) {\n property.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker);\n }\n if (INTEGER_REG_EXP.test(key)) {\n for (const property of this.unknownIntegerProps) {\n property.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker);\n }\n }\n }\n else {\n for (const properties of [\n ...Object.values(relevantPropertiesByKey),\n relevantUnmatchableProperties\n ]) {\n for (const property of properties) {\n property.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker);\n }\n }\n for (const property of this.unknownIntegerProps) {\n property.deoptimizeArgumentsOnInteractionAtPath(interaction, subPath, recursionTracker);\n }\n }\n if (!this.immutable) {\n for (const argument of args) {\n if (argument) {\n this.additionalExpressionsToBeDeoptimized.add(argument);\n }\n }\n }\n this.prototypeExpression?.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizeIntegerProperties() {\n if (this.hasLostTrack ||\n this.hasUnknownDeoptimizedProperty ||\n this.hasUnknownDeoptimizedInteger) {\n return;\n }\n this.hasUnknownDeoptimizedInteger = true;\n for (const [key, propertiesAndGetters] of Object.entries(this.propertiesAndGettersByKey)) {\n if (INTEGER_REG_EXP.test(key)) {\n for (const property of propertiesAndGetters) {\n property.deoptimizePath(UNKNOWN_PATH);\n }\n }\n }\n this.deoptimizeCachedIntegerEntities();\n }\n // Assumption: If only a specific path is deoptimized, no accessors are created\n deoptimizePath(path) {\n if (this.hasLostTrack || this.immutable) {\n return;\n }\n const key = path[0];\n if (path.length === 1) {\n if (key === UnknownInteger) {\n return this.deoptimizeIntegerProperties();\n }\n else if (typeof key !== 'string') {\n return this.deoptimizeAllProperties(key === UnknownNonAccessorKey);\n }\n if (!this.deoptimizedPaths[key]) {\n this.deoptimizedPaths[key] = true;\n // we only deoptimizeCache exact matches as in all other cases,\n // we do not return a literal value or return expression\n const expressionsToBeDeoptimized = this.expressionsToBeDeoptimizedByKey[key];\n if (expressionsToBeDeoptimized) {\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizeCache();\n }\n }\n }\n }\n const subPath = path.length === 1 ? UNKNOWN_PATH : path.slice(1);\n for (const property of typeof key === 'string'\n ? [\n ...(this.propertiesAndGettersByKey[key] || this.unmatchablePropertiesAndGetters),\n ...(this.settersByKey[key] || this.unmatchableSetters)\n ]\n : this.allProperties) {\n property.deoptimizePath(subPath);\n }\n this.prototypeExpression?.deoptimizePath(path.length === 1 ? [...path, UnknownKey] : path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n if (path.length === 0) {\n return UnknownTruthyValue;\n }\n const key = path[0];\n const expressionAtPath = this.getMemberExpressionAndTrackDeopt(key, origin);\n if (expressionAtPath) {\n return expressionAtPath.getLiteralValueAtPath(path.slice(1), recursionTracker, origin);\n }\n if (this.prototypeExpression) {\n return this.prototypeExpression.getLiteralValueAtPath(path, recursionTracker, origin);\n }\n if (path.length === 1) {\n return undefined;\n }\n return UnknownValue;\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n if (path.length === 0) {\n return UNKNOWN_RETURN_EXPRESSION;\n }\n const [key, ...subPath] = path;\n const expressionAtPath = this.getMemberExpressionAndTrackDeopt(key, origin);\n if (expressionAtPath) {\n return expressionAtPath.getReturnExpressionWhenCalledAtPath(subPath, interaction, recursionTracker, origin);\n }\n if (this.prototypeExpression) {\n return this.prototypeExpression.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n return UNKNOWN_RETURN_EXPRESSION;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n const [key, ...subPath] = path;\n if (subPath.length > 0 || interaction.type === INTERACTION_CALLED) {\n const expressionAtPath = this.getMemberExpression(key);\n if (expressionAtPath) {\n return expressionAtPath.hasEffectsOnInteractionAtPath(subPath, interaction, context);\n }\n if (this.prototypeExpression) {\n return this.prototypeExpression.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n return true;\n }\n if (key === UnknownNonAccessorKey)\n return false;\n if (this.hasLostTrack)\n return true;\n const [propertiesAndAccessorsByKey, accessorsByKey, unmatchableAccessors] = interaction.type === INTERACTION_ACCESSED\n ? [this.propertiesAndGettersByKey, this.gettersByKey, this.unmatchableGetters]\n : [this.propertiesAndSettersByKey, this.settersByKey, this.unmatchableSetters];\n if (typeof key === 'string') {\n if (propertiesAndAccessorsByKey[key]) {\n const accessors = accessorsByKey[key];\n if (accessors) {\n for (const accessor of accessors) {\n if (accessor.hasEffectsOnInteractionAtPath(subPath, interaction, context))\n return true;\n }\n }\n return false;\n }\n for (const accessor of unmatchableAccessors) {\n if (accessor.hasEffectsOnInteractionAtPath(subPath, interaction, context)) {\n return true;\n }\n }\n }\n else {\n for (const accessors of [...Object.values(accessorsByKey), unmatchableAccessors]) {\n for (const accessor of accessors) {\n if (accessor.hasEffectsOnInteractionAtPath(subPath, interaction, context))\n return true;\n }\n }\n }\n if (this.prototypeExpression) {\n return this.prototypeExpression.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n return false;\n }\n buildPropertyMaps(properties) {\n const { allProperties, propertiesAndGettersByKey, propertiesAndSettersByKey, settersByKey, gettersByKey, unknownIntegerProps, unmatchablePropertiesAndGetters, unmatchableGetters, unmatchableSetters } = this;\n const unmatchablePropertiesAndSetters = [];\n for (let index = properties.length - 1; index >= 0; index--) {\n const { key, kind, property } = properties[index];\n allProperties.push(property);\n if (typeof key === 'string') {\n if (kind === 'set') {\n if (!propertiesAndSettersByKey[key]) {\n propertiesAndSettersByKey[key] = [property, ...unmatchablePropertiesAndSetters];\n settersByKey[key] = [property, ...unmatchableSetters];\n }\n }\n else if (kind === 'get') {\n if (!propertiesAndGettersByKey[key]) {\n propertiesAndGettersByKey[key] = [property, ...unmatchablePropertiesAndGetters];\n gettersByKey[key] = [property, ...unmatchableGetters];\n }\n }\n else {\n if (!propertiesAndSettersByKey[key]) {\n propertiesAndSettersByKey[key] = [property, ...unmatchablePropertiesAndSetters];\n }\n if (!propertiesAndGettersByKey[key]) {\n propertiesAndGettersByKey[key] = [property, ...unmatchablePropertiesAndGetters];\n }\n }\n }\n else {\n if (key === UnknownInteger) {\n unknownIntegerProps.push(property);\n continue;\n }\n if (kind === 'set')\n unmatchableSetters.push(property);\n if (kind === 'get')\n unmatchableGetters.push(property);\n if (kind !== 'get')\n unmatchablePropertiesAndSetters.push(property);\n if (kind !== 'set')\n unmatchablePropertiesAndGetters.push(property);\n }\n }\n }\n deoptimizeCachedEntities() {\n for (const expressionsToBeDeoptimized of Object.values(this.expressionsToBeDeoptimizedByKey)) {\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizeCache();\n }\n }\n for (const expression of this.additionalExpressionsToBeDeoptimized) {\n expression.deoptimizePath(UNKNOWN_PATH);\n }\n }\n deoptimizeCachedIntegerEntities() {\n for (const [key, expressionsToBeDeoptimized] of Object.entries(this.expressionsToBeDeoptimizedByKey)) {\n if (INTEGER_REG_EXP.test(key)) {\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizeCache();\n }\n }\n }\n for (const expression of this.additionalExpressionsToBeDeoptimized) {\n expression.deoptimizePath(UNKNOWN_INTEGER_PATH);\n }\n }\n getMemberExpression(key) {\n if (this.hasLostTrack ||\n this.hasUnknownDeoptimizedProperty ||\n typeof key !== 'string' ||\n (this.hasUnknownDeoptimizedInteger && INTEGER_REG_EXP.test(key)) ||\n this.deoptimizedPaths[key]) {\n return UNKNOWN_EXPRESSION;\n }\n const properties = this.propertiesAndGettersByKey[key];\n if (properties?.length === 1) {\n return properties[0];\n }\n if (properties ||\n this.unmatchablePropertiesAndGetters.length > 0 ||\n (this.unknownIntegerProps.length > 0 && INTEGER_REG_EXP.test(key))) {\n return UNKNOWN_EXPRESSION;\n }\n return null;\n }\n getMemberExpressionAndTrackDeopt(key, origin) {\n if (typeof key !== 'string') {\n return UNKNOWN_EXPRESSION;\n }\n const expression = this.getMemberExpression(key);\n if (!(expression === UNKNOWN_EXPRESSION || this.immutable)) {\n const expressionsToBeDeoptimized = (this.expressionsToBeDeoptimizedByKey[key] =\n this.expressionsToBeDeoptimizedByKey[key] || []);\n expressionsToBeDeoptimized.push(origin);\n }\n return expression;\n }\n}\n\nconst isInteger = (property) => typeof property === 'string' && /^\\d+$/.test(property);\n// This makes sure unknown properties are not handled as \"undefined\" but as\n// \"unknown\" but without access side effects. An exception is done for numeric\n// properties as we do not expect new builtin properties to be numbers, this\n// will improve tree-shaking for out-of-bounds array properties\nconst OBJECT_PROTOTYPE_FALLBACK = new (class ObjectPrototypeFallbackExpression extends ExpressionEntity {\n deoptimizeArgumentsOnInteractionAtPath(interaction, path) {\n if (interaction.type === INTERACTION_CALLED && path.length === 1 && !isInteger(path[0])) {\n deoptimizeInteraction(interaction);\n }\n }\n getLiteralValueAtPath(path) {\n // We ignore number properties as we do not expect new properties to be\n // numbers and also want to keep handling out-of-bound array elements as\n // \"undefined\"\n return path.length === 1 && isInteger(path[0]) ? undefined : UnknownValue;\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return path.length > 1 || type === INTERACTION_CALLED;\n }\n})();\nconst OBJECT_PROTOTYPE = new ObjectEntity({\n __proto__: null,\n hasOwnProperty: METHOD_RETURNS_BOOLEAN,\n isPrototypeOf: METHOD_RETURNS_BOOLEAN,\n propertyIsEnumerable: METHOD_RETURNS_BOOLEAN,\n toLocaleString: METHOD_RETURNS_STRING,\n toString: METHOD_RETURNS_STRING,\n valueOf: METHOD_RETURNS_UNKNOWN\n}, OBJECT_PROTOTYPE_FALLBACK, true);\n\nconst NEW_ARRAY_PROPERTIES = [\n { key: UnknownInteger, kind: 'init', property: UNKNOWN_EXPRESSION },\n { key: 'length', kind: 'init', property: UNKNOWN_LITERAL_NUMBER }\n];\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN = [\n new Method({\n callsArgs: [0],\n mutatesArgs: false,\n mutatesSelfAsArray: 'deopt-only',\n returns: null,\n returnsPrimitive: UNKNOWN_LITERAL_BOOLEAN\n })\n];\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER = [\n new Method({\n callsArgs: [0],\n mutatesArgs: false,\n mutatesSelfAsArray: 'deopt-only',\n returns: null,\n returnsPrimitive: UNKNOWN_LITERAL_NUMBER\n })\n];\nconst METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: true,\n returns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE),\n returnsPrimitive: null\n })\n];\nconst METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: 'deopt-only',\n returns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE),\n returnsPrimitive: null\n })\n];\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY = [\n new Method({\n callsArgs: [0],\n mutatesArgs: false,\n mutatesSelfAsArray: 'deopt-only',\n returns: () => new ObjectEntity(NEW_ARRAY_PROPERTIES, ARRAY_PROTOTYPE),\n returnsPrimitive: null\n })\n];\nconst METHOD_MUTATES_SELF_AND_ARGS_RETURNS_NUMBER = [\n new Method({\n callsArgs: null,\n mutatesArgs: true,\n mutatesSelfAsArray: true,\n returns: null,\n returnsPrimitive: UNKNOWN_LITERAL_NUMBER\n })\n];\nconst METHOD_MUTATES_SELF_RETURNS_UNKNOWN = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: true,\n returns: null,\n returnsPrimitive: UNKNOWN_EXPRESSION\n })\n];\nconst METHOD_DEOPTS_SELF_RETURNS_UNKNOWN = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: 'deopt-only',\n returns: null,\n returnsPrimitive: UNKNOWN_EXPRESSION\n })\n];\nconst METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN = [\n new Method({\n callsArgs: [0],\n mutatesArgs: false,\n mutatesSelfAsArray: 'deopt-only',\n returns: null,\n returnsPrimitive: UNKNOWN_EXPRESSION\n })\n];\nconst METHOD_MUTATES_SELF_RETURNS_SELF = [\n new Method({\n callsArgs: null,\n mutatesArgs: false,\n mutatesSelfAsArray: true,\n returns: 'self',\n returnsPrimitive: null\n })\n];\nconst METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF = [\n new Method({\n callsArgs: [0],\n mutatesArgs: false,\n mutatesSelfAsArray: true,\n returns: 'self',\n returnsPrimitive: null\n })\n];\nconst ARRAY_PROTOTYPE = new ObjectEntity({\n __proto__: null,\n // We assume that accessors have effects as we do not track the accessed value afterwards\n at: METHOD_DEOPTS_SELF_RETURNS_UNKNOWN,\n concat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n copyWithin: METHOD_MUTATES_SELF_RETURNS_SELF,\n entries: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n every: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN,\n fill: METHOD_MUTATES_SELF_RETURNS_SELF,\n filter: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n find: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n findIndex: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER,\n findLast: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n findLastIndex: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER,\n flat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n flatMap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n forEach: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n includes: METHOD_RETURNS_BOOLEAN,\n indexOf: METHOD_RETURNS_NUMBER,\n join: METHOD_RETURNS_STRING,\n keys: METHOD_RETURNS_UNKNOWN,\n lastIndexOf: METHOD_RETURNS_NUMBER,\n map: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n pop: METHOD_MUTATES_SELF_RETURNS_UNKNOWN,\n push: METHOD_MUTATES_SELF_AND_ARGS_RETURNS_NUMBER,\n reduce: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n reduceRight: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,\n reverse: METHOD_MUTATES_SELF_RETURNS_SELF,\n shift: METHOD_MUTATES_SELF_RETURNS_UNKNOWN,\n slice: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,\n some: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN,\n sort: METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF,\n splice: METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY,\n toLocaleString: METHOD_RETURNS_STRING,\n toString: METHOD_RETURNS_STRING,\n unshift: METHOD_MUTATES_SELF_AND_ARGS_RETURNS_NUMBER,\n values: METHOD_DEOPTS_SELF_RETURNS_UNKNOWN\n}, OBJECT_PROTOTYPE, true);\n\nclass ArrayExpression extends NodeBase {\n constructor() {\n super(...arguments);\n this.objectEntity = null;\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizePath(path) {\n this.getObjectEntity().deoptimizePath(path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.getObjectEntity().getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return this.getObjectEntity().hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n let hasSpread = false;\n for (let index = 0; index < this.elements.length; index++) {\n const element = this.elements[index];\n if (element && (hasSpread || element instanceof SpreadElement)) {\n hasSpread = true;\n element.deoptimizePath(UNKNOWN_PATH);\n }\n }\n this.scope.context.requestTreeshakingPass();\n }\n getObjectEntity() {\n if (this.objectEntity !== null) {\n return this.objectEntity;\n }\n const properties = [\n { key: 'length', kind: 'init', property: UNKNOWN_LITERAL_NUMBER }\n ];\n let hasSpread = false;\n for (let index = 0; index < this.elements.length; index++) {\n const element = this.elements[index];\n if (hasSpread || element instanceof SpreadElement) {\n if (element) {\n hasSpread = true;\n properties.unshift({ key: UnknownInteger, kind: 'init', property: element });\n }\n }\n else if (element) {\n properties.push({ key: String(index), kind: 'init', property: element });\n }\n else {\n properties.push({ key: String(index), kind: 'init', property: UNDEFINED_EXPRESSION });\n }\n }\n return (this.objectEntity = new ObjectEntity(properties, ARRAY_PROTOTYPE));\n }\n}\n\nclass ArrayPattern extends NodeBase {\n addExportedVariables(variables, exportNamesByVariable) {\n for (const element of this.elements) {\n element?.addExportedVariables(variables, exportNamesByVariable);\n }\n }\n declare(kind) {\n const variables = [];\n for (const element of this.elements) {\n if (element !== null) {\n variables.push(...element.declare(kind, UNKNOWN_EXPRESSION));\n }\n }\n return variables;\n }\n // Patterns can only be deoptimized at the empty path at the moment\n deoptimizePath() {\n for (const element of this.elements) {\n element?.deoptimizePath(EMPTY_PATH);\n }\n }\n // Patterns are only checked at the empty path at the moment\n hasEffectsOnInteractionAtPath(_path, interaction, context) {\n for (const element of this.elements) {\n if (element?.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context))\n return true;\n }\n return false;\n }\n markDeclarationReached() {\n for (const element of this.elements) {\n element?.markDeclarationReached();\n }\n }\n}\n\n/** @typedef { import('estree').Node} Node */\n/** @typedef {Node | {\n * type: 'PropertyDefinition';\n * computed: boolean;\n * value: Node\n * }} NodeWithPropertyDefinition */\n\n/**\n *\n * @param {NodeWithPropertyDefinition} node\n * @param {NodeWithPropertyDefinition} parent\n * @returns {boolean}\n */\nfunction is_reference (node, parent) {\n\tif (node.type === 'MemberExpression') {\n\t\treturn !node.computed && is_reference(node.object, node);\n\t}\n\n\tif (node.type === 'Identifier') {\n\t\tif (!parent) return true;\n\n\t\tswitch (parent.type) {\n\t\t\t// disregard `bar` in `foo.bar`\n\t\t\tcase 'MemberExpression': return parent.computed || node === parent.object;\n\n\t\t\t// disregard the `foo` in `class {foo(){}}` but keep it in `class {[foo](){}}`\n\t\t\tcase 'MethodDefinition': return parent.computed;\n\n\t\t\t// disregard the `foo` in `class {foo=bar}` but keep it in `class {[foo]=bar}` and `class {bar=foo}`\n\t\t\tcase 'PropertyDefinition': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `{ bar: foo }`, but keep it in `{ [bar]: foo }`\n\t\t\tcase 'Property': return parent.computed || node === parent.value;\n\n\t\t\t// disregard the `bar` in `export { foo as bar }` or\n\t\t\t// the foo in `import { foo as bar }`\n\t\t\tcase 'ExportSpecifier':\n\t\t\tcase 'ImportSpecifier': return node === parent.local;\n\n\t\t\t// disregard the `foo` in `foo: while (...) { ... break foo; ... continue foo;}`\n\t\t\tcase 'LabeledStatement':\n\t\t\tcase 'BreakStatement':\n\t\t\tcase 'ContinueStatement': return false;\n\t\t\tdefault: return true;\n\t\t}\n\t}\n\n\treturn false;\n}\n\nconst PureFunctionKey = Symbol('PureFunction');\nconst getPureFunctions = ({ treeshake }) => {\n const pureFunctions = Object.create(null);\n for (const functionName of treeshake ? treeshake.manualPureFunctions : []) {\n let currentFunctions = pureFunctions;\n for (const pathSegment of functionName.split('.')) {\n currentFunctions = currentFunctions[pathSegment] ||= Object.create(null);\n }\n currentFunctions[PureFunctionKey] = true;\n }\n return pureFunctions;\n};\n\nconst doNothing = () => { };\n\n/* eslint sort-keys: \"off\" */\nconst ValueProperties = Symbol('Value Properties');\nconst getTruthyLiteralValue = () => UnknownTruthyValue;\nconst returnFalse = () => false;\nconst returnTrue = () => true;\nconst PURE = {\n deoptimizeArgumentsOnCall: doNothing,\n getLiteralValue: getTruthyLiteralValue,\n hasEffectsWhenCalled: returnFalse\n};\nconst IMPURE = {\n deoptimizeArgumentsOnCall: doNothing,\n getLiteralValue: getTruthyLiteralValue,\n hasEffectsWhenCalled: returnTrue\n};\nconst PURE_WITH_ARRAY = {\n deoptimizeArgumentsOnCall: doNothing,\n getLiteralValue: getTruthyLiteralValue,\n hasEffectsWhenCalled({ args }) {\n return args.length > 1 && !(args[1] instanceof ArrayExpression);\n }\n};\nconst GETTER_ACCESS = {\n deoptimizeArgumentsOnCall: doNothing,\n getLiteralValue: getTruthyLiteralValue,\n hasEffectsWhenCalled({ args }, context) {\n const [_thisArgument, firstArgument] = args;\n return (!(firstArgument instanceof ExpressionEntity) ||\n firstArgument.hasEffectsOnInteractionAtPath(UNKNOWN_PATH, NODE_INTERACTION_UNKNOWN_ACCESS, context));\n }\n};\n// We use shortened variables to reduce file size here\n/* OBJECT */\nconst O = {\n __proto__: null,\n [ValueProperties]: IMPURE\n};\n/* PURE FUNCTION */\nconst PF = {\n __proto__: null,\n [ValueProperties]: PURE\n};\n/* PURE FUNCTION IF FIRST ARG DOES NOT CONTAIN A GETTER */\nconst PF_NO_GETTER = {\n __proto__: null,\n [ValueProperties]: GETTER_ACCESS\n};\n/* FUNCTION THAT MUTATES FIRST ARG WITHOUT TRIGGERING ACCESSORS */\nconst MUTATES_ARG_WITHOUT_ACCESSOR = {\n __proto__: null,\n [ValueProperties]: {\n deoptimizeArgumentsOnCall({ args: [, firstArgument] }) {\n firstArgument?.deoptimizePath(UNKNOWN_PATH);\n },\n getLiteralValue: getTruthyLiteralValue,\n hasEffectsWhenCalled({ args }, context) {\n return (args.length <= 1 ||\n args[1].hasEffectsOnInteractionAtPath(UNKNOWN_NON_ACCESSOR_PATH, NODE_INTERACTION_UNKNOWN_ASSIGNMENT, context));\n }\n }\n};\n/* CONSTRUCTOR */\nconst C = {\n __proto__: null,\n [ValueProperties]: IMPURE,\n prototype: O\n};\n/* PURE CONSTRUCTOR */\nconst PC = {\n __proto__: null,\n [ValueProperties]: PURE,\n prototype: O\n};\nconst PC_WITH_ARRAY = {\n __proto__: null,\n [ValueProperties]: PURE_WITH_ARRAY,\n prototype: O\n};\nconst ARRAY_TYPE = {\n __proto__: null,\n [ValueProperties]: PURE,\n from: O,\n of: PF,\n prototype: O\n};\nconst INTL_MEMBER = {\n __proto__: null,\n [ValueProperties]: PURE,\n supportedLocalesOf: PC\n};\nconst knownGlobals = {\n // Placeholders for global objects to avoid shape mutations\n global: O,\n globalThis: O,\n self: O,\n window: O,\n // Common globals\n __proto__: null,\n [ValueProperties]: IMPURE,\n Array: {\n __proto__: null,\n [ValueProperties]: IMPURE,\n from: O,\n isArray: PF,\n of: PF,\n prototype: O\n },\n ArrayBuffer: {\n __proto__: null,\n [ValueProperties]: PURE,\n isView: PF,\n prototype: O\n },\n Atomics: O,\n BigInt: C,\n BigInt64Array: C,\n BigUint64Array: C,\n Boolean: PC,\n constructor: C,\n DataView: PC,\n Date: {\n __proto__: null,\n [ValueProperties]: PURE,\n now: PF,\n parse: PF,\n prototype: O,\n UTC: PF\n },\n decodeURI: PF,\n decodeURIComponent: PF,\n encodeURI: PF,\n encodeURIComponent: PF,\n Error: PC,\n escape: PF,\n eval: O,\n EvalError: PC,\n Float32Array: ARRAY_TYPE,\n Float64Array: ARRAY_TYPE,\n Function: C,\n hasOwnProperty: O,\n Infinity: O,\n Int16Array: ARRAY_TYPE,\n Int32Array: ARRAY_TYPE,\n Int8Array: ARRAY_TYPE,\n isFinite: PF,\n isNaN: PF,\n isPrototypeOf: O,\n JSON: O,\n Map: PC_WITH_ARRAY,\n Math: {\n __proto__: null,\n [ValueProperties]: IMPURE,\n abs: PF,\n acos: PF,\n acosh: PF,\n asin: PF,\n asinh: PF,\n atan: PF,\n atan2: PF,\n atanh: PF,\n cbrt: PF,\n ceil: PF,\n clz32: PF,\n cos: PF,\n cosh: PF,\n exp: PF,\n expm1: PF,\n floor: PF,\n fround: PF,\n hypot: PF,\n imul: PF,\n log: PF,\n log10: PF,\n log1p: PF,\n log2: PF,\n max: PF,\n min: PF,\n pow: PF,\n random: PF,\n round: PF,\n sign: PF,\n sin: PF,\n sinh: PF,\n sqrt: PF,\n tan: PF,\n tanh: PF,\n trunc: PF\n },\n NaN: O,\n Number: {\n __proto__: null,\n [ValueProperties]: PURE,\n isFinite: PF,\n isInteger: PF,\n isNaN: PF,\n isSafeInteger: PF,\n parseFloat: PF,\n parseInt: PF,\n prototype: O\n },\n Object: {\n __proto__: null,\n [ValueProperties]: PURE,\n create: PF,\n // Technically those can throw in certain situations, but we ignore this as\n // code that relies on this will hopefully wrap this in a try-catch, which\n // deoptimizes everything anyway\n defineProperty: MUTATES_ARG_WITHOUT_ACCESSOR,\n defineProperties: MUTATES_ARG_WITHOUT_ACCESSOR,\n freeze: MUTATES_ARG_WITHOUT_ACCESSOR,\n getOwnPropertyDescriptor: PF,\n getOwnPropertyDescriptors: PF,\n getOwnPropertyNames: PF,\n getOwnPropertySymbols: PF,\n getPrototypeOf: PF,\n hasOwn: PF,\n is: PF,\n isExtensible: PF,\n isFrozen: PF,\n isSealed: PF,\n keys: PF,\n fromEntries: O,\n entries: PF_NO_GETTER,\n values: PF_NO_GETTER,\n prototype: O\n },\n parseFloat: PF,\n parseInt: PF,\n Promise: {\n __proto__: null,\n [ValueProperties]: IMPURE,\n all: O,\n allSettled: O,\n any: O,\n prototype: O,\n race: O,\n reject: O,\n resolve: O\n },\n propertyIsEnumerable: O,\n Proxy: O,\n RangeError: PC,\n ReferenceError: PC,\n Reflect: O,\n RegExp: PC,\n Set: PC_WITH_ARRAY,\n SharedArrayBuffer: C,\n String: {\n __proto__: null,\n [ValueProperties]: PURE,\n fromCharCode: PF,\n fromCodePoint: PF,\n prototype: O,\n raw: PF\n },\n Symbol: {\n __proto__: null,\n [ValueProperties]: PURE,\n for: PF,\n keyFor: PF,\n prototype: O,\n toStringTag: {\n __proto__: null,\n [ValueProperties]: {\n deoptimizeArgumentsOnCall: doNothing,\n getLiteralValue() {\n return SymbolToStringTag;\n },\n hasEffectsWhenCalled: returnTrue\n }\n }\n },\n SyntaxError: PC,\n toLocaleString: O,\n toString: O,\n TypeError: PC,\n Uint16Array: ARRAY_TYPE,\n Uint32Array: ARRAY_TYPE,\n Uint8Array: ARRAY_TYPE,\n Uint8ClampedArray: ARRAY_TYPE,\n // Technically, this is a global, but it needs special handling\n // undefined: ?,\n unescape: PF,\n URIError: PC,\n valueOf: O,\n WeakMap: PC_WITH_ARRAY,\n WeakSet: PC_WITH_ARRAY,\n // Additional globals shared by Node and Browser that are not strictly part of the language\n clearInterval: C,\n clearTimeout: C,\n console: {\n __proto__: null,\n [ValueProperties]: IMPURE,\n assert: C,\n clear: C,\n count: C,\n countReset: C,\n debug: C,\n dir: C,\n dirxml: C,\n error: C,\n exception: C,\n group: C,\n groupCollapsed: C,\n groupEnd: C,\n info: C,\n log: C,\n table: C,\n time: C,\n timeEnd: C,\n timeLog: C,\n trace: C,\n warn: C\n },\n Intl: {\n __proto__: null,\n [ValueProperties]: IMPURE,\n Collator: INTL_MEMBER,\n DateTimeFormat: INTL_MEMBER,\n DisplayNames: INTL_MEMBER,\n ListFormat: INTL_MEMBER,\n Locale: INTL_MEMBER,\n NumberFormat: INTL_MEMBER,\n PluralRules: INTL_MEMBER,\n RelativeTimeFormat: INTL_MEMBER,\n Segmenter: INTL_MEMBER\n },\n setInterval: C,\n setTimeout: C,\n TextDecoder: C,\n TextEncoder: C,\n URL: {\n __proto__: null,\n [ValueProperties]: IMPURE,\n prototype: O,\n canParse: PF\n },\n URLSearchParams: C,\n // Browser specific globals\n AbortController: C,\n AbortSignal: C,\n addEventListener: O,\n alert: O,\n AnalyserNode: C,\n Animation: C,\n AnimationEvent: C,\n applicationCache: O,\n ApplicationCache: C,\n ApplicationCacheErrorEvent: C,\n atob: O,\n Attr: C,\n Audio: C,\n AudioBuffer: C,\n AudioBufferSourceNode: C,\n AudioContext: C,\n AudioDestinationNode: C,\n AudioListener: C,\n AudioNode: C,\n AudioParam: C,\n AudioProcessingEvent: C,\n AudioScheduledSourceNode: C,\n AudioWorkletNode: C,\n BarProp: C,\n BaseAudioContext: C,\n BatteryManager: C,\n BeforeUnloadEvent: C,\n BiquadFilterNode: C,\n Blob: C,\n BlobEvent: C,\n blur: O,\n BroadcastChannel: C,\n btoa: O,\n ByteLengthQueuingStrategy: C,\n Cache: C,\n caches: O,\n CacheStorage: C,\n cancelAnimationFrame: O,\n cancelIdleCallback: O,\n CanvasCaptureMediaStreamTrack: C,\n CanvasGradient: C,\n CanvasPattern: C,\n CanvasRenderingContext2D: C,\n ChannelMergerNode: C,\n ChannelSplitterNode: C,\n CharacterData: C,\n clientInformation: O,\n ClipboardEvent: C,\n close: O,\n closed: O,\n CloseEvent: C,\n Comment: C,\n CompositionEvent: C,\n confirm: O,\n ConstantSourceNode: C,\n ConvolverNode: C,\n CountQueuingStrategy: C,\n createImageBitmap: O,\n Credential: C,\n CredentialsContainer: C,\n crypto: O,\n Crypto: C,\n CryptoKey: C,\n CSS: C,\n CSSConditionRule: C,\n CSSFontFaceRule: C,\n CSSGroupingRule: C,\n CSSImportRule: C,\n CSSKeyframeRule: C,\n CSSKeyframesRule: C,\n CSSMediaRule: C,\n CSSNamespaceRule: C,\n CSSPageRule: C,\n CSSRule: C,\n CSSRuleList: C,\n CSSStyleDeclaration: C,\n CSSStyleRule: C,\n CSSStyleSheet: C,\n CSSSupportsRule: C,\n CustomElementRegistry: C,\n customElements: O,\n CustomEvent: {\n __proto__: null,\n [ValueProperties]: {\n deoptimizeArgumentsOnCall({ args }) {\n args[2]?.deoptimizePath(['detail']);\n },\n getLiteralValue: getTruthyLiteralValue,\n hasEffectsWhenCalled: returnFalse\n },\n prototype: O\n },\n DataTransfer: C,\n DataTransferItem: C,\n DataTransferItemList: C,\n defaultstatus: O,\n defaultStatus: O,\n DelayNode: C,\n DeviceMotionEvent: C,\n DeviceOrientationEvent: C,\n devicePixelRatio: O,\n dispatchEvent: O,\n document: O,\n Document: C,\n DocumentFragment: C,\n DocumentType: C,\n DOMError: C,\n DOMException: C,\n DOMImplementation: C,\n DOMMatrix: C,\n DOMMatrixReadOnly: C,\n DOMParser: C,\n DOMPoint: C,\n DOMPointReadOnly: C,\n DOMQuad: C,\n DOMRect: C,\n DOMRectReadOnly: C,\n DOMStringList: C,\n DOMStringMap: C,\n DOMTokenList: C,\n DragEvent: C,\n DynamicsCompressorNode: C,\n Element: C,\n ErrorEvent: C,\n Event: C,\n EventSource: C,\n EventTarget: C,\n external: O,\n fetch: O,\n File: C,\n FileList: C,\n FileReader: C,\n find: O,\n focus: O,\n FocusEvent: C,\n FontFace: C,\n FontFaceSetLoadEvent: C,\n FormData: C,\n frames: O,\n GainNode: C,\n Gamepad: C,\n GamepadButton: C,\n GamepadEvent: C,\n getComputedStyle: O,\n getSelection: O,\n HashChangeEvent: C,\n Headers: C,\n history: O,\n History: C,\n HTMLAllCollection: C,\n HTMLAnchorElement: C,\n HTMLAreaElement: C,\n HTMLAudioElement: C,\n HTMLBaseElement: C,\n HTMLBodyElement: C,\n HTMLBRElement: C,\n HTMLButtonElement: C,\n HTMLCanvasElement: C,\n HTMLCollection: C,\n HTMLContentElement: C,\n HTMLDataElement: C,\n HTMLDataListElement: C,\n HTMLDetailsElement: C,\n HTMLDialogElement: C,\n HTMLDirectoryElement: C,\n HTMLDivElement: C,\n HTMLDListElement: C,\n HTMLDocument: C,\n HTMLElement: C,\n HTMLEmbedElement: C,\n HTMLFieldSetElement: C,\n HTMLFontElement: C,\n HTMLFormControlsCollection: C,\n HTMLFormElement: C,\n HTMLFrameElement: C,\n HTMLFrameSetElement: C,\n HTMLHeadElement: C,\n HTMLHeadingElement: C,\n HTMLHRElement: C,\n HTMLHtmlElement: C,\n HTMLIFrameElement: C,\n HTMLImageElement: C,\n HTMLInputElement: C,\n HTMLLabelElement: C,\n HTMLLegendElement: C,\n HTMLLIElement: C,\n HTMLLinkElement: C,\n HTMLMapElement: C,\n HTMLMarqueeElement: C,\n HTMLMediaElement: C,\n HTMLMenuElement: C,\n HTMLMetaElement: C,\n HTMLMeterElement: C,\n HTMLModElement: C,\n HTMLObjectElement: C,\n HTMLOListElement: C,\n HTMLOptGroupElement: C,\n HTMLOptionElement: C,\n HTMLOptionsCollection: C,\n HTMLOutputElement: C,\n HTMLParagraphElement: C,\n HTMLParamElement: C,\n HTMLPictureElement: C,\n HTMLPreElement: C,\n HTMLProgressElement: C,\n HTMLQuoteElement: C,\n HTMLScriptElement: C,\n HTMLSelectElement: C,\n HTMLShadowElement: C,\n HTMLSlotElement: C,\n HTMLSourceElement: C,\n HTMLSpanElement: C,\n HTMLStyleElement: C,\n HTMLTableCaptionElement: C,\n HTMLTableCellElement: C,\n HTMLTableColElement: C,\n HTMLTableElement: C,\n HTMLTableRowElement: C,\n HTMLTableSectionElement: C,\n HTMLTemplateElement: C,\n HTMLTextAreaElement: C,\n HTMLTimeElement: C,\n HTMLTitleElement: C,\n HTMLTrackElement: C,\n HTMLUListElement: C,\n HTMLUnknownElement: C,\n HTMLVideoElement: C,\n IDBCursor: C,\n IDBCursorWithValue: C,\n IDBDatabase: C,\n IDBFactory: C,\n IDBIndex: C,\n IDBKeyRange: C,\n IDBObjectStore: C,\n IDBOpenDBRequest: C,\n IDBRequest: C,\n IDBTransaction: C,\n IDBVersionChangeEvent: C,\n IdleDeadline: C,\n IIRFilterNode: C,\n Image: C,\n ImageBitmap: C,\n ImageBitmapRenderingContext: C,\n ImageCapture: C,\n ImageData: C,\n indexedDB: O,\n innerHeight: O,\n innerWidth: O,\n InputEvent: C,\n IntersectionObserver: C,\n IntersectionObserverEntry: C,\n isSecureContext: O,\n KeyboardEvent: C,\n KeyframeEffect: C,\n length: O,\n localStorage: O,\n location: O,\n Location: C,\n locationbar: O,\n matchMedia: O,\n MediaDeviceInfo: C,\n MediaDevices: C,\n MediaElementAudioSourceNode: C,\n MediaEncryptedEvent: C,\n MediaError: C,\n MediaKeyMessageEvent: C,\n MediaKeySession: C,\n MediaKeyStatusMap: C,\n MediaKeySystemAccess: C,\n MediaList: C,\n MediaQueryList: C,\n MediaQueryListEvent: C,\n MediaRecorder: C,\n MediaSettingsRange: C,\n MediaSource: C,\n MediaStream: C,\n MediaStreamAudioDestinationNode: C,\n MediaStreamAudioSourceNode: C,\n MediaStreamEvent: C,\n MediaStreamTrack: C,\n MediaStreamTrackEvent: C,\n menubar: O,\n MessageChannel: C,\n MessageEvent: C,\n MessagePort: C,\n MIDIAccess: C,\n MIDIConnectionEvent: C,\n MIDIInput: C,\n MIDIInputMap: C,\n MIDIMessageEvent: C,\n MIDIOutput: C,\n MIDIOutputMap: C,\n MIDIPort: C,\n MimeType: C,\n MimeTypeArray: C,\n MouseEvent: C,\n moveBy: O,\n moveTo: O,\n MutationEvent: C,\n MutationObserver: C,\n MutationRecord: C,\n name: O,\n NamedNodeMap: C,\n NavigationPreloadManager: C,\n navigator: O,\n Navigator: C,\n NetworkInformation: C,\n Node: C,\n NodeFilter: O,\n NodeIterator: C,\n NodeList: C,\n Notification: C,\n OfflineAudioCompletionEvent: C,\n OfflineAudioContext: C,\n offscreenBuffering: O,\n OffscreenCanvas: C,\n open: O,\n openDatabase: O,\n Option: C,\n origin: O,\n OscillatorNode: C,\n outerHeight: O,\n outerWidth: O,\n PageTransitionEvent: C,\n pageXOffset: O,\n pageYOffset: O,\n PannerNode: C,\n parent: O,\n Path2D: C,\n PaymentAddress: C,\n PaymentRequest: C,\n PaymentRequestUpdateEvent: C,\n PaymentResponse: C,\n performance: O,\n Performance: C,\n PerformanceEntry: C,\n PerformanceLongTaskTiming: C,\n PerformanceMark: C,\n PerformanceMeasure: C,\n PerformanceNavigation: C,\n PerformanceNavigationTiming: C,\n PerformanceObserver: C,\n PerformanceObserverEntryList: C,\n PerformancePaintTiming: C,\n PerformanceResourceTiming: C,\n PerformanceTiming: C,\n PeriodicWave: C,\n Permissions: C,\n PermissionStatus: C,\n personalbar: O,\n PhotoCapabilities: C,\n Plugin: C,\n PluginArray: C,\n PointerEvent: C,\n PopStateEvent: C,\n postMessage: O,\n Presentation: C,\n PresentationAvailability: C,\n PresentationConnection: C,\n PresentationConnectionAvailableEvent: C,\n PresentationConnectionCloseEvent: C,\n PresentationConnectionList: C,\n PresentationReceiver: C,\n PresentationRequest: C,\n print: O,\n ProcessingInstruction: C,\n ProgressEvent: C,\n PromiseRejectionEvent: C,\n prompt: O,\n PushManager: C,\n PushSubscription: C,\n PushSubscriptionOptions: C,\n queueMicrotask: O,\n RadioNodeList: C,\n Range: C,\n ReadableStream: C,\n RemotePlayback: C,\n removeEventListener: O,\n Request: C,\n requestAnimationFrame: O,\n requestIdleCallback: O,\n resizeBy: O,\n ResizeObserver: C,\n ResizeObserverEntry: C,\n resizeTo: O,\n Response: C,\n RTCCertificate: C,\n RTCDataChannel: C,\n RTCDataChannelEvent: C,\n RTCDtlsTransport: C,\n RTCIceCandidate: C,\n RTCIceTransport: C,\n RTCPeerConnection: C,\n RTCPeerConnectionIceEvent: C,\n RTCRtpReceiver: C,\n RTCRtpSender: C,\n RTCSctpTransport: C,\n RTCSessionDescription: C,\n RTCStatsReport: C,\n RTCTrackEvent: C,\n screen: O,\n Screen: C,\n screenLeft: O,\n ScreenOrientation: C,\n screenTop: O,\n screenX: O,\n screenY: O,\n ScriptProcessorNode: C,\n scroll: O,\n scrollbars: O,\n scrollBy: O,\n scrollTo: O,\n scrollX: O,\n scrollY: O,\n SecurityPolicyViolationEvent: C,\n Selection: C,\n ServiceWorker: C,\n ServiceWorkerContainer: C,\n ServiceWorkerRegistration: C,\n sessionStorage: O,\n ShadowRoot: C,\n SharedWorker: C,\n SourceBuffer: C,\n SourceBufferList: C,\n speechSynthesis: O,\n SpeechSynthesisEvent: C,\n SpeechSynthesisUtterance: C,\n StaticRange: C,\n status: O,\n statusbar: O,\n StereoPannerNode: C,\n stop: O,\n Storage: C,\n StorageEvent: C,\n StorageManager: C,\n styleMedia: O,\n StyleSheet: C,\n StyleSheetList: C,\n SubtleCrypto: C,\n SVGAElement: C,\n SVGAngle: C,\n SVGAnimatedAngle: C,\n SVGAnimatedBoolean: C,\n SVGAnimatedEnumeration: C,\n SVGAnimatedInteger: C,\n SVGAnimatedLength: C,\n SVGAnimatedLengthList: C,\n SVGAnimatedNumber: C,\n SVGAnimatedNumberList: C,\n SVGAnimatedPreserveAspectRatio: C,\n SVGAnimatedRect: C,\n SVGAnimatedString: C,\n SVGAnimatedTransformList: C,\n SVGAnimateElement: C,\n SVGAnimateMotionElement: C,\n SVGAnimateTransformElement: C,\n SVGAnimationElement: C,\n SVGCircleElement: C,\n SVGClipPathElement: C,\n SVGComponentTransferFunctionElement: C,\n SVGDefsElement: C,\n SVGDescElement: C,\n SVGDiscardElement: C,\n SVGElement: C,\n SVGEllipseElement: C,\n SVGFEBlendElement: C,\n SVGFEColorMatrixElement: C,\n SVGFEComponentTransferElement: C,\n SVGFECompositeElement: C,\n SVGFEConvolveMatrixElement: C,\n SVGFEDiffuseLightingElement: C,\n SVGFEDisplacementMapElement: C,\n SVGFEDistantLightElement: C,\n SVGFEDropShadowElement: C,\n SVGFEFloodElement: C,\n SVGFEFuncAElement: C,\n SVGFEFuncBElement: C,\n SVGFEFuncGElement: C,\n SVGFEFuncRElement: C,\n SVGFEGaussianBlurElement: C,\n SVGFEImageElement: C,\n SVGFEMergeElement: C,\n SVGFEMergeNodeElement: C,\n SVGFEMorphologyElement: C,\n SVGFEOffsetElement: C,\n SVGFEPointLightElement: C,\n SVGFESpecularLightingElement: C,\n SVGFESpotLightElement: C,\n SVGFETileElement: C,\n SVGFETurbulenceElement: C,\n SVGFilterElement: C,\n SVGForeignObjectElement: C,\n SVGGElement: C,\n SVGGeometryElement: C,\n SVGGradientElement: C,\n SVGGraphicsElement: C,\n SVGImageElement: C,\n SVGLength: C,\n SVGLengthList: C,\n SVGLinearGradientElement: C,\n SVGLineElement: C,\n SVGMarkerElement: C,\n SVGMaskElement: C,\n SVGMatrix: C,\n SVGMetadataElement: C,\n SVGMPathElement: C,\n SVGNumber: C,\n SVGNumberList: C,\n SVGPathElement: C,\n SVGPatternElement: C,\n SVGPoint: C,\n SVGPointList: C,\n SVGPolygonElement: C,\n SVGPolylineElement: C,\n SVGPreserveAspectRatio: C,\n SVGRadialGradientElement: C,\n SVGRect: C,\n SVGRectElement: C,\n SVGScriptElement: C,\n SVGSetElement: C,\n SVGStopElement: C,\n SVGStringList: C,\n SVGStyleElement: C,\n SVGSVGElement: C,\n SVGSwitchElement: C,\n SVGSymbolElement: C,\n SVGTextContentElement: C,\n SVGTextElement: C,\n SVGTextPathElement: C,\n SVGTextPositioningElement: C,\n SVGTitleElement: C,\n SVGTransform: C,\n SVGTransformList: C,\n SVGTSpanElement: C,\n SVGUnitTypes: C,\n SVGUseElement: C,\n SVGViewElement: C,\n TaskAttributionTiming: C,\n Text: C,\n TextEvent: C,\n TextMetrics: C,\n TextTrack: C,\n TextTrackCue: C,\n TextTrackCueList: C,\n TextTrackList: C,\n TimeRanges: C,\n toolbar: O,\n top: O,\n Touch: C,\n TouchEvent: C,\n TouchList: C,\n TrackEvent: C,\n TransitionEvent: C,\n TreeWalker: C,\n UIEvent: C,\n ValidityState: C,\n visualViewport: O,\n VisualViewport: C,\n VTTCue: C,\n WaveShaperNode: C,\n WebAssembly: O,\n WebGL2RenderingContext: C,\n WebGLActiveInfo: C,\n WebGLBuffer: C,\n WebGLContextEvent: C,\n WebGLFramebuffer: C,\n WebGLProgram: C,\n WebGLQuery: C,\n WebGLRenderbuffer: C,\n WebGLRenderingContext: C,\n WebGLSampler: C,\n WebGLShader: C,\n WebGLShaderPrecisionFormat: C,\n WebGLSync: C,\n WebGLTexture: C,\n WebGLTransformFeedback: C,\n WebGLUniformLocation: C,\n WebGLVertexArrayObject: C,\n WebSocket: C,\n WheelEvent: C,\n Window: C,\n Worker: C,\n WritableStream: C,\n XMLDocument: C,\n XMLHttpRequest: C,\n XMLHttpRequestEventTarget: C,\n XMLHttpRequestUpload: C,\n XMLSerializer: C,\n XPathEvaluator: C,\n XPathExpression: C,\n XPathResult: C,\n XSLTProcessor: C\n};\nfor (const global of ['window', 'global', 'self', 'globalThis']) {\n knownGlobals[global] = knownGlobals;\n}\nfunction getGlobalAtPath(path) {\n let currentGlobal = knownGlobals;\n for (const pathSegment of path) {\n if (typeof pathSegment !== 'string') {\n return null;\n }\n currentGlobal = currentGlobal[pathSegment];\n if (!currentGlobal) {\n return null;\n }\n }\n return currentGlobal[ValueProperties];\n}\n\nclass GlobalVariable extends Variable {\n constructor(name) {\n super(name);\n // Ensure we use live-bindings for globals as we do not know if they have\n // been reassigned\n this.markReassigned();\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n switch (interaction.type) {\n // While there is no point in testing these cases as at the moment, they\n // are also covered via other means, we keep them for completeness\n case INTERACTION_ACCESSED:\n case INTERACTION_ASSIGNED: {\n if (!getGlobalAtPath([this.name, ...path].slice(0, -1))) {\n super.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n return;\n }\n case INTERACTION_CALLED: {\n const globalAtPath = getGlobalAtPath([this.name, ...path]);\n if (globalAtPath) {\n globalAtPath.deoptimizeArgumentsOnCall(interaction);\n }\n else {\n super.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n return;\n }\n }\n }\n getLiteralValueAtPath(path, _recursionTracker, _origin) {\n const globalAtPath = getGlobalAtPath([this.name, ...path]);\n return globalAtPath ? globalAtPath.getLiteralValue() : UnknownValue;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n switch (interaction.type) {\n case INTERACTION_ACCESSED: {\n if (path.length === 0) {\n // Technically, \"undefined\" is a global variable of sorts\n return this.name !== 'undefined' && !getGlobalAtPath([this.name]);\n }\n return !getGlobalAtPath([this.name, ...path].slice(0, -1));\n }\n case INTERACTION_ASSIGNED: {\n return true;\n }\n case INTERACTION_CALLED: {\n const globalAtPath = getGlobalAtPath([this.name, ...path]);\n return !globalAtPath || globalAtPath.hasEffectsWhenCalled(interaction, context);\n }\n }\n }\n}\n\nclass LocalVariable extends Variable {\n constructor(name, declarator, init, context, kind) {\n super(name);\n this.init = init;\n this.calledFromTryStatement = false;\n this.additionalInitializers = null;\n this.expressionsToBeDeoptimized = [];\n this.declarations = declarator ? [declarator] : [];\n this.deoptimizationTracker = context.deoptimizationTracker;\n this.module = context.module;\n this.kind = kind;\n }\n addDeclaration(identifier, init) {\n this.declarations.push(identifier);\n this.markInitializersForDeoptimization().push(init);\n }\n consolidateInitializers() {\n if (this.additionalInitializers) {\n for (const initializer of this.additionalInitializers) {\n initializer.deoptimizePath(UNKNOWN_PATH);\n }\n this.additionalInitializers = null;\n }\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n if (this.isReassigned) {\n deoptimizeInteraction(interaction);\n return;\n }\n recursionTracker.withTrackedEntityAtPath(path, this.init, () => this.init.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker), undefined);\n }\n deoptimizePath(path) {\n if (this.isReassigned ||\n this.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path, this)) {\n return;\n }\n if (path.length === 0) {\n this.markReassigned();\n const expressionsToBeDeoptimized = this.expressionsToBeDeoptimized;\n this.expressionsToBeDeoptimized = EMPTY_ARRAY;\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizeCache();\n }\n this.init.deoptimizePath(UNKNOWN_PATH);\n }\n else {\n this.init.deoptimizePath(path);\n }\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n if (this.isReassigned) {\n return UnknownValue;\n }\n return recursionTracker.withTrackedEntityAtPath(path, this.init, () => {\n this.expressionsToBeDeoptimized.push(origin);\n return this.init.getLiteralValueAtPath(path, recursionTracker, origin);\n }, UnknownValue);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n if (this.isReassigned) {\n return UNKNOWN_RETURN_EXPRESSION;\n }\n return recursionTracker.withTrackedEntityAtPath(path, this.init, () => {\n this.expressionsToBeDeoptimized.push(origin);\n return this.init.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }, UNKNOWN_RETURN_EXPRESSION);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n switch (interaction.type) {\n case INTERACTION_ACCESSED: {\n if (this.isReassigned)\n return true;\n return (!context.accessed.trackEntityAtPathAndGetIfTracked(path, this) &&\n this.init.hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n case INTERACTION_ASSIGNED: {\n if (this.included)\n return true;\n if (path.length === 0)\n return false;\n if (this.isReassigned)\n return true;\n return (!context.assigned.trackEntityAtPathAndGetIfTracked(path, this) &&\n this.init.hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n case INTERACTION_CALLED: {\n if (this.isReassigned)\n return true;\n return (!(interaction.withNew ? context.instantiated : context.called).trackEntityAtPathAndGetIfTracked(path, interaction.args, this) &&\n this.init.hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n }\n }\n include() {\n if (!this.included) {\n super.include();\n for (const declaration of this.declarations) {\n // If node is a default export, it can save a tree-shaking run to include the full declaration now\n if (!declaration.included)\n declaration.include(createInclusionContext(), false);\n let node = declaration.parent;\n while (!node.included) {\n // We do not want to properly include parents in case they are part of a dead branch\n // in which case .include() might pull in more dead code\n node.included = true;\n if (node.type === Program$1)\n break;\n node = node.parent;\n }\n }\n }\n }\n includeCallArguments(context, parameters) {\n if (this.isReassigned || context.includedCallArguments.has(this.init)) {\n for (const argument of parameters) {\n argument.include(context, false);\n }\n }\n else {\n context.includedCallArguments.add(this.init);\n this.init.includeCallArguments(context, parameters);\n context.includedCallArguments.delete(this.init);\n }\n }\n markCalledFromTryStatement() {\n this.calledFromTryStatement = true;\n }\n markInitializersForDeoptimization() {\n if (this.additionalInitializers === null) {\n this.additionalInitializers = [this.init];\n this.init = UNKNOWN_EXPRESSION;\n this.markReassigned();\n }\n return this.additionalInitializers;\n }\n}\n\nconst tdzVariableKinds = new Set(['class', 'const', 'let', 'var', 'using', 'await using']);\nclass Identifier extends NodeBase {\n constructor() {\n super(...arguments);\n this.variable = null;\n this.isReferenceVariable = false;\n }\n get isTDZAccess() {\n if (!isFlagSet(this.flags, 4 /* Flag.tdzAccessDefined */)) {\n return null;\n }\n return isFlagSet(this.flags, 8 /* Flag.tdzAccess */);\n }\n set isTDZAccess(value) {\n this.flags = setFlag(this.flags, 4 /* Flag.tdzAccessDefined */, true);\n this.flags = setFlag(this.flags, 8 /* Flag.tdzAccess */, value);\n }\n addExportedVariables(variables, exportNamesByVariable) {\n if (exportNamesByVariable.has(this.variable)) {\n variables.push(this.variable);\n }\n }\n bind() {\n if (!this.variable && is_reference(this, this.parent)) {\n this.variable = this.scope.findVariable(this.name);\n this.variable.addReference(this);\n this.isReferenceVariable = true;\n }\n }\n declare(kind, init) {\n let variable;\n const { treeshake } = this.scope.context.options;\n switch (kind) {\n case 'var': {\n variable = this.scope.addDeclaration(this, this.scope.context, init, kind);\n if (treeshake && treeshake.correctVarValueBeforeDeclaration) {\n // Necessary to make sure the init is deoptimized. We cannot call deoptimizePath here.\n variable.markInitializersForDeoptimization();\n }\n break;\n }\n case 'function': {\n // in strict mode, functions are only hoisted within a scope but not across block scopes\n variable = this.scope.addDeclaration(this, this.scope.context, init, kind);\n break;\n }\n case 'let':\n case 'const':\n case 'using':\n case 'await using':\n case 'class': {\n variable = this.scope.addDeclaration(this, this.scope.context, init, kind);\n break;\n }\n case 'parameter': {\n variable = this.scope.addParameterDeclaration(this);\n break;\n }\n /* istanbul ignore next */\n default: {\n /* istanbul ignore next */\n throw new Error(`Internal Error: Unexpected identifier kind ${kind}.`);\n }\n }\n return [(this.variable = variable)];\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizePath(path) {\n if (path.length === 0 && !this.scope.contains(this.name)) {\n this.disallowImportReassignment();\n }\n // We keep conditional chaining because an unknown Node could have an\n // Identifier as property that might be deoptimized by default\n this.variable?.deoptimizePath(path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.getVariableRespectingTDZ().getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n const [expression, isPure] = this.getVariableRespectingTDZ().getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n return [expression, isPure || this.isPureFunction(path)];\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (this.isPossibleTDZ() && this.variable.kind !== 'var') {\n return true;\n }\n return (this.scope.context.options.treeshake\n .unknownGlobalSideEffects &&\n this.variable instanceof GlobalVariable &&\n !this.isPureFunction(EMPTY_PATH) &&\n this.variable.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_ACCESS, context));\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n switch (interaction.type) {\n case INTERACTION_ACCESSED: {\n return (this.variable !== null &&\n !this.isPureFunction(path) &&\n this.getVariableRespectingTDZ().hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n case INTERACTION_ASSIGNED: {\n return (path.length > 0 ? this.getVariableRespectingTDZ() : this.variable).hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n case INTERACTION_CALLED: {\n return (!this.isPureFunction(path) &&\n this.getVariableRespectingTDZ().hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n }\n }\n include() {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (!this.included) {\n this.included = true;\n if (this.variable !== null) {\n this.scope.context.includeVariableInModule(this.variable);\n }\n }\n }\n includeCallArguments(context, parameters) {\n this.variable.includeCallArguments(context, parameters);\n }\n isPossibleTDZ() {\n // return cached value to avoid issues with the next tree-shaking pass\n const cachedTdzAccess = this.isTDZAccess;\n if (cachedTdzAccess !== null)\n return cachedTdzAccess;\n if (!(this.variable instanceof LocalVariable &&\n this.variable.kind &&\n tdzVariableKinds.has(this.variable.kind) &&\n // we ignore possible TDZs due to circular module dependencies as\n // otherwise we get many false positives\n this.variable.module === this.scope.context.module)) {\n return (this.isTDZAccess = false);\n }\n let decl_id;\n if (this.variable.declarations &&\n this.variable.declarations.length === 1 &&\n (decl_id = this.variable.declarations[0]) &&\n this.start < decl_id.start &&\n closestParentFunctionOrProgram(this) === closestParentFunctionOrProgram(decl_id)) {\n // a variable accessed before its declaration\n // in the same function or at top level of module\n return (this.isTDZAccess = true);\n }\n // We ignore the case where the module is not yet executed because\n // moduleSideEffects are false.\n if (!this.variable.initReached && this.scope.context.module.isExecuted) {\n // Either a const/let TDZ violation or\n // var use before declaration was encountered.\n return (this.isTDZAccess = true);\n }\n return (this.isTDZAccess = false);\n }\n markDeclarationReached() {\n this.variable.initReached = true;\n }\n render(code, { snippets: { getPropertyAccess }, useOriginalName }, { renderedParentType, isCalleeOfRenderedParent, isShorthandProperty } = BLANK) {\n if (this.variable) {\n const name = this.variable.getName(getPropertyAccess, useOriginalName);\n if (name !== this.name) {\n code.overwrite(this.start, this.end, name, {\n contentOnly: true,\n storeName: true\n });\n if (isShorthandProperty) {\n code.prependRight(this.start, `${this.name}: `);\n }\n }\n // In strict mode, any variable named \"eval\" must be the actual \"eval\" function\n if (name === 'eval' &&\n renderedParentType === CallExpression$1 &&\n isCalleeOfRenderedParent) {\n code.appendRight(this.start, '0, ');\n }\n }\n }\n disallowImportReassignment() {\n return this.scope.context.error(logIllegalImportReassignment(this.name, this.scope.context.module.id), this.start);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n if (this.variable instanceof LocalVariable) {\n this.variable.consolidateInitializers();\n this.scope.context.requestTreeshakingPass();\n }\n if (this.isReferenceVariable) {\n this.variable.addUsedPlace(this);\n this.scope.context.requestTreeshakingPass();\n }\n }\n getVariableRespectingTDZ() {\n if (this.isPossibleTDZ()) {\n return UNKNOWN_EXPRESSION;\n }\n return this.variable;\n }\n isPureFunction(path) {\n let currentPureFunction = this.scope.context.manualPureFunctions[this.name];\n for (const segment of path) {\n if (currentPureFunction) {\n if (currentPureFunction[PureFunctionKey]) {\n return true;\n }\n currentPureFunction = currentPureFunction[segment];\n }\n else {\n return false;\n }\n }\n return currentPureFunction?.[PureFunctionKey];\n }\n}\nfunction closestParentFunctionOrProgram(node) {\n while (node && !/^Program|Function/.test(node.type)) {\n node = node.parent;\n }\n // one of: ArrowFunctionExpression, FunctionDeclaration, FunctionExpression or Program\n return node;\n}\n\nconst MAX_TRACKED_INTERACTIONS = 20;\nconst NO_INTERACTIONS = EMPTY_ARRAY;\nconst UNKNOWN_DEOPTIMIZED_FIELD = new Set([UnknownKey]);\nconst EMPTY_PATH_TRACKER = new PathTracker();\nconst UNKNOWN_DEOPTIMIZED_ENTITY = new Set([UNKNOWN_EXPRESSION]);\nclass ParameterVariable extends LocalVariable {\n constructor(name, declarator, context) {\n super(name, declarator, UNKNOWN_EXPRESSION, context, 'parameter');\n this.deoptimizationInteractions = [];\n this.deoptimizations = new PathTracker();\n this.deoptimizedFields = new Set();\n this.entitiesToBeDeoptimized = new Set();\n this.expressionsUseTheKnownValue = [];\n this.knownValue = null;\n this.knownValueLiteral = UnknownValue;\n this.frozenValue = null;\n }\n addEntityToBeDeoptimized(entity) {\n if (entity === UNKNOWN_EXPRESSION) {\n // As unknown expressions fully deoptimize all interactions, we can clear\n // the interaction cache at this point provided we keep this optimization\n // in mind when adding new interactions\n if (!this.entitiesToBeDeoptimized.has(UNKNOWN_EXPRESSION)) {\n this.entitiesToBeDeoptimized.add(UNKNOWN_EXPRESSION);\n for (const { interaction } of this.deoptimizationInteractions) {\n deoptimizeInteraction(interaction);\n }\n this.deoptimizationInteractions = NO_INTERACTIONS;\n }\n }\n else if (this.deoptimizedFields.has(UnknownKey)) {\n // This means that we already deoptimized all interactions and no longer\n // track them\n entity.deoptimizePath(UNKNOWN_PATH);\n }\n else if (!this.entitiesToBeDeoptimized.has(entity)) {\n this.entitiesToBeDeoptimized.add(entity);\n for (const field of this.deoptimizedFields) {\n entity.deoptimizePath([field]);\n }\n for (const { interaction, path } of this.deoptimizationInteractions) {\n entity.deoptimizeArgumentsOnInteractionAtPath(interaction, path, SHARED_RECURSION_TRACKER);\n }\n }\n }\n markReassigned() {\n if (this.isReassigned) {\n return;\n }\n super.markReassigned();\n for (const expression of this.expressionsUseTheKnownValue) {\n expression.deoptimizeCache();\n }\n this.expressionsUseTheKnownValue = EMPTY_ARRAY;\n }\n deoptimizeCache() {\n this.markReassigned();\n }\n /**\n * Update the known value of the parameter variable.\n * Must be called for every function call, so it can track all the arguments,\n * and deoptimizeCache itself to mark reassigned if the argument is changed.\n * @param argument The argument of the function call\n */\n updateKnownValue(argument) {\n if (this.isReassigned) {\n return;\n }\n if (this.knownValue === null) {\n this.knownValue = argument;\n this.knownValueLiteral = argument.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n return;\n }\n // the same literal or identifier, do nothing\n if (this.knownValue === argument ||\n (this.knownValue instanceof Identifier &&\n argument instanceof Identifier &&\n this.knownValue.variable === argument.variable)) {\n return;\n }\n const oldValue = this.knownValueLiteral;\n if (typeof oldValue === 'symbol') {\n this.markReassigned();\n return;\n }\n // add tracking for the new argument\n const newValue = argument.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n if (newValue !== oldValue) {\n this.markReassigned();\n }\n }\n /**\n * This function freezes the known value of the parameter variable,\n * so the optimization starts with a certain ExpressionEntity.\n * The optimization can be undone by calling `markReassigned`.\n * @returns the frozen value\n */\n getKnownValue() {\n if (this.frozenValue === null) {\n this.frozenValue = this.knownValue || UNKNOWN_EXPRESSION;\n }\n return this.frozenValue;\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n if (this.isReassigned) {\n return UnknownValue;\n }\n const knownValue = this.getKnownValue();\n this.expressionsUseTheKnownValue.push(origin);\n return recursionTracker.withTrackedEntityAtPath(path, knownValue, () => knownValue.getLiteralValueAtPath(path, recursionTracker, origin), UnknownValue);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (this.isReassigned || interaction.type === INTERACTION_ASSIGNED) {\n return super.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n const knownValue = this.getKnownValue();\n return knownValue.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path) {\n // For performance reasons, we fully deoptimize all deeper interactions\n if (path.length >= 2 ||\n this.entitiesToBeDeoptimized.has(UNKNOWN_EXPRESSION) ||\n this.deoptimizationInteractions.length >= MAX_TRACKED_INTERACTIONS ||\n (path.length === 1 &&\n (this.deoptimizedFields.has(UnknownKey) ||\n (interaction.type === INTERACTION_CALLED && this.deoptimizedFields.has(path[0]))))) {\n deoptimizeInteraction(interaction);\n return;\n }\n if (!this.deoptimizations.trackEntityAtPathAndGetIfTracked(path, interaction.args)) {\n for (const entity of this.entitiesToBeDeoptimized) {\n entity.deoptimizeArgumentsOnInteractionAtPath(interaction, path, SHARED_RECURSION_TRACKER);\n }\n if (!this.entitiesToBeDeoptimized.has(UNKNOWN_EXPRESSION)) {\n this.deoptimizationInteractions.push({\n interaction,\n path\n });\n }\n }\n }\n deoptimizePath(path) {\n if (path.length === 0) {\n this.markReassigned();\n return;\n }\n if (this.deoptimizedFields.has(UnknownKey)) {\n return;\n }\n const key = path[0];\n if (this.deoptimizedFields.has(key)) {\n return;\n }\n this.deoptimizedFields.add(key);\n for (const entity of this.entitiesToBeDeoptimized) {\n // We do not need a recursion tracker here as we already track whether\n // this field is deoptimized\n entity.deoptimizePath([key]);\n }\n if (key === UnknownKey) {\n // save some memory\n this.deoptimizationInteractions = NO_INTERACTIONS;\n this.deoptimizations = EMPTY_PATH_TRACKER;\n this.deoptimizedFields = UNKNOWN_DEOPTIMIZED_FIELD;\n this.entitiesToBeDeoptimized = UNKNOWN_DEOPTIMIZED_ENTITY;\n }\n }\n getReturnExpressionWhenCalledAtPath(path) {\n // We deoptimize everything that is called as that will trivially deoptimize\n // the corresponding return expressions as well and avoid badly performing\n // and complicated alternatives\n if (path.length === 0) {\n this.deoptimizePath(UNKNOWN_PATH);\n }\n else if (!this.deoptimizedFields.has(path[0])) {\n this.deoptimizePath([path[0]]);\n }\n return UNKNOWN_RETURN_EXPRESSION;\n }\n}\n\nconst chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$';\nconst base = 64;\nfunction toBase64(value) {\n let outString = '';\n do {\n const currentDigit = value % base;\n value = (value / base) | 0;\n outString = chars[currentDigit] + outString;\n } while (value !== 0);\n return outString;\n}\n\nfunction getSafeName(baseName, usedNames, forbiddenNames) {\n let safeName = baseName;\n let count = 1;\n while (usedNames.has(safeName) || RESERVED_NAMES.has(safeName) || forbiddenNames?.has(safeName)) {\n safeName = `${baseName}$${toBase64(count++)}`;\n }\n usedNames.add(safeName);\n return safeName;\n}\n\nclass Scope {\n constructor() {\n this.children = [];\n this.variables = new Map();\n }\n /*\n Redeclaration rules:\n - var can redeclare var\n - in function scopes, function and var can redeclare function and var\n - var is hoisted across scopes, function remains in the scope it is declared\n - var and function can redeclare function parameters, but parameters cannot redeclare parameters\n - function cannot redeclare catch scope parameters\n - var can redeclare catch scope parameters in a way\n - if the parameter is an identifier and not a pattern\n - then the variable is still declared in the hoisted outer scope, but the initializer is assigned to the parameter\n - const, let, class, and function except in the cases above cannot redeclare anything\n */\n addDeclaration(identifier, context, init, kind) {\n const name = identifier.name;\n const existingVariable = this.hoistedVariables?.get(name) || this.variables.get(name);\n if (existingVariable) {\n const existingKind = existingVariable.kind;\n if (kind === 'var' && existingKind === 'var') {\n existingVariable.addDeclaration(identifier, init);\n return existingVariable;\n }\n context.error(logRedeclarationError(name), identifier.start);\n }\n const newVariable = new LocalVariable(identifier.name, identifier, init, context, kind);\n this.variables.set(name, newVariable);\n return newVariable;\n }\n addHoistedVariable(name, variable) {\n (this.hoistedVariables ||= new Map()).set(name, variable);\n }\n contains(name) {\n return this.variables.has(name);\n }\n findVariable(_name) {\n /* istanbul ignore next */\n throw new Error('Internal Error: findVariable needs to be implemented by a subclass');\n }\n}\n\nclass ChildScope extends Scope {\n constructor(parent, context) {\n super();\n this.parent = parent;\n this.context = context;\n this.accessedOutsideVariables = new Map();\n parent.children.push(this);\n }\n addAccessedDynamicImport(importExpression) {\n (this.accessedDynamicImports || (this.accessedDynamicImports = new Set())).add(importExpression);\n if (this.parent instanceof ChildScope) {\n this.parent.addAccessedDynamicImport(importExpression);\n }\n }\n addAccessedGlobals(globals, accessedGlobalsByScope) {\n const accessedGlobals = accessedGlobalsByScope.get(this) || new Set();\n for (const name of globals) {\n accessedGlobals.add(name);\n }\n accessedGlobalsByScope.set(this, accessedGlobals);\n if (this.parent instanceof ChildScope) {\n this.parent.addAccessedGlobals(globals, accessedGlobalsByScope);\n }\n }\n addNamespaceMemberAccess(name, variable) {\n this.accessedOutsideVariables.set(name, variable);\n this.parent.addNamespaceMemberAccess(name, variable);\n }\n addReturnExpression(expression) {\n this.parent instanceof ChildScope && this.parent.addReturnExpression(expression);\n }\n addUsedOutsideNames(usedNames, format, exportNamesByVariable, accessedGlobalsByScope) {\n for (const variable of this.accessedOutsideVariables.values()) {\n if (variable.included) {\n usedNames.add(variable.getBaseVariableName());\n if (format === 'system' && exportNamesByVariable.has(variable)) {\n usedNames.add('exports');\n }\n }\n }\n const accessedGlobals = accessedGlobalsByScope.get(this);\n if (accessedGlobals) {\n for (const name of accessedGlobals) {\n usedNames.add(name);\n }\n }\n }\n contains(name) {\n return this.variables.has(name) || this.parent.contains(name);\n }\n deconflict(format, exportNamesByVariable, accessedGlobalsByScope) {\n const usedNames = new Set();\n this.addUsedOutsideNames(usedNames, format, exportNamesByVariable, accessedGlobalsByScope);\n if (this.accessedDynamicImports) {\n for (const importExpression of this.accessedDynamicImports) {\n if (importExpression.inlineNamespace) {\n usedNames.add(importExpression.inlineNamespace.getBaseVariableName());\n }\n }\n }\n for (const [name, variable] of this.variables) {\n if (variable.included || variable.alwaysRendered) {\n variable.setRenderNames(null, getSafeName(name, usedNames, variable.forbiddenNames));\n }\n }\n for (const scope of this.children) {\n scope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope);\n }\n }\n findLexicalBoundary() {\n return this.parent.findLexicalBoundary();\n }\n findVariable(name) {\n const knownVariable = this.variables.get(name) || this.accessedOutsideVariables.get(name);\n if (knownVariable) {\n return knownVariable;\n }\n const variable = this.parent.findVariable(name);\n this.accessedOutsideVariables.set(name, variable);\n return variable;\n }\n}\n\nclass CatchBodyScope extends ChildScope {\n constructor(parent) {\n super(parent, parent.context);\n this.parent = parent;\n }\n addDeclaration(identifier, context, init, kind) {\n if (kind === 'var') {\n const name = identifier.name;\n const existingVariable = this.hoistedVariables?.get(name) || this.variables.get(name);\n if (existingVariable) {\n const existingKind = existingVariable.kind;\n if (existingKind === 'parameter' &&\n // If this is a destructured parameter, it is forbidden to redeclare\n existingVariable.declarations[0].parent.type === CatchClause$1) {\n // If this is a var with the same name as the catch scope parameter,\n // the assignment actually goes to the parameter and the var is\n // hoisted without assignment. Locally, it is shadowed by the\n // parameter\n const declaredVariable = this.parent.parent.addDeclaration(identifier, context, UNDEFINED_EXPRESSION, kind);\n // To avoid the need to rewrite the declaration, we link the variable\n // names. If we ever implement a logic that splits initialization and\n // assignment for hoisted vars, the \"renderLikeHoisted\" logic can be\n // removed again.\n // We do not need to check whether there already is a linked\n // variable because then declaredVariable would be that linked\n // variable.\n existingVariable.renderLikeHoisted(declaredVariable);\n this.addHoistedVariable(name, declaredVariable);\n return declaredVariable;\n }\n if (existingKind === 'var') {\n existingVariable.addDeclaration(identifier, init);\n return existingVariable;\n }\n return context.error(logRedeclarationError(name), identifier.start);\n }\n // We only add parameters to parameter scopes\n const declaredVariable = this.parent.parent.addDeclaration(identifier, context, init, kind);\n // Necessary to make sure the init is deoptimized for conditional declarations.\n // We cannot call deoptimizePath here.\n declaredVariable.markInitializersForDeoptimization();\n // We add the variable to this and all parent scopes to reliably detect conflicts\n this.addHoistedVariable(name, declaredVariable);\n return declaredVariable;\n }\n return super.addDeclaration(identifier, context, init, kind);\n }\n}\n\nclass FunctionBodyScope extends ChildScope {\n constructor(parent) {\n super(parent, parent.context);\n }\n // There is stuff that is only allowed in function scopes, i.e. functions can\n // be redeclared, functions and var can redeclare each other\n addDeclaration(identifier, context, init, kind) {\n const name = identifier.name;\n const existingVariable = this.hoistedVariables?.get(name) || this.variables.get(name);\n if (existingVariable) {\n const existingKind = existingVariable.kind;\n if ((kind === 'var' || kind === 'function') &&\n (existingKind === 'var' || existingKind === 'function' || existingKind === 'parameter')) {\n existingVariable.addDeclaration(identifier, init);\n return existingVariable;\n }\n context.error(logRedeclarationError(name), identifier.start);\n }\n const newVariable = new LocalVariable(identifier.name, identifier, init, context, kind);\n this.variables.set(name, newVariable);\n return newVariable;\n }\n}\n\nclass ParameterScope extends ChildScope {\n constructor(parent, isCatchScope) {\n super(parent, parent.context);\n this.parameters = [];\n this.hasRest = false;\n this.bodyScope = isCatchScope ? new CatchBodyScope(this) : new FunctionBodyScope(this);\n }\n /**\n * Adds a parameter to this scope. Parameters must be added in the correct\n * order, i.e. from left to right.\n */\n addParameterDeclaration(identifier) {\n const { name, start } = identifier;\n const existingParameter = this.variables.get(name);\n if (existingParameter) {\n return this.context.error(logDuplicateArgumentNameError(name), start);\n }\n const variable = new ParameterVariable(name, identifier, this.context);\n this.variables.set(name, variable);\n // We also add it to the body scope to detect name conflicts with local\n // variables. We still need the intermediate scope, though, as parameter\n // defaults are NOT taken from the body scope but from the parameters or\n // outside scope.\n this.bodyScope.addHoistedVariable(name, variable);\n return variable;\n }\n addParameterVariables(parameters, hasRest) {\n this.parameters = parameters;\n for (const parameterList of parameters) {\n for (const parameter of parameterList) {\n parameter.alwaysRendered = true;\n }\n }\n this.hasRest = hasRest;\n }\n includeCallArguments(context, parameters) {\n let calledFromTryStatement = false;\n let argumentIncluded = false;\n const restParameter = this.hasRest && this.parameters[this.parameters.length - 1];\n for (const checkedArgument of parameters) {\n if (checkedArgument instanceof SpreadElement) {\n for (const argument of parameters) {\n argument.include(context, false);\n }\n break;\n }\n }\n for (let index = parameters.length - 1; index >= 0; index--) {\n const parameterVariables = this.parameters[index] || restParameter;\n const argument = parameters[index];\n if (parameterVariables) {\n calledFromTryStatement = false;\n if (parameterVariables.length === 0) {\n // handle empty destructuring\n argumentIncluded = true;\n }\n else {\n for (const variable of parameterVariables) {\n if (variable.included) {\n argumentIncluded = true;\n }\n if (variable.calledFromTryStatement) {\n calledFromTryStatement = true;\n }\n }\n }\n }\n if (!argumentIncluded && argument.shouldBeIncluded(context)) {\n argumentIncluded = true;\n }\n if (argumentIncluded) {\n argument.include(context, calledFromTryStatement);\n }\n }\n }\n}\n\nclass ReturnValueScope extends ParameterScope {\n constructor() {\n super(...arguments);\n this.returnExpression = null;\n this.returnExpressions = [];\n }\n addReturnExpression(expression) {\n this.returnExpressions.push(expression);\n }\n getReturnExpression() {\n if (this.returnExpression === null)\n this.updateReturnExpression();\n return this.returnExpression;\n }\n updateReturnExpression() {\n if (this.returnExpressions.length === 1) {\n this.returnExpression = this.returnExpressions[0];\n }\n else {\n this.returnExpression = UNKNOWN_EXPRESSION;\n for (const expression of this.returnExpressions) {\n expression.deoptimizePath(UNKNOWN_PATH);\n }\n }\n }\n}\n\nfunction treeshakeNode(node, code, start, end) {\n code.remove(start, end);\n node.removeAnnotations(code);\n}\n\nconst NO_SEMICOLON = { isNoStatement: true };\n// This assumes there are only white-space and comments between start and the string we are looking for\nfunction findFirstOccurrenceOutsideComment(code, searchString, start = 0) {\n let searchPos, charCodeAfterSlash;\n searchPos = code.indexOf(searchString, start);\n while (true) {\n start = code.indexOf('/', start);\n if (start === -1 || start >= searchPos)\n return searchPos;\n charCodeAfterSlash = code.charCodeAt(++start);\n ++start;\n // With our assumption, '/' always starts a comment. Determine comment type:\n start =\n charCodeAfterSlash === 47 /*\"/\"*/\n ? code.indexOf('\\n', start) + 1\n : code.indexOf('*/', start) + 2;\n if (start > searchPos) {\n searchPos = code.indexOf(searchString, start);\n }\n }\n}\nconst NON_WHITESPACE = /\\S/g;\nfunction findNonWhiteSpace(code, index) {\n NON_WHITESPACE.lastIndex = index;\n const result = NON_WHITESPACE.exec(code);\n return result.index;\n}\nconst WHITESPACE = /\\s/;\nfunction findLastWhiteSpaceReverse(code, start, end) {\n while (true) {\n if (start >= end) {\n return end;\n }\n if (WHITESPACE.test(code[end - 1])) {\n end--;\n }\n else {\n return end;\n }\n }\n}\n// This assumes \"code\" only contains white-space and comments\n// Returns position of line-comment if applicable\nfunction findFirstLineBreakOutsideComment(code) {\n let lineBreakPos, charCodeAfterSlash, start = 0;\n lineBreakPos = code.indexOf('\\n', start);\n while (true) {\n start = code.indexOf('/', start);\n if (start === -1 || start > lineBreakPos)\n return [lineBreakPos, lineBreakPos + 1];\n // With our assumption, '/' always starts a comment. Determine comment type:\n charCodeAfterSlash = code.charCodeAt(start + 1);\n if (charCodeAfterSlash === 47 /*\"/\"*/)\n return [start, lineBreakPos + 1];\n start = code.indexOf('*/', start + 2) + 2;\n if (start > lineBreakPos) {\n lineBreakPos = code.indexOf('\\n', start);\n }\n }\n}\nfunction renderStatementList(statements, code, start, end, options) {\n let currentNode, currentNodeStart, currentNodeNeedsBoundaries, nextNodeStart;\n let nextNode = statements[0];\n let nextNodeNeedsBoundaries = !nextNode.included || nextNode.needsBoundaries;\n if (nextNodeNeedsBoundaries) {\n nextNodeStart =\n start + findFirstLineBreakOutsideComment(code.original.slice(start, nextNode.start))[1];\n }\n for (let nextIndex = 1; nextIndex <= statements.length; nextIndex++) {\n currentNode = nextNode;\n currentNodeStart = nextNodeStart;\n currentNodeNeedsBoundaries = nextNodeNeedsBoundaries;\n nextNode = statements[nextIndex];\n nextNodeNeedsBoundaries =\n nextNode === undefined ? false : !nextNode.included || nextNode.needsBoundaries;\n if (currentNodeNeedsBoundaries || nextNodeNeedsBoundaries) {\n nextNodeStart =\n currentNode.end +\n findFirstLineBreakOutsideComment(code.original.slice(currentNode.end, nextNode === undefined ? end : nextNode.start))[1];\n if (currentNode.included) {\n currentNodeNeedsBoundaries\n ? currentNode.render(code, options, {\n end: nextNodeStart,\n start: currentNodeStart\n })\n : currentNode.render(code, options);\n }\n else {\n treeshakeNode(currentNode, code, currentNodeStart, nextNodeStart);\n }\n }\n else {\n currentNode.render(code, options);\n }\n }\n}\n// This assumes that the first character is not part of the first node\nfunction getCommaSeparatedNodesWithBoundaries(nodes, code, start, end) {\n const splitUpNodes = [];\n let node, nextNodeStart, contentEnd, char;\n let separator = start - 1;\n for (const nextNode of nodes) {\n if (node !== undefined) {\n separator =\n node.end +\n findFirstOccurrenceOutsideComment(code.original.slice(node.end, nextNode.start), ',');\n }\n nextNodeStart = contentEnd =\n separator +\n 1 +\n findFirstLineBreakOutsideComment(code.original.slice(separator + 1, nextNode.start))[1];\n while (((char = code.original.charCodeAt(nextNodeStart)),\n char === 32 /*\" \"*/ || char === 9 /*\"\\t\"*/ || char === 10 /*\"\\n\"*/ || char === 13) /*\"\\r\"*/)\n nextNodeStart++;\n if (node !== undefined) {\n splitUpNodes.push({\n contentEnd,\n end: nextNodeStart,\n node,\n separator,\n start\n });\n }\n node = nextNode;\n start = nextNodeStart;\n }\n splitUpNodes.push({\n contentEnd: end,\n end,\n node: node,\n separator: null,\n start\n });\n return splitUpNodes;\n}\n// This assumes there are only white-space and comments between start and end\nfunction removeLineBreaks(code, start, end) {\n while (true) {\n const [removeStart, removeEnd] = findFirstLineBreakOutsideComment(code.original.slice(start, end));\n if (removeStart === -1) {\n break;\n }\n code.remove(start + removeStart, (start += removeEnd));\n }\n}\n\nclass BlockScope extends ChildScope {\n constructor(parent) {\n super(parent, parent.context);\n }\n addDeclaration(identifier, context, init, kind) {\n if (kind === 'var') {\n const name = identifier.name;\n const existingVariable = this.hoistedVariables?.get(name) || this.variables.get(name);\n if (existingVariable) {\n if (existingVariable.kind === 'var' ||\n (kind === 'var' && existingVariable.kind === 'parameter')) {\n existingVariable.addDeclaration(identifier, init);\n return existingVariable;\n }\n return context.error(logRedeclarationError(name), identifier.start);\n }\n const declaredVariable = this.parent.addDeclaration(identifier, context, init, kind);\n // Necessary to make sure the init is deoptimized for conditional declarations.\n // We cannot call deoptimizePath here.\n declaredVariable.markInitializersForDeoptimization();\n // We add the variable to this and all parent scopes to reliably detect conflicts\n this.addHoistedVariable(name, declaredVariable);\n return declaredVariable;\n }\n return super.addDeclaration(identifier, context, init, kind);\n }\n}\n\nclass ExpressionStatement extends NodeBase {\n initialise() {\n super.initialise();\n if (this.directive &&\n this.directive !== 'use strict' &&\n this.parent.type === Program$1) {\n this.scope.context.log(LOGLEVEL_WARN, \n // This is necessary, because either way (deleting or not) can lead to errors.\n logModuleLevelDirective(this.directive, this.scope.context.module.id), this.start);\n }\n }\n removeAnnotations(code) {\n this.expression.removeAnnotations(code);\n }\n render(code, options) {\n super.render(code, options);\n if (code.original[this.end - 1] !== ';') {\n code.appendLeft(this.end, ';');\n }\n }\n shouldBeIncluded(context) {\n if (this.directive && this.directive !== 'use strict')\n return this.parent.type !== Program$1;\n return super.shouldBeIncluded(context);\n }\n applyDeoptimizations() { }\n}\n\nclass BlockStatement extends NodeBase {\n get deoptimizeBody() {\n return isFlagSet(this.flags, 32768 /* Flag.deoptimizeBody */);\n }\n set deoptimizeBody(value) {\n this.flags = setFlag(this.flags, 32768 /* Flag.deoptimizeBody */, value);\n }\n get directlyIncluded() {\n return isFlagSet(this.flags, 16384 /* Flag.directlyIncluded */);\n }\n set directlyIncluded(value) {\n this.flags = setFlag(this.flags, 16384 /* Flag.directlyIncluded */, value);\n }\n addImplicitReturnExpressionToScope() {\n const lastStatement = this.body[this.body.length - 1];\n if (!lastStatement || lastStatement.type !== ReturnStatement$1) {\n this.scope.addReturnExpression(UNKNOWN_EXPRESSION);\n }\n }\n createScope(parentScope) {\n this.scope = this.parent.preventChildBlockScope\n ? parentScope\n : new BlockScope(parentScope);\n }\n hasEffects(context) {\n if (this.deoptimizeBody)\n return true;\n for (const node of this.body) {\n if (context.brokenFlow)\n break;\n if (node.hasEffects(context))\n return true;\n }\n return false;\n }\n include(context, includeChildrenRecursively) {\n if (!(this.deoptimizeBody && this.directlyIncluded)) {\n this.included = true;\n this.directlyIncluded = true;\n if (this.deoptimizeBody)\n includeChildrenRecursively = true;\n for (const node of this.body) {\n if (includeChildrenRecursively || node.shouldBeIncluded(context))\n node.include(context, includeChildrenRecursively);\n }\n }\n }\n initialise() {\n super.initialise();\n const firstBodyStatement = this.body[0];\n this.deoptimizeBody =\n firstBodyStatement instanceof ExpressionStatement &&\n firstBodyStatement.directive === 'use asm';\n }\n render(code, options) {\n if (this.body.length > 0) {\n renderStatementList(this.body, code, this.start + 1, this.end - 1, options);\n }\n else {\n super.render(code, options);\n }\n }\n}\n\nclass RestElement extends NodeBase {\n constructor() {\n super(...arguments);\n this.declarationInit = null;\n }\n addExportedVariables(variables, exportNamesByVariable) {\n this.argument.addExportedVariables(variables, exportNamesByVariable);\n }\n declare(kind, init) {\n this.declarationInit = init;\n return this.argument.declare(kind, UNKNOWN_EXPRESSION);\n }\n deoptimizePath(path) {\n path.length === 0 && this.argument.deoptimizePath(EMPTY_PATH);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return (path.length > 0 ||\n this.argument.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context));\n }\n markDeclarationReached() {\n this.argument.markDeclarationReached();\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n if (this.declarationInit !== null) {\n this.declarationInit.deoptimizePath([UnknownKey, UnknownKey]);\n this.scope.context.requestTreeshakingPass();\n }\n }\n}\n\nclass FunctionBase extends NodeBase {\n constructor() {\n super(...arguments);\n this.objectEntity = null;\n this.parameterVariableValuesDeoptimized = false;\n }\n get async() {\n return isFlagSet(this.flags, 256 /* Flag.async */);\n }\n set async(value) {\n this.flags = setFlag(this.flags, 256 /* Flag.async */, value);\n }\n get deoptimizedReturn() {\n return isFlagSet(this.flags, 512 /* Flag.deoptimizedReturn */);\n }\n set deoptimizedReturn(value) {\n this.flags = setFlag(this.flags, 512 /* Flag.deoptimizedReturn */, value);\n }\n get generator() {\n return isFlagSet(this.flags, 4194304 /* Flag.generator */);\n }\n set generator(value) {\n this.flags = setFlag(this.flags, 4194304 /* Flag.generator */, value);\n }\n updateParameterVariableValues(_arguments) {\n for (let position = 0; position < this.params.length; position++) {\n const parameter = this.params[position];\n if (!(parameter instanceof Identifier)) {\n continue;\n }\n const parameterVariable = parameter.variable;\n const argument = _arguments[position + 1] ?? UNDEFINED_EXPRESSION;\n parameterVariable.updateKnownValue(argument);\n }\n }\n deoptimizeParameterVariableValues() {\n for (const parameter of this.params) {\n if (parameter instanceof Identifier) {\n const parameterVariable = parameter.variable;\n parameterVariable.markReassigned();\n }\n }\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n if (interaction.type === INTERACTION_CALLED) {\n const { parameters } = this.scope;\n const { args } = interaction;\n let hasRest = false;\n for (let position = 0; position < args.length - 1; position++) {\n const parameter = this.params[position];\n // Only the \"this\" argument arg[0] can be null\n const argument = args[position + 1];\n if (argument instanceof SpreadElement) {\n this.deoptimizeParameterVariableValues();\n }\n if (hasRest || parameter instanceof RestElement) {\n hasRest = true;\n argument.deoptimizePath(UNKNOWN_PATH);\n }\n else if (parameter instanceof Identifier) {\n parameters[position][0].addEntityToBeDeoptimized(argument);\n this.addArgumentToBeDeoptimized(argument);\n }\n else if (parameter) {\n argument.deoptimizePath(UNKNOWN_PATH);\n }\n else {\n this.addArgumentToBeDeoptimized(argument);\n }\n }\n this.updateParameterVariableValues(args);\n }\n else {\n this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n }\n deoptimizePath(path) {\n this.getObjectEntity().deoptimizePath(path);\n if (path.length === 1 && path[0] === UnknownKey) {\n // A reassignment of UNKNOWN_PATH is considered equivalent to having lost track\n // which means the return expression and parameters need to be reassigned\n this.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH);\n for (const parameterList of this.scope.parameters) {\n for (const parameter of parameterList) {\n parameter.deoptimizePath(UNKNOWN_PATH);\n parameter.markReassigned();\n }\n }\n }\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.getObjectEntity().getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n if (path.length > 0) {\n return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n if (this.async) {\n if (!this.deoptimizedReturn) {\n this.deoptimizedReturn = true;\n this.scope.getReturnExpression().deoptimizePath(UNKNOWN_PATH);\n this.scope.context.requestTreeshakingPass();\n }\n return UNKNOWN_RETURN_EXPRESSION;\n }\n return [this.scope.getReturnExpression(), false];\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (path.length > 0 || interaction.type !== INTERACTION_CALLED) {\n return this.getObjectEntity().hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n if (this.annotationNoSideEffects) {\n return false;\n }\n if (this.async) {\n const { propertyReadSideEffects } = this.scope.context.options\n .treeshake;\n const returnExpression = this.scope.getReturnExpression();\n if (returnExpression.hasEffectsOnInteractionAtPath(['then'], NODE_INTERACTION_UNKNOWN_CALL, context) ||\n (propertyReadSideEffects &&\n (propertyReadSideEffects === 'always' ||\n returnExpression.hasEffectsOnInteractionAtPath(['then'], NODE_INTERACTION_UNKNOWN_ACCESS, context)))) {\n return true;\n }\n }\n for (const parameter of this.params) {\n if (parameter.hasEffects(context))\n return true;\n }\n return false;\n }\n /**\n * If the function (expression or declaration) is only used as function calls\n */\n onlyFunctionCallUsed() {\n let variable = null;\n if (this.parent.type === VariableDeclarator$1) {\n variable = this.parent.id.variable ?? null;\n }\n if (this.parent.type === ExportDefaultDeclaration$1) {\n variable = this.parent.variable;\n }\n return variable?.getOnlyFunctionCallUsed() ?? false;\n }\n include(context, includeChildrenRecursively) {\n if (!this.parameterVariableValuesDeoptimized && !this.onlyFunctionCallUsed()) {\n this.parameterVariableValuesDeoptimized = true;\n this.deoptimizeParameterVariableValues();\n }\n if (!this.deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n const { brokenFlow } = context;\n context.brokenFlow = false;\n this.body.include(context, includeChildrenRecursively);\n context.brokenFlow = brokenFlow;\n }\n includeCallArguments(context, parameters) {\n this.scope.includeCallArguments(context, parameters);\n }\n initialise() {\n super.initialise();\n if (this.body instanceof BlockStatement) {\n this.body.addImplicitReturnExpressionToScope();\n }\n else {\n this.scope.addReturnExpression(this.body);\n }\n if (this.annotations &&\n this.scope.context.options.treeshake.annotations) {\n this.annotationNoSideEffects = this.annotations.some(comment => comment.type === 'noSideEffects');\n }\n }\n parseNode(esTreeNode) {\n const { body, params } = esTreeNode;\n const { scope } = this;\n const { bodyScope, context } = scope;\n // We need to ensure that parameters are declared before the body is parsed\n // so that the scope already knows all parameters and can detect conflicts\n // when parsing the body.\n const parameters = (this.params = params.map((parameter) => new (context.getNodeConstructor(parameter.type))(this, scope).parseNode(parameter)));\n scope.addParameterVariables(parameters.map(parameter => parameter.declare('parameter', UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement);\n this.body = new (context.getNodeConstructor(body.type))(this, bodyScope).parseNode(body);\n return super.parseNode(esTreeNode);\n }\n addArgumentToBeDeoptimized(_argument) { }\n applyDeoptimizations() { }\n}\nFunctionBase.prototype.preventChildBlockScope = true;\n\nclass ArrowFunctionExpression extends FunctionBase {\n constructor() {\n super(...arguments);\n this.objectEntity = null;\n }\n get expression() {\n return isFlagSet(this.flags, 8388608 /* Flag.expression */);\n }\n set expression(value) {\n this.flags = setFlag(this.flags, 8388608 /* Flag.expression */, value);\n }\n createScope(parentScope) {\n this.scope = new ReturnValueScope(parentScope, false);\n }\n hasEffects() {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n return false;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (super.hasEffectsOnInteractionAtPath(path, interaction, context)) {\n return true;\n }\n if (this.annotationNoSideEffects) {\n return false;\n }\n if (interaction.type === INTERACTION_CALLED) {\n const { ignore, brokenFlow } = context;\n context.ignore = {\n breaks: false,\n continues: false,\n labels: new Set(),\n returnYield: true,\n this: false\n };\n if (this.body.hasEffects(context))\n return true;\n context.ignore = ignore;\n context.brokenFlow = brokenFlow;\n }\n return false;\n }\n onlyFunctionCallUsed() {\n const isIIFE = this.parent.type === CallExpression$1 &&\n this.parent.callee === this;\n return isIIFE || super.onlyFunctionCallUsed();\n }\n include(context, includeChildrenRecursively) {\n super.include(context, includeChildrenRecursively);\n for (const parameter of this.params) {\n if (!(parameter instanceof Identifier)) {\n parameter.include(context, includeChildrenRecursively);\n }\n }\n }\n getObjectEntity() {\n if (this.objectEntity !== null) {\n return this.objectEntity;\n }\n return (this.objectEntity = new ObjectEntity([], OBJECT_PROTOTYPE));\n }\n}\n\nfunction getSystemExportStatement(exportedVariables, { exportNamesByVariable, snippets: { _, getObject, getPropertyAccess } }, modifier = '') {\n if (exportedVariables.length === 1 &&\n exportNamesByVariable.get(exportedVariables[0]).length === 1) {\n const variable = exportedVariables[0];\n return `exports(${JSON.stringify(exportNamesByVariable.get(variable)[0])},${_}${variable.getName(getPropertyAccess)}${modifier})`;\n }\n else {\n const fields = [];\n for (const variable of exportedVariables) {\n for (const exportName of exportNamesByVariable.get(variable)) {\n fields.push([exportName, variable.getName(getPropertyAccess) + modifier]);\n }\n }\n return `exports(${getObject(fields, { lineBreakIndent: null })})`;\n }\n}\n// This is only invoked if there is exactly one export name\nfunction renderSystemExportExpression(exportedVariable, expressionStart, expressionEnd, code, { exportNamesByVariable, snippets: { _ } }) {\n code.prependRight(expressionStart, `exports(${JSON.stringify(exportNamesByVariable.get(exportedVariable)[0])},${_}`);\n code.appendLeft(expressionEnd, ')');\n}\nfunction renderSystemExportFunction(exportedVariables, expressionStart, expressionEnd, needsParens, code, options) {\n const { _, getDirectReturnIifeLeft } = options.snippets;\n code.prependRight(expressionStart, getDirectReturnIifeLeft(['v'], `${getSystemExportStatement(exportedVariables, options)},${_}v`, { needsArrowReturnParens: true, needsWrappedFunction: needsParens }));\n code.appendLeft(expressionEnd, ')');\n}\nfunction renderSystemExportSequenceAfterExpression(exportedVariable, expressionStart, expressionEnd, needsParens, code, options) {\n const { _, getPropertyAccess } = options.snippets;\n code.appendLeft(expressionEnd, `,${_}${getSystemExportStatement([exportedVariable], options)},${_}${exportedVariable.getName(getPropertyAccess)}`);\n if (needsParens) {\n code.prependRight(expressionStart, '(');\n code.appendLeft(expressionEnd, ')');\n }\n}\nfunction renderSystemExportSequenceBeforeExpression(exportedVariable, expressionStart, expressionEnd, needsParens, code, options, modifier) {\n const { _ } = options.snippets;\n code.prependRight(expressionStart, `${getSystemExportStatement([exportedVariable], options, modifier)},${_}`);\n if (needsParens) {\n code.prependRight(expressionStart, '(');\n code.appendLeft(expressionEnd, ')');\n }\n}\n\nclass ObjectPattern extends NodeBase {\n addExportedVariables(variables, exportNamesByVariable) {\n for (const property of this.properties) {\n if (property.type === Property$1) {\n property.value.addExportedVariables(variables, exportNamesByVariable);\n }\n else {\n property.argument.addExportedVariables(variables, exportNamesByVariable);\n }\n }\n }\n declare(kind, init) {\n const variables = [];\n for (const property of this.properties) {\n variables.push(...property.declare(kind, init));\n }\n return variables;\n }\n deoptimizePath(path) {\n if (path.length === 0) {\n for (const property of this.properties) {\n property.deoptimizePath(path);\n }\n }\n }\n hasEffectsOnInteractionAtPath(\n // At the moment, this is only triggered for assignment left-hand sides,\n // where the path is empty\n _path, interaction, context) {\n for (const property of this.properties) {\n if (property.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context))\n return true;\n }\n return false;\n }\n markDeclarationReached() {\n for (const property of this.properties) {\n property.markDeclarationReached();\n }\n }\n}\n\nclass AssignmentExpression extends NodeBase {\n hasEffects(context) {\n const { deoptimized, left, operator, right } = this;\n if (!deoptimized)\n this.applyDeoptimizations();\n // MemberExpressions do not access the property before assignments if the\n // operator is '='.\n return (right.hasEffects(context) || left.hasEffectsAsAssignmentTarget(context, operator !== '='));\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return this.right.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n include(context, includeChildrenRecursively) {\n const { deoptimized, left, right, operator } = this;\n if (!deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n if (includeChildrenRecursively ||\n operator !== '=' ||\n left.included ||\n left.hasEffectsAsAssignmentTarget(createHasEffectsContext(), false)) {\n left.includeAsAssignmentTarget(context, includeChildrenRecursively, operator !== '=');\n }\n right.include(context, includeChildrenRecursively);\n }\n initialise() {\n super.initialise();\n if (this.left instanceof Identifier) {\n const variable = this.scope.variables.get(this.left.name);\n if (variable?.kind === 'const') {\n this.scope.context.error(logConstVariableReassignError(), this.left.start);\n }\n }\n this.left.setAssignedValue(this.right);\n }\n render(code, options, { preventASI, renderedParentType, renderedSurroundingElement } = BLANK) {\n const { left, right, start, end, parent } = this;\n if (left.included) {\n left.render(code, options);\n right.render(code, options);\n }\n else {\n const inclusionStart = findNonWhiteSpace(code.original, findFirstOccurrenceOutsideComment(code.original, '=', left.end) + 1);\n code.remove(start, inclusionStart);\n if (preventASI) {\n removeLineBreaks(code, inclusionStart, right.start);\n }\n right.render(code, options, {\n renderedParentType: renderedParentType || parent.type,\n renderedSurroundingElement: renderedSurroundingElement || parent.type\n });\n }\n if (options.format === 'system') {\n if (left instanceof Identifier) {\n const variable = left.variable;\n const exportNames = options.exportNamesByVariable.get(variable);\n if (exportNames) {\n if (exportNames.length === 1) {\n renderSystemExportExpression(variable, start, end, code, options);\n }\n else {\n renderSystemExportSequenceAfterExpression(variable, start, end, parent.type !== ExpressionStatement$1, code, options);\n }\n return;\n }\n }\n else {\n const systemPatternExports = [];\n left.addExportedVariables(systemPatternExports, options.exportNamesByVariable);\n if (systemPatternExports.length > 0) {\n renderSystemExportFunction(systemPatternExports, start, end, renderedSurroundingElement === ExpressionStatement$1, code, options);\n return;\n }\n }\n }\n if (left.included &&\n left instanceof ObjectPattern &&\n (renderedSurroundingElement === ExpressionStatement$1 ||\n renderedSurroundingElement === ArrowFunctionExpression$1)) {\n code.appendRight(start, '(');\n code.prependLeft(end, ')');\n }\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.left.deoptimizePath(EMPTY_PATH);\n this.right.deoptimizePath(UNKNOWN_PATH);\n this.scope.context.requestTreeshakingPass();\n }\n}\n\nclass AssignmentPattern extends NodeBase {\n addExportedVariables(variables, exportNamesByVariable) {\n this.left.addExportedVariables(variables, exportNamesByVariable);\n }\n declare(kind, init) {\n return this.left.declare(kind, init);\n }\n deoptimizePath(path) {\n path.length === 0 && this.left.deoptimizePath(path);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return (path.length > 0 || this.left.hasEffectsOnInteractionAtPath(EMPTY_PATH, interaction, context));\n }\n markDeclarationReached() {\n this.left.markDeclarationReached();\n }\n render(code, options, { isShorthandProperty } = BLANK) {\n this.left.render(code, options, { isShorthandProperty });\n this.right.render(code, options);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.left.deoptimizePath(EMPTY_PATH);\n this.right.deoptimizePath(UNKNOWN_PATH);\n this.scope.context.requestTreeshakingPass();\n }\n}\n\nclass ArgumentsVariable extends LocalVariable {\n constructor(context) {\n super('arguments', null, UNKNOWN_EXPRESSION, context, 'other');\n this.deoptimizedArguments = [];\n }\n addArgumentToBeDeoptimized(argument) {\n if (this.included) {\n argument.deoptimizePath(UNKNOWN_PATH);\n }\n else {\n this.deoptimizedArguments.push(argument);\n }\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return type !== INTERACTION_ACCESSED || path.length > 1;\n }\n include() {\n super.include();\n for (const argument of this.deoptimizedArguments) {\n argument.deoptimizePath(UNKNOWN_PATH);\n }\n this.deoptimizedArguments.length = 0;\n }\n}\n\nclass ThisVariable extends ParameterVariable {\n constructor(context) {\n super('this', null, context);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return (context.replacedVariableInits.get(this) || UNKNOWN_EXPRESSION).hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n}\n\nclass FunctionScope extends ReturnValueScope {\n constructor(parent) {\n const { context } = parent;\n super(parent, false);\n this.variables.set('arguments', (this.argumentsVariable = new ArgumentsVariable(context)));\n this.variables.set('this', (this.thisVariable = new ThisVariable(context)));\n }\n findLexicalBoundary() {\n return this;\n }\n includeCallArguments(context, parameters) {\n super.includeCallArguments(context, parameters);\n if (this.argumentsVariable.included) {\n for (const argument of parameters) {\n if (!argument.included) {\n argument.include(context, false);\n }\n }\n }\n }\n}\n\nclass FunctionNode extends FunctionBase {\n constructor() {\n super(...arguments);\n this.objectEntity = null;\n }\n createScope(parentScope) {\n this.scope = new FunctionScope(parentScope);\n this.constructedEntity = new ObjectEntity(Object.create(null), OBJECT_PROTOTYPE);\n // This makes sure that all deoptimizations of \"this\" are applied to the\n // constructed entity.\n this.scope.thisVariable.addEntityToBeDeoptimized(this.constructedEntity);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n super.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n if (interaction.type === INTERACTION_CALLED && path.length === 0 && interaction.args[0]) {\n // args[0] is the \"this\" argument\n this.scope.thisVariable.addEntityToBeDeoptimized(interaction.args[0]);\n }\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (this.annotationNoSideEffects) {\n return false;\n }\n return !!this.id?.hasEffects(context);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (super.hasEffectsOnInteractionAtPath(path, interaction, context))\n return true;\n if (this.annotationNoSideEffects) {\n return false;\n }\n if (interaction.type === INTERACTION_CALLED) {\n const thisInit = context.replacedVariableInits.get(this.scope.thisVariable);\n context.replacedVariableInits.set(this.scope.thisVariable, interaction.withNew ? this.constructedEntity : UNKNOWN_EXPRESSION);\n const { brokenFlow, ignore, replacedVariableInits } = context;\n context.ignore = {\n breaks: false,\n continues: false,\n labels: new Set(),\n returnYield: true,\n this: interaction.withNew\n };\n if (this.body.hasEffects(context))\n return true;\n context.brokenFlow = brokenFlow;\n if (thisInit) {\n replacedVariableInits.set(this.scope.thisVariable, thisInit);\n }\n else {\n replacedVariableInits.delete(this.scope.thisVariable);\n }\n context.ignore = ignore;\n }\n return false;\n }\n include(context, includeChildrenRecursively) {\n super.include(context, includeChildrenRecursively);\n this.id?.include();\n const hasArguments = this.scope.argumentsVariable.included;\n for (const parameter of this.params) {\n if (!(parameter instanceof Identifier) || hasArguments) {\n parameter.include(context, includeChildrenRecursively);\n }\n }\n }\n initialise() {\n super.initialise();\n this.id?.declare('function', this);\n }\n addArgumentToBeDeoptimized(argument) {\n this.scope.argumentsVariable.addArgumentToBeDeoptimized(argument);\n }\n getObjectEntity() {\n if (this.objectEntity !== null) {\n return this.objectEntity;\n }\n return (this.objectEntity = new ObjectEntity([\n {\n key: 'prototype',\n kind: 'init',\n property: new ObjectEntity([], OBJECT_PROTOTYPE)\n }\n ], OBJECT_PROTOTYPE));\n }\n}\n\nclass AwaitExpression extends NodeBase {\n hasEffects() {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n return true;\n }\n include(context, includeChildrenRecursively) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (!this.included) {\n this.included = true;\n checkTopLevelAwait: if (!this.scope.context.usesTopLevelAwait) {\n let parent = this.parent;\n do {\n if (parent instanceof FunctionNode || parent instanceof ArrowFunctionExpression)\n break checkTopLevelAwait;\n } while ((parent = parent.parent));\n this.scope.context.usesTopLevelAwait = true;\n }\n }\n this.argument.include(context, includeChildrenRecursively);\n }\n}\n\nconst binaryOperators = {\n '!=': (left, right) => left != right,\n '!==': (left, right) => left !== right,\n '%': (left, right) => left % right,\n '&': (left, right) => left & right,\n '*': (left, right) => left * right,\n // At the moment, \"**\" will be transpiled to Math.pow\n '**': (left, right) => left ** right,\n '+': (left, right) => left + right,\n '-': (left, right) => left - right,\n '/': (left, right) => left / right,\n '<': (left, right) => left < right,\n '<<': (left, right) => left << right,\n '<=': (left, right) => left <= right,\n '==': (left, right) => left == right,\n '===': (left, right) => left === right,\n '>': (left, right) => left > right,\n '>=': (left, right) => left >= right,\n '>>': (left, right) => left >> right,\n '>>>': (left, right) => left >>> right,\n '^': (left, right) => left ^ right,\n '|': (left, right) => left | right\n // We use the fallback for cases where we return something unknown\n // in: () => UnknownValue,\n // instanceof: () => UnknownValue,\n};\nclass BinaryExpression extends NodeBase {\n deoptimizeCache() { }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n if (path.length > 0)\n return UnknownValue;\n const leftValue = this.left.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin);\n if (typeof leftValue === 'symbol')\n return UnknownValue;\n const rightValue = this.right.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin);\n if (typeof rightValue === 'symbol')\n return UnknownValue;\n const operatorFunction = binaryOperators[this.operator];\n if (!operatorFunction)\n return UnknownValue;\n return operatorFunction(leftValue, rightValue);\n }\n hasEffects(context) {\n // support some implicit type coercion runtime errors\n if (this.operator === '+' &&\n this.parent instanceof ExpressionStatement &&\n this.left.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this) === '') {\n return true;\n }\n return super.hasEffects(context);\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return type !== INTERACTION_ACCESSED || path.length > 1;\n }\n removeAnnotations(code) {\n this.left.removeAnnotations(code);\n }\n render(code, options, { renderedSurroundingElement } = BLANK) {\n this.left.render(code, options, { renderedSurroundingElement });\n this.right.render(code, options);\n }\n}\n\nclass BreakStatement extends NodeBase {\n hasEffects(context) {\n if (this.label) {\n if (!context.ignore.labels.has(this.label.name))\n return true;\n context.includedLabels.add(this.label.name);\n }\n else {\n if (!context.ignore.breaks)\n return true;\n context.hasBreak = true;\n }\n context.brokenFlow = true;\n return false;\n }\n include(context) {\n this.included = true;\n if (this.label) {\n this.label.include();\n context.includedLabels.add(this.label.name);\n }\n else {\n context.hasBreak = true;\n }\n context.brokenFlow = true;\n }\n}\n\nfunction renderCallArguments(code, options, node) {\n if (node.arguments.length > 0) {\n if (node.arguments[node.arguments.length - 1].included) {\n for (const argument of node.arguments) {\n argument.render(code, options);\n }\n }\n else {\n let lastIncludedIndex = node.arguments.length - 2;\n while (lastIncludedIndex >= 0 && !node.arguments[lastIncludedIndex].included) {\n lastIncludedIndex--;\n }\n if (lastIncludedIndex >= 0) {\n for (let index = 0; index <= lastIncludedIndex; index++) {\n node.arguments[index].render(code, options);\n }\n code.remove(findFirstOccurrenceOutsideComment(code.original, ',', node.arguments[lastIncludedIndex].end), node.end - 1);\n }\n else {\n code.remove(findFirstOccurrenceOutsideComment(code.original, '(', node.callee.end) + 1, node.end - 1);\n }\n }\n }\n}\n\nclass Literal extends NodeBase {\n deoptimizeArgumentsOnInteractionAtPath() { }\n getLiteralValueAtPath(path) {\n if (path.length > 0 ||\n // unknown literals can also be null but do not start with an \"n\"\n (this.value === null && this.scope.context.code.charCodeAt(this.start) !== 110) ||\n typeof this.value === 'bigint' ||\n // to support shims for regular expressions\n this.scope.context.code.charCodeAt(this.start) === 47) {\n return UnknownValue;\n }\n return this.value;\n }\n getReturnExpressionWhenCalledAtPath(path) {\n if (path.length !== 1)\n return UNKNOWN_RETURN_EXPRESSION;\n return getMemberReturnExpressionWhenCalled(this.members, path[0]);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n switch (interaction.type) {\n case INTERACTION_ACCESSED: {\n return path.length > (this.value === null ? 0 : 1);\n }\n case INTERACTION_ASSIGNED: {\n return true;\n }\n case INTERACTION_CALLED: {\n if (this.included &&\n this.value instanceof RegExp &&\n (this.value.global || this.value.sticky)) {\n return true;\n }\n return (path.length !== 1 ||\n hasMemberEffectWhenCalled(this.members, path[0], interaction, context));\n }\n }\n }\n initialise() {\n super.initialise();\n this.members = getLiteralMembersForValue(this.value);\n }\n parseNode(esTreeNode) {\n this.value = esTreeNode.value;\n this.regex = esTreeNode.regex;\n return super.parseNode(esTreeNode);\n }\n render(code) {\n if (typeof this.value === 'string') {\n code.indentExclusionRanges.push([this.start + 1, this.end - 1]);\n }\n }\n}\n\nfunction getChainElementLiteralValueAtPath(element, object, path, recursionTracker, origin) {\n if ('getLiteralValueAtPathAsChainElement' in object) {\n const calleeValue = object.getLiteralValueAtPathAsChainElement(EMPTY_PATH, SHARED_RECURSION_TRACKER, origin);\n if (calleeValue === IS_SKIPPED_CHAIN || (element.optional && calleeValue == null)) {\n return IS_SKIPPED_CHAIN;\n }\n }\n else if (element.optional &&\n object.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, origin) == null) {\n return IS_SKIPPED_CHAIN;\n }\n return element.getLiteralValueAtPath(path, recursionTracker, origin);\n}\n\n// To avoid infinite recursions\nconst MAX_PATH_DEPTH = 7;\nfunction getResolvablePropertyKey(memberExpression) {\n return memberExpression.computed\n ? getResolvableComputedPropertyKey(memberExpression.property)\n : memberExpression.property.name;\n}\nfunction getResolvableComputedPropertyKey(propertyKey) {\n if (propertyKey instanceof Literal) {\n return String(propertyKey.value);\n }\n return null;\n}\nfunction getPathIfNotComputed(memberExpression) {\n const nextPathKey = memberExpression.propertyKey;\n const object = memberExpression.object;\n if (typeof nextPathKey === 'string') {\n if (object instanceof Identifier) {\n return [\n { key: object.name, pos: object.start },\n { key: nextPathKey, pos: memberExpression.property.start }\n ];\n }\n if (object instanceof MemberExpression) {\n const parentPath = getPathIfNotComputed(object);\n return (parentPath && [...parentPath, { key: nextPathKey, pos: memberExpression.property.start }]);\n }\n }\n return null;\n}\nfunction getStringFromPath(path) {\n let pathString = path[0].key;\n for (let index = 1; index < path.length; index++) {\n pathString += '.' + path[index].key;\n }\n return pathString;\n}\nclass MemberExpression extends NodeBase {\n constructor() {\n super(...arguments);\n this.variable = null;\n this.expressionsToBeDeoptimized = [];\n }\n get computed() {\n return isFlagSet(this.flags, 1024 /* Flag.computed */);\n }\n set computed(value) {\n this.flags = setFlag(this.flags, 1024 /* Flag.computed */, value);\n }\n get optional() {\n return isFlagSet(this.flags, 128 /* Flag.optional */);\n }\n set optional(value) {\n this.flags = setFlag(this.flags, 128 /* Flag.optional */, value);\n }\n get assignmentDeoptimized() {\n return isFlagSet(this.flags, 16 /* Flag.assignmentDeoptimized */);\n }\n set assignmentDeoptimized(value) {\n this.flags = setFlag(this.flags, 16 /* Flag.assignmentDeoptimized */, value);\n }\n get bound() {\n return isFlagSet(this.flags, 32 /* Flag.bound */);\n }\n set bound(value) {\n this.flags = setFlag(this.flags, 32 /* Flag.bound */, value);\n }\n get isUndefined() {\n return isFlagSet(this.flags, 64 /* Flag.isUndefined */);\n }\n set isUndefined(value) {\n this.flags = setFlag(this.flags, 64 /* Flag.isUndefined */, value);\n }\n bind() {\n this.bound = true;\n const path = getPathIfNotComputed(this);\n const baseVariable = path && this.scope.findVariable(path[0].key);\n if (baseVariable?.isNamespace) {\n const resolvedVariable = resolveNamespaceVariables(baseVariable, path.slice(1), this.scope.context);\n if (!resolvedVariable) {\n super.bind();\n }\n else if (resolvedVariable === 'undefined') {\n this.isUndefined = true;\n }\n else {\n this.variable = resolvedVariable;\n this.scope.addNamespaceMemberAccess(getStringFromPath(path), resolvedVariable);\n }\n }\n else {\n super.bind();\n }\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n if (this.variable) {\n this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n else if (!this.isUndefined) {\n if (path.length < MAX_PATH_DEPTH) {\n this.object.deoptimizeArgumentsOnInteractionAtPath(interaction, [this.getPropertyKey(), ...path], recursionTracker);\n }\n else {\n deoptimizeInteraction(interaction);\n }\n }\n }\n deoptimizeCache() {\n const { expressionsToBeDeoptimized, object } = this;\n this.expressionsToBeDeoptimized = EMPTY_ARRAY;\n this.propertyKey = UnknownKey;\n object.deoptimizePath(UNKNOWN_PATH);\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizeCache();\n }\n }\n deoptimizePath(path) {\n if (path.length === 0)\n this.disallowNamespaceReassignment();\n if (this.variable) {\n this.variable.deoptimizePath(path);\n }\n else if (!this.isUndefined && path.length < MAX_PATH_DEPTH) {\n const propertyKey = this.getPropertyKey();\n this.object.deoptimizePath([\n propertyKey === UnknownKey ? UnknownNonAccessorKey : propertyKey,\n ...path\n ]);\n }\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n if (this.variable) {\n return this.variable.getLiteralValueAtPath(path, recursionTracker, origin);\n }\n if (this.isUndefined) {\n return undefined;\n }\n if (this.propertyKey !== UnknownKey && path.length < MAX_PATH_DEPTH) {\n this.expressionsToBeDeoptimized.push(origin);\n return this.object.getLiteralValueAtPath([this.getPropertyKey(), ...path], recursionTracker, origin);\n }\n return UnknownValue;\n }\n getLiteralValueAtPathAsChainElement(path, recursionTracker, origin) {\n return getChainElementLiteralValueAtPath(this, this.object, path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n if (this.variable) {\n return this.variable.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n if (this.isUndefined) {\n return [UNDEFINED_EXPRESSION, false];\n }\n if (this.propertyKey !== UnknownKey && path.length < MAX_PATH_DEPTH) {\n this.expressionsToBeDeoptimized.push(origin);\n return this.object.getReturnExpressionWhenCalledAtPath([this.getPropertyKey(), ...path], interaction, recursionTracker, origin);\n }\n return UNKNOWN_RETURN_EXPRESSION;\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n return (this.property.hasEffects(context) ||\n this.object.hasEffects(context) ||\n this.hasAccessEffect(context));\n }\n hasEffectsAsChainElement(context) {\n if (this.variable || this.isUndefined)\n return this.hasEffects(context);\n const objectHasEffects = 'hasEffectsAsChainElement' in this.object\n ? this.object.hasEffectsAsChainElement(context)\n : this.object.hasEffects(context);\n if (objectHasEffects === IS_SKIPPED_CHAIN)\n return IS_SKIPPED_CHAIN;\n if (this.optional &&\n this.object.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this) == null) {\n return objectHasEffects || IS_SKIPPED_CHAIN;\n }\n // We only apply deoptimizations lazily once we know we are not skipping\n if (!this.deoptimized)\n this.applyDeoptimizations();\n return this.property.hasEffects(context) || this.hasAccessEffect(context);\n }\n hasEffectsAsAssignmentTarget(context, checkAccess) {\n if (checkAccess && !this.deoptimized)\n this.applyDeoptimizations();\n if (!this.assignmentDeoptimized)\n this.applyAssignmentDeoptimization();\n return (this.property.hasEffects(context) ||\n this.object.hasEffects(context) ||\n (checkAccess && this.hasAccessEffect(context)) ||\n this.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.assignmentInteraction, context));\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (this.variable) {\n return this.variable.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n if (this.isUndefined) {\n return true;\n }\n if (path.length < MAX_PATH_DEPTH) {\n return this.object.hasEffectsOnInteractionAtPath([this.getPropertyKey(), ...path], interaction, context);\n }\n return true;\n }\n include(context, includeChildrenRecursively) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n this.includeProperties(context, includeChildrenRecursively);\n }\n includeAsAssignmentTarget(context, includeChildrenRecursively, deoptimizeAccess) {\n if (!this.assignmentDeoptimized)\n this.applyAssignmentDeoptimization();\n if (deoptimizeAccess) {\n this.include(context, includeChildrenRecursively);\n }\n else {\n this.includeProperties(context, includeChildrenRecursively);\n }\n }\n includeCallArguments(context, parameters) {\n if (this.variable) {\n this.variable.includeCallArguments(context, parameters);\n }\n else {\n super.includeCallArguments(context, parameters);\n }\n }\n initialise() {\n super.initialise();\n this.propertyKey = getResolvablePropertyKey(this);\n this.accessInteraction = { args: [this.object], type: INTERACTION_ACCESSED };\n }\n render(code, options, { renderedParentType, isCalleeOfRenderedParent, renderedSurroundingElement } = BLANK) {\n if (this.variable || this.isUndefined) {\n const { snippets: { getPropertyAccess } } = options;\n let replacement = this.variable ? this.variable.getName(getPropertyAccess) : 'undefined';\n if (renderedParentType && isCalleeOfRenderedParent)\n replacement = '0, ' + replacement;\n code.overwrite(this.start, this.end, replacement, {\n contentOnly: true,\n storeName: true\n });\n }\n else {\n if (renderedParentType && isCalleeOfRenderedParent) {\n code.appendRight(this.start, '0, ');\n }\n this.object.render(code, options, { renderedSurroundingElement });\n this.property.render(code, options);\n }\n }\n setAssignedValue(value) {\n this.assignmentInteraction = {\n args: [this.object, value],\n type: INTERACTION_ASSIGNED\n };\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n const { propertyReadSideEffects } = this.scope.context.options\n .treeshake;\n if (\n // Namespaces are not bound and should not be deoptimized\n this.bound &&\n propertyReadSideEffects &&\n !(this.variable || this.isUndefined)) {\n const propertyKey = this.getPropertyKey();\n this.object.deoptimizeArgumentsOnInteractionAtPath(this.accessInteraction, [propertyKey], SHARED_RECURSION_TRACKER);\n this.scope.context.requestTreeshakingPass();\n }\n if (this.variable) {\n this.variable.addUsedPlace(this);\n this.scope.context.requestTreeshakingPass();\n }\n }\n applyAssignmentDeoptimization() {\n this.assignmentDeoptimized = true;\n const { propertyReadSideEffects } = this.scope.context.options\n .treeshake;\n if (\n // Namespaces are not bound and should not be deoptimized\n this.bound &&\n propertyReadSideEffects &&\n !(this.variable || this.isUndefined)) {\n this.object.deoptimizeArgumentsOnInteractionAtPath(this.assignmentInteraction, [this.getPropertyKey()], SHARED_RECURSION_TRACKER);\n this.scope.context.requestTreeshakingPass();\n }\n }\n disallowNamespaceReassignment() {\n if (this.object instanceof Identifier) {\n const variable = this.scope.findVariable(this.object.name);\n if (variable.isNamespace) {\n if (this.variable) {\n this.scope.context.includeVariableInModule(this.variable);\n }\n this.scope.context.log(LOGLEVEL_WARN, logIllegalImportReassignment(this.object.name, this.scope.context.module.id), this.start);\n }\n }\n }\n getPropertyKey() {\n if (this.propertyKey === null) {\n this.propertyKey = UnknownKey;\n const value = this.property.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n return (this.propertyKey =\n value === SymbolToStringTag\n ? value\n : typeof value === 'symbol'\n ? UnknownKey\n : String(value));\n }\n return this.propertyKey;\n }\n hasAccessEffect(context) {\n const { propertyReadSideEffects } = this.scope.context.options\n .treeshake;\n return (!(this.variable || this.isUndefined) &&\n propertyReadSideEffects &&\n (propertyReadSideEffects === 'always' ||\n this.object.hasEffectsOnInteractionAtPath([this.getPropertyKey()], this.accessInteraction, context)));\n }\n includeProperties(context, includeChildrenRecursively) {\n if (!this.included) {\n this.included = true;\n if (this.variable) {\n this.scope.context.includeVariableInModule(this.variable);\n }\n }\n this.object.include(context, includeChildrenRecursively);\n this.property.include(context, includeChildrenRecursively);\n }\n}\nfunction resolveNamespaceVariables(baseVariable, path, astContext) {\n if (path.length === 0)\n return baseVariable;\n if (!baseVariable.isNamespace || baseVariable instanceof ExternalVariable)\n return null;\n const exportName = path[0].key;\n const variable = baseVariable.context.traceExport(exportName);\n if (!variable) {\n if (path.length === 1) {\n const fileName = baseVariable.context.fileName;\n astContext.log(LOGLEVEL_WARN, logMissingExport(exportName, astContext.module.id, fileName), path[0].pos);\n return 'undefined';\n }\n return null;\n }\n return resolveNamespaceVariables(variable, path.slice(1), astContext);\n}\n\nclass CallExpressionBase extends NodeBase {\n constructor() {\n super(...arguments);\n this.returnExpression = null;\n this.deoptimizableDependentExpressions = [];\n this.expressionsToBeDeoptimized = new Set();\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n const { args } = interaction;\n const [returnExpression, isPure] = this.getReturnExpression(recursionTracker);\n if (isPure)\n return;\n const deoptimizedExpressions = args.filter(expression => !!expression && expression !== UNKNOWN_EXPRESSION);\n if (deoptimizedExpressions.length === 0)\n return;\n if (returnExpression === UNKNOWN_EXPRESSION) {\n for (const expression of deoptimizedExpressions) {\n expression.deoptimizePath(UNKNOWN_PATH);\n }\n }\n else {\n recursionTracker.withTrackedEntityAtPath(path, returnExpression, () => {\n for (const expression of deoptimizedExpressions) {\n this.expressionsToBeDeoptimized.add(expression);\n }\n returnExpression.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }, null);\n }\n }\n deoptimizeCache() {\n if (this.returnExpression?.[0] !== UNKNOWN_EXPRESSION) {\n this.returnExpression = UNKNOWN_RETURN_EXPRESSION;\n const { deoptimizableDependentExpressions, expressionsToBeDeoptimized } = this;\n this.expressionsToBeDeoptimized = EMPTY_SET;\n this.deoptimizableDependentExpressions = EMPTY_ARRAY;\n for (const expression of deoptimizableDependentExpressions) {\n expression.deoptimizeCache();\n }\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizePath(UNKNOWN_PATH);\n }\n }\n }\n deoptimizePath(path) {\n if (path.length === 0 ||\n this.scope.context.deoptimizationTracker.trackEntityAtPathAndGetIfTracked(path, this)) {\n return;\n }\n const [returnExpression] = this.getReturnExpression();\n if (returnExpression !== UNKNOWN_EXPRESSION) {\n returnExpression.deoptimizePath(path);\n }\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n const [returnExpression] = this.getReturnExpression(recursionTracker);\n if (returnExpression === UNKNOWN_EXPRESSION) {\n return UnknownValue;\n }\n return recursionTracker.withTrackedEntityAtPath(path, returnExpression, () => {\n this.deoptimizableDependentExpressions.push(origin);\n return returnExpression.getLiteralValueAtPath(path, recursionTracker, origin);\n }, UnknownValue);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n const returnExpression = this.getReturnExpression(recursionTracker);\n if (returnExpression[0] === UNKNOWN_EXPRESSION) {\n return returnExpression;\n }\n return recursionTracker.withTrackedEntityAtPath(path, returnExpression, () => {\n this.deoptimizableDependentExpressions.push(origin);\n const [expression, isPure] = returnExpression[0].getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n return [expression, isPure || returnExpression[1]];\n }, UNKNOWN_RETURN_EXPRESSION);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n const { type } = interaction;\n if (type === INTERACTION_CALLED) {\n const { args, withNew } = interaction;\n if ((withNew ? context.instantiated : context.called).trackEntityAtPathAndGetIfTracked(path, args, this)) {\n return false;\n }\n }\n else if ((type === INTERACTION_ASSIGNED\n ? context.assigned\n : context.accessed).trackEntityAtPathAndGetIfTracked(path, this)) {\n return false;\n }\n const [returnExpression, isPure] = this.getReturnExpression();\n return ((type === INTERACTION_ASSIGNED || !isPure) &&\n returnExpression.hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n}\n\nclass CallExpression extends CallExpressionBase {\n get optional() {\n return isFlagSet(this.flags, 128 /* Flag.optional */);\n }\n set optional(value) {\n this.flags = setFlag(this.flags, 128 /* Flag.optional */, value);\n }\n bind() {\n super.bind();\n if (this.callee instanceof Identifier) {\n const variable = this.scope.findVariable(this.callee.name);\n if (variable.isNamespace) {\n this.scope.context.log(LOGLEVEL_WARN, logCannotCallNamespace(this.callee.name), this.start);\n }\n if (this.callee.name === 'eval') {\n this.scope.context.log(LOGLEVEL_WARN, logEval(this.scope.context.module.id), this.start);\n }\n }\n this.interaction = {\n args: [\n this.callee instanceof MemberExpression && !this.callee.variable\n ? this.callee.object\n : null,\n ...this.arguments\n ],\n type: INTERACTION_CALLED,\n withNew: false\n };\n }\n getLiteralValueAtPathAsChainElement(path, recursionTracker, origin) {\n return getChainElementLiteralValueAtPath(this, this.callee, path, recursionTracker, origin);\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n for (const argument of this.arguments) {\n if (argument.hasEffects(context))\n return true;\n }\n if (this.annotationPure) {\n return false;\n }\n return (this.callee.hasEffects(context) ||\n this.callee.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context));\n }\n hasEffectsAsChainElement(context) {\n const calleeHasEffects = 'hasEffectsAsChainElement' in this.callee\n ? this.callee.hasEffectsAsChainElement(context)\n : this.callee.hasEffects(context);\n if (calleeHasEffects === IS_SKIPPED_CHAIN)\n return IS_SKIPPED_CHAIN;\n if (this.optional &&\n this.callee.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this) == null) {\n return (!this.annotationPure && calleeHasEffects) || IS_SKIPPED_CHAIN;\n }\n // We only apply deoptimizations lazily once we know we are not skipping\n if (!this.deoptimized)\n this.applyDeoptimizations();\n for (const argument of this.arguments) {\n if (argument.hasEffects(context))\n return true;\n }\n return (!this.annotationPure &&\n this.callee.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context));\n }\n include(context, includeChildrenRecursively) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (includeChildrenRecursively) {\n super.include(context, includeChildrenRecursively);\n if (includeChildrenRecursively === INCLUDE_PARAMETERS &&\n this.callee instanceof Identifier &&\n this.callee.variable) {\n this.callee.variable.markCalledFromTryStatement();\n }\n }\n else {\n this.included = true;\n this.callee.include(context, false);\n }\n this.callee.includeCallArguments(context, this.arguments);\n }\n initialise() {\n super.initialise();\n if (this.annotations &&\n this.scope.context.options.treeshake.annotations) {\n this.annotationPure = this.annotations.some(comment => comment.type === 'pure');\n }\n }\n render(code, options, { renderedSurroundingElement } = BLANK) {\n this.callee.render(code, options, {\n isCalleeOfRenderedParent: true,\n renderedSurroundingElement\n });\n renderCallArguments(code, options, this);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.callee.deoptimizeArgumentsOnInteractionAtPath(this.interaction, EMPTY_PATH, SHARED_RECURSION_TRACKER);\n this.scope.context.requestTreeshakingPass();\n }\n getReturnExpression(recursionTracker = SHARED_RECURSION_TRACKER) {\n if (this.returnExpression === null) {\n this.returnExpression = UNKNOWN_RETURN_EXPRESSION;\n return (this.returnExpression = this.callee.getReturnExpressionWhenCalledAtPath(EMPTY_PATH, this.interaction, recursionTracker, this));\n }\n return this.returnExpression;\n }\n}\n\nclass CatchClause extends NodeBase {\n createScope(parentScope) {\n this.scope = new ParameterScope(parentScope, true);\n }\n parseNode(esTreeNode) {\n const { body, param, type } = esTreeNode;\n this.type = type;\n if (param) {\n this.param = new (this.scope.context.getNodeConstructor(param.type))(this, this.scope).parseNode(param);\n this.param.declare('parameter', UNKNOWN_EXPRESSION);\n }\n this.body = new BlockStatement(this, this.scope.bodyScope).parseNode(body);\n return super.parseNode(esTreeNode);\n }\n}\nCatchClause.prototype.preventChildBlockScope = true;\n\nclass ChainExpression extends NodeBase {\n // deoptimizations are not relevant as we are not caching values\n deoptimizeCache() { }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n const literalValue = this.expression.getLiteralValueAtPathAsChainElement(path, recursionTracker, origin);\n return literalValue === IS_SKIPPED_CHAIN ? undefined : literalValue;\n }\n hasEffects(context) {\n return this.expression.hasEffectsAsChainElement(context) === true;\n }\n removeAnnotations(code) {\n this.expression.removeAnnotations(code);\n }\n applyDeoptimizations() { }\n}\n\nclass ClassBodyScope extends ChildScope {\n constructor(parent, classNode) {\n const { context } = parent;\n super(parent, context);\n this.variables.set('this', (this.thisVariable = new LocalVariable('this', null, classNode, context, 'other')));\n this.instanceScope = new ChildScope(this, context);\n this.instanceScope.variables.set('this', new ThisVariable(context));\n }\n findLexicalBoundary() {\n return this;\n }\n}\n\nclass ClassBody extends NodeBase {\n createScope(parentScope) {\n this.scope = new ClassBodyScope(parentScope, this.parent);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.scope.context.includeVariableInModule(this.scope.thisVariable);\n for (const definition of this.body) {\n definition.include(context, includeChildrenRecursively);\n }\n }\n parseNode(esTreeNode) {\n const body = (this.body = []);\n for (const definition of esTreeNode.body) {\n body.push(new (this.scope.context.getNodeConstructor(definition.type))(this, definition.static ? this.scope : this.scope.instanceScope).parseNode(definition));\n }\n return super.parseNode(esTreeNode);\n }\n applyDeoptimizations() { }\n}\n\nfunction checkEffectForNodes(nodes, context) {\n for (const node of nodes) {\n if (node.hasEffects(context)) {\n return true;\n }\n }\n return false;\n}\n\nclass MethodBase extends NodeBase {\n constructor() {\n super(...arguments);\n this.accessedValue = null;\n }\n get computed() {\n return isFlagSet(this.flags, 1024 /* Flag.computed */);\n }\n set computed(value) {\n this.flags = setFlag(this.flags, 1024 /* Flag.computed */, value);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n if (interaction.type === INTERACTION_ACCESSED && this.kind === 'get' && path.length === 0) {\n return this.value.deoptimizeArgumentsOnInteractionAtPath({\n args: interaction.args,\n type: INTERACTION_CALLED,\n withNew: false\n }, EMPTY_PATH, recursionTracker);\n }\n if (interaction.type === INTERACTION_ASSIGNED && this.kind === 'set' && path.length === 0) {\n return this.value.deoptimizeArgumentsOnInteractionAtPath({\n args: interaction.args,\n type: INTERACTION_CALLED,\n withNew: false\n }, EMPTY_PATH, recursionTracker);\n }\n this.getAccessedValue()[0].deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n // As getter properties directly receive their values from fixed function\n // expressions, there is no known situation where a getter is deoptimized.\n deoptimizeCache() { }\n deoptimizePath(path) {\n this.getAccessedValue()[0].deoptimizePath(path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.getAccessedValue()[0].getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n return this.getAccessedValue()[0].getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n hasEffects(context) {\n return this.key.hasEffects(context);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (this.kind === 'get' && interaction.type === INTERACTION_ACCESSED && path.length === 0) {\n return this.value.hasEffectsOnInteractionAtPath(EMPTY_PATH, {\n args: interaction.args,\n type: INTERACTION_CALLED,\n withNew: false\n }, context);\n }\n // setters are only called for empty paths\n if (this.kind === 'set' && interaction.type === INTERACTION_ASSIGNED) {\n return this.value.hasEffectsOnInteractionAtPath(EMPTY_PATH, {\n args: interaction.args,\n type: INTERACTION_CALLED,\n withNew: false\n }, context);\n }\n return this.getAccessedValue()[0].hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n applyDeoptimizations() { }\n getAccessedValue() {\n if (this.accessedValue === null) {\n if (this.kind === 'get') {\n this.accessedValue = UNKNOWN_RETURN_EXPRESSION;\n return (this.accessedValue = this.value.getReturnExpressionWhenCalledAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, SHARED_RECURSION_TRACKER, this));\n }\n else {\n return (this.accessedValue = [this.value, false]);\n }\n }\n return this.accessedValue;\n }\n}\n\nclass MethodDefinition extends MethodBase {\n hasEffects(context) {\n return super.hasEffects(context) || checkEffectForNodes(this.decorators, context);\n }\n applyDeoptimizations() { }\n}\n\nclass StaticBlock extends NodeBase {\n createScope(parentScope) {\n this.scope = new BlockScope(parentScope);\n }\n hasEffects(context) {\n for (const node of this.body) {\n if (node.hasEffects(context))\n return true;\n }\n return false;\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n for (const node of this.body) {\n if (includeChildrenRecursively || node.shouldBeIncluded(context))\n node.include(context, includeChildrenRecursively);\n }\n }\n render(code, options) {\n if (this.body.length > 0) {\n const bodyStartPos = findFirstOccurrenceOutsideComment(code.original.slice(this.start, this.end), '{') + 1;\n renderStatementList(this.body, code, this.start + bodyStartPos, this.end - 1, options);\n }\n else {\n super.render(code, options);\n }\n }\n}\nfunction isStaticBlock(statement) {\n return statement.type === StaticBlock$1;\n}\n\nclass ObjectMember extends ExpressionEntity {\n constructor(object, key) {\n super();\n this.object = object;\n this.key = key;\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.object.deoptimizeArgumentsOnInteractionAtPath(interaction, [this.key, ...path], recursionTracker);\n }\n deoptimizePath(path) {\n this.object.deoptimizePath([this.key, ...path]);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.object.getLiteralValueAtPath([this.key, ...path], recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n return this.object.getReturnExpressionWhenCalledAtPath([this.key, ...path], interaction, recursionTracker, origin);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return this.object.hasEffectsOnInteractionAtPath([this.key, ...path], interaction, context);\n }\n}\n\nclass ClassNode extends NodeBase {\n constructor() {\n super(...arguments);\n this.objectEntity = null;\n }\n createScope(parentScope) {\n this.scope = new ChildScope(parentScope, parentScope.context);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizeCache() {\n this.getObjectEntity().deoptimizeAllProperties();\n }\n deoptimizePath(path) {\n this.getObjectEntity().deoptimizePath(path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.getObjectEntity().getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n const initEffect = this.superClass?.hasEffects(context) || this.body.hasEffects(context);\n this.id?.markDeclarationReached();\n return initEffect || super.hasEffects(context) || checkEffectForNodes(this.decorators, context);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return interaction.type === INTERACTION_CALLED && path.length === 0\n ? !interaction.withNew ||\n (this.classConstructor === null\n ? this.superClass?.hasEffectsOnInteractionAtPath(path, interaction, context)\n : this.classConstructor.hasEffectsOnInteractionAtPath(path, interaction, context)) ||\n false\n : this.getObjectEntity().hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n include(context, includeChildrenRecursively) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n this.superClass?.include(context, includeChildrenRecursively);\n this.body.include(context, includeChildrenRecursively);\n for (const decorator of this.decorators)\n decorator.include(context, includeChildrenRecursively);\n if (this.id) {\n this.id.markDeclarationReached();\n this.id.include();\n }\n }\n initialise() {\n super.initialise();\n this.id?.declare('class', this);\n for (const method of this.body.body) {\n if (method instanceof MethodDefinition && method.kind === 'constructor') {\n this.classConstructor = method;\n return;\n }\n }\n this.classConstructor = null;\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n for (const definition of this.body.body) {\n if (!isStaticBlock(definition) &&\n !(definition.static ||\n (definition instanceof MethodDefinition && definition.kind === 'constructor'))) {\n // Calls to methods are not tracked, ensure that the return value is deoptimized\n definition.deoptimizePath(UNKNOWN_PATH);\n }\n }\n this.scope.context.requestTreeshakingPass();\n }\n getObjectEntity() {\n if (this.objectEntity !== null) {\n return this.objectEntity;\n }\n const staticProperties = [];\n const dynamicMethods = [];\n for (const definition of this.body.body) {\n if (isStaticBlock(definition))\n continue;\n const properties = definition.static ? staticProperties : dynamicMethods;\n const definitionKind = definition.kind;\n // Note that class fields do not end up on the prototype\n if (properties === dynamicMethods && !definitionKind)\n continue;\n const kind = definitionKind === 'set' || definitionKind === 'get' ? definitionKind : 'init';\n let key;\n if (definition.computed) {\n const keyValue = definition.key.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n if (typeof keyValue === 'symbol') {\n properties.push({ key: UnknownKey, kind, property: definition });\n continue;\n }\n else {\n key = String(keyValue);\n }\n }\n else {\n key =\n definition.key instanceof Identifier\n ? definition.key.name\n : String(definition.key.value);\n }\n properties.push({ key, kind, property: definition });\n }\n staticProperties.unshift({\n key: 'prototype',\n kind: 'init',\n property: new ObjectEntity(dynamicMethods, this.superClass ? new ObjectMember(this.superClass, 'prototype') : OBJECT_PROTOTYPE)\n });\n return (this.objectEntity = new ObjectEntity(staticProperties, this.superClass || OBJECT_PROTOTYPE));\n }\n}\n\nclass ClassDeclaration extends ClassNode {\n initialise() {\n super.initialise();\n if (this.id !== null) {\n this.id.variable.isId = true;\n }\n }\n parseNode(esTreeNode) {\n if (esTreeNode.id !== null) {\n this.id = new Identifier(this, this.scope.parent).parseNode(esTreeNode.id);\n }\n return super.parseNode(esTreeNode);\n }\n render(code, options) {\n const { exportNamesByVariable, format, snippets: { _, getPropertyAccess } } = options;\n if (this.id) {\n const { variable, name } = this.id;\n if (format === 'system' && exportNamesByVariable.has(variable)) {\n code.appendLeft(this.end, `${_}${getSystemExportStatement([variable], options)};`);\n }\n const renderedVariable = variable.getName(getPropertyAccess);\n if (renderedVariable !== name) {\n this.decorators.map(decorator => decorator.render(code, options));\n this.superClass?.render(code, options);\n this.body.render(code, {\n ...options,\n useOriginalName: (_variable) => _variable === variable\n });\n code.prependRight(this.start, `let ${renderedVariable}${_}=${_}`);\n code.prependLeft(this.end, ';');\n return;\n }\n }\n super.render(code, options);\n }\n applyDeoptimizations() {\n super.applyDeoptimizations();\n const { id, scope } = this;\n if (id) {\n const { name, variable } = id;\n for (const accessedVariable of scope.accessedOutsideVariables.values()) {\n if (accessedVariable !== variable) {\n accessedVariable.forbidName(name);\n }\n }\n }\n }\n}\n\nclass ClassExpression extends ClassNode {\n render(code, options, { renderedSurroundingElement } = BLANK) {\n super.render(code, options);\n if (renderedSurroundingElement === ExpressionStatement$1) {\n code.appendRight(this.start, '(');\n code.prependLeft(this.end, ')');\n }\n }\n}\n\nclass MultiExpression extends ExpressionEntity {\n constructor(expressions) {\n super();\n this.expressions = expressions;\n }\n deoptimizePath(path) {\n for (const expression of this.expressions) {\n expression.deoptimizePath(path);\n }\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n return [\n new MultiExpression(this.expressions.map(expression => expression.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin)[0])),\n false\n ];\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n for (const expression of this.expressions) {\n if (expression.hasEffectsOnInteractionAtPath(path, interaction, context))\n return true;\n }\n return false;\n }\n}\n\nclass ConditionalExpression extends NodeBase {\n constructor() {\n super(...arguments);\n this.expressionsToBeDeoptimized = [];\n this.usedBranch = null;\n }\n get isBranchResolutionAnalysed() {\n return isFlagSet(this.flags, 65536 /* Flag.isBranchResolutionAnalysed */);\n }\n set isBranchResolutionAnalysed(value) {\n this.flags = setFlag(this.flags, 65536 /* Flag.isBranchResolutionAnalysed */, value);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.consequent.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n this.alternate.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizeCache() {\n if (this.usedBranch !== null) {\n const unusedBranch = this.usedBranch === this.consequent ? this.alternate : this.consequent;\n this.usedBranch = null;\n unusedBranch.deoptimizePath(UNKNOWN_PATH);\n const { expressionsToBeDeoptimized } = this;\n this.expressionsToBeDeoptimized = EMPTY_ARRAY;\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizeCache();\n }\n }\n }\n deoptimizePath(path) {\n const usedBranch = this.getUsedBranch();\n if (usedBranch) {\n usedBranch.deoptimizePath(path);\n }\n else {\n this.consequent.deoptimizePath(path);\n this.alternate.deoptimizePath(path);\n }\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n const usedBranch = this.getUsedBranch();\n if (!usedBranch)\n return UnknownValue;\n this.expressionsToBeDeoptimized.push(origin);\n return usedBranch.getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n const usedBranch = this.getUsedBranch();\n if (!usedBranch)\n return [\n new MultiExpression([\n this.consequent.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin)[0],\n this.alternate.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin)[0]\n ]),\n false\n ];\n this.expressionsToBeDeoptimized.push(origin);\n return usedBranch.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n hasEffects(context) {\n if (this.test.hasEffects(context))\n return true;\n const usedBranch = this.getUsedBranch();\n if (!usedBranch) {\n return this.consequent.hasEffects(context) || this.alternate.hasEffects(context);\n }\n return usedBranch.hasEffects(context);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n const usedBranch = this.getUsedBranch();\n if (!usedBranch) {\n return (this.consequent.hasEffectsOnInteractionAtPath(path, interaction, context) ||\n this.alternate.hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n return usedBranch.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n const usedBranch = this.getUsedBranch();\n if (includeChildrenRecursively || this.test.shouldBeIncluded(context) || usedBranch === null) {\n this.test.include(context, includeChildrenRecursively);\n this.consequent.include(context, includeChildrenRecursively);\n this.alternate.include(context, includeChildrenRecursively);\n }\n else {\n usedBranch.include(context, includeChildrenRecursively);\n }\n }\n includeCallArguments(context, parameters) {\n const usedBranch = this.getUsedBranch();\n if (usedBranch) {\n usedBranch.includeCallArguments(context, parameters);\n }\n else {\n this.consequent.includeCallArguments(context, parameters);\n this.alternate.includeCallArguments(context, parameters);\n }\n }\n removeAnnotations(code) {\n this.test.removeAnnotations(code);\n }\n render(code, options, { isCalleeOfRenderedParent, preventASI, renderedParentType, renderedSurroundingElement } = BLANK) {\n const usedBranch = this.getUsedBranch();\n if (this.test.included) {\n this.test.render(code, options, { renderedSurroundingElement });\n this.consequent.render(code, options);\n this.alternate.render(code, options);\n }\n else {\n const colonPos = findFirstOccurrenceOutsideComment(code.original, ':', this.consequent.end);\n const inclusionStart = findNonWhiteSpace(code.original, (this.consequent.included\n ? findFirstOccurrenceOutsideComment(code.original, '?', this.test.end)\n : colonPos) + 1);\n if (preventASI) {\n removeLineBreaks(code, inclusionStart, usedBranch.start);\n }\n code.remove(this.start, inclusionStart);\n if (this.consequent.included) {\n code.remove(colonPos, this.end);\n }\n this.test.removeAnnotations(code);\n usedBranch.render(code, options, {\n isCalleeOfRenderedParent,\n preventASI: true,\n renderedParentType: renderedParentType || this.parent.type,\n renderedSurroundingElement: renderedSurroundingElement || this.parent.type\n });\n }\n }\n getUsedBranch() {\n if (this.isBranchResolutionAnalysed) {\n return this.usedBranch;\n }\n this.isBranchResolutionAnalysed = true;\n const testValue = this.test.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n return typeof testValue === 'symbol'\n ? null\n : (this.usedBranch = testValue ? this.consequent : this.alternate);\n }\n}\n\nclass ContinueStatement extends NodeBase {\n hasEffects(context) {\n if (this.label) {\n if (!context.ignore.labels.has(this.label.name))\n return true;\n context.includedLabels.add(this.label.name);\n }\n else {\n if (!context.ignore.continues)\n return true;\n context.hasContinue = true;\n }\n context.brokenFlow = true;\n return false;\n }\n include(context) {\n this.included = true;\n if (this.label) {\n this.label.include();\n context.includedLabels.add(this.label.name);\n }\n else {\n context.hasContinue = true;\n }\n context.brokenFlow = true;\n }\n}\n\nclass DebuggerStatement extends NodeBase {\n hasEffects() {\n return true;\n }\n}\n\nclass Decorator extends NodeBase {\n hasEffects(context) {\n return (this.expression.hasEffects(context) ||\n this.expression.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_CALL, context));\n }\n}\n\nfunction hasLoopBodyEffects(context, body) {\n const { brokenFlow, hasBreak, hasContinue, ignore } = context;\n const { breaks, continues } = ignore;\n ignore.breaks = true;\n ignore.continues = true;\n context.hasBreak = false;\n context.hasContinue = false;\n if (body.hasEffects(context))\n return true;\n ignore.breaks = breaks;\n ignore.continues = continues;\n context.hasBreak = hasBreak;\n context.hasContinue = hasContinue;\n context.brokenFlow = brokenFlow;\n return false;\n}\nfunction includeLoopBody(context, body, includeChildrenRecursively) {\n const { brokenFlow, hasBreak, hasContinue } = context;\n context.hasBreak = false;\n context.hasContinue = false;\n body.include(context, includeChildrenRecursively, { asSingleStatement: true });\n context.hasBreak = hasBreak;\n context.hasContinue = hasContinue;\n context.brokenFlow = brokenFlow;\n}\n\nclass DoWhileStatement extends NodeBase {\n hasEffects(context) {\n if (this.test.hasEffects(context))\n return true;\n return hasLoopBodyEffects(context, this.body);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.test.include(context, includeChildrenRecursively);\n includeLoopBody(context, this.body, includeChildrenRecursively);\n }\n}\n\nclass EmptyStatement extends NodeBase {\n hasEffects() {\n return false;\n }\n}\n\nclass ExportAllDeclaration extends NodeBase {\n hasEffects() {\n return false;\n }\n initialise() {\n super.initialise();\n this.scope.context.addExport(this);\n }\n render(code, _options, nodeRenderOptions) {\n code.remove(nodeRenderOptions.start, nodeRenderOptions.end);\n }\n applyDeoptimizations() { }\n}\nExportAllDeclaration.prototype.needsBoundaries = true;\n\nclass FunctionDeclaration extends FunctionNode {\n initialise() {\n super.initialise();\n if (this.id !== null) {\n this.id.variable.isId = true;\n }\n }\n onlyFunctionCallUsed() {\n // call super.onlyFunctionCallUsed for export default anonymous function\n return this.id?.variable.getOnlyFunctionCallUsed() ?? super.onlyFunctionCallUsed();\n }\n parseNode(esTreeNode) {\n if (esTreeNode.id !== null) {\n this.id = new Identifier(this, this.scope.parent).parseNode(esTreeNode.id);\n }\n return super.parseNode(esTreeNode);\n }\n}\n\n// The header ends at the first non-white-space after \"default\"\nfunction getDeclarationStart(code, start) {\n return findNonWhiteSpace(code, findFirstOccurrenceOutsideComment(code, 'default', start) + 7);\n}\nfunction getFunctionIdInsertPosition(code, start) {\n const declarationEnd = findFirstOccurrenceOutsideComment(code, 'function', start) + 'function'.length;\n code = code.slice(declarationEnd, findFirstOccurrenceOutsideComment(code, '(', declarationEnd));\n const generatorStarPos = findFirstOccurrenceOutsideComment(code, '*');\n if (generatorStarPos === -1) {\n return declarationEnd;\n }\n return declarationEnd + generatorStarPos + 1;\n}\nclass ExportDefaultDeclaration extends NodeBase {\n include(context, includeChildrenRecursively) {\n super.include(context, includeChildrenRecursively);\n if (includeChildrenRecursively) {\n this.scope.context.includeVariableInModule(this.variable);\n }\n }\n initialise() {\n super.initialise();\n const declaration = this.declaration;\n this.declarationName =\n (declaration.id && declaration.id.name) || this.declaration.name;\n this.variable = this.scope.addExportDefaultDeclaration(this.declarationName || this.scope.context.getModuleName(), this, this.scope.context);\n this.scope.context.addExport(this);\n }\n removeAnnotations(code) {\n this.declaration.removeAnnotations(code);\n }\n render(code, options, nodeRenderOptions) {\n const { start, end } = nodeRenderOptions;\n const declarationStart = getDeclarationStart(code.original, this.start);\n if (this.declaration instanceof FunctionDeclaration) {\n this.renderNamedDeclaration(code, declarationStart, this.declaration.id === null\n ? getFunctionIdInsertPosition(code.original, declarationStart)\n : null, options);\n }\n else if (this.declaration instanceof ClassDeclaration) {\n this.renderNamedDeclaration(code, declarationStart, this.declaration.id === null\n ? findFirstOccurrenceOutsideComment(code.original, 'class', start) + 'class'.length\n : null, options);\n }\n else if (this.variable.getOriginalVariable() !== this.variable) {\n // Remove altogether to prevent re-declaring the same variable\n treeshakeNode(this, code, start, end);\n return;\n }\n else if (this.variable.included) {\n this.renderVariableDeclaration(code, declarationStart, options);\n }\n else {\n code.remove(this.start, declarationStart);\n this.declaration.render(code, options, {\n renderedSurroundingElement: ExpressionStatement$1\n });\n if (code.original[this.end - 1] !== ';') {\n code.appendLeft(this.end, ';');\n }\n return;\n }\n this.declaration.render(code, options);\n }\n applyDeoptimizations() { }\n renderNamedDeclaration(code, declarationStart, idInsertPosition, options) {\n const { exportNamesByVariable, format, snippets: { getPropertyAccess } } = options;\n const name = this.variable.getName(getPropertyAccess);\n // Remove `export default`\n code.remove(this.start, declarationStart);\n if (idInsertPosition !== null) {\n code.appendLeft(idInsertPosition, ` ${name}`);\n }\n if (format === 'system' &&\n this.declaration instanceof ClassDeclaration &&\n exportNamesByVariable.has(this.variable)) {\n code.appendLeft(this.end, ` ${getSystemExportStatement([this.variable], options)};`);\n }\n }\n renderVariableDeclaration(code, declarationStart, { format, exportNamesByVariable, snippets: { cnst, getPropertyAccess } }) {\n const hasTrailingSemicolon = code.original.charCodeAt(this.end - 1) === 59; /*\";\"*/\n const systemExportNames = format === 'system' && exportNamesByVariable.get(this.variable);\n if (systemExportNames) {\n code.overwrite(this.start, declarationStart, `${cnst} ${this.variable.getName(getPropertyAccess)} = exports(${JSON.stringify(systemExportNames[0])}, `);\n code.appendRight(hasTrailingSemicolon ? this.end - 1 : this.end, ')' + (hasTrailingSemicolon ? '' : ';'));\n }\n else {\n code.overwrite(this.start, declarationStart, `${cnst} ${this.variable.getName(getPropertyAccess)} = `);\n if (!hasTrailingSemicolon) {\n code.appendLeft(this.end, ';');\n }\n }\n }\n}\nExportDefaultDeclaration.prototype.needsBoundaries = true;\n\nclass ExportNamedDeclaration extends NodeBase {\n bind() {\n // Do not bind specifiers\n this.declaration?.bind();\n }\n hasEffects(context) {\n return !!this.declaration?.hasEffects(context);\n }\n initialise() {\n super.initialise();\n this.scope.context.addExport(this);\n }\n removeAnnotations(code) {\n this.declaration?.removeAnnotations(code);\n }\n render(code, options, nodeRenderOptions) {\n const { start, end } = nodeRenderOptions;\n if (this.declaration === null) {\n code.remove(start, end);\n }\n else {\n code.remove(this.start, this.declaration.start);\n this.declaration.render(code, options, { end, start });\n }\n }\n applyDeoptimizations() { }\n}\nExportNamedDeclaration.prototype.needsBoundaries = true;\n\nclass ExportSpecifier extends NodeBase {\n applyDeoptimizations() { }\n}\n\nclass ForInStatement extends NodeBase {\n createScope(parentScope) {\n this.scope = new BlockScope(parentScope);\n }\n hasEffects(context) {\n const { body, deoptimized, left, right } = this;\n if (!deoptimized)\n this.applyDeoptimizations();\n if (left.hasEffectsAsAssignmentTarget(context, false) || right.hasEffects(context))\n return true;\n return hasLoopBodyEffects(context, body);\n }\n include(context, includeChildrenRecursively) {\n const { body, deoptimized, left, right } = this;\n if (!deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n left.includeAsAssignmentTarget(context, includeChildrenRecursively || true, false);\n right.include(context, includeChildrenRecursively);\n includeLoopBody(context, body, includeChildrenRecursively);\n }\n initialise() {\n super.initialise();\n this.left.setAssignedValue(UNKNOWN_EXPRESSION);\n }\n render(code, options) {\n this.left.render(code, options, NO_SEMICOLON);\n this.right.render(code, options, NO_SEMICOLON);\n // handle no space between \"in\" and the right side\n if (code.original.charCodeAt(this.right.start - 1) === 110 /* n */) {\n code.prependLeft(this.right.start, ' ');\n }\n this.body.render(code, options);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.left.deoptimizePath(EMPTY_PATH);\n this.scope.context.requestTreeshakingPass();\n }\n}\n\nclass ForOfStatement extends NodeBase {\n get await() {\n return isFlagSet(this.flags, 131072 /* Flag.await */);\n }\n set await(value) {\n this.flags = setFlag(this.flags, 131072 /* Flag.await */, value);\n }\n createScope(parentScope) {\n this.scope = new BlockScope(parentScope);\n }\n hasEffects() {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n // Placeholder until proper Symbol.Iterator support\n return true;\n }\n include(context, includeChildrenRecursively) {\n const { body, deoptimized, left, right } = this;\n if (!deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n left.includeAsAssignmentTarget(context, includeChildrenRecursively || true, false);\n right.include(context, includeChildrenRecursively);\n includeLoopBody(context, body, includeChildrenRecursively);\n }\n initialise() {\n super.initialise();\n this.left.setAssignedValue(UNKNOWN_EXPRESSION);\n }\n render(code, options) {\n this.left.render(code, options, NO_SEMICOLON);\n this.right.render(code, options, NO_SEMICOLON);\n // handle no space between \"of\" and the right side\n if (code.original.charCodeAt(this.right.start - 1) === 102 /* f */) {\n code.prependLeft(this.right.start, ' ');\n }\n this.body.render(code, options);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.left.deoptimizePath(EMPTY_PATH);\n this.right.deoptimizePath(UNKNOWN_PATH);\n this.scope.context.requestTreeshakingPass();\n }\n}\n\nclass ForStatement extends NodeBase {\n createScope(parentScope) {\n this.scope = new BlockScope(parentScope);\n }\n hasEffects(context) {\n if (this.init?.hasEffects(context) ||\n this.test?.hasEffects(context) ||\n this.update?.hasEffects(context)) {\n return true;\n }\n return hasLoopBodyEffects(context, this.body);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.init?.include(context, includeChildrenRecursively, { asSingleStatement: true });\n this.test?.include(context, includeChildrenRecursively);\n this.update?.include(context, includeChildrenRecursively);\n includeLoopBody(context, this.body, includeChildrenRecursively);\n }\n render(code, options) {\n this.init?.render(code, options, NO_SEMICOLON);\n this.test?.render(code, options, NO_SEMICOLON);\n this.update?.render(code, options, NO_SEMICOLON);\n this.body.render(code, options);\n }\n}\n\nclass FunctionExpression extends FunctionNode {\n createScope(parentScope) {\n super.createScope((this.idScope = new ChildScope(parentScope, parentScope.context)));\n }\n parseNode(esTreeNode) {\n if (esTreeNode.id !== null) {\n this.id = new Identifier(this, this.idScope).parseNode(esTreeNode.id);\n }\n return super.parseNode(esTreeNode);\n }\n onlyFunctionCallUsed() {\n const isIIFE = this.parent.type === CallExpression$1 &&\n this.parent.callee === this &&\n (this.id === null || this.id.variable.getOnlyFunctionCallUsed());\n return isIIFE || super.onlyFunctionCallUsed();\n }\n render(code, options, { renderedSurroundingElement } = BLANK) {\n super.render(code, options);\n if (renderedSurroundingElement === ExpressionStatement$1) {\n code.appendRight(this.start, '(');\n code.prependLeft(this.end, ')');\n }\n }\n}\n\nclass TrackingScope extends BlockScope {\n constructor() {\n super(...arguments);\n this.hoistedDeclarations = [];\n }\n addDeclaration(identifier, context, init, kind) {\n this.hoistedDeclarations.push(identifier);\n return super.addDeclaration(identifier, context, init, kind);\n }\n}\n\nconst unset = Symbol('unset');\nclass IfStatement extends NodeBase {\n constructor() {\n super(...arguments);\n this.testValue = unset;\n }\n deoptimizeCache() {\n this.testValue = UnknownValue;\n }\n hasEffects(context) {\n if (this.test.hasEffects(context)) {\n return true;\n }\n const testValue = this.getTestValue();\n if (typeof testValue === 'symbol') {\n const { brokenFlow } = context;\n if (this.consequent.hasEffects(context))\n return true;\n const consequentBrokenFlow = context.brokenFlow;\n context.brokenFlow = brokenFlow;\n if (this.alternate === null)\n return false;\n if (this.alternate.hasEffects(context))\n return true;\n context.brokenFlow = context.brokenFlow && consequentBrokenFlow;\n return false;\n }\n return testValue ? this.consequent.hasEffects(context) : !!this.alternate?.hasEffects(context);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n if (includeChildrenRecursively) {\n this.includeRecursively(includeChildrenRecursively, context);\n }\n else {\n const testValue = this.getTestValue();\n if (typeof testValue === 'symbol') {\n this.includeUnknownTest(context);\n }\n else {\n this.includeKnownTest(context, testValue);\n }\n }\n }\n parseNode(esTreeNode) {\n this.consequent = new (this.scope.context.getNodeConstructor(esTreeNode.consequent.type))(this, (this.consequentScope = new TrackingScope(this.scope))).parseNode(esTreeNode.consequent);\n if (esTreeNode.alternate) {\n this.alternate = new (this.scope.context.getNodeConstructor(esTreeNode.alternate.type))(this, (this.alternateScope = new TrackingScope(this.scope))).parseNode(esTreeNode.alternate);\n }\n return super.parseNode(esTreeNode);\n }\n render(code, options) {\n const { snippets: { getPropertyAccess } } = options;\n // Note that unknown test values are always included\n const testValue = this.getTestValue();\n const hoistedDeclarations = [];\n const includesIfElse = this.test.included;\n const noTreeshake = !this.scope.context.options.treeshake;\n if (includesIfElse) {\n this.test.render(code, options);\n }\n else {\n code.remove(this.start, this.consequent.start);\n }\n if (this.consequent.included && (noTreeshake || typeof testValue === 'symbol' || testValue)) {\n this.consequent.render(code, options);\n }\n else {\n code.overwrite(this.consequent.start, this.consequent.end, includesIfElse ? ';' : '');\n hoistedDeclarations.push(...this.consequentScope.hoistedDeclarations);\n }\n if (this.alternate) {\n if (this.alternate.included && (noTreeshake || typeof testValue === 'symbol' || !testValue)) {\n if (includesIfElse) {\n if (code.original.charCodeAt(this.alternate.start - 1) === 101) {\n code.prependLeft(this.alternate.start, ' ');\n }\n }\n else {\n code.remove(this.consequent.end, this.alternate.start);\n }\n this.alternate.render(code, options);\n }\n else {\n if (includesIfElse && this.shouldKeepAlternateBranch()) {\n code.overwrite(this.alternate.start, this.end, ';');\n }\n else {\n code.remove(this.consequent.end, this.end);\n }\n hoistedDeclarations.push(...this.alternateScope.hoistedDeclarations);\n }\n }\n this.renderHoistedDeclarations(hoistedDeclarations, code, getPropertyAccess);\n }\n applyDeoptimizations() { }\n getTestValue() {\n if (this.testValue === unset) {\n return (this.testValue = this.test.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this));\n }\n return this.testValue;\n }\n includeKnownTest(context, testValue) {\n if (this.test.shouldBeIncluded(context)) {\n this.test.include(context, false);\n }\n if (testValue && this.consequent.shouldBeIncluded(context)) {\n this.consequent.include(context, false, { asSingleStatement: true });\n }\n if (!testValue && this.alternate?.shouldBeIncluded(context)) {\n this.alternate.include(context, false, { asSingleStatement: true });\n }\n }\n includeRecursively(includeChildrenRecursively, context) {\n this.test.include(context, includeChildrenRecursively);\n this.consequent.include(context, includeChildrenRecursively);\n this.alternate?.include(context, includeChildrenRecursively);\n }\n includeUnknownTest(context) {\n this.test.include(context, false);\n const { brokenFlow } = context;\n let consequentBrokenFlow = false;\n if (this.consequent.shouldBeIncluded(context)) {\n this.consequent.include(context, false, { asSingleStatement: true });\n consequentBrokenFlow = context.brokenFlow;\n context.brokenFlow = brokenFlow;\n }\n if (this.alternate?.shouldBeIncluded(context)) {\n this.alternate.include(context, false, { asSingleStatement: true });\n context.brokenFlow = context.brokenFlow && consequentBrokenFlow;\n }\n }\n renderHoistedDeclarations(hoistedDeclarations, code, getPropertyAccess) {\n const hoistedVariables = [\n ...new Set(hoistedDeclarations.map(identifier => {\n const variable = identifier.variable;\n return variable.included ? variable.getName(getPropertyAccess) : '';\n }))\n ]\n .filter(Boolean)\n .join(', ');\n if (hoistedVariables) {\n const parentType = this.parent.type;\n const needsBraces = parentType !== Program$1 && parentType !== BlockStatement$1;\n code.prependRight(this.start, `${needsBraces ? '{ ' : ''}var ${hoistedVariables}; `);\n if (needsBraces) {\n code.appendLeft(this.end, ` }`);\n }\n }\n }\n shouldKeepAlternateBranch() {\n let currentParent = this.parent;\n do {\n if (currentParent instanceof IfStatement && currentParent.alternate) {\n return true;\n }\n if (currentParent instanceof BlockStatement) {\n return false;\n }\n currentParent = currentParent.parent;\n } while (currentParent);\n return false;\n }\n}\n\nclass ImportAttribute extends NodeBase {\n}\n\nclass ImportDeclaration extends NodeBase {\n // Do not bind specifiers or attributes\n bind() { }\n hasEffects() {\n return false;\n }\n initialise() {\n super.initialise();\n this.scope.context.addImport(this);\n }\n render(code, _options, nodeRenderOptions) {\n code.remove(nodeRenderOptions.start, nodeRenderOptions.end);\n }\n applyDeoptimizations() { }\n}\nImportDeclaration.prototype.needsBoundaries = true;\n\nclass ImportDefaultSpecifier extends NodeBase {\n applyDeoptimizations() { }\n}\n\nconst INTEROP_DEFAULT_VARIABLE = '_interopDefault';\nconst INTEROP_DEFAULT_COMPAT_VARIABLE = '_interopDefaultCompat';\nconst INTEROP_NAMESPACE_VARIABLE = '_interopNamespace';\nconst INTEROP_NAMESPACE_COMPAT_VARIABLE = '_interopNamespaceCompat';\nconst INTEROP_NAMESPACE_DEFAULT_VARIABLE = '_interopNamespaceDefault';\nconst INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE = '_interopNamespaceDefaultOnly';\nconst MERGE_NAMESPACES_VARIABLE = '_mergeNamespaces';\nconst DOCUMENT_CURRENT_SCRIPT = '_documentCurrentScript';\nconst defaultInteropHelpersByInteropType = {\n auto: INTEROP_DEFAULT_VARIABLE,\n compat: INTEROP_DEFAULT_COMPAT_VARIABLE,\n default: null,\n defaultOnly: null,\n esModule: null\n};\nconst isDefaultAProperty = (interopType, externalLiveBindings) => interopType === 'esModule' ||\n (externalLiveBindings && (interopType === 'auto' || interopType === 'compat'));\nconst namespaceInteropHelpersByInteropType = {\n auto: INTEROP_NAMESPACE_VARIABLE,\n compat: INTEROP_NAMESPACE_COMPAT_VARIABLE,\n default: INTEROP_NAMESPACE_DEFAULT_VARIABLE,\n defaultOnly: INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE,\n esModule: null\n};\nconst canDefaultBeTakenFromNamespace = (interopType, externalLiveBindings) => interopType !== 'esModule' && isDefaultAProperty(interopType, externalLiveBindings);\nconst getHelpersBlock = (additionalHelpers, accessedGlobals, indent, snippets, liveBindings, freeze, symbols) => {\n const usedHelpers = new Set(additionalHelpers);\n for (const variable of HELPER_NAMES) {\n if (accessedGlobals.has(variable)) {\n usedHelpers.add(variable);\n }\n }\n return HELPER_NAMES.map(variable => usedHelpers.has(variable)\n ? HELPER_GENERATORS[variable](indent, snippets, liveBindings, freeze, symbols, usedHelpers)\n : '').join('');\n};\nconst HELPER_GENERATORS = {\n [DOCUMENT_CURRENT_SCRIPT](_t, { _, n }) {\n return `var${_}${DOCUMENT_CURRENT_SCRIPT}${_}=${_}typeof${_}document${_}!==${_}'undefined'${_}?${_}document.currentScript${_}:${_}null;${n}`;\n },\n [INTEROP_DEFAULT_COMPAT_VARIABLE](_t, snippets, liveBindings) {\n const { _, getDirectReturnFunction, n } = snippets;\n const [left, right] = getDirectReturnFunction(['e'], {\n functionReturn: true,\n lineBreakIndent: null,\n name: INTEROP_DEFAULT_COMPAT_VARIABLE\n });\n return (`${left}${getIsCompatNamespace(snippets)}${_}?${_}` +\n `${liveBindings ? getDefaultLiveBinding(snippets) : getDefaultStatic(snippets)}${right}${n}${n}`);\n },\n [INTEROP_DEFAULT_VARIABLE](_t, snippets, liveBindings) {\n const { _, getDirectReturnFunction, n } = snippets;\n const [left, right] = getDirectReturnFunction(['e'], {\n functionReturn: true,\n lineBreakIndent: null,\n name: INTEROP_DEFAULT_VARIABLE\n });\n return (`${left}e${_}&&${_}e.__esModule${_}?${_}` +\n `${liveBindings ? getDefaultLiveBinding(snippets) : getDefaultStatic(snippets)}${right}${n}${n}`);\n },\n [INTEROP_NAMESPACE_COMPAT_VARIABLE](t, snippets, liveBindings, freeze, symbols, usedHelpers) {\n const { _, getDirectReturnFunction, n } = snippets;\n if (usedHelpers.has(INTEROP_NAMESPACE_DEFAULT_VARIABLE)) {\n const [left, right] = getDirectReturnFunction(['e'], {\n functionReturn: true,\n lineBreakIndent: null,\n name: INTEROP_NAMESPACE_COMPAT_VARIABLE\n });\n return `${left}${getIsCompatNamespace(snippets)}${_}?${_}e${_}:${_}${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${right}${n}${n}`;\n }\n return (`function ${INTEROP_NAMESPACE_COMPAT_VARIABLE}(e)${_}{${n}` +\n `${t}if${_}(${getIsCompatNamespace(snippets)})${_}return e;${n}` +\n createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) +\n `}${n}${n}`);\n },\n [INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE](_t, snippets, _liveBindings, freeze, symbols) {\n const { getDirectReturnFunction, getObject, n, _ } = snippets;\n const [left, right] = getDirectReturnFunction(['e'], {\n functionReturn: true,\n lineBreakIndent: null,\n name: INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE\n });\n return `${left}${getFrozen(freeze, getWithToStringTag(symbols, getObject([\n [null, `__proto__:${_}null`],\n ['default', 'e']\n ], { lineBreakIndent: null }), snippets))}${right}${n}${n}`;\n },\n [INTEROP_NAMESPACE_DEFAULT_VARIABLE](t, snippets, liveBindings, freeze, symbols) {\n const { _, n } = snippets;\n return (`function ${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${_}{${n}` +\n createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) +\n `}${n}${n}`);\n },\n [INTEROP_NAMESPACE_VARIABLE](t, snippets, liveBindings, freeze, symbols, usedHelpers) {\n const { _, getDirectReturnFunction, n } = snippets;\n if (usedHelpers.has(INTEROP_NAMESPACE_DEFAULT_VARIABLE)) {\n const [left, right] = getDirectReturnFunction(['e'], {\n functionReturn: true,\n lineBreakIndent: null,\n name: INTEROP_NAMESPACE_VARIABLE\n });\n return `${left}e${_}&&${_}e.__esModule${_}?${_}e${_}:${_}${INTEROP_NAMESPACE_DEFAULT_VARIABLE}(e)${right}${n}${n}`;\n }\n return (`function ${INTEROP_NAMESPACE_VARIABLE}(e)${_}{${n}` +\n `${t}if${_}(e${_}&&${_}e.__esModule)${_}return e;${n}` +\n createNamespaceObject(t, t, snippets, liveBindings, freeze, symbols) +\n `}${n}${n}`);\n },\n [MERGE_NAMESPACES_VARIABLE](t, snippets, liveBindings, freeze, symbols) {\n const { _, cnst, n } = snippets;\n const useForEach = cnst === 'var' && liveBindings;\n return (`function ${MERGE_NAMESPACES_VARIABLE}(n, m)${_}{${n}` +\n `${t}${loopOverNamespaces(`{${n}` +\n `${t}${t}${t}if${_}(k${_}!==${_}'default'${_}&&${_}!(k in n))${_}{${n}` +\n (liveBindings\n ? useForEach\n ? copyOwnPropertyLiveBinding\n : copyPropertyLiveBinding\n : copyPropertyStatic)(t, t + t + t + t, snippets) +\n `${t}${t}${t}}${n}` +\n `${t}${t}}`, useForEach, t, snippets)}${n}` +\n `${t}return ${getFrozen(freeze, getWithToStringTag(symbols, 'n', snippets))};${n}` +\n `}${n}${n}`);\n }\n};\nconst getDefaultLiveBinding = ({ _, getObject }) => `e${_}:${_}${getObject([['default', 'e']], { lineBreakIndent: null })}`;\nconst getDefaultStatic = ({ _, getPropertyAccess }) => `e${getPropertyAccess('default')}${_}:${_}e`;\nconst getIsCompatNamespace = ({ _ }) => `e${_}&&${_}typeof e${_}===${_}'object'${_}&&${_}'default'${_}in e`;\nconst createNamespaceObject = (t, index, snippets, liveBindings, freeze, symbols) => {\n const { _, cnst, getObject, getPropertyAccess, n, s } = snippets;\n const copyProperty = `{${n}` +\n (liveBindings ? copyNonDefaultOwnPropertyLiveBinding : copyPropertyStatic)(t, index + t + t, snippets) +\n `${index}${t}}`;\n return (`${index}${cnst} n${_}=${_}Object.create(null${symbols ? `,${_}{${_}[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}${_}}` : ''});${n}` +\n `${index}if${_}(e)${_}{${n}` +\n `${index}${t}${loopOverKeys(copyProperty, !liveBindings, snippets)}${n}` +\n `${index}}${n}` +\n `${index}n${getPropertyAccess('default')}${_}=${_}e;${n}` +\n `${index}return ${getFrozen(freeze, 'n')}${s}${n}`);\n};\nconst loopOverKeys = (body, allowVariableLoopVariable, { _, cnst, getFunctionIntro, s }) => cnst !== 'var' || allowVariableLoopVariable\n ? `for${_}(${cnst} k in e)${_}${body}`\n : `Object.keys(e).forEach(${getFunctionIntro(['k'], {\n isAsync: false,\n name: null\n })}${body})${s}`;\nconst loopOverNamespaces = (body, useForEach, t, { _, cnst, getDirectReturnFunction, getFunctionIntro, n }) => {\n if (useForEach) {\n const [left, right] = getDirectReturnFunction(['e'], {\n functionReturn: false,\n lineBreakIndent: { base: t, t },\n name: null\n });\n return (`m.forEach(${left}` +\n `e${_}&&${_}typeof e${_}!==${_}'string'${_}&&${_}!Array.isArray(e)${_}&&${_}Object.keys(e).forEach(${getFunctionIntro(['k'], {\n isAsync: false,\n name: null\n })}${body})${right});`);\n }\n return (`for${_}(var i${_}=${_}0;${_}i${_}<${_}m.length;${_}i++)${_}{${n}` +\n `${t}${t}${cnst} e${_}=${_}m[i];${n}` +\n `${t}${t}if${_}(typeof e${_}!==${_}'string'${_}&&${_}!Array.isArray(e))${_}{${_}for${_}(${cnst} k in e)${_}${body}${_}}${n}${t}}`);\n};\nconst copyNonDefaultOwnPropertyLiveBinding = (t, index, snippets) => {\n const { _, n } = snippets;\n return (`${index}if${_}(k${_}!==${_}'default')${_}{${n}` +\n copyOwnPropertyLiveBinding(t, index + t, snippets) +\n `${index}}${n}`);\n};\nconst copyOwnPropertyLiveBinding = (t, index, { _, cnst, getDirectReturnFunction, n }) => {\n const [left, right] = getDirectReturnFunction([], {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n return (`${index}${cnst} d${_}=${_}Object.getOwnPropertyDescriptor(e,${_}k);${n}` +\n `${index}Object.defineProperty(n,${_}k,${_}d.get${_}?${_}d${_}:${_}{${n}` +\n `${index}${t}enumerable:${_}true,${n}` +\n `${index}${t}get:${_}${left}e[k]${right}${n}` +\n `${index}});${n}`);\n};\nconst copyPropertyLiveBinding = (t, index, { _, cnst, getDirectReturnFunction, n }) => {\n const [left, right] = getDirectReturnFunction([], {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n return (`${index}${cnst} d${_}=${_}Object.getOwnPropertyDescriptor(e,${_}k);${n}` +\n `${index}if${_}(d)${_}{${n}` +\n `${index}${t}Object.defineProperty(n,${_}k,${_}d.get${_}?${_}d${_}:${_}{${n}` +\n `${index}${t}${t}enumerable:${_}true,${n}` +\n `${index}${t}${t}get:${_}${left}e[k]${right}${n}` +\n `${index}${t}});${n}` +\n `${index}}${n}`);\n};\nconst copyPropertyStatic = (_t, index, { _, n }) => `${index}n[k]${_}=${_}e[k];${n}`;\nconst getFrozen = (freeze, fragment) => freeze ? `Object.freeze(${fragment})` : fragment;\nconst getWithToStringTag = (symbols, fragment, { _, getObject }) => symbols\n ? `Object.defineProperty(${fragment},${_}Symbol.toStringTag,${_}${getToStringTagValue(getObject)})`\n : fragment;\nconst HELPER_NAMES = Object.keys(HELPER_GENERATORS);\nfunction getToStringTagValue(getObject) {\n return getObject([['value', \"'Module'\"]], {\n lineBreakIndent: null\n });\n}\n\nfunction isReassignedExportsMember(variable, exportNamesByVariable) {\n return (variable.renderBaseName !== null && exportNamesByVariable.has(variable) && variable.isReassigned);\n}\n\nclass VariableDeclarator extends NodeBase {\n declareDeclarator(kind, isUsingDeclaration) {\n this.isUsingDeclaration = isUsingDeclaration;\n this.id.declare(kind, this.init || UNDEFINED_EXPRESSION);\n }\n deoptimizePath(path) {\n this.id.deoptimizePath(path);\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n const initEffect = this.init?.hasEffects(context);\n this.id.markDeclarationReached();\n return initEffect || this.id.hasEffects(context) || this.isUsingDeclaration;\n }\n include(context, includeChildrenRecursively) {\n const { deoptimized, id, init } = this;\n if (!deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n init?.include(context, includeChildrenRecursively);\n id.markDeclarationReached();\n if (includeChildrenRecursively || id.shouldBeIncluded(context)) {\n id.include(context, includeChildrenRecursively);\n }\n }\n removeAnnotations(code) {\n this.init?.removeAnnotations(code);\n }\n render(code, options) {\n const { exportNamesByVariable, snippets: { _, getPropertyAccess } } = options;\n const { end, id, init, start } = this;\n const renderId = id.included || this.isUsingDeclaration;\n if (renderId) {\n id.render(code, options);\n }\n else {\n const operatorPos = findFirstOccurrenceOutsideComment(code.original, '=', id.end);\n code.remove(start, findNonWhiteSpace(code.original, operatorPos + 1));\n }\n if (init) {\n if (id instanceof Identifier && init instanceof ClassExpression && !init.id) {\n const renderedVariable = id.variable.getName(getPropertyAccess);\n if (renderedVariable !== id.name) {\n code.appendLeft(init.start + 5, ` ${id.name}`);\n }\n }\n init.render(code, options, renderId ? BLANK : { renderedSurroundingElement: ExpressionStatement$1 });\n }\n else if (id instanceof Identifier &&\n isReassignedExportsMember(id.variable, exportNamesByVariable)) {\n code.appendLeft(end, `${_}=${_}void 0`);\n }\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n const { id, init } = this;\n if (init && id instanceof Identifier && init instanceof ClassExpression && !init.id) {\n const { name, variable } = id;\n for (const accessedVariable of init.scope.accessedOutsideVariables.values()) {\n if (accessedVariable !== variable) {\n accessedVariable.forbidName(name);\n }\n }\n }\n }\n}\n\nclass ImportExpression extends NodeBase {\n constructor() {\n super(...arguments);\n this.inlineNamespace = null;\n this.attributes = null;\n this.mechanism = null;\n this.namespaceExportName = undefined;\n this.resolution = null;\n this.resolutionString = null;\n }\n // Do not bind attributes\n bind() {\n this.source.bind();\n }\n /**\n * Get imported variables for deterministic usage, valid cases are:\n *\n * - `const { foo } = await import('bar')`.\n * - `(await import('bar')).foo`\n * - `import('bar').then(({ foo }) => {})`\n *\n * Returns empty array if it's side-effect only import.\n * Returns undefined if it's not fully deterministic.\n */\n getDeterministicImportedNames() {\n const parent1 = this.parent;\n // Side-effect only: import('bar')\n if (parent1 instanceof ExpressionStatement) {\n return EMPTY_ARRAY;\n }\n if (parent1 instanceof AwaitExpression) {\n const parent2 = parent1.parent;\n // Side-effect only: await import('bar')\n if (parent2 instanceof ExpressionStatement) {\n return EMPTY_ARRAY;\n }\n // Case 1: const { foo } = await import('bar')\n if (parent2 instanceof VariableDeclarator) {\n const declaration = parent2.id;\n return declaration instanceof ObjectPattern\n ? getDeterministicObjectDestructure(declaration)\n : undefined;\n }\n // Case 2: (await import('bar')).foo\n if (parent2 instanceof MemberExpression) {\n const id = parent2.property;\n if (!parent2.computed && id instanceof Identifier) {\n return [id.name];\n }\n }\n return;\n }\n // Case 3: import('bar').then(({ foo }) => {})\n if (parent1 instanceof MemberExpression) {\n const callExpression = parent1.parent;\n const property = parent1.property;\n if (!(callExpression instanceof CallExpression) || !(property instanceof Identifier)) {\n return;\n }\n const memberName = property.name;\n // side-effect only, when only chaining .catch or .finally\n if (callExpression.parent instanceof ExpressionStatement &&\n ['catch', 'finally'].includes(memberName)) {\n return EMPTY_ARRAY;\n }\n if (memberName !== 'then')\n return;\n // Side-effect only: import('bar').then()\n if (callExpression.arguments.length === 0) {\n return EMPTY_ARRAY;\n }\n const argument = callExpression.arguments[0];\n if (callExpression.arguments.length !== 1 ||\n !(argument instanceof ArrowFunctionExpression || argument instanceof FunctionExpression)) {\n return;\n }\n // Side-effect only: import('bar').then(() => {})\n if (argument.params.length === 0) {\n return EMPTY_ARRAY;\n }\n const declaration = argument.params[0];\n if (argument.params.length === 1 && declaration instanceof ObjectPattern) {\n return getDeterministicObjectDestructure(declaration);\n }\n return;\n }\n }\n hasEffects() {\n return true;\n }\n include(context, includeChildrenRecursively) {\n if (!this.included) {\n this.included = true;\n this.scope.context.includeDynamicImport(this);\n this.scope.addAccessedDynamicImport(this);\n }\n this.source.include(context, includeChildrenRecursively);\n }\n initialise() {\n super.initialise();\n this.scope.context.addDynamicImport(this);\n }\n parseNode(esTreeNode) {\n this.sourceAstNode = esTreeNode.source;\n return super.parseNode(esTreeNode);\n }\n render(code, options) {\n const { snippets: { _, getDirectReturnFunction, getObject, getPropertyAccess } } = options;\n if (this.inlineNamespace) {\n const [left, right] = getDirectReturnFunction([], {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n code.overwrite(this.start, this.end, `Promise.resolve().then(${left}${this.inlineNamespace.getName(getPropertyAccess)}${right})`);\n return;\n }\n if (this.mechanism) {\n code.overwrite(this.start, findFirstOccurrenceOutsideComment(code.original, '(', this.start + 6) + 1, this.mechanism.left);\n code.overwrite(this.end - 1, this.end, this.mechanism.right);\n }\n if (this.resolutionString) {\n code.overwrite(this.source.start, this.source.end, this.resolutionString);\n if (this.namespaceExportName) {\n const [left, right] = getDirectReturnFunction(['n'], {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n code.prependLeft(this.end, `.then(${left}n.${this.namespaceExportName}${right})`);\n }\n }\n else {\n this.source.render(code, options);\n }\n if (this.attributes !== true) {\n if (this.options) {\n code.overwrite(this.source.end, this.end - 1, '', { contentOnly: true });\n }\n if (this.attributes) {\n code.appendLeft(this.end - 1, `,${_}${getObject([['assert', this.attributes]], {\n lineBreakIndent: null\n })}`);\n }\n }\n }\n setExternalResolution(exportMode, resolution, options, snippets, pluginDriver, accessedGlobalsByScope, resolutionString, namespaceExportName, attributes) {\n const { format } = options;\n this.inlineNamespace = null;\n this.resolution = resolution;\n this.resolutionString = resolutionString;\n this.namespaceExportName = namespaceExportName;\n this.attributes = attributes;\n const accessedGlobals = [...(accessedImportGlobals[format] || [])];\n let helper;\n ({ helper, mechanism: this.mechanism } = this.getDynamicImportMechanismAndHelper(resolution, exportMode, options, snippets, pluginDriver));\n if (helper) {\n accessedGlobals.push(helper);\n }\n if (accessedGlobals.length > 0) {\n this.scope.addAccessedGlobals(accessedGlobals, accessedGlobalsByScope);\n }\n }\n setInternalResolution(inlineNamespace) {\n this.inlineNamespace = inlineNamespace;\n }\n applyDeoptimizations() { }\n getDynamicImportMechanismAndHelper(resolution, exportMode, { compact, dynamicImportInCjs, format, generatedCode: { arrowFunctions }, interop }, { _, getDirectReturnFunction, getDirectReturnIifeLeft }, pluginDriver) {\n const mechanism = pluginDriver.hookFirstSync('renderDynamicImport', [\n {\n customResolution: typeof this.resolution === 'string' ? this.resolution : null,\n format,\n moduleId: this.scope.context.module.id,\n targetModuleId: this.resolution && typeof this.resolution !== 'string' ? this.resolution.id : null\n }\n ]);\n if (mechanism) {\n return { helper: null, mechanism };\n }\n const hasDynamicTarget = !this.resolution || typeof this.resolution === 'string';\n switch (format) {\n case 'cjs': {\n if (dynamicImportInCjs &&\n (!resolution || typeof resolution === 'string' || resolution instanceof ExternalModule)) {\n return { helper: null, mechanism: null };\n }\n const helper = getInteropHelper(resolution, exportMode, interop);\n let left = `require(`;\n let right = `)`;\n if (helper) {\n left = `/*#__PURE__*/${helper}(${left}`;\n right += ')';\n }\n const [functionLeft, functionRight] = getDirectReturnFunction([], {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n left = `Promise.resolve().then(${functionLeft}${left}`;\n right += `${functionRight})`;\n if (!arrowFunctions && hasDynamicTarget) {\n left = getDirectReturnIifeLeft(['t'], `${left}t${right}`, {\n needsArrowReturnParens: false,\n needsWrappedFunction: true\n });\n right = ')';\n }\n return {\n helper,\n mechanism: { left, right }\n };\n }\n case 'amd': {\n const resolve = compact ? 'c' : 'resolve';\n const reject = compact ? 'e' : 'reject';\n const helper = getInteropHelper(resolution, exportMode, interop);\n const [resolveLeft, resolveRight] = getDirectReturnFunction(['m'], {\n functionReturn: false,\n lineBreakIndent: null,\n name: null\n });\n const resolveNamespace = helper\n ? `${resolveLeft}${resolve}(/*#__PURE__*/${helper}(m))${resolveRight}`\n : resolve;\n const [handlerLeft, handlerRight] = getDirectReturnFunction([resolve, reject], {\n functionReturn: false,\n lineBreakIndent: null,\n name: null\n });\n let left = `new Promise(${handlerLeft}require([`;\n let right = `],${_}${resolveNamespace},${_}${reject})${handlerRight})`;\n if (!arrowFunctions && hasDynamicTarget) {\n left = getDirectReturnIifeLeft(['t'], `${left}t${right}`, {\n needsArrowReturnParens: false,\n needsWrappedFunction: true\n });\n right = ')';\n }\n return {\n helper,\n mechanism: { left, right }\n };\n }\n case 'system': {\n return {\n helper: null,\n mechanism: {\n left: 'module.import(',\n right: ')'\n }\n };\n }\n }\n return { helper: null, mechanism: null };\n }\n}\nfunction getInteropHelper(resolution, exportMode, interop) {\n return exportMode === 'external'\n ? namespaceInteropHelpersByInteropType[interop(resolution instanceof ExternalModule ? resolution.id : null)]\n : exportMode === 'default'\n ? INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE\n : null;\n}\nconst accessedImportGlobals = {\n amd: ['require'],\n cjs: ['require'],\n system: ['module']\n};\nfunction getDeterministicObjectDestructure(objectPattern) {\n const variables = [];\n for (const property of objectPattern.properties) {\n if (property.type === 'RestElement' || property.computed || property.key.type !== 'Identifier')\n return;\n variables.push(property.key.name);\n }\n return variables;\n}\n\nclass ImportNamespaceSpecifier extends NodeBase {\n applyDeoptimizations() { }\n}\n\nclass ImportSpecifier extends NodeBase {\n applyDeoptimizations() { }\n}\n\nclass LabeledStatement extends NodeBase {\n hasEffects(context) {\n const { brokenFlow, includedLabels } = context;\n context.ignore.labels.add(this.label.name);\n context.includedLabels = new Set();\n let bodyHasEffects = false;\n if (this.body.hasEffects(context)) {\n bodyHasEffects = true;\n }\n else {\n context.ignore.labels.delete(this.label.name);\n if (context.includedLabels.has(this.label.name)) {\n context.includedLabels.delete(this.label.name);\n context.brokenFlow = brokenFlow;\n }\n }\n context.includedLabels = new Set([...includedLabels, ...context.includedLabels]);\n return bodyHasEffects;\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n const { brokenFlow, includedLabels } = context;\n context.includedLabels = new Set();\n this.body.include(context, includeChildrenRecursively);\n if (includeChildrenRecursively || context.includedLabels.has(this.label.name)) {\n this.label.include();\n context.includedLabels.delete(this.label.name);\n context.brokenFlow = brokenFlow;\n }\n context.includedLabels = new Set([...includedLabels, ...context.includedLabels]);\n }\n render(code, options) {\n if (this.label.included) {\n this.label.render(code, options);\n }\n else {\n code.remove(this.start, findNonWhiteSpace(code.original, findFirstOccurrenceOutsideComment(code.original, ':', this.label.end) + 1));\n }\n this.body.render(code, options);\n }\n}\n\nclass LogicalExpression extends NodeBase {\n constructor() {\n super(...arguments);\n // We collect deoptimization information if usedBranch !== null\n this.expressionsToBeDeoptimized = [];\n this.usedBranch = null;\n }\n //private isBranchResolutionAnalysed = false;\n get isBranchResolutionAnalysed() {\n return isFlagSet(this.flags, 65536 /* Flag.isBranchResolutionAnalysed */);\n }\n set isBranchResolutionAnalysed(value) {\n this.flags = setFlag(this.flags, 65536 /* Flag.isBranchResolutionAnalysed */, value);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.left.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n this.right.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizeCache() {\n if (this.usedBranch) {\n const unusedBranch = this.usedBranch === this.left ? this.right : this.left;\n this.usedBranch = null;\n unusedBranch.deoptimizePath(UNKNOWN_PATH);\n const { scope: { context }, expressionsToBeDeoptimized } = this;\n this.expressionsToBeDeoptimized = EMPTY_ARRAY;\n for (const expression of expressionsToBeDeoptimized) {\n expression.deoptimizeCache();\n }\n // Request another pass because we need to ensure \"include\" runs again if\n // it is rendered\n context.requestTreeshakingPass();\n }\n }\n deoptimizePath(path) {\n const usedBranch = this.getUsedBranch();\n if (usedBranch) {\n usedBranch.deoptimizePath(path);\n }\n else {\n this.left.deoptimizePath(path);\n this.right.deoptimizePath(path);\n }\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n const usedBranch = this.getUsedBranch();\n if (!usedBranch)\n return UnknownValue;\n this.expressionsToBeDeoptimized.push(origin);\n return usedBranch.getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n const usedBranch = this.getUsedBranch();\n if (!usedBranch)\n return [\n new MultiExpression([\n this.left.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin)[0],\n this.right.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin)[0]\n ]),\n false\n ];\n this.expressionsToBeDeoptimized.push(origin);\n return usedBranch.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n hasEffects(context) {\n if (this.left.hasEffects(context)) {\n return true;\n }\n if (this.getUsedBranch() !== this.left) {\n return this.right.hasEffects(context);\n }\n return false;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n const usedBranch = this.getUsedBranch();\n if (!usedBranch) {\n return (this.left.hasEffectsOnInteractionAtPath(path, interaction, context) ||\n this.right.hasEffectsOnInteractionAtPath(path, interaction, context));\n }\n return usedBranch.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n const usedBranch = this.getUsedBranch();\n if (includeChildrenRecursively ||\n (usedBranch === this.right && this.left.shouldBeIncluded(context)) ||\n !usedBranch) {\n this.left.include(context, includeChildrenRecursively);\n this.right.include(context, includeChildrenRecursively);\n }\n else {\n usedBranch.include(context, includeChildrenRecursively);\n }\n }\n removeAnnotations(code) {\n this.left.removeAnnotations(code);\n }\n render(code, options, { isCalleeOfRenderedParent, preventASI, renderedParentType, renderedSurroundingElement } = BLANK) {\n if (!this.left.included || !this.right.included) {\n const operatorPos = findFirstOccurrenceOutsideComment(code.original, this.operator, this.left.end);\n if (this.right.included) {\n const removePos = findNonWhiteSpace(code.original, operatorPos + 2);\n code.remove(this.start, removePos);\n if (preventASI) {\n removeLineBreaks(code, removePos, this.right.start);\n }\n this.left.removeAnnotations(code);\n }\n else {\n code.remove(findLastWhiteSpaceReverse(code.original, this.left.end, operatorPos), this.end);\n }\n this.getUsedBranch().render(code, options, {\n isCalleeOfRenderedParent,\n preventASI,\n renderedParentType: renderedParentType || this.parent.type,\n renderedSurroundingElement: renderedSurroundingElement || this.parent.type\n });\n }\n else {\n this.left.render(code, options, {\n preventASI,\n renderedSurroundingElement\n });\n this.right.render(code, options);\n }\n }\n getUsedBranch() {\n if (!this.isBranchResolutionAnalysed) {\n this.isBranchResolutionAnalysed = true;\n const leftValue = this.left.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n if (typeof leftValue === 'symbol') {\n return null;\n }\n else {\n this.usedBranch =\n (this.operator === '||' && leftValue) ||\n (this.operator === '&&' && !leftValue) ||\n (this.operator === '??' && leftValue != null)\n ? this.left\n : this.right;\n }\n }\n return this.usedBranch;\n }\n}\n\nconst FILE_PREFIX = 'ROLLUP_FILE_URL_';\nconst IMPORT = 'import';\nclass MetaProperty extends NodeBase {\n constructor() {\n super(...arguments);\n this.metaProperty = null;\n this.preliminaryChunkId = null;\n this.referenceId = null;\n }\n getReferencedFileName(outputPluginDriver) {\n const { meta: { name }, metaProperty } = this;\n if (name === IMPORT && metaProperty?.startsWith(FILE_PREFIX)) {\n return outputPluginDriver.getFileName(metaProperty.slice(FILE_PREFIX.length));\n }\n return null;\n }\n hasEffects() {\n return false;\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return path.length > 1 || type !== INTERACTION_ACCESSED;\n }\n include() {\n if (!this.included) {\n this.included = true;\n if (this.meta.name === IMPORT) {\n this.scope.context.addImportMeta(this);\n const parent = this.parent;\n const metaProperty = (this.metaProperty =\n parent instanceof MemberExpression && typeof parent.propertyKey === 'string'\n ? parent.propertyKey\n : null);\n if (metaProperty?.startsWith(FILE_PREFIX)) {\n this.referenceId = metaProperty.slice(FILE_PREFIX.length);\n }\n }\n }\n }\n render(code, renderOptions) {\n const { format, pluginDriver, snippets } = renderOptions;\n const { scope: { context: { module } }, meta: { name }, metaProperty, parent, preliminaryChunkId, referenceId, start, end } = this;\n const { id: moduleId } = module;\n if (name !== IMPORT)\n return;\n const chunkId = preliminaryChunkId;\n if (referenceId) {\n const fileName = pluginDriver.getFileName(referenceId);\n const relativePath = normalize(relative(dirname(chunkId), fileName));\n const replacement = pluginDriver.hookFirstSync('resolveFileUrl', [\n { chunkId, fileName, format, moduleId, referenceId, relativePath }\n ]) || relativeUrlMechanisms[format](relativePath);\n code.overwrite(parent.start, parent.end, replacement, { contentOnly: true });\n return;\n }\n let replacement = pluginDriver.hookFirstSync('resolveImportMeta', [\n metaProperty,\n { chunkId, format, moduleId }\n ]);\n if (!replacement) {\n replacement = importMetaMechanisms[format]?.(metaProperty, { chunkId, snippets });\n renderOptions.accessedDocumentCurrentScript ||=\n formatsMaybeAccessDocumentCurrentScript.includes(format) && replacement !== 'undefined';\n }\n if (typeof replacement === 'string') {\n if (parent instanceof MemberExpression) {\n code.overwrite(parent.start, parent.end, replacement, { contentOnly: true });\n }\n else {\n code.overwrite(start, end, replacement, { contentOnly: true });\n }\n }\n }\n setResolution(format, accessedGlobalsByScope, preliminaryChunkId) {\n this.preliminaryChunkId = preliminaryChunkId;\n const accessedGlobals = (this.metaProperty?.startsWith(FILE_PREFIX) ? accessedFileUrlGlobals : accessedMetaUrlGlobals)[format];\n if (accessedGlobals.length > 0) {\n this.scope.addAccessedGlobals(accessedGlobals, accessedGlobalsByScope);\n }\n }\n}\nconst formatsMaybeAccessDocumentCurrentScript = ['cjs', 'iife', 'umd'];\nconst accessedMetaUrlGlobals = {\n amd: ['document', 'module', 'URL'],\n cjs: ['document', 'require', 'URL', DOCUMENT_CURRENT_SCRIPT],\n es: [],\n iife: ['document', 'URL', DOCUMENT_CURRENT_SCRIPT],\n system: ['module'],\n umd: ['document', 'require', 'URL', DOCUMENT_CURRENT_SCRIPT]\n};\nconst accessedFileUrlGlobals = {\n amd: ['document', 'require', 'URL'],\n cjs: ['document', 'require', 'URL'],\n es: [],\n iife: ['document', 'URL'],\n system: ['module', 'URL'],\n umd: ['document', 'require', 'URL']\n};\nconst getResolveUrl = (path, URL = 'URL') => `new ${URL}(${path}).href`;\nconst getRelativeUrlFromDocument = (relativePath, umd = false) => getResolveUrl(`'${escapeId(relativePath)}', ${umd ? `typeof document === 'undefined' ? location.href : ` : ''}document.currentScript && document.currentScript.src || document.baseURI`);\nconst getGenericImportMetaMechanism = (getUrl) => (property, { chunkId }) => {\n const urlMechanism = getUrl(chunkId);\n return property === null\n ? `({ url: ${urlMechanism} })`\n : property === 'url'\n ? urlMechanism\n : 'undefined';\n};\nconst getFileUrlFromFullPath = (path) => `require('u' + 'rl').pathToFileURL(${path}).href`;\nconst getFileUrlFromRelativePath = (path) => getFileUrlFromFullPath(`__dirname + '/${escapeId(path)}'`);\nconst getUrlFromDocument = (chunkId, umd = false) => `${umd ? `typeof document === 'undefined' ? location.href : ` : ''}(${DOCUMENT_CURRENT_SCRIPT} && ${DOCUMENT_CURRENT_SCRIPT}.src || new URL('${escapeId(chunkId)}', document.baseURI).href)`;\nconst relativeUrlMechanisms = {\n amd: relativePath => {\n if (relativePath[0] !== '.')\n relativePath = './' + relativePath;\n return getResolveUrl(`require.toUrl('${escapeId(relativePath)}'), document.baseURI`);\n },\n cjs: relativePath => `(typeof document === 'undefined' ? ${getFileUrlFromRelativePath(relativePath)} : ${getRelativeUrlFromDocument(relativePath)})`,\n es: relativePath => getResolveUrl(`'${escapeId(relativePath)}', import.meta.url`),\n iife: relativePath => getRelativeUrlFromDocument(relativePath),\n system: relativePath => getResolveUrl(`'${escapeId(relativePath)}', module.meta.url`),\n umd: relativePath => `(typeof document === 'undefined' && typeof location === 'undefined' ? ${getFileUrlFromRelativePath(relativePath)} : ${getRelativeUrlFromDocument(relativePath, true)})`\n};\nconst importMetaMechanisms = {\n amd: getGenericImportMetaMechanism(() => getResolveUrl(`module.uri, document.baseURI`)),\n cjs: getGenericImportMetaMechanism(chunkId => `(typeof document === 'undefined' ? ${getFileUrlFromFullPath('__filename')} : ${getUrlFromDocument(chunkId)})`),\n iife: getGenericImportMetaMechanism(chunkId => getUrlFromDocument(chunkId)),\n system: (property, { snippets: { getPropertyAccess } }) => property === null ? `module.meta` : `module.meta${getPropertyAccess(property)}`,\n umd: getGenericImportMetaMechanism(chunkId => `(typeof document === 'undefined' && typeof location === 'undefined' ? ${getFileUrlFromFullPath('__filename')} : ${getUrlFromDocument(chunkId, true)})`)\n};\n\nclass NewExpression extends NodeBase {\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n for (const argument of this.arguments) {\n if (argument.hasEffects(context))\n return true;\n }\n if (this.annotationPure) {\n return false;\n }\n return (this.callee.hasEffects(context) ||\n this.callee.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context));\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return path.length > 0 || type !== INTERACTION_ACCESSED;\n }\n include(context, includeChildrenRecursively) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (includeChildrenRecursively) {\n super.include(context, includeChildrenRecursively);\n }\n else {\n this.included = true;\n this.callee.include(context, false);\n }\n this.callee.includeCallArguments(context, this.arguments);\n }\n initialise() {\n super.initialise();\n this.interaction = {\n args: [null, ...this.arguments],\n type: INTERACTION_CALLED,\n withNew: true\n };\n if (this.annotations &&\n this.scope.context.options.treeshake.annotations) {\n this.annotationPure = this.annotations.some(comment => comment.type === 'pure');\n }\n }\n render(code, options) {\n this.callee.render(code, options);\n renderCallArguments(code, options, this);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.callee.deoptimizeArgumentsOnInteractionAtPath(this.interaction, EMPTY_PATH, SHARED_RECURSION_TRACKER);\n this.scope.context.requestTreeshakingPass();\n }\n}\n\nclass ObjectExpression extends NodeBase {\n constructor() {\n super(...arguments);\n this.objectEntity = null;\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.getObjectEntity().deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizeCache() {\n this.getObjectEntity().deoptimizeAllProperties();\n }\n deoptimizePath(path) {\n this.getObjectEntity().deoptimizePath(path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.getObjectEntity().getLiteralValueAtPath(path, recursionTracker, origin);\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n return this.getObjectEntity().getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return this.getObjectEntity().hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n render(code, options, { renderedSurroundingElement } = BLANK) {\n super.render(code, options);\n if (renderedSurroundingElement === ExpressionStatement$1 ||\n renderedSurroundingElement === ArrowFunctionExpression$1) {\n code.appendRight(this.start, '(');\n code.prependLeft(this.end, ')');\n }\n }\n applyDeoptimizations() { }\n getObjectEntity() {\n if (this.objectEntity !== null) {\n return this.objectEntity;\n }\n let prototype = OBJECT_PROTOTYPE;\n const properties = [];\n for (const property of this.properties) {\n if (property instanceof SpreadElement) {\n properties.push({ key: UnknownKey, kind: 'init', property });\n continue;\n }\n let key;\n if (property.computed) {\n const keyValue = property.key.getLiteralValueAtPath(EMPTY_PATH, SHARED_RECURSION_TRACKER, this);\n if (typeof keyValue === 'symbol') {\n properties.push({ key: UnknownKey, kind: property.kind, property });\n continue;\n }\n else {\n key = String(keyValue);\n }\n }\n else {\n key =\n property.key instanceof Identifier\n ? property.key.name\n : String(property.key.value);\n if (key === '__proto__' && property.kind === 'init') {\n prototype =\n property.value instanceof Literal && property.value.value === null\n ? null\n : property.value;\n continue;\n }\n }\n properties.push({ key, kind: property.kind, property });\n }\n return (this.objectEntity = new ObjectEntity(properties, prototype));\n }\n}\n\nclass PanicError extends NodeBase {\n initialise() {\n const id = this.scope.context.module.id;\n // This simulates the current nested error structure. We could also just\n // replace it with a flat error.\n const parseError = getRollupError(logParseError(this.message));\n const moduleParseError = logModuleParseError(parseError, id);\n return error(moduleParseError);\n }\n}\n\nclass ParseError extends NodeBase {\n initialise() {\n const pos = this.start;\n const id = this.scope.context.module.id;\n // This simulates the current nested error structure. We could also just\n // replace it with a flat error.\n const parseError = getRollupError(logParseError(this.message, pos));\n const moduleParseError = logModuleParseError(parseError, id);\n this.scope.context.error(moduleParseError, pos);\n }\n}\n\nclass PrivateIdentifier extends NodeBase {\n}\n\nclass Program extends NodeBase {\n constructor() {\n super(...arguments);\n this.hasCachedEffect = null;\n this.hasLoggedEffect = false;\n }\n hasCachedEffects() {\n if (!this.included) {\n return false;\n }\n return this.hasCachedEffect === null\n ? (this.hasCachedEffect = this.hasEffects(createHasEffectsContext()))\n : this.hasCachedEffect;\n }\n hasEffects(context) {\n for (const node of this.body) {\n if (node.hasEffects(context)) {\n if (this.scope.context.options.experimentalLogSideEffects && !this.hasLoggedEffect) {\n this.hasLoggedEffect = true;\n const { code, log, module } = this.scope.context;\n log(LOGLEVEL_INFO, logFirstSideEffect(code, module.id, locate(code, node.start, { offsetLine: 1 })), node.start);\n }\n return (this.hasCachedEffect = true);\n }\n }\n return false;\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n for (const node of this.body) {\n if (includeChildrenRecursively || node.shouldBeIncluded(context)) {\n node.include(context, includeChildrenRecursively);\n }\n }\n }\n initialise() {\n super.initialise();\n if (this.invalidAnnotations)\n for (const { start, end, type } of this.invalidAnnotations) {\n this.scope.context.magicString.remove(start, end);\n if (type === 'pure' || type === 'noSideEffects') {\n this.scope.context.log(LOGLEVEL_WARN, logInvalidAnnotation(this.scope.context.code.slice(start, end), this.scope.context.module.id, type), start);\n }\n }\n }\n render(code, options) {\n let start = this.start;\n if (code.original.startsWith('#!')) {\n start = Math.min(code.original.indexOf('\\n') + 1, this.end);\n code.remove(0, start);\n }\n if (this.body.length > 0) {\n // Keep all consecutive lines that start with a comment\n while (code.original[start] === '/' && /[*/]/.test(code.original[start + 1])) {\n const firstLineBreak = findFirstLineBreakOutsideComment(code.original.slice(start, this.body[0].start));\n if (firstLineBreak[0] === -1) {\n break;\n }\n start += firstLineBreak[1];\n }\n renderStatementList(this.body, code, start, this.end, options);\n }\n else {\n super.render(code, options);\n }\n }\n applyDeoptimizations() { }\n}\n\nclass Property extends MethodBase {\n constructor() {\n super(...arguments);\n this.declarationInit = null;\n }\n //declare method: boolean;\n get method() {\n return isFlagSet(this.flags, 262144 /* Flag.method */);\n }\n set method(value) {\n this.flags = setFlag(this.flags, 262144 /* Flag.method */, value);\n }\n //declare shorthand: boolean;\n get shorthand() {\n return isFlagSet(this.flags, 524288 /* Flag.shorthand */);\n }\n set shorthand(value) {\n this.flags = setFlag(this.flags, 524288 /* Flag.shorthand */, value);\n }\n declare(kind, init) {\n this.declarationInit = init;\n return this.value.declare(kind, UNKNOWN_EXPRESSION);\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n const propertyReadSideEffects = this.scope.context.options.treeshake.propertyReadSideEffects;\n return ((this.parent.type === 'ObjectPattern' && propertyReadSideEffects === 'always') ||\n this.key.hasEffects(context) ||\n this.value.hasEffects(context));\n }\n markDeclarationReached() {\n this.value.markDeclarationReached();\n }\n render(code, options) {\n if (!this.shorthand) {\n this.key.render(code, options);\n }\n this.value.render(code, options, { isShorthandProperty: this.shorthand });\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n if (this.declarationInit !== null) {\n this.declarationInit.deoptimizePath([UnknownKey, UnknownKey]);\n this.scope.context.requestTreeshakingPass();\n }\n }\n}\n\nclass PropertyDefinition extends NodeBase {\n get computed() {\n return isFlagSet(this.flags, 1024 /* Flag.computed */);\n }\n set computed(value) {\n this.flags = setFlag(this.flags, 1024 /* Flag.computed */, value);\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.value?.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizePath(path) {\n this.value?.deoptimizePath(path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.value\n ? this.value.getLiteralValueAtPath(path, recursionTracker, origin)\n : UnknownValue;\n }\n getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin) {\n return this.value\n ? this.value.getReturnExpressionWhenCalledAtPath(path, interaction, recursionTracker, origin)\n : UNKNOWN_RETURN_EXPRESSION;\n }\n hasEffects(context) {\n return (this.key.hasEffects(context) ||\n (this.static && !!this.value?.hasEffects(context)) ||\n checkEffectForNodes(this.decorators, context));\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return !this.value || this.value.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n applyDeoptimizations() { }\n}\n\nclass ReturnStatement extends NodeBase {\n hasEffects(context) {\n if (!context.ignore.returnYield || this.argument?.hasEffects(context))\n return true;\n context.brokenFlow = true;\n return false;\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.argument?.include(context, includeChildrenRecursively);\n context.brokenFlow = true;\n }\n initialise() {\n super.initialise();\n this.scope.addReturnExpression(this.argument || UNKNOWN_EXPRESSION);\n }\n render(code, options) {\n if (this.argument) {\n this.argument.render(code, options, { preventASI: true });\n if (this.argument.start === this.start + 6 /* 'return'.length */) {\n code.prependLeft(this.start + 6, ' ');\n }\n }\n }\n}\n\nclass SequenceExpression extends NodeBase {\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.expressions[this.expressions.length - 1].deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizePath(path) {\n this.expressions[this.expressions.length - 1].deoptimizePath(path);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n return this.expressions[this.expressions.length - 1].getLiteralValueAtPath(path, recursionTracker, origin);\n }\n hasEffects(context) {\n for (const expression of this.expressions) {\n if (expression.hasEffects(context))\n return true;\n }\n return false;\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n return this.expressions[this.expressions.length - 1].hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n const lastExpression = this.expressions[this.expressions.length - 1];\n for (const expression of this.expressions) {\n if (includeChildrenRecursively ||\n (expression === lastExpression && !(this.parent instanceof ExpressionStatement)) ||\n expression.shouldBeIncluded(context))\n expression.include(context, includeChildrenRecursively);\n }\n }\n removeAnnotations(code) {\n this.expressions[0].removeAnnotations(code);\n }\n render(code, options, { renderedParentType, isCalleeOfRenderedParent, preventASI } = BLANK) {\n let includedNodes = 0;\n let lastSeparatorPos = null;\n const lastNode = this.expressions[this.expressions.length - 1];\n for (const { node, separator, start, end } of getCommaSeparatedNodesWithBoundaries(this.expressions, code, this.start, this.end)) {\n if (!node.included) {\n treeshakeNode(node, code, start, end);\n continue;\n }\n includedNodes++;\n lastSeparatorPos = separator;\n if (includedNodes === 1 && preventASI) {\n removeLineBreaks(code, start, node.start);\n }\n if (includedNodes === 1) {\n const parentType = renderedParentType || this.parent.type;\n node.render(code, options, {\n isCalleeOfRenderedParent: isCalleeOfRenderedParent && node === lastNode,\n renderedParentType: parentType,\n renderedSurroundingElement: parentType\n });\n }\n else {\n node.render(code, options);\n }\n }\n if (lastSeparatorPos) {\n code.remove(lastSeparatorPos, this.end);\n }\n }\n}\n\nclass Super extends NodeBase {\n bind() {\n this.variable = this.scope.findVariable('this');\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizePath(path) {\n this.variable.deoptimizePath(path);\n }\n include() {\n if (!this.included) {\n this.included = true;\n this.scope.context.includeVariableInModule(this.variable);\n }\n }\n}\n\nclass SwitchCase extends NodeBase {\n hasEffects(context) {\n if (this.test?.hasEffects(context))\n return true;\n for (const node of this.consequent) {\n if (context.brokenFlow)\n break;\n if (node.hasEffects(context))\n return true;\n }\n return false;\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.test?.include(context, includeChildrenRecursively);\n for (const node of this.consequent) {\n if (includeChildrenRecursively || node.shouldBeIncluded(context))\n node.include(context, includeChildrenRecursively);\n }\n }\n render(code, options, nodeRenderOptions) {\n if (this.consequent.length > 0) {\n this.test && this.test.render(code, options);\n const testEnd = this.test\n ? this.test.end\n : findFirstOccurrenceOutsideComment(code.original, 'default', this.start) + 7;\n const consequentStart = findFirstOccurrenceOutsideComment(code.original, ':', testEnd) + 1;\n renderStatementList(this.consequent, code, consequentStart, nodeRenderOptions.end, options);\n }\n else {\n super.render(code, options);\n }\n }\n}\nSwitchCase.prototype.needsBoundaries = true;\n\nclass SwitchStatement extends NodeBase {\n createScope(parentScope) {\n this.parentScope = parentScope;\n this.scope = new BlockScope(parentScope);\n }\n hasEffects(context) {\n if (this.discriminant.hasEffects(context))\n return true;\n const { brokenFlow, hasBreak, ignore } = context;\n const { breaks } = ignore;\n ignore.breaks = true;\n context.hasBreak = false;\n let onlyHasBrokenFlow = true;\n for (const switchCase of this.cases) {\n if (switchCase.hasEffects(context))\n return true;\n onlyHasBrokenFlow &&= context.brokenFlow && !context.hasBreak;\n context.hasBreak = false;\n context.brokenFlow = brokenFlow;\n }\n if (this.defaultCase !== null) {\n context.brokenFlow = onlyHasBrokenFlow;\n }\n ignore.breaks = breaks;\n context.hasBreak = hasBreak;\n return false;\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.discriminant.include(context, includeChildrenRecursively);\n const { brokenFlow, hasBreak } = context;\n context.hasBreak = false;\n let onlyHasBrokenFlow = true;\n let isCaseIncluded = includeChildrenRecursively ||\n (this.defaultCase !== null && this.defaultCase < this.cases.length - 1);\n for (let caseIndex = this.cases.length - 1; caseIndex >= 0; caseIndex--) {\n const switchCase = this.cases[caseIndex];\n if (switchCase.included) {\n isCaseIncluded = true;\n }\n if (!isCaseIncluded) {\n const hasEffectsContext = createHasEffectsContext();\n hasEffectsContext.ignore.breaks = true;\n isCaseIncluded = switchCase.hasEffects(hasEffectsContext);\n }\n if (isCaseIncluded) {\n switchCase.include(context, includeChildrenRecursively);\n onlyHasBrokenFlow &&= context.brokenFlow && !context.hasBreak;\n context.hasBreak = false;\n context.brokenFlow = brokenFlow;\n }\n else {\n onlyHasBrokenFlow = brokenFlow;\n }\n }\n if (isCaseIncluded && this.defaultCase !== null) {\n context.brokenFlow = onlyHasBrokenFlow;\n }\n context.hasBreak = hasBreak;\n }\n initialise() {\n super.initialise();\n for (let caseIndex = 0; caseIndex < this.cases.length; caseIndex++) {\n if (this.cases[caseIndex].test === null) {\n this.defaultCase = caseIndex;\n return;\n }\n }\n this.defaultCase = null;\n }\n parseNode(esTreeNode) {\n this.discriminant = new (this.scope.context.getNodeConstructor(esTreeNode.discriminant.type))(this, this.parentScope).parseNode(esTreeNode.discriminant);\n return super.parseNode(esTreeNode);\n }\n render(code, options) {\n this.discriminant.render(code, options);\n if (this.cases.length > 0) {\n renderStatementList(this.cases, code, this.cases[0].start, this.end - 1, options);\n }\n }\n}\n\nclass TaggedTemplateExpression extends CallExpressionBase {\n bind() {\n super.bind();\n if (this.tag.type === Identifier$1) {\n const name = this.tag.name;\n const variable = this.scope.findVariable(name);\n if (variable.isNamespace) {\n this.scope.context.log(LOGLEVEL_WARN, logCannotCallNamespace(name), this.start);\n }\n }\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n for (const argument of this.quasi.expressions) {\n if (argument.hasEffects(context))\n return true;\n }\n return (this.tag.hasEffects(context) ||\n this.tag.hasEffectsOnInteractionAtPath(EMPTY_PATH, this.interaction, context));\n }\n include(context, includeChildrenRecursively) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (includeChildrenRecursively) {\n super.include(context, includeChildrenRecursively);\n }\n else {\n this.included = true;\n this.tag.include(context, includeChildrenRecursively);\n this.quasi.include(context, includeChildrenRecursively);\n }\n this.tag.includeCallArguments(context, this.args);\n const [returnExpression] = this.getReturnExpression();\n if (!returnExpression.included) {\n returnExpression.include(context, false);\n }\n }\n initialise() {\n super.initialise();\n this.args = [UNKNOWN_EXPRESSION, ...this.quasi.expressions];\n this.interaction = {\n args: [\n this.tag instanceof MemberExpression && !this.tag.variable ? this.tag.object : null,\n ...this.args\n ],\n type: INTERACTION_CALLED,\n withNew: false\n };\n }\n render(code, options) {\n this.tag.render(code, options, { isCalleeOfRenderedParent: true });\n this.quasi.render(code, options);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.tag.deoptimizeArgumentsOnInteractionAtPath(this.interaction, EMPTY_PATH, SHARED_RECURSION_TRACKER);\n this.scope.context.requestTreeshakingPass();\n }\n getReturnExpression(recursionTracker = SHARED_RECURSION_TRACKER) {\n if (this.returnExpression === null) {\n this.returnExpression = UNKNOWN_RETURN_EXPRESSION;\n return (this.returnExpression = this.tag.getReturnExpressionWhenCalledAtPath(EMPTY_PATH, this.interaction, recursionTracker, this));\n }\n return this.returnExpression;\n }\n}\n\nclass TemplateElement extends NodeBase {\n get tail() {\n return isFlagSet(this.flags, 1048576 /* Flag.tail */);\n }\n set tail(value) {\n this.flags = setFlag(this.flags, 1048576 /* Flag.tail */, value);\n }\n // Do not try to bind value\n bind() { }\n hasEffects() {\n return false;\n }\n include() {\n this.included = true;\n }\n parseNode(esTreeNode) {\n this.value = esTreeNode.value;\n return super.parseNode(esTreeNode);\n }\n render() { }\n}\n\nclass TemplateLiteral extends NodeBase {\n deoptimizeArgumentsOnInteractionAtPath() { }\n getLiteralValueAtPath(path) {\n if (path.length > 0 || this.quasis.length !== 1) {\n return UnknownValue;\n }\n return this.quasis[0].value.cooked;\n }\n getReturnExpressionWhenCalledAtPath(path) {\n if (path.length !== 1) {\n return UNKNOWN_RETURN_EXPRESSION;\n }\n return getMemberReturnExpressionWhenCalled(literalStringMembers, path[0]);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (interaction.type === INTERACTION_ACCESSED) {\n return path.length > 1;\n }\n if (interaction.type === INTERACTION_CALLED && path.length === 1) {\n return hasMemberEffectWhenCalled(literalStringMembers, path[0], interaction, context);\n }\n return true;\n }\n render(code, options) {\n code.indentExclusionRanges.push([this.start, this.end]);\n super.render(code, options);\n }\n}\n\nclass UndefinedVariable extends Variable {\n constructor() {\n super('undefined');\n }\n getLiteralValueAtPath() {\n return undefined;\n }\n}\n\nclass ExportDefaultVariable extends LocalVariable {\n constructor(name, exportDefaultDeclaration, context) {\n super(name, exportDefaultDeclaration, exportDefaultDeclaration.declaration, context, 'other');\n this.hasId = false;\n this.originalId = null;\n this.originalVariable = null;\n const declaration = exportDefaultDeclaration.declaration;\n if ((declaration instanceof FunctionDeclaration || declaration instanceof ClassDeclaration) &&\n declaration.id) {\n this.hasId = true;\n this.originalId = declaration.id;\n }\n else if (declaration instanceof Identifier) {\n this.originalId = declaration;\n }\n }\n addReference(identifier) {\n if (!this.hasId) {\n this.name = identifier.name;\n }\n }\n addUsedPlace(usedPlace) {\n const original = this.getOriginalVariable();\n if (original === this) {\n super.addUsedPlace(usedPlace);\n }\n else {\n original.addUsedPlace(usedPlace);\n }\n }\n forbidName(name) {\n const original = this.getOriginalVariable();\n if (original === this) {\n super.forbidName(name);\n }\n else {\n original.forbidName(name);\n }\n }\n getAssignedVariableName() {\n return (this.originalId && this.originalId.name) || null;\n }\n getBaseVariableName() {\n const original = this.getOriginalVariable();\n return original === this ? super.getBaseVariableName() : original.getBaseVariableName();\n }\n getDirectOriginalVariable() {\n return this.originalId &&\n (this.hasId ||\n !(this.originalId.isPossibleTDZ() ||\n this.originalId.variable.isReassigned ||\n this.originalId.variable instanceof UndefinedVariable ||\n // this avoids a circular dependency\n 'syntheticNamespace' in this.originalId.variable))\n ? this.originalId.variable\n : null;\n }\n getName(getPropertyAccess) {\n const original = this.getOriginalVariable();\n return original === this\n ? super.getName(getPropertyAccess)\n : original.getName(getPropertyAccess);\n }\n getOriginalVariable() {\n if (this.originalVariable)\n return this.originalVariable;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let original = this;\n let currentVariable;\n const checkedVariables = new Set();\n do {\n checkedVariables.add(original);\n currentVariable = original;\n original = currentVariable.getDirectOriginalVariable();\n } while (original instanceof ExportDefaultVariable && !checkedVariables.has(original));\n return (this.originalVariable = original || currentVariable);\n }\n}\n\nclass ModuleScope extends ChildScope {\n constructor(parent, context) {\n super(parent, context);\n this.variables.set('this', new LocalVariable('this', null, UNDEFINED_EXPRESSION, context, 'other'));\n }\n addDeclaration(identifier, context, init, kind) {\n if (this.context.module.importDescriptions.has(identifier.name)) {\n context.error(logRedeclarationError(identifier.name), identifier.start);\n }\n return super.addDeclaration(identifier, context, init, kind);\n }\n addExportDefaultDeclaration(name, exportDefaultDeclaration, context) {\n const variable = new ExportDefaultVariable(name, exportDefaultDeclaration, context);\n this.variables.set('default', variable);\n return variable;\n }\n addNamespaceMemberAccess() { }\n deconflict(format, exportNamesByVariable, accessedGlobalsByScope) {\n // all module level variables are already deconflicted when deconflicting the chunk\n for (const scope of this.children)\n scope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope);\n }\n findLexicalBoundary() {\n return this;\n }\n findVariable(name) {\n const knownVariable = this.variables.get(name) || this.accessedOutsideVariables.get(name);\n if (knownVariable) {\n return knownVariable;\n }\n const variable = this.context.traceVariable(name) || this.parent.findVariable(name);\n if (variable instanceof GlobalVariable) {\n this.accessedOutsideVariables.set(name, variable);\n }\n return variable;\n }\n}\n\nclass ThisExpression extends NodeBase {\n bind() {\n this.variable = this.scope.findVariable('this');\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n this.variable.deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker);\n }\n deoptimizePath(path) {\n this.variable.deoptimizePath(path);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n if (path.length === 0) {\n return interaction.type !== INTERACTION_ACCESSED;\n }\n return this.variable.hasEffectsOnInteractionAtPath(path, interaction, context);\n }\n include() {\n if (!this.included) {\n this.included = true;\n this.scope.context.includeVariableInModule(this.variable);\n }\n }\n initialise() {\n super.initialise();\n this.alias =\n this.scope.findLexicalBoundary() instanceof ModuleScope\n ? this.scope.context.moduleContext\n : null;\n if (this.alias === 'undefined') {\n this.scope.context.log(LOGLEVEL_WARN, logThisIsUndefined(), this.start);\n }\n }\n render(code) {\n if (this.alias !== null) {\n code.overwrite(this.start, this.end, this.alias, {\n contentOnly: false,\n storeName: true\n });\n }\n }\n}\n\nclass ThrowStatement extends NodeBase {\n hasEffects() {\n return true;\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.argument.include(context, includeChildrenRecursively);\n context.brokenFlow = true;\n }\n render(code, options) {\n this.argument.render(code, options, { preventASI: true });\n if (this.argument.start === this.start + 5 /* 'throw'.length */) {\n code.prependLeft(this.start + 5, ' ');\n }\n }\n}\n\nclass TryStatement extends NodeBase {\n constructor() {\n super(...arguments);\n this.directlyIncluded = false;\n this.includedLabelsAfterBlock = null;\n }\n hasEffects(context) {\n return ((this.scope.context.options.treeshake.tryCatchDeoptimization\n ? this.block.body.length > 0\n : this.block.hasEffects(context)) || !!this.finalizer?.hasEffects(context));\n }\n include(context, includeChildrenRecursively) {\n const tryCatchDeoptimization = this.scope.context.options.treeshake?.tryCatchDeoptimization;\n const { brokenFlow, includedLabels } = context;\n if (!this.directlyIncluded || !tryCatchDeoptimization) {\n this.included = true;\n this.directlyIncluded = true;\n this.block.include(context, tryCatchDeoptimization ? INCLUDE_PARAMETERS : includeChildrenRecursively);\n if (includedLabels.size > 0) {\n this.includedLabelsAfterBlock = [...includedLabels];\n }\n context.brokenFlow = brokenFlow;\n }\n else if (this.includedLabelsAfterBlock) {\n for (const label of this.includedLabelsAfterBlock) {\n includedLabels.add(label);\n }\n }\n if (this.handler !== null) {\n this.handler.include(context, includeChildrenRecursively);\n context.brokenFlow = brokenFlow;\n }\n this.finalizer?.include(context, includeChildrenRecursively);\n }\n}\n\nconst unaryOperators = {\n '!': value => !value,\n '+': value => +value,\n '-': value => -value,\n delete: () => UnknownValue,\n typeof: value => typeof value,\n void: () => undefined,\n '~': value => ~value\n};\nclass UnaryExpression extends NodeBase {\n get prefix() {\n return isFlagSet(this.flags, 2097152 /* Flag.prefix */);\n }\n set prefix(value) {\n this.flags = setFlag(this.flags, 2097152 /* Flag.prefix */, value);\n }\n getLiteralValueAtPath(path, recursionTracker, origin) {\n if (path.length > 0)\n return UnknownValue;\n const argumentValue = this.argument.getLiteralValueAtPath(EMPTY_PATH, recursionTracker, origin);\n if (typeof argumentValue === 'symbol')\n return UnknownValue;\n return unaryOperators[this.operator](argumentValue);\n }\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n if (this.operator === 'typeof' && this.argument instanceof Identifier)\n return false;\n return (this.argument.hasEffects(context) ||\n (this.operator === 'delete' &&\n this.argument.hasEffectsOnInteractionAtPath(EMPTY_PATH, NODE_INTERACTION_UNKNOWN_ASSIGNMENT, context)));\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return type !== INTERACTION_ACCESSED || path.length > (this.operator === 'void' ? 0 : 1);\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n if (this.operator === 'delete') {\n this.argument.deoptimizePath(EMPTY_PATH);\n this.scope.context.requestTreeshakingPass();\n }\n }\n}\n\nclass UpdateExpression extends NodeBase {\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n return this.argument.hasEffectsAsAssignmentTarget(context, true);\n }\n hasEffectsOnInteractionAtPath(path, { type }) {\n return path.length > 1 || type !== INTERACTION_ACCESSED;\n }\n include(context, includeChildrenRecursively) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n this.included = true;\n this.argument.includeAsAssignmentTarget(context, includeChildrenRecursively, true);\n }\n initialise() {\n super.initialise();\n this.argument.setAssignedValue(UNKNOWN_EXPRESSION);\n }\n render(code, options) {\n const { exportNamesByVariable, format, snippets: { _ } } = options;\n this.argument.render(code, options);\n if (format === 'system') {\n const variable = this.argument.variable;\n const exportNames = exportNamesByVariable.get(variable);\n if (exportNames) {\n if (this.prefix) {\n if (exportNames.length === 1) {\n renderSystemExportExpression(variable, this.start, this.end, code, options);\n }\n else {\n renderSystemExportSequenceAfterExpression(variable, this.start, this.end, this.parent.type !== ExpressionStatement$1, code, options);\n }\n }\n else {\n const operator = this.operator[0];\n renderSystemExportSequenceBeforeExpression(variable, this.start, this.end, this.parent.type !== ExpressionStatement$1, code, options, `${_}${operator}${_}1`);\n }\n }\n }\n }\n applyDeoptimizations() {\n this.deoptimized = true;\n this.argument.deoptimizePath(EMPTY_PATH);\n if (this.argument instanceof Identifier) {\n const variable = this.scope.findVariable(this.argument.name);\n variable.markReassigned();\n }\n this.scope.context.requestTreeshakingPass();\n }\n}\n\nfunction areAllDeclarationsIncludedAndNotExported(declarations, exportNamesByVariable) {\n for (const declarator of declarations) {\n if (!declarator.id.included)\n return false;\n if (declarator.id.type === Identifier$1) {\n if (exportNamesByVariable.has(declarator.id.variable))\n return false;\n }\n else {\n const exportedVariables = [];\n declarator.id.addExportedVariables(exportedVariables, exportNamesByVariable);\n if (exportedVariables.length > 0)\n return false;\n }\n }\n return true;\n}\nclass VariableDeclaration extends NodeBase {\n deoptimizePath() {\n for (const declarator of this.declarations) {\n declarator.deoptimizePath(EMPTY_PATH);\n }\n }\n hasEffectsOnInteractionAtPath() {\n return false;\n }\n include(context, includeChildrenRecursively, { asSingleStatement } = BLANK) {\n this.included = true;\n for (const declarator of this.declarations) {\n if (includeChildrenRecursively || declarator.shouldBeIncluded(context))\n declarator.include(context, includeChildrenRecursively);\n const { id, init } = declarator;\n if (asSingleStatement) {\n id.include(context, includeChildrenRecursively);\n }\n if (init &&\n id.included &&\n !init.included &&\n (id instanceof ObjectPattern || id instanceof ArrayPattern)) {\n init.include(context, includeChildrenRecursively);\n }\n }\n }\n initialise() {\n super.initialise();\n this.isUsingDeclaration = this.kind === 'await using' || this.kind === 'using';\n for (const declarator of this.declarations) {\n declarator.declareDeclarator(this.kind, this.isUsingDeclaration);\n }\n }\n removeAnnotations(code) {\n this.declarations[0].removeAnnotations(code);\n }\n render(code, options, nodeRenderOptions = BLANK) {\n if (this.isUsingDeclaration ||\n areAllDeclarationsIncludedAndNotExported(this.declarations, options.exportNamesByVariable)) {\n for (const declarator of this.declarations) {\n declarator.render(code, options);\n }\n if (!nodeRenderOptions.isNoStatement &&\n code.original.charCodeAt(this.end - 1) !== 59 /*\";\"*/) {\n code.appendLeft(this.end, ';');\n }\n }\n else {\n this.renderReplacedDeclarations(code, options);\n }\n }\n applyDeoptimizations() { }\n renderDeclarationEnd(code, separatorString, lastSeparatorPos, actualContentEnd, renderedContentEnd, systemPatternExports, options) {\n if (code.original.charCodeAt(this.end - 1) === 59 /*\";\"*/) {\n code.remove(this.end - 1, this.end);\n }\n separatorString += ';';\n if (lastSeparatorPos === null) {\n code.appendLeft(renderedContentEnd, separatorString);\n }\n else {\n if (code.original.charCodeAt(actualContentEnd - 1) === 10 /*\"\\n\"*/ &&\n (code.original.charCodeAt(this.end) === 10 /*\"\\n\"*/ ||\n code.original.charCodeAt(this.end) === 13) /*\"\\r\"*/) {\n actualContentEnd--;\n if (code.original.charCodeAt(actualContentEnd) === 13 /*\"\\r\"*/) {\n actualContentEnd--;\n }\n }\n if (actualContentEnd === lastSeparatorPos + 1) {\n code.overwrite(lastSeparatorPos, renderedContentEnd, separatorString);\n }\n else {\n code.overwrite(lastSeparatorPos, lastSeparatorPos + 1, separatorString);\n code.remove(actualContentEnd, renderedContentEnd);\n }\n }\n if (systemPatternExports.length > 0) {\n code.appendLeft(renderedContentEnd, ` ${getSystemExportStatement(systemPatternExports, options)};`);\n }\n }\n renderReplacedDeclarations(code, options) {\n const separatedNodes = getCommaSeparatedNodesWithBoundaries(this.declarations, code, this.start + this.kind.length, this.end - (code.original.charCodeAt(this.end - 1) === 59 /*\";\"*/ ? 1 : 0));\n let actualContentEnd, renderedContentEnd;\n renderedContentEnd = findNonWhiteSpace(code.original, this.start + this.kind.length);\n let lastSeparatorPos = renderedContentEnd - 1;\n code.remove(this.start, lastSeparatorPos);\n let isInDeclaration = false;\n let hasRenderedContent = false;\n let separatorString = '', leadingString, nextSeparatorString;\n const aggregatedSystemExports = [];\n const singleSystemExport = gatherSystemExportsAndGetSingleExport(separatedNodes, options, aggregatedSystemExports);\n for (const { node, start, separator, contentEnd, end } of separatedNodes) {\n if (!node.included) {\n code.remove(start, end);\n node.removeAnnotations(code);\n continue;\n }\n node.render(code, options);\n leadingString = '';\n nextSeparatorString = '';\n if (!node.id.included ||\n (node.id instanceof Identifier &&\n isReassignedExportsMember(node.id.variable, options.exportNamesByVariable))) {\n if (hasRenderedContent) {\n separatorString += ';';\n }\n isInDeclaration = false;\n }\n else {\n if (singleSystemExport && singleSystemExport === node.id.variable) {\n const operatorPos = findFirstOccurrenceOutsideComment(code.original, '=', node.id.end);\n renderSystemExportExpression(singleSystemExport, findNonWhiteSpace(code.original, operatorPos + 1), separator === null ? contentEnd : separator, code, options);\n }\n if (isInDeclaration) {\n separatorString += ',';\n }\n else {\n if (hasRenderedContent) {\n separatorString += ';';\n }\n leadingString += `${this.kind} `;\n isInDeclaration = true;\n }\n }\n if (renderedContentEnd === lastSeparatorPos + 1) {\n code.overwrite(lastSeparatorPos, renderedContentEnd, separatorString + leadingString);\n }\n else {\n code.overwrite(lastSeparatorPos, lastSeparatorPos + 1, separatorString);\n code.appendLeft(renderedContentEnd, leadingString);\n }\n actualContentEnd = contentEnd;\n renderedContentEnd = end;\n hasRenderedContent = true;\n lastSeparatorPos = separator;\n separatorString = nextSeparatorString;\n }\n this.renderDeclarationEnd(code, separatorString, lastSeparatorPos, actualContentEnd, renderedContentEnd, aggregatedSystemExports, options);\n }\n}\nfunction gatherSystemExportsAndGetSingleExport(separatedNodes, options, aggregatedSystemExports) {\n let singleSystemExport = null;\n if (options.format === 'system') {\n for (const { node } of separatedNodes) {\n if (node.id instanceof Identifier &&\n node.init &&\n aggregatedSystemExports.length === 0 &&\n options.exportNamesByVariable.get(node.id.variable)?.length === 1) {\n singleSystemExport = node.id.variable;\n aggregatedSystemExports.push(singleSystemExport);\n }\n else {\n node.id.addExportedVariables(aggregatedSystemExports, options.exportNamesByVariable);\n }\n }\n if (aggregatedSystemExports.length > 1) {\n singleSystemExport = null;\n }\n else if (singleSystemExport) {\n aggregatedSystemExports.length = 0;\n }\n }\n return singleSystemExport;\n}\n\nclass WhileStatement extends NodeBase {\n hasEffects(context) {\n if (this.test.hasEffects(context))\n return true;\n return hasLoopBodyEffects(context, this.body);\n }\n include(context, includeChildrenRecursively) {\n this.included = true;\n this.test.include(context, includeChildrenRecursively);\n includeLoopBody(context, this.body, includeChildrenRecursively);\n }\n}\n\nclass YieldExpression extends NodeBase {\n hasEffects(context) {\n if (!this.deoptimized)\n this.applyDeoptimizations();\n return !(context.ignore.returnYield && !this.argument?.hasEffects(context));\n }\n render(code, options) {\n if (this.argument) {\n this.argument.render(code, options, { preventASI: true });\n if (this.argument.start === this.start + 5 /* 'yield'.length */) {\n code.prependLeft(this.start + 5, ' ');\n }\n }\n }\n}\n\n// This file is generated by scripts/generate-buffer-parsers.js.\n// Do not edit this file directly.\nfunction convertProgram(buffer, parent, parentScope) {\n return convertNode(parent, parentScope, 0, getAstBuffer(buffer));\n}\nconst nodeTypeStrings = [\n 'PanicError',\n 'ParseError',\n 'ArrayExpression',\n 'ArrayPattern',\n 'ArrowFunctionExpression',\n 'AssignmentExpression',\n 'AssignmentPattern',\n 'AwaitExpression',\n 'BinaryExpression',\n 'BlockStatement',\n 'BreakStatement',\n 'CallExpression',\n 'CatchClause',\n 'ChainExpression',\n 'ClassBody',\n 'ClassDeclaration',\n 'ClassExpression',\n 'ConditionalExpression',\n 'ContinueStatement',\n 'DebuggerStatement',\n 'Decorator',\n 'ExpressionStatement',\n 'DoWhileStatement',\n 'EmptyStatement',\n 'ExportAllDeclaration',\n 'ExportDefaultDeclaration',\n 'ExportNamedDeclaration',\n 'ExportSpecifier',\n 'ExpressionStatement',\n 'ForInStatement',\n 'ForOfStatement',\n 'ForStatement',\n 'FunctionDeclaration',\n 'FunctionExpression',\n 'Identifier',\n 'IfStatement',\n 'ImportAttribute',\n 'ImportDeclaration',\n 'ImportDefaultSpecifier',\n 'ImportExpression',\n 'ImportNamespaceSpecifier',\n 'ImportSpecifier',\n 'LabeledStatement',\n 'Literal',\n 'Literal',\n 'Literal',\n 'Literal',\n 'Literal',\n 'Literal',\n 'LogicalExpression',\n 'MemberExpression',\n 'MetaProperty',\n 'MethodDefinition',\n 'NewExpression',\n 'ObjectExpression',\n 'ObjectPattern',\n 'PrivateIdentifier',\n 'Program',\n 'Property',\n 'PropertyDefinition',\n 'RestElement',\n 'ReturnStatement',\n 'SequenceExpression',\n 'SpreadElement',\n 'StaticBlock',\n 'Super',\n 'SwitchCase',\n 'SwitchStatement',\n 'TaggedTemplateExpression',\n 'TemplateElement',\n 'TemplateLiteral',\n 'ThisExpression',\n 'ThrowStatement',\n 'TryStatement',\n 'UnaryExpression',\n 'UpdateExpression',\n 'VariableDeclaration',\n 'VariableDeclarator',\n 'WhileStatement',\n 'YieldExpression'\n];\nconst nodeConstructors$1 = [\n PanicError,\n ParseError,\n ArrayExpression,\n ArrayPattern,\n ArrowFunctionExpression,\n AssignmentExpression,\n AssignmentPattern,\n AwaitExpression,\n BinaryExpression,\n BlockStatement,\n BreakStatement,\n CallExpression,\n CatchClause,\n ChainExpression,\n ClassBody,\n ClassDeclaration,\n ClassExpression,\n ConditionalExpression,\n ContinueStatement,\n DebuggerStatement,\n Decorator,\n ExpressionStatement,\n DoWhileStatement,\n EmptyStatement,\n ExportAllDeclaration,\n ExportDefaultDeclaration,\n ExportNamedDeclaration,\n ExportSpecifier,\n ExpressionStatement,\n ForInStatement,\n ForOfStatement,\n ForStatement,\n FunctionDeclaration,\n FunctionExpression,\n Identifier,\n IfStatement,\n ImportAttribute,\n ImportDeclaration,\n ImportDefaultSpecifier,\n ImportExpression,\n ImportNamespaceSpecifier,\n ImportSpecifier,\n LabeledStatement,\n Literal,\n Literal,\n Literal,\n Literal,\n Literal,\n Literal,\n LogicalExpression,\n MemberExpression,\n MetaProperty,\n MethodDefinition,\n NewExpression,\n ObjectExpression,\n ObjectPattern,\n PrivateIdentifier,\n Program,\n Property,\n PropertyDefinition,\n RestElement,\n ReturnStatement,\n SequenceExpression,\n SpreadElement,\n StaticBlock,\n Super,\n SwitchCase,\n SwitchStatement,\n TaggedTemplateExpression,\n TemplateElement,\n TemplateLiteral,\n ThisExpression,\n ThrowStatement,\n TryStatement,\n UnaryExpression,\n UpdateExpression,\n VariableDeclaration,\n VariableDeclarator,\n WhileStatement,\n YieldExpression\n];\nconst bufferParsers = [\n function panicError(node, position, buffer) {\n node.message = buffer.convertString(buffer[position]);\n },\n function parseError(node, position, buffer) {\n node.message = buffer.convertString(buffer[position]);\n },\n function arrayExpression(node, position, buffer) {\n const { scope } = node;\n node.elements = convertNodeList(node, scope, buffer[position], buffer);\n },\n function arrayPattern(node, position, buffer) {\n const { scope } = node;\n node.elements = convertNodeList(node, scope, buffer[position], buffer);\n },\n function arrowFunctionExpression(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.async = (flags & 1) === 1;\n node.expression = (flags & 2) === 2;\n node.generator = (flags & 4) === 4;\n const annotations = (node.annotations = convertAnnotations(buffer[position + 1], buffer));\n node.annotationNoSideEffects = annotations.some(comment => comment.type === 'noSideEffects');\n const parameters = (node.params = convertNodeList(node, scope, buffer[position + 2], buffer));\n scope.addParameterVariables(parameters.map(parameter => parameter.declare('parameter', UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement);\n node.body = convertNode(node, scope.bodyScope, buffer[position + 3], buffer);\n },\n function assignmentExpression(node, position, buffer) {\n const { scope } = node;\n node.operator = FIXED_STRINGS[buffer[position]];\n node.left = convertNode(node, scope, buffer[position + 1], buffer);\n node.right = convertNode(node, scope, buffer[position + 2], buffer);\n },\n function assignmentPattern(node, position, buffer) {\n const { scope } = node;\n node.left = convertNode(node, scope, buffer[position], buffer);\n node.right = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function awaitExpression(node, position, buffer) {\n const { scope } = node;\n node.argument = convertNode(node, scope, buffer[position], buffer);\n },\n function binaryExpression(node, position, buffer) {\n const { scope } = node;\n node.operator = FIXED_STRINGS[buffer[position]];\n node.left = convertNode(node, scope, buffer[position + 1], buffer);\n node.right = convertNode(node, scope, buffer[position + 2], buffer);\n },\n function blockStatement(node, position, buffer) {\n const { scope } = node;\n node.body = convertNodeList(node, scope, buffer[position], buffer);\n },\n function breakStatement(node, position, buffer) {\n const { scope } = node;\n const labelPosition = buffer[position];\n node.label = labelPosition === 0 ? null : convertNode(node, scope, labelPosition, buffer);\n },\n function callExpression(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.optional = (flags & 1) === 1;\n node.annotations = convertAnnotations(buffer[position + 1], buffer);\n node.callee = convertNode(node, scope, buffer[position + 2], buffer);\n node.arguments = convertNodeList(node, scope, buffer[position + 3], buffer);\n },\n function catchClause(node, position, buffer) {\n const { scope } = node;\n const parameterPosition = buffer[position];\n const parameter = (node.param =\n parameterPosition === 0 ? null : convertNode(node, scope, parameterPosition, buffer));\n parameter?.declare('parameter', UNKNOWN_EXPRESSION);\n node.body = convertNode(node, scope.bodyScope, buffer[position + 1], buffer);\n },\n function chainExpression(node, position, buffer) {\n const { scope } = node;\n node.expression = convertNode(node, scope, buffer[position], buffer);\n },\n function classBody(node, position, buffer) {\n const { scope } = node;\n const bodyPosition = buffer[position];\n const body = (node.body = []);\n if (bodyPosition) {\n const length = buffer[bodyPosition];\n for (let index = 0; index < length; index++) {\n const nodePosition = buffer[bodyPosition + 1 + index];\n body.push(convertNode(node, (buffer[nodePosition + 3] & 1) === 0 ? scope.instanceScope : scope, nodePosition, buffer));\n }\n }\n },\n function classDeclaration(node, position, buffer) {\n const { scope } = node;\n node.decorators = convertNodeList(node, scope, buffer[position], buffer);\n const idPosition = buffer[position + 1];\n node.id =\n idPosition === 0 ? null : convertNode(node, scope.parent, idPosition, buffer);\n const superClassPosition = buffer[position + 2];\n node.superClass =\n superClassPosition === 0 ? null : convertNode(node, scope, superClassPosition, buffer);\n node.body = convertNode(node, scope, buffer[position + 3], buffer);\n },\n function classExpression(node, position, buffer) {\n const { scope } = node;\n node.decorators = convertNodeList(node, scope, buffer[position], buffer);\n const idPosition = buffer[position + 1];\n node.id = idPosition === 0 ? null : convertNode(node, scope, idPosition, buffer);\n const superClassPosition = buffer[position + 2];\n node.superClass =\n superClassPosition === 0 ? null : convertNode(node, scope, superClassPosition, buffer);\n node.body = convertNode(node, scope, buffer[position + 3], buffer);\n },\n function conditionalExpression(node, position, buffer) {\n const { scope } = node;\n node.test = convertNode(node, scope, buffer[position], buffer);\n node.consequent = convertNode(node, scope, buffer[position + 1], buffer);\n node.alternate = convertNode(node, scope, buffer[position + 2], buffer);\n },\n function continueStatement(node, position, buffer) {\n const { scope } = node;\n const labelPosition = buffer[position];\n node.label = labelPosition === 0 ? null : convertNode(node, scope, labelPosition, buffer);\n },\n function debuggerStatement() { },\n function decorator(node, position, buffer) {\n const { scope } = node;\n node.expression = convertNode(node, scope, buffer[position], buffer);\n },\n function directive(node, position, buffer) {\n const { scope } = node;\n node.directive = buffer.convertString(buffer[position]);\n node.expression = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function doWhileStatement(node, position, buffer) {\n const { scope } = node;\n node.body = convertNode(node, scope, buffer[position], buffer);\n node.test = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function emptyStatement() { },\n function exportAllDeclaration(node, position, buffer) {\n const { scope } = node;\n const exportedPosition = buffer[position];\n node.exported =\n exportedPosition === 0 ? null : convertNode(node, scope, exportedPosition, buffer);\n node.source = convertNode(node, scope, buffer[position + 1], buffer);\n node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer);\n },\n function exportDefaultDeclaration(node, position, buffer) {\n const { scope } = node;\n node.declaration = convertNode(node, scope, buffer[position], buffer);\n },\n function exportNamedDeclaration(node, position, buffer) {\n const { scope } = node;\n node.specifiers = convertNodeList(node, scope, buffer[position], buffer);\n const sourcePosition = buffer[position + 1];\n node.source = sourcePosition === 0 ? null : convertNode(node, scope, sourcePosition, buffer);\n node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer);\n const declarationPosition = buffer[position + 3];\n node.declaration =\n declarationPosition === 0 ? null : convertNode(node, scope, declarationPosition, buffer);\n },\n function exportSpecifier(node, position, buffer) {\n const { scope } = node;\n node.local = convertNode(node, scope, buffer[position], buffer);\n const exportedPosition = buffer[position + 1];\n node.exported =\n exportedPosition === 0 ? node.local : convertNode(node, scope, exportedPosition, buffer);\n },\n function expressionStatement(node, position, buffer) {\n const { scope } = node;\n node.expression = convertNode(node, scope, buffer[position], buffer);\n },\n function forInStatement(node, position, buffer) {\n const { scope } = node;\n node.left = convertNode(node, scope, buffer[position], buffer);\n node.right = convertNode(node, scope, buffer[position + 1], buffer);\n node.body = convertNode(node, scope, buffer[position + 2], buffer);\n },\n function forOfStatement(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.await = (flags & 1) === 1;\n node.left = convertNode(node, scope, buffer[position + 1], buffer);\n node.right = convertNode(node, scope, buffer[position + 2], buffer);\n node.body = convertNode(node, scope, buffer[position + 3], buffer);\n },\n function forStatement(node, position, buffer) {\n const { scope } = node;\n const initPosition = buffer[position];\n node.init = initPosition === 0 ? null : convertNode(node, scope, initPosition, buffer);\n const testPosition = buffer[position + 1];\n node.test = testPosition === 0 ? null : convertNode(node, scope, testPosition, buffer);\n const updatePosition = buffer[position + 2];\n node.update = updatePosition === 0 ? null : convertNode(node, scope, updatePosition, buffer);\n node.body = convertNode(node, scope, buffer[position + 3], buffer);\n },\n function functionDeclaration(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.async = (flags & 1) === 1;\n node.generator = (flags & 2) === 2;\n const annotations = (node.annotations = convertAnnotations(buffer[position + 1], buffer));\n node.annotationNoSideEffects = annotations.some(comment => comment.type === 'noSideEffects');\n const idPosition = buffer[position + 2];\n node.id =\n idPosition === 0 ? null : convertNode(node, scope.parent, idPosition, buffer);\n const parameters = (node.params = convertNodeList(node, scope, buffer[position + 3], buffer));\n scope.addParameterVariables(parameters.map(parameter => parameter.declare('parameter', UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement);\n node.body = convertNode(node, scope.bodyScope, buffer[position + 4], buffer);\n },\n function functionExpression(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.async = (flags & 1) === 1;\n node.generator = (flags & 2) === 2;\n const annotations = (node.annotations = convertAnnotations(buffer[position + 1], buffer));\n node.annotationNoSideEffects = annotations.some(comment => comment.type === 'noSideEffects');\n const idPosition = buffer[position + 2];\n node.id = idPosition === 0 ? null : convertNode(node, node.idScope, idPosition, buffer);\n const parameters = (node.params = convertNodeList(node, scope, buffer[position + 3], buffer));\n scope.addParameterVariables(parameters.map(parameter => parameter.declare('parameter', UNKNOWN_EXPRESSION)), parameters[parameters.length - 1] instanceof RestElement);\n node.body = convertNode(node, scope.bodyScope, buffer[position + 4], buffer);\n },\n function identifier(node, position, buffer) {\n node.name = buffer.convertString(buffer[position]);\n },\n function ifStatement(node, position, buffer) {\n const { scope } = node;\n node.test = convertNode(node, scope, buffer[position], buffer);\n node.consequent = convertNode(node, (node.consequentScope = new TrackingScope(scope)), buffer[position + 1], buffer);\n const alternatePosition = buffer[position + 2];\n node.alternate =\n alternatePosition === 0\n ? null\n : convertNode(node, (node.alternateScope = new TrackingScope(scope)), alternatePosition, buffer);\n },\n function importAttribute(node, position, buffer) {\n const { scope } = node;\n node.key = convertNode(node, scope, buffer[position], buffer);\n node.value = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function importDeclaration(node, position, buffer) {\n const { scope } = node;\n node.specifiers = convertNodeList(node, scope, buffer[position], buffer);\n node.source = convertNode(node, scope, buffer[position + 1], buffer);\n node.attributes = convertNodeList(node, scope, buffer[position + 2], buffer);\n },\n function importDefaultSpecifier(node, position, buffer) {\n const { scope } = node;\n node.local = convertNode(node, scope, buffer[position], buffer);\n },\n function importExpression(node, position, buffer) {\n const { scope } = node;\n node.source = convertNode(node, scope, buffer[position], buffer);\n node.sourceAstNode = convertNode$1(buffer[position], buffer);\n const optionsPosition = buffer[position + 1];\n node.options = optionsPosition === 0 ? null : convertNode(node, scope, optionsPosition, buffer);\n },\n function importNamespaceSpecifier(node, position, buffer) {\n const { scope } = node;\n node.local = convertNode(node, scope, buffer[position], buffer);\n },\n function importSpecifier(node, position, buffer) {\n const { scope } = node;\n const importedPosition = buffer[position];\n node.local = convertNode(node, scope, buffer[position + 1], buffer);\n node.imported =\n importedPosition === 0 ? node.local : convertNode(node, scope, importedPosition, buffer);\n },\n function labeledStatement(node, position, buffer) {\n const { scope } = node;\n node.label = convertNode(node, scope, buffer[position], buffer);\n node.body = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function literalBigInt(node, position, buffer) {\n const bigint = (node.bigint = buffer.convertString(buffer[position]));\n node.raw = buffer.convertString(buffer[position + 1]);\n node.value = BigInt(bigint);\n },\n function literalBoolean(node, position, buffer) {\n const flags = buffer[position];\n const value = (node.value = (flags & 1) === 1);\n node.raw = value ? 'true' : 'false';\n },\n function literalNull(node) {\n node.value = null;\n },\n function literalNumber(node, position, buffer) {\n const rawPosition = buffer[position];\n node.raw = rawPosition === 0 ? undefined : buffer.convertString(rawPosition);\n node.value = new DataView(buffer.buffer).getFloat64((position + 1) << 2, true);\n },\n function literalRegExp(node, position, buffer) {\n const flags = buffer.convertString(buffer[position]);\n const pattern = buffer.convertString(buffer[position + 1]);\n node.raw = `/${pattern}/${flags}`;\n node.regex = { flags, pattern };\n node.value = new RegExp(pattern, flags);\n },\n function literalString(node, position, buffer) {\n node.value = buffer.convertString(buffer[position]);\n const rawPosition = buffer[position + 1];\n node.raw = rawPosition === 0 ? undefined : buffer.convertString(rawPosition);\n },\n function logicalExpression(node, position, buffer) {\n const { scope } = node;\n node.operator = FIXED_STRINGS[buffer[position]];\n node.left = convertNode(node, scope, buffer[position + 1], buffer);\n node.right = convertNode(node, scope, buffer[position + 2], buffer);\n },\n function memberExpression(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.computed = (flags & 1) === 1;\n node.optional = (flags & 2) === 2;\n node.object = convertNode(node, scope, buffer[position + 1], buffer);\n node.property = convertNode(node, scope, buffer[position + 2], buffer);\n },\n function metaProperty(node, position, buffer) {\n const { scope } = node;\n node.meta = convertNode(node, scope, buffer[position], buffer);\n node.property = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function methodDefinition(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.static = (flags & 1) === 1;\n node.computed = (flags & 2) === 2;\n node.decorators = convertNodeList(node, scope, buffer[position + 1], buffer);\n node.key = convertNode(node, scope, buffer[position + 2], buffer);\n node.value = convertNode(node, scope, buffer[position + 3], buffer);\n node.kind = FIXED_STRINGS[buffer[position + 4]];\n },\n function newExpression(node, position, buffer) {\n const { scope } = node;\n node.annotations = convertAnnotations(buffer[position], buffer);\n node.callee = convertNode(node, scope, buffer[position + 1], buffer);\n node.arguments = convertNodeList(node, scope, buffer[position + 2], buffer);\n },\n function objectExpression(node, position, buffer) {\n const { scope } = node;\n node.properties = convertNodeList(node, scope, buffer[position], buffer);\n },\n function objectPattern(node, position, buffer) {\n const { scope } = node;\n node.properties = convertNodeList(node, scope, buffer[position], buffer);\n },\n function privateIdentifier(node, position, buffer) {\n node.name = buffer.convertString(buffer[position]);\n },\n function program(node, position, buffer) {\n const { scope } = node;\n node.body = convertNodeList(node, scope, buffer[position], buffer);\n node.invalidAnnotations = convertAnnotations(buffer[position + 1], buffer);\n },\n function property(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.method = (flags & 1) === 1;\n node.shorthand = (flags & 2) === 2;\n node.computed = (flags & 4) === 4;\n const keyPosition = buffer[position + 1];\n node.value = convertNode(node, scope, buffer[position + 2], buffer);\n node.kind = FIXED_STRINGS[buffer[position + 3]];\n node.key = keyPosition === 0 ? node.value : convertNode(node, scope, keyPosition, buffer);\n },\n function propertyDefinition(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.static = (flags & 1) === 1;\n node.computed = (flags & 2) === 2;\n node.decorators = convertNodeList(node, scope, buffer[position + 1], buffer);\n node.key = convertNode(node, scope, buffer[position + 2], buffer);\n const valuePosition = buffer[position + 3];\n node.value = valuePosition === 0 ? null : convertNode(node, scope, valuePosition, buffer);\n },\n function restElement(node, position, buffer) {\n const { scope } = node;\n node.argument = convertNode(node, scope, buffer[position], buffer);\n },\n function returnStatement(node, position, buffer) {\n const { scope } = node;\n const argumentPosition = buffer[position];\n node.argument =\n argumentPosition === 0 ? null : convertNode(node, scope, argumentPosition, buffer);\n },\n function sequenceExpression(node, position, buffer) {\n const { scope } = node;\n node.expressions = convertNodeList(node, scope, buffer[position], buffer);\n },\n function spreadElement(node, position, buffer) {\n const { scope } = node;\n node.argument = convertNode(node, scope, buffer[position], buffer);\n },\n function staticBlock(node, position, buffer) {\n const { scope } = node;\n node.body = convertNodeList(node, scope, buffer[position], buffer);\n },\n function superElement() { },\n function switchCase(node, position, buffer) {\n const { scope } = node;\n const testPosition = buffer[position];\n node.test = testPosition === 0 ? null : convertNode(node, scope, testPosition, buffer);\n node.consequent = convertNodeList(node, scope, buffer[position + 1], buffer);\n },\n function switchStatement(node, position, buffer) {\n const { scope } = node;\n node.discriminant = convertNode(node, node.parentScope, buffer[position], buffer);\n node.cases = convertNodeList(node, scope, buffer[position + 1], buffer);\n },\n function taggedTemplateExpression(node, position, buffer) {\n const { scope } = node;\n node.tag = convertNode(node, scope, buffer[position], buffer);\n node.quasi = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function templateElement(node, position, buffer) {\n const flags = buffer[position];\n node.tail = (flags & 1) === 1;\n const cookedPosition = buffer[position + 1];\n const cooked = cookedPosition === 0 ? undefined : buffer.convertString(cookedPosition);\n const raw = buffer.convertString(buffer[position + 2]);\n node.value = { cooked, raw };\n },\n function templateLiteral(node, position, buffer) {\n const { scope } = node;\n node.quasis = convertNodeList(node, scope, buffer[position], buffer);\n node.expressions = convertNodeList(node, scope, buffer[position + 1], buffer);\n },\n function thisExpression() { },\n function throwStatement(node, position, buffer) {\n const { scope } = node;\n node.argument = convertNode(node, scope, buffer[position], buffer);\n },\n function tryStatement(node, position, buffer) {\n const { scope } = node;\n node.block = convertNode(node, scope, buffer[position], buffer);\n const handlerPosition = buffer[position + 1];\n node.handler = handlerPosition === 0 ? null : convertNode(node, scope, handlerPosition, buffer);\n const finalizerPosition = buffer[position + 2];\n node.finalizer =\n finalizerPosition === 0 ? null : convertNode(node, scope, finalizerPosition, buffer);\n },\n function unaryExpression(node, position, buffer) {\n const { scope } = node;\n node.operator = FIXED_STRINGS[buffer[position]];\n node.argument = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function updateExpression(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.prefix = (flags & 1) === 1;\n node.operator = FIXED_STRINGS[buffer[position + 1]];\n node.argument = convertNode(node, scope, buffer[position + 2], buffer);\n },\n function variableDeclaration(node, position, buffer) {\n const { scope } = node;\n node.kind = FIXED_STRINGS[buffer[position]];\n node.declarations = convertNodeList(node, scope, buffer[position + 1], buffer);\n },\n function variableDeclarator(node, position, buffer) {\n const { scope } = node;\n node.id = convertNode(node, scope, buffer[position], buffer);\n const initPosition = buffer[position + 1];\n node.init = initPosition === 0 ? null : convertNode(node, scope, initPosition, buffer);\n },\n function whileStatement(node, position, buffer) {\n const { scope } = node;\n node.test = convertNode(node, scope, buffer[position], buffer);\n node.body = convertNode(node, scope, buffer[position + 1], buffer);\n },\n function yieldExpression(node, position, buffer) {\n const { scope } = node;\n const flags = buffer[position];\n node.delegate = (flags & 1) === 1;\n const argumentPosition = buffer[position + 1];\n node.argument =\n argumentPosition === 0 ? null : convertNode(node, scope, argumentPosition, buffer);\n }\n];\nfunction convertNode(parent, parentScope, position, buffer) {\n const nodeType = buffer[position];\n const NodeConstructor = nodeConstructors$1[nodeType];\n /* istanbul ignore if: This should never be executed but is a safeguard against faulty buffers */\n if (!NodeConstructor) {\n console.trace();\n throw new Error(`Unknown node type: ${nodeType}`);\n }\n const node = new NodeConstructor(parent, parentScope);\n node.type = nodeTypeStrings[nodeType];\n node.start = buffer[position + 1];\n node.end = buffer[position + 2];\n bufferParsers[nodeType](node, position + 3, buffer);\n node.initialise();\n return node;\n}\nfunction convertNodeList(parent, parentScope, position, buffer) {\n if (position === 0)\n return EMPTY_ARRAY;\n const length = buffer[position++];\n const list = [];\n for (let index = 0; index < length; index++) {\n const nodePosition = buffer[position++];\n list.push(nodePosition ? convertNode(parent, parentScope, nodePosition, buffer) : null);\n }\n return list;\n}\n\nclass UnknownNode extends NodeBase {\n hasEffects() {\n return true;\n }\n include(context) {\n super.include(context, true);\n }\n}\n\n// This file is generated by scripts/generate-node-index.js.\n// Do not edit this file directly.\nconst nodeConstructors = {\n ArrayExpression,\n ArrayPattern,\n ArrowFunctionExpression,\n AssignmentExpression,\n AssignmentPattern,\n AwaitExpression,\n BinaryExpression,\n BlockStatement,\n BreakStatement,\n CallExpression,\n CatchClause,\n ChainExpression,\n ClassBody,\n ClassDeclaration,\n ClassExpression,\n ConditionalExpression,\n ContinueStatement,\n DebuggerStatement,\n Decorator,\n DoWhileStatement,\n EmptyStatement,\n ExportAllDeclaration,\n ExportDefaultDeclaration,\n ExportNamedDeclaration,\n ExportSpecifier,\n ExpressionStatement,\n ForInStatement,\n ForOfStatement,\n ForStatement,\n FunctionDeclaration,\n FunctionExpression,\n Identifier,\n IfStatement,\n ImportAttribute,\n ImportDeclaration,\n ImportDefaultSpecifier,\n ImportExpression,\n ImportNamespaceSpecifier,\n ImportSpecifier,\n LabeledStatement,\n Literal,\n LogicalExpression,\n MemberExpression,\n MetaProperty,\n MethodDefinition,\n NewExpression,\n ObjectExpression,\n ObjectPattern,\n PanicError,\n ParseError,\n PrivateIdentifier,\n Program,\n Property,\n PropertyDefinition,\n RestElement,\n ReturnStatement,\n SequenceExpression,\n SpreadElement,\n StaticBlock,\n Super,\n SwitchCase,\n SwitchStatement,\n TaggedTemplateExpression,\n TemplateElement,\n TemplateLiteral,\n ThisExpression,\n ThrowStatement,\n TryStatement,\n UnaryExpression,\n UnknownNode,\n UpdateExpression,\n VariableDeclaration,\n VariableDeclarator,\n WhileStatement,\n YieldExpression\n};\n\nconst MISSING_EXPORT_SHIM_VARIABLE = '_missingExportShim';\n\nclass ExportShimVariable extends Variable {\n constructor(module) {\n super(MISSING_EXPORT_SHIM_VARIABLE);\n this.module = module;\n }\n include() {\n super.include();\n this.module.needsExportShim = true;\n }\n}\n\nclass NamespaceVariable extends Variable {\n constructor(context) {\n super(context.getModuleName());\n this.memberVariables = null;\n this.mergedNamespaces = [];\n this.referencedEarly = false;\n this.references = [];\n this.context = context;\n this.module = context.module;\n }\n addReference(identifier) {\n this.references.push(identifier);\n this.name = identifier.name;\n }\n deoptimizeArgumentsOnInteractionAtPath(interaction, path, recursionTracker) {\n if (path.length > 1 || (path.length === 1 && interaction.type === INTERACTION_CALLED)) {\n const key = path[0];\n if (typeof key === 'string') {\n this.getMemberVariables()[key]?.deoptimizeArgumentsOnInteractionAtPath(interaction, path.slice(1), recursionTracker);\n }\n else {\n deoptimizeInteraction(interaction);\n }\n }\n }\n deoptimizePath(path) {\n if (path.length > 1) {\n const key = path[0];\n if (typeof key === 'string') {\n this.getMemberVariables()[key]?.deoptimizePath(path.slice(1));\n }\n }\n }\n getLiteralValueAtPath(path) {\n if (path[0] === SymbolToStringTag) {\n return 'Module';\n }\n return UnknownValue;\n }\n getMemberVariables() {\n if (this.memberVariables) {\n return this.memberVariables;\n }\n const memberVariables = Object.create(null);\n const sortedExports = [...this.context.getExports(), ...this.context.getReexports()].sort();\n for (const name of sortedExports) {\n if (name[0] !== '*' && name !== this.module.info.syntheticNamedExports) {\n const exportedVariable = this.context.traceExport(name);\n if (exportedVariable) {\n memberVariables[name] = exportedVariable;\n }\n }\n }\n return (this.memberVariables = memberVariables);\n }\n hasEffectsOnInteractionAtPath(path, interaction, context) {\n const { type } = interaction;\n if (path.length === 0) {\n // This can only be a call anyway\n return true;\n }\n if (path.length === 1 && type !== INTERACTION_CALLED) {\n return type === INTERACTION_ASSIGNED;\n }\n const key = path[0];\n if (typeof key !== 'string') {\n return true;\n }\n const memberVariable = this.getMemberVariables()[key];\n return (!memberVariable ||\n memberVariable.hasEffectsOnInteractionAtPath(path.slice(1), interaction, context));\n }\n include() {\n super.include();\n this.context.includeAllExports();\n }\n prepare(accessedGlobalsByScope) {\n if (this.mergedNamespaces.length > 0) {\n this.module.scope.addAccessedGlobals([MERGE_NAMESPACES_VARIABLE], accessedGlobalsByScope);\n }\n }\n renderBlock(options) {\n const { exportNamesByVariable, format, freeze, indent: t, symbols, snippets: { _, cnst, getObject, getPropertyAccess, n, s } } = options;\n const memberVariables = this.getMemberVariables();\n const members = Object.entries(memberVariables)\n .filter(([_, variable]) => variable.included)\n .map(([name, variable]) => {\n if (this.referencedEarly || variable.isReassigned || variable === this) {\n return [\n null,\n `get ${stringifyObjectKeyIfNeeded(name)}${_}()${_}{${_}return ${variable.getName(getPropertyAccess)}${s}${_}}`\n ];\n }\n return [name, variable.getName(getPropertyAccess)];\n });\n members.unshift([null, `__proto__:${_}null`]);\n let output = getObject(members, { lineBreakIndent: { base: '', t } });\n if (this.mergedNamespaces.length > 0) {\n const assignmentArguments = this.mergedNamespaces.map(variable => variable.getName(getPropertyAccess));\n output = `/*#__PURE__*/${MERGE_NAMESPACES_VARIABLE}(${output},${_}[${assignmentArguments.join(`,${_}`)}])`;\n }\n else {\n // The helper to merge namespaces will also take care of freezing and toStringTag\n if (symbols) {\n output = `/*#__PURE__*/Object.defineProperty(${output},${_}Symbol.toStringTag,${_}${getToStringTagValue(getObject)})`;\n }\n if (freeze) {\n output = `/*#__PURE__*/Object.freeze(${output})`;\n }\n }\n const name = this.getName(getPropertyAccess);\n output = `${cnst} ${name}${_}=${_}${output};`;\n if (format === 'system' && exportNamesByVariable.has(this)) {\n output += `${n}${getSystemExportStatement([this], options)};`;\n }\n return output;\n }\n renderFirst() {\n return this.referencedEarly;\n }\n setMergedNamespaces(mergedNamespaces) {\n this.mergedNamespaces = mergedNamespaces;\n const moduleExecIndex = this.context.getModuleExecIndex();\n for (const identifier of this.references) {\n const { context } = identifier.scope;\n if (context.getModuleExecIndex() <= moduleExecIndex) {\n this.referencedEarly = true;\n break;\n }\n }\n }\n}\nNamespaceVariable.prototype.isNamespace = true;\n\nclass SyntheticNamedExportVariable extends Variable {\n constructor(context, name, syntheticNamespace) {\n super(name);\n this.baseVariable = null;\n this.context = context;\n this.module = context.module;\n this.syntheticNamespace = syntheticNamespace;\n }\n getBaseVariable() {\n if (this.baseVariable)\n return this.baseVariable;\n let baseVariable = this.syntheticNamespace;\n while (baseVariable instanceof ExportDefaultVariable ||\n baseVariable instanceof SyntheticNamedExportVariable) {\n if (baseVariable instanceof ExportDefaultVariable) {\n const original = baseVariable.getOriginalVariable();\n if (original === baseVariable)\n break;\n baseVariable = original;\n }\n if (baseVariable instanceof SyntheticNamedExportVariable) {\n baseVariable = baseVariable.syntheticNamespace;\n }\n }\n return (this.baseVariable = baseVariable);\n }\n getBaseVariableName() {\n return this.syntheticNamespace.getBaseVariableName();\n }\n getName(getPropertyAccess) {\n return `${this.syntheticNamespace.getName(getPropertyAccess)}${getPropertyAccess(this.name)}`;\n }\n include() {\n super.include();\n this.context.includeVariableInModule(this.syntheticNamespace);\n }\n setRenderNames(baseName, name) {\n super.setRenderNames(baseName, name);\n }\n}\n\nvar BuildPhase;\n(function (BuildPhase) {\n BuildPhase[BuildPhase[\"LOAD_AND_PARSE\"] = 0] = \"LOAD_AND_PARSE\";\n BuildPhase[BuildPhase[\"ANALYSE\"] = 1] = \"ANALYSE\";\n BuildPhase[BuildPhase[\"GENERATE\"] = 2] = \"GENERATE\";\n})(BuildPhase || (BuildPhase = {}));\n\nconst sourceMapCache = new WeakMap();\n/**\n * This clears the decoded array and falls back to the encoded string form.\n * Sourcemap mappings arrays can be very large and holding on to them for longer\n * than is necessary leads to poor heap utilization.\n */\nfunction resetCacheToEncoded(cache) {\n if (cache.encodedMappings === undefined && cache.decodedMappings) {\n cache.encodedMappings = encode(cache.decodedMappings);\n }\n cache.decodedMappings = undefined;\n}\nfunction resetSourcemapCache(map, sourcemapChain) {\n if (map) {\n const cache = sourceMapCache.get(map);\n if (cache) {\n resetCacheToEncoded(cache);\n }\n }\n if (!sourcemapChain) {\n return;\n }\n for (const map of sourcemapChain) {\n if (map.missing)\n continue;\n resetSourcemapCache(map);\n }\n}\nfunction decodedSourcemap(map) {\n if (!map)\n return null;\n if (typeof map === 'string') {\n map = JSON.parse(map);\n }\n if (!map.mappings) {\n return {\n mappings: [],\n names: [],\n sources: [],\n version: 3\n };\n }\n const originalMappings = map.mappings;\n const isAlreadyDecoded = Array.isArray(originalMappings);\n const cache = {\n decodedMappings: isAlreadyDecoded ? originalMappings : undefined,\n encodedMappings: isAlreadyDecoded ? undefined : originalMappings\n };\n const decodedMap = {\n ...map,\n // By moving mappings behind an accessor, we can avoid unneeded computation for cases\n // where the mappings field is never actually accessed. This appears to greatly reduce\n // the overhead of sourcemap decoding in terms of both compute time and memory usage.\n get mappings() {\n if (cache.decodedMappings) {\n return cache.decodedMappings;\n }\n // If decodedMappings doesn't exist then encodedMappings should.\n // The only scenario where cache.encodedMappings should be undefined is if the map\n // this was constructed from was already decoded, or if mappings was set to a new\n // decoded string. In either case, this line shouldn't get hit.\n cache.decodedMappings = cache.encodedMappings ? decode(cache.encodedMappings) : [];\n cache.encodedMappings = undefined;\n return cache.decodedMappings;\n }\n };\n sourceMapCache.set(decodedMap, cache);\n return decodedMap;\n}\n\nfunction getId(m) {\n return m.id;\n}\n\nfunction getOriginalLocation(sourcemapChain, location) {\n const filteredSourcemapChain = sourcemapChain.filter((sourcemap) => !sourcemap.missing);\n traceSourcemap: while (filteredSourcemapChain.length > 0) {\n const sourcemap = filteredSourcemapChain.pop();\n const line = sourcemap.mappings[location.line - 1];\n if (line) {\n const filteredLine = line.filter((segment) => segment.length > 1);\n const lastSegment = filteredLine[filteredLine.length - 1];\n for (const segment of filteredLine) {\n if (segment[0] >= location.column || segment === lastSegment) {\n location = {\n column: segment[3],\n line: segment[2] + 1\n };\n continue traceSourcemap;\n }\n }\n }\n throw new Error(\"Can't resolve original location of error.\");\n }\n return location;\n}\n\nconst ATTRIBUTE_KEYWORDS = new Set(['assert', 'with']);\nfunction getAttributesFromImportExpression(node) {\n const { scope: { context }, options, start } = node;\n if (!(options instanceof ObjectExpression)) {\n if (options) {\n context.module.log(LOGLEVEL_WARN, logImportAttributeIsInvalid(context.module.id), start);\n }\n return EMPTY_OBJECT;\n }\n const assertProperty = options.properties.find((property) => ATTRIBUTE_KEYWORDS.has(getPropertyKey(property)))?.value;\n if (!assertProperty) {\n return EMPTY_OBJECT;\n }\n if (!(assertProperty instanceof ObjectExpression)) {\n context.module.log(LOGLEVEL_WARN, logImportOptionsAreInvalid(context.module.id), start);\n return EMPTY_OBJECT;\n }\n const assertFields = assertProperty.properties\n .map(property => {\n const key = getPropertyKey(property);\n if (typeof key === 'string' &&\n typeof property.value.value === 'string') {\n return [key, property.value.value];\n }\n context.module.log(LOGLEVEL_WARN, logImportAttributeIsInvalid(context.module.id), property.start);\n return null;\n })\n .filter((property) => !!property);\n if (assertFields.length > 0) {\n return Object.fromEntries(assertFields);\n }\n return EMPTY_OBJECT;\n}\nconst getPropertyKey = (property) => {\n const key = property.key;\n return (key &&\n !property.computed &&\n (key.name || key.value));\n};\nfunction getAttributesFromImportExportDeclaration(attributes) {\n return attributes?.length\n ? Object.fromEntries(attributes.map(assertion => [getPropertyKey(assertion), assertion.value.value]))\n : EMPTY_OBJECT;\n}\nfunction doAttributesDiffer(assertionA, assertionB) {\n const keysA = Object.keys(assertionA);\n return (keysA.length !== Object.keys(assertionB).length ||\n keysA.some(key => assertionA[key] !== assertionB[key]));\n}\n\nlet timers = new Map();\nfunction getPersistedLabel(label, level) {\n switch (level) {\n case 1: {\n return `# ${label}`;\n }\n case 2: {\n return `## ${label}`;\n }\n case 3: {\n return label;\n }\n default: {\n return `- ${label}`;\n }\n }\n}\nfunction timeStartImpl(label, level = 3) {\n label = getPersistedLabel(label, level);\n const startMemory = process$1.memoryUsage().heapUsed;\n const startTime = performance.now();\n const timer = timers.get(label);\n if (timer === undefined) {\n timers.set(label, {\n memory: 0,\n startMemory,\n startTime,\n time: 0,\n totalMemory: 0\n });\n }\n else {\n timer.startMemory = startMemory;\n timer.startTime = startTime;\n }\n}\nfunction timeEndImpl(label, level = 3) {\n label = getPersistedLabel(label, level);\n const timer = timers.get(label);\n if (timer !== undefined) {\n const currentMemory = process$1.memoryUsage().heapUsed;\n timer.memory += currentMemory - timer.startMemory;\n timer.time += performance.now() - timer.startTime;\n timer.totalMemory = Math.max(timer.totalMemory, currentMemory);\n }\n}\nfunction getTimings() {\n const newTimings = {};\n for (const [label, { memory, time, totalMemory }] of timers) {\n newTimings[label] = [time, memory, totalMemory];\n }\n return newTimings;\n}\nlet timeStart = doNothing;\nlet timeEnd = doNothing;\nconst TIMED_PLUGIN_HOOKS = [\n 'augmentChunkHash',\n 'buildEnd',\n 'buildStart',\n 'generateBundle',\n 'load',\n 'moduleParsed',\n 'options',\n 'outputOptions',\n 'renderChunk',\n 'renderDynamicImport',\n 'renderStart',\n 'resolveDynamicImport',\n 'resolveFileUrl',\n 'resolveId',\n 'resolveImportMeta',\n 'shouldTransformCachedModule',\n 'transform',\n 'writeBundle'\n];\nfunction getPluginWithTimers(plugin, index) {\n if (plugin._hasTimer)\n return plugin;\n plugin._hasTimer = true;\n for (const hook of TIMED_PLUGIN_HOOKS) {\n if (hook in plugin) {\n let timerLabel = `plugin ${index}`;\n if (plugin.name) {\n timerLabel += ` (${plugin.name})`;\n }\n timerLabel += ` - ${hook}`;\n const handler = function (...parameters) {\n timeStart(timerLabel, 4);\n const result = hookFunction.apply(this, parameters);\n timeEnd(timerLabel, 4);\n return result;\n };\n let hookFunction;\n if (typeof plugin[hook].handler === 'function') {\n hookFunction = plugin[hook].handler;\n plugin[hook].handler = handler;\n }\n else {\n hookFunction = plugin[hook];\n plugin[hook] = handler;\n }\n }\n }\n return plugin;\n}\nfunction initialiseTimers(inputOptions) {\n if (inputOptions.perf) {\n timers = new Map();\n timeStart = timeStartImpl;\n timeEnd = timeEndImpl;\n inputOptions.plugins = inputOptions.plugins.map(getPluginWithTimers);\n }\n else {\n timeStart = doNothing;\n timeEnd = doNothing;\n }\n}\n\nfunction markModuleAndImpureDependenciesAsExecuted(baseModule) {\n baseModule.isExecuted = true;\n const modules = [baseModule];\n const visitedModules = new Set();\n for (const module of modules) {\n for (const dependency of [...module.dependencies, ...module.implicitlyLoadedBefore]) {\n if (!(dependency instanceof ExternalModule) &&\n !dependency.isExecuted &&\n (dependency.info.moduleSideEffects || module.implicitlyLoadedBefore.has(dependency)) &&\n !visitedModules.has(dependency.id)) {\n dependency.isExecuted = true;\n visitedModules.add(dependency.id);\n modules.push(dependency);\n }\n }\n }\n}\n\nconst MISSING_EXPORT_SHIM_DESCRIPTION = {\n identifier: null,\n localName: MISSING_EXPORT_SHIM_VARIABLE\n};\nfunction getVariableForExportNameRecursive(target, name, importerForSideEffects, isExportAllSearch, searchedNamesAndModules = new Map()) {\n const searchedModules = searchedNamesAndModules.get(name);\n if (searchedModules) {\n if (searchedModules.has(target)) {\n return isExportAllSearch ? [null] : error(logCircularReexport(name, target.id));\n }\n searchedModules.add(target);\n }\n else {\n searchedNamesAndModules.set(name, new Set([target]));\n }\n return target.getVariableForExportName(name, {\n importerForSideEffects,\n isExportAllSearch,\n searchedNamesAndModules\n });\n}\nfunction getAndExtendSideEffectModules(variable, module) {\n const sideEffectModules = getOrCreate(module.sideEffectDependenciesByVariable, variable, (getNewSet));\n let currentVariable = variable;\n const referencedVariables = new Set([currentVariable]);\n while (true) {\n const importingModule = currentVariable.module;\n currentVariable =\n currentVariable instanceof ExportDefaultVariable\n ? currentVariable.getDirectOriginalVariable()\n : currentVariable instanceof SyntheticNamedExportVariable\n ? currentVariable.syntheticNamespace\n : null;\n if (!currentVariable || referencedVariables.has(currentVariable)) {\n break;\n }\n referencedVariables.add(currentVariable);\n sideEffectModules.add(importingModule);\n const originalSideEffects = importingModule.sideEffectDependenciesByVariable.get(currentVariable);\n if (originalSideEffects) {\n for (const module of originalSideEffects) {\n sideEffectModules.add(module);\n }\n }\n }\n return sideEffectModules;\n}\nclass Module {\n constructor(graph, id, options, isEntry, moduleSideEffects, syntheticNamedExports, meta, attributes) {\n this.graph = graph;\n this.id = id;\n this.options = options;\n this.alternativeReexportModules = new Map();\n this.chunkFileNames = new Set();\n this.chunkNames = [];\n this.cycles = new Set();\n this.dependencies = new Set();\n this.dynamicDependencies = new Set();\n this.dynamicImporters = [];\n this.dynamicImports = [];\n this.execIndex = Infinity;\n this.implicitlyLoadedAfter = new Set();\n this.implicitlyLoadedBefore = new Set();\n this.importDescriptions = new Map();\n this.importMetas = [];\n this.importedFromNotTreeshaken = false;\n this.importers = [];\n this.includedDynamicImporters = [];\n this.includedImports = new Set();\n this.isExecuted = false;\n this.isUserDefinedEntryPoint = false;\n this.needsExportShim = false;\n this.sideEffectDependenciesByVariable = new Map();\n this.sourcesWithAttributes = new Map();\n this.allExportNames = null;\n this.ast = null;\n this.exportAllModules = [];\n this.exportAllSources = new Set();\n this.exportNamesByVariable = null;\n this.exportShimVariable = new ExportShimVariable(this);\n this.exports = new Map();\n this.namespaceReexportsByName = new Map();\n this.reexportDescriptions = new Map();\n this.relevantDependencies = null;\n this.syntheticExports = new Map();\n this.syntheticNamespace = null;\n this.transformDependencies = [];\n this.transitiveReexports = null;\n this.excludeFromSourcemap = /\\0/.test(id);\n this.context = options.moduleContext(id);\n this.preserveSignature = this.options.preserveEntrySignatures;\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const module = this;\n const { dynamicImports, dynamicImporters, exportAllSources, exports, implicitlyLoadedAfter, implicitlyLoadedBefore, importers, reexportDescriptions, sourcesWithAttributes } = this;\n this.info = {\n ast: null,\n attributes,\n code: null,\n get dynamicallyImportedIdResolutions() {\n return dynamicImports\n .map(({ argument }) => typeof argument === 'string' && module.resolvedIds[argument])\n .filter(Boolean);\n },\n get dynamicallyImportedIds() {\n // We cannot use this.dynamicDependencies because this is needed before\n // dynamicDependencies are populated\n return dynamicImports.map(({ id }) => id).filter((id) => id != null);\n },\n get dynamicImporters() {\n return dynamicImporters.sort();\n },\n get exportedBindings() {\n const exportBindings = { '.': [...exports.keys()] };\n for (const [name, { source }] of reexportDescriptions) {\n (exportBindings[source] ??= []).push(name);\n }\n for (const source of exportAllSources) {\n (exportBindings[source] ??= []).push('*');\n }\n return exportBindings;\n },\n get exports() {\n return [\n ...exports.keys(),\n ...reexportDescriptions.keys(),\n ...[...exportAllSources].map(() => '*')\n ];\n },\n get hasDefaultExport() {\n // This information is only valid after parsing\n if (!module.ast) {\n return null;\n }\n return module.exports.has('default') || reexportDescriptions.has('default');\n },\n id,\n get implicitlyLoadedAfterOneOf() {\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(implicitlyLoadedAfter, getId).sort();\n },\n get implicitlyLoadedBefore() {\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(implicitlyLoadedBefore, getId).sort();\n },\n get importedIdResolutions() {\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(sourcesWithAttributes.keys(), source => module.resolvedIds[source]).filter(Boolean);\n },\n get importedIds() {\n // We cannot use this.dependencies because this is needed before\n // dependencies are populated\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(sourcesWithAttributes.keys(), source => module.resolvedIds[source]?.id).filter(Boolean);\n },\n get importers() {\n return importers.sort();\n },\n isEntry,\n isExternal: false,\n get isIncluded() {\n if (graph.phase !== BuildPhase.GENERATE) {\n return null;\n }\n return module.isIncluded();\n },\n meta: { ...meta },\n moduleSideEffects,\n syntheticNamedExports\n };\n }\n basename() {\n const base = basename(this.id);\n const extension = extname(this.id);\n return makeLegal(extension ? base.slice(0, -extension.length) : base);\n }\n bindReferences() {\n this.ast.bind();\n }\n cacheInfoGetters() {\n cacheObjectGetters(this.info, [\n 'dynamicallyImportedIdResolutions',\n 'dynamicallyImportedIds',\n 'dynamicImporters',\n 'exportedBindings',\n 'exports',\n 'hasDefaultExport',\n 'implicitlyLoadedAfterOneOf',\n 'implicitlyLoadedBefore',\n 'importedIdResolutions',\n 'importedIds',\n 'importers'\n ]);\n }\n error(properties, pos) {\n pos !== undefined && this.addLocationToLogProps(properties, pos);\n return error(properties);\n }\n // sum up the length of all ast nodes that are included\n estimateSize() {\n let size = 0;\n for (const node of this.ast.body) {\n if (node.included) {\n size += node.end - node.start;\n }\n }\n return size;\n }\n getAllExportNames() {\n if (this.allExportNames) {\n return this.allExportNames;\n }\n this.allExportNames = new Set([...this.exports.keys(), ...this.reexportDescriptions.keys()]);\n for (const module of this.exportAllModules) {\n if (module instanceof ExternalModule) {\n this.allExportNames.add(`*${module.id}`);\n continue;\n }\n for (const name of module.getAllExportNames()) {\n if (name !== 'default')\n this.allExportNames.add(name);\n }\n }\n // We do not count the synthetic namespace as a regular export to hide it\n // from entry signatures and namespace objects\n if (typeof this.info.syntheticNamedExports === 'string') {\n this.allExportNames.delete(this.info.syntheticNamedExports);\n }\n return this.allExportNames;\n }\n getDependenciesToBeIncluded() {\n if (this.relevantDependencies)\n return this.relevantDependencies;\n this.relevantDependencies = new Set();\n const necessaryDependencies = new Set();\n const alwaysCheckedDependencies = new Set();\n const dependencyVariables = new Set(this.includedImports);\n if (this.info.isEntry ||\n this.includedDynamicImporters.length > 0 ||\n this.namespace.included ||\n this.implicitlyLoadedAfter.size > 0) {\n for (const exportName of [...this.getReexports(), ...this.getExports()]) {\n const [exportedVariable] = this.getVariableForExportName(exportName);\n if (exportedVariable?.included) {\n dependencyVariables.add(exportedVariable);\n }\n }\n }\n for (let variable of dependencyVariables) {\n const sideEffectDependencies = this.sideEffectDependenciesByVariable.get(variable);\n if (sideEffectDependencies) {\n for (const module of sideEffectDependencies) {\n alwaysCheckedDependencies.add(module);\n }\n }\n if (variable instanceof SyntheticNamedExportVariable) {\n variable = variable.getBaseVariable();\n }\n else if (variable instanceof ExportDefaultVariable) {\n variable = variable.getOriginalVariable();\n }\n necessaryDependencies.add(variable.module);\n }\n if (!this.options.treeshake || this.info.moduleSideEffects === 'no-treeshake') {\n for (const dependency of this.dependencies) {\n this.relevantDependencies.add(dependency);\n }\n }\n else {\n this.addRelevantSideEffectDependencies(this.relevantDependencies, necessaryDependencies, alwaysCheckedDependencies);\n }\n for (const dependency of necessaryDependencies) {\n this.relevantDependencies.add(dependency);\n }\n return this.relevantDependencies;\n }\n getExportNamesByVariable() {\n if (this.exportNamesByVariable) {\n return this.exportNamesByVariable;\n }\n const exportNamesByVariable = new Map();\n for (const exportName of this.getAllExportNames()) {\n let [tracedVariable] = this.getVariableForExportName(exportName);\n if (tracedVariable instanceof ExportDefaultVariable) {\n tracedVariable = tracedVariable.getOriginalVariable();\n }\n if (!tracedVariable ||\n !(tracedVariable.included || tracedVariable instanceof ExternalVariable)) {\n continue;\n }\n const existingExportNames = exportNamesByVariable.get(tracedVariable);\n if (existingExportNames) {\n existingExportNames.push(exportName);\n }\n else {\n exportNamesByVariable.set(tracedVariable, [exportName]);\n }\n }\n return (this.exportNamesByVariable = exportNamesByVariable);\n }\n getExports() {\n return [...this.exports.keys()];\n }\n getReexports() {\n if (this.transitiveReexports) {\n return this.transitiveReexports;\n }\n // to avoid infinite recursion when using circular `export * from X`\n this.transitiveReexports = [];\n const reexports = new Set(this.reexportDescriptions.keys());\n for (const module of this.exportAllModules) {\n if (module instanceof ExternalModule) {\n reexports.add(`*${module.id}`);\n }\n else {\n for (const name of [...module.getReexports(), ...module.getExports()]) {\n if (name !== 'default')\n reexports.add(name);\n }\n }\n }\n return (this.transitiveReexports = [...reexports]);\n }\n getRenderedExports() {\n // only direct exports are counted here, not reexports at all\n const renderedExports = [];\n const removedExports = [];\n for (const exportName of this.exports.keys()) {\n const [variable] = this.getVariableForExportName(exportName);\n (variable?.included ? renderedExports : removedExports).push(exportName);\n }\n return { removedExports, renderedExports };\n }\n getSyntheticNamespace() {\n if (this.syntheticNamespace === null) {\n this.syntheticNamespace = undefined;\n [this.syntheticNamespace] = this.getVariableForExportName(typeof this.info.syntheticNamedExports === 'string'\n ? this.info.syntheticNamedExports\n : 'default', { onlyExplicit: true });\n }\n if (!this.syntheticNamespace) {\n return error(logSyntheticNamedExportsNeedNamespaceExport(this.id, this.info.syntheticNamedExports));\n }\n return this.syntheticNamespace;\n }\n getVariableForExportName(name, { importerForSideEffects, isExportAllSearch, onlyExplicit, searchedNamesAndModules } = EMPTY_OBJECT) {\n if (name[0] === '*') {\n if (name.length === 1) {\n // export * from './other'\n return [this.namespace];\n }\n // export * from 'external'\n const module = this.graph.modulesById.get(name.slice(1));\n return module.getVariableForExportName('*');\n }\n // export { foo } from './other'\n const reexportDeclaration = this.reexportDescriptions.get(name);\n if (reexportDeclaration) {\n const [variable] = getVariableForExportNameRecursive(reexportDeclaration.module, reexportDeclaration.localName, importerForSideEffects, false, searchedNamesAndModules);\n if (!variable) {\n return this.error(logMissingExport(reexportDeclaration.localName, this.id, reexportDeclaration.module.id), reexportDeclaration.start);\n }\n if (importerForSideEffects) {\n setAlternativeExporterIfCyclic(variable, importerForSideEffects, this);\n if (this.info.moduleSideEffects) {\n getOrCreate(importerForSideEffects.sideEffectDependenciesByVariable, variable, (getNewSet)).add(this);\n }\n }\n return [variable];\n }\n const exportDeclaration = this.exports.get(name);\n if (exportDeclaration) {\n if (exportDeclaration === MISSING_EXPORT_SHIM_DESCRIPTION) {\n return [this.exportShimVariable];\n }\n const name = exportDeclaration.localName;\n const variable = this.traceVariable(name, {\n importerForSideEffects,\n searchedNamesAndModules\n });\n if (importerForSideEffects) {\n setAlternativeExporterIfCyclic(variable, importerForSideEffects, this);\n getOrCreate(importerForSideEffects.sideEffectDependenciesByVariable, variable, (getNewSet)).add(this);\n }\n return [variable];\n }\n if (onlyExplicit) {\n return [null];\n }\n if (name !== 'default') {\n const foundNamespaceReexport = this.namespaceReexportsByName.get(name) ??\n this.getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules);\n this.namespaceReexportsByName.set(name, foundNamespaceReexport);\n if (foundNamespaceReexport[0]) {\n return foundNamespaceReexport;\n }\n }\n if (this.info.syntheticNamedExports) {\n return [\n getOrCreate(this.syntheticExports, name, () => new SyntheticNamedExportVariable(this.astContext, name, this.getSyntheticNamespace()))\n ];\n }\n // we don't want to create shims when we are just\n // probing export * modules for exports\n if (!isExportAllSearch && this.options.shimMissingExports) {\n this.shimMissingExport(name);\n return [this.exportShimVariable];\n }\n return [null];\n }\n hasEffects() {\n return this.info.moduleSideEffects === 'no-treeshake' || this.ast.hasCachedEffects();\n }\n include() {\n const context = createInclusionContext();\n if (this.ast.shouldBeIncluded(context))\n this.ast.include(context, false);\n }\n includeAllExports(includeNamespaceMembers) {\n if (!this.isExecuted) {\n markModuleAndImpureDependenciesAsExecuted(this);\n this.graph.needsTreeshakingPass = true;\n }\n for (const exportName of this.exports.keys()) {\n if (includeNamespaceMembers || exportName !== this.info.syntheticNamedExports) {\n const variable = this.getVariableForExportName(exportName)[0];\n if (!variable) {\n return error(logMissingEntryExport(exportName, this.id));\n }\n variable.deoptimizePath(UNKNOWN_PATH);\n if (!variable.included) {\n this.includeVariable(variable);\n }\n }\n }\n for (const name of this.getReexports()) {\n const [variable] = this.getVariableForExportName(name);\n if (variable) {\n variable.deoptimizePath(UNKNOWN_PATH);\n if (!variable.included) {\n this.includeVariable(variable);\n }\n if (variable instanceof ExternalVariable) {\n variable.module.reexported = true;\n }\n }\n }\n if (includeNamespaceMembers) {\n this.namespace.setMergedNamespaces(this.includeAndGetAdditionalMergedNamespaces());\n }\n }\n includeAllInBundle() {\n this.ast.include(createInclusionContext(), true);\n this.includeAllExports(false);\n }\n includeExportsByNames(names) {\n if (!this.isExecuted) {\n markModuleAndImpureDependenciesAsExecuted(this);\n this.graph.needsTreeshakingPass = true;\n }\n let includeNamespaceMembers = false;\n for (const name of names) {\n const variable = this.getVariableForExportName(name)[0];\n if (variable) {\n variable.deoptimizePath(UNKNOWN_PATH);\n if (!variable.included) {\n this.includeVariable(variable);\n }\n }\n if (!this.exports.has(name) && !this.reexportDescriptions.has(name)) {\n includeNamespaceMembers = true;\n }\n }\n if (includeNamespaceMembers) {\n this.namespace.setMergedNamespaces(this.includeAndGetAdditionalMergedNamespaces());\n }\n }\n isIncluded() {\n // Modules where this.ast is missing have been loaded via this.load and are\n // not yet fully processed, hence they cannot be included.\n return (this.ast &&\n (this.ast.included ||\n this.namespace.included ||\n this.importedFromNotTreeshaken ||\n this.exportShimVariable.included));\n }\n linkImports() {\n this.addModulesToImportDescriptions(this.importDescriptions);\n this.addModulesToImportDescriptions(this.reexportDescriptions);\n const externalExportAllModules = [];\n for (const source of this.exportAllSources) {\n const module = this.graph.modulesById.get(this.resolvedIds[source].id);\n if (module instanceof ExternalModule) {\n externalExportAllModules.push(module);\n continue;\n }\n this.exportAllModules.push(module);\n }\n this.exportAllModules.push(...externalExportAllModules);\n }\n log(level, properties, pos) {\n this.addLocationToLogProps(properties, pos);\n this.options.onLog(level, properties);\n }\n render(options) {\n const source = this.magicString.clone();\n this.ast.render(source, options);\n source.trim();\n const { usesTopLevelAwait } = this.astContext;\n if (usesTopLevelAwait && options.format !== 'es' && options.format !== 'system') {\n return error(logInvalidFormatForTopLevelAwait(this.id, options.format));\n }\n return { source, usesTopLevelAwait };\n }\n async setSource({ ast, code, customTransformCache, originalCode, originalSourcemap, resolvedIds, sourcemapChain, transformDependencies, transformFiles, ...moduleOptions }) {\n timeStart('generate ast', 3);\n if (code.startsWith('#!')) {\n const shebangEndPosition = code.indexOf('\\n');\n this.shebang = code.slice(2, shebangEndPosition);\n }\n this.info.code = code;\n this.originalCode = originalCode;\n // We need to call decodedSourcemap on the input in case they were hydrated from json in the cache and don't\n // have the lazy evaluation cache configured. Right now this isn't enforced by the type system because the\n // RollupCache stores `ExistingDecodedSourcemap` instead of `ExistingRawSourcemap`\n this.originalSourcemap = decodedSourcemap(originalSourcemap);\n this.sourcemapChain = sourcemapChain.map(mapOrMissing => mapOrMissing.missing ? mapOrMissing : decodedSourcemap(mapOrMissing));\n // If coming from cache and this value is already fully decoded, we want to re-encode here to save memory.\n resetSourcemapCache(this.originalSourcemap, this.sourcemapChain);\n if (transformFiles) {\n this.transformFiles = transformFiles;\n }\n this.transformDependencies = transformDependencies;\n this.customTransformCache = customTransformCache;\n this.updateOptions(moduleOptions);\n this.resolvedIds = resolvedIds ?? Object.create(null);\n // By default, `id` is the file name. Custom resolvers and loaders\n // can change that, but it makes sense to use it for the source file name\n const fileName = this.id;\n this.magicString = new MagicString(code, {\n filename: (this.excludeFromSourcemap ? null : fileName), // don't include plugin helpers in sourcemap\n indentExclusionRanges: []\n });\n this.astContext = {\n addDynamicImport: this.addDynamicImport.bind(this),\n addExport: this.addExport.bind(this),\n addImport: this.addImport.bind(this),\n addImportMeta: this.addImportMeta.bind(this),\n code, // Only needed for debugging\n deoptimizationTracker: this.graph.deoptimizationTracker,\n error: this.error.bind(this),\n fileName, // Needed for warnings\n getExports: this.getExports.bind(this),\n getModuleExecIndex: () => this.execIndex,\n getModuleName: this.basename.bind(this),\n getNodeConstructor: (name) => nodeConstructors[name] || nodeConstructors.UnknownNode,\n getReexports: this.getReexports.bind(this),\n importDescriptions: this.importDescriptions,\n includeAllExports: () => this.includeAllExports(true),\n includeDynamicImport: this.includeDynamicImport.bind(this),\n includeVariableInModule: this.includeVariableInModule.bind(this),\n log: this.log.bind(this),\n magicString: this.magicString,\n manualPureFunctions: this.graph.pureFunctions,\n module: this,\n moduleContext: this.context,\n options: this.options,\n requestTreeshakingPass: () => (this.graph.needsTreeshakingPass = true),\n traceExport: (name) => this.getVariableForExportName(name)[0],\n traceVariable: this.traceVariable.bind(this),\n usesTopLevelAwait: false\n };\n this.scope = new ModuleScope(this.graph.scope, this.astContext);\n this.namespace = new NamespaceVariable(this.astContext);\n const programParent = { context: this.astContext, type: 'Module' };\n if (ast) {\n this.ast = new nodeConstructors[ast.type](programParent, this.scope).parseNode(ast);\n this.info.ast = ast;\n }\n else {\n // Measuring asynchronous code does not provide reasonable results\n timeEnd('generate ast', 3);\n const astBuffer = await parseAsync(code, false);\n timeStart('generate ast', 3);\n this.ast = convertProgram(astBuffer, programParent, this.scope);\n // Make lazy and apply LRU cache to not hog the memory\n Object.defineProperty(this.info, 'ast', {\n get: () => {\n if (this.graph.astLru.has(fileName)) {\n return this.graph.astLru.get(fileName);\n }\n else {\n const parsedAst = this.tryParse();\n // If the cache is not disabled, we need to keep the AST in memory\n // until the end when the cache is generated\n if (this.options.cache !== false) {\n Object.defineProperty(this.info, 'ast', {\n value: parsedAst\n });\n return parsedAst;\n }\n // Otherwise, we keep it in a small LRU cache to not hog too much\n // memory but allow the same AST to be requested several times.\n this.graph.astLru.set(fileName, parsedAst);\n return parsedAst;\n }\n }\n });\n }\n timeEnd('generate ast', 3);\n }\n toJSON() {\n return {\n ast: this.info.ast,\n attributes: this.info.attributes,\n code: this.info.code,\n customTransformCache: this.customTransformCache,\n // eslint-disable-next-line unicorn/prefer-spread\n dependencies: Array.from(this.dependencies, getId),\n id: this.id,\n meta: this.info.meta,\n moduleSideEffects: this.info.moduleSideEffects,\n originalCode: this.originalCode,\n originalSourcemap: this.originalSourcemap,\n resolvedIds: this.resolvedIds,\n sourcemapChain: this.sourcemapChain,\n syntheticNamedExports: this.info.syntheticNamedExports,\n transformDependencies: this.transformDependencies,\n transformFiles: this.transformFiles\n };\n }\n traceVariable(name, { importerForSideEffects, isExportAllSearch, searchedNamesAndModules } = EMPTY_OBJECT) {\n const localVariable = this.scope.variables.get(name);\n if (localVariable) {\n return localVariable;\n }\n const importDescription = this.importDescriptions.get(name);\n if (importDescription) {\n const otherModule = importDescription.module;\n if (otherModule instanceof Module && importDescription.name === '*') {\n return otherModule.namespace;\n }\n const [declaration] = getVariableForExportNameRecursive(otherModule, importDescription.name, importerForSideEffects || this, isExportAllSearch, searchedNamesAndModules);\n if (!declaration) {\n return this.error(logMissingExport(importDescription.name, this.id, otherModule.id), importDescription.start);\n }\n return declaration;\n }\n return null;\n }\n updateOptions({ meta, moduleSideEffects, syntheticNamedExports }) {\n if (moduleSideEffects != null) {\n this.info.moduleSideEffects = moduleSideEffects;\n }\n if (syntheticNamedExports != null) {\n this.info.syntheticNamedExports = syntheticNamedExports;\n }\n if (meta != null) {\n Object.assign(this.info.meta, meta);\n }\n }\n addDynamicImport(node) {\n let argument = node.sourceAstNode;\n if (argument.type === TemplateLiteral$1) {\n if (argument.quasis.length === 1 &&\n typeof argument.quasis[0].value.cooked === 'string') {\n argument = argument.quasis[0].value.cooked;\n }\n }\n else if (argument.type === Literal$1 &&\n typeof argument.value === 'string') {\n argument = argument.value;\n }\n this.dynamicImports.push({ argument, id: null, node, resolution: null });\n }\n assertUniqueExportName(name, nodeStart) {\n if (this.exports.has(name) || this.reexportDescriptions.has(name)) {\n this.error(logDuplicateExportError(name), nodeStart);\n }\n }\n addExport(node) {\n if (node instanceof ExportDefaultDeclaration) {\n // export default foo;\n this.assertUniqueExportName('default', node.start);\n this.exports.set('default', {\n identifier: node.variable.getAssignedVariableName(),\n localName: 'default'\n });\n }\n else if (node instanceof ExportAllDeclaration) {\n const source = node.source.value;\n this.addSource(source, node);\n if (node.exported) {\n // export * as name from './other'\n const name = node.exported instanceof Literal ? node.exported.value : node.exported.name;\n this.assertUniqueExportName(name, node.exported.start);\n this.reexportDescriptions.set(name, {\n localName: '*',\n module: null, // filled in later,\n source,\n start: node.start\n });\n }\n else {\n // export * from './other'\n this.exportAllSources.add(source);\n }\n }\n else if (node.source instanceof Literal) {\n // export { name } from './other'\n const source = node.source.value;\n this.addSource(source, node);\n for (const { exported, local, start } of node.specifiers) {\n const name = exported instanceof Literal ? exported.value : exported.name;\n this.assertUniqueExportName(name, start);\n this.reexportDescriptions.set(name, {\n localName: local instanceof Literal ? local.value : local.name,\n module: null, // filled in later,\n source,\n start\n });\n }\n }\n else if (node.declaration) {\n const declaration = node.declaration;\n if (declaration instanceof VariableDeclaration) {\n // export var { foo, bar } = ...\n // export var foo = 1, bar = 2;\n for (const declarator of declaration.declarations) {\n for (const localName of extractAssignedNames(declarator.id)) {\n this.assertUniqueExportName(localName, declarator.id.start);\n this.exports.set(localName, { identifier: null, localName });\n }\n }\n }\n else {\n // export function foo () {}\n const localName = declaration.id.name;\n this.assertUniqueExportName(localName, declaration.id.start);\n this.exports.set(localName, { identifier: null, localName });\n }\n }\n else {\n // export { foo, bar, baz }\n for (const { local, exported } of node.specifiers) {\n // except for reexports, local must be an Identifier\n const localName = local.name;\n const exportedName = exported instanceof Identifier ? exported.name : exported.value;\n this.assertUniqueExportName(exportedName, exported.start);\n this.exports.set(exportedName, { identifier: null, localName });\n }\n }\n }\n addImport(node) {\n const source = node.source.value;\n this.addSource(source, node);\n for (const specifier of node.specifiers) {\n const localName = specifier.local.name;\n if (this.scope.variables.has(localName) || this.importDescriptions.has(localName)) {\n this.error(logRedeclarationError(localName), specifier.local.start);\n }\n const name = specifier instanceof ImportDefaultSpecifier\n ? 'default'\n : specifier instanceof ImportNamespaceSpecifier\n ? '*'\n : specifier.imported instanceof Identifier\n ? specifier.imported.name\n : specifier.imported.value;\n this.importDescriptions.set(localName, {\n module: null, // filled in later\n name,\n source,\n start: specifier.start\n });\n }\n }\n addImportMeta(node) {\n this.importMetas.push(node);\n }\n addLocationToLogProps(properties, pos) {\n properties.id = this.id;\n properties.pos = pos;\n let code = this.info.code;\n const location = locate(code, pos, { offsetLine: 1 });\n if (location) {\n let { column, line } = location;\n try {\n ({ column, line } = getOriginalLocation(this.sourcemapChain, { column, line }));\n code = this.originalCode;\n }\n catch (error_) {\n this.options.onLog(LOGLEVEL_WARN, logInvalidSourcemapForError(error_, this.id, column, line, pos));\n }\n augmentCodeLocation(properties, { column, line }, code, this.id);\n }\n }\n addModulesToImportDescriptions(importDescription) {\n for (const specifier of importDescription.values()) {\n const { id } = this.resolvedIds[specifier.source];\n specifier.module = this.graph.modulesById.get(id);\n }\n }\n addRelevantSideEffectDependencies(relevantDependencies, necessaryDependencies, alwaysCheckedDependencies) {\n const handledDependencies = new Set();\n const addSideEffectDependencies = (possibleDependencies) => {\n for (const dependency of possibleDependencies) {\n if (handledDependencies.has(dependency)) {\n continue;\n }\n handledDependencies.add(dependency);\n if (necessaryDependencies.has(dependency)) {\n relevantDependencies.add(dependency);\n continue;\n }\n if (!(dependency.info.moduleSideEffects || alwaysCheckedDependencies.has(dependency))) {\n continue;\n }\n if (dependency instanceof ExternalModule || dependency.hasEffects()) {\n relevantDependencies.add(dependency);\n continue;\n }\n addSideEffectDependencies(dependency.dependencies);\n }\n };\n addSideEffectDependencies(this.dependencies);\n addSideEffectDependencies(alwaysCheckedDependencies);\n }\n addSource(source, declaration) {\n const parsedAttributes = getAttributesFromImportExportDeclaration(declaration.attributes);\n const existingAttributes = this.sourcesWithAttributes.get(source);\n if (existingAttributes) {\n if (doAttributesDiffer(existingAttributes, parsedAttributes)) {\n this.log(LOGLEVEL_WARN, logInconsistentImportAttributes(existingAttributes, parsedAttributes, source, this.id), declaration.start);\n }\n }\n else {\n this.sourcesWithAttributes.set(source, parsedAttributes);\n }\n }\n getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules) {\n let foundSyntheticDeclaration = null;\n const foundInternalDeclarations = new Map();\n const foundExternalDeclarations = new Set();\n for (const module of this.exportAllModules) {\n // Synthetic namespaces should not hide \"regular\" exports of the same name\n if (module.info.syntheticNamedExports === name) {\n continue;\n }\n const [variable, indirectExternal] = getVariableForExportNameRecursive(module, name, importerForSideEffects, true, \n // We are creating a copy to handle the case where the same binding is\n // imported through different namespace reexports gracefully\n copyNameToModulesMap(searchedNamesAndModules));\n if (module instanceof ExternalModule || indirectExternal) {\n foundExternalDeclarations.add(variable);\n }\n else if (variable instanceof SyntheticNamedExportVariable) {\n if (!foundSyntheticDeclaration) {\n foundSyntheticDeclaration = variable;\n }\n }\n else if (variable) {\n foundInternalDeclarations.set(variable, module);\n }\n }\n if (foundInternalDeclarations.size > 0) {\n const foundDeclarationList = [...foundInternalDeclarations];\n const usedDeclaration = foundDeclarationList[0][0];\n if (foundDeclarationList.length === 1) {\n return [usedDeclaration];\n }\n this.options.onLog(LOGLEVEL_WARN, logNamespaceConflict(name, this.id, foundDeclarationList.map(([, module]) => module.id)));\n // TODO we are pretending it was not found while it should behave like \"undefined\"\n return [null];\n }\n if (foundExternalDeclarations.size > 0) {\n const foundDeclarationList = [...foundExternalDeclarations];\n const usedDeclaration = foundDeclarationList[0];\n if (foundDeclarationList.length > 1) {\n this.options.onLog(LOGLEVEL_WARN, logAmbiguousExternalNamespaces(name, this.id, usedDeclaration.module.id, foundDeclarationList.map(declaration => declaration.module.id)));\n }\n return [usedDeclaration, true];\n }\n if (foundSyntheticDeclaration) {\n return [foundSyntheticDeclaration];\n }\n return [null];\n }\n includeAndGetAdditionalMergedNamespaces() {\n const externalNamespaces = new Set();\n const syntheticNamespaces = new Set();\n for (const module of [this, ...this.exportAllModules]) {\n if (module instanceof ExternalModule) {\n const [externalVariable] = module.getVariableForExportName('*');\n externalVariable.include();\n this.includedImports.add(externalVariable);\n externalNamespaces.add(externalVariable);\n }\n else if (module.info.syntheticNamedExports) {\n const syntheticNamespace = module.getSyntheticNamespace();\n syntheticNamespace.include();\n this.includedImports.add(syntheticNamespace);\n syntheticNamespaces.add(syntheticNamespace);\n }\n }\n return [...syntheticNamespaces, ...externalNamespaces];\n }\n includeDynamicImport(node) {\n const resolution = this.dynamicImports.find(dynamicImport => dynamicImport.node === node).resolution;\n if (resolution instanceof Module) {\n resolution.includedDynamicImporters.push(this);\n const importedNames = this.options.treeshake\n ? node.getDeterministicImportedNames()\n : undefined;\n if (importedNames) {\n resolution.includeExportsByNames(importedNames);\n }\n else {\n resolution.includeAllExports(true);\n }\n }\n }\n includeVariable(variable) {\n const variableModule = variable.module;\n if (variable.included) {\n if (variableModule instanceof Module && variableModule !== this) {\n getAndExtendSideEffectModules(variable, this);\n }\n }\n else {\n variable.include();\n this.graph.needsTreeshakingPass = true;\n if (variableModule instanceof Module) {\n if (!variableModule.isExecuted) {\n markModuleAndImpureDependenciesAsExecuted(variableModule);\n }\n if (variableModule !== this) {\n const sideEffectModules = getAndExtendSideEffectModules(variable, this);\n for (const module of sideEffectModules) {\n if (!module.isExecuted) {\n markModuleAndImpureDependenciesAsExecuted(module);\n }\n }\n }\n }\n }\n }\n includeVariableInModule(variable) {\n this.includeVariable(variable);\n const variableModule = variable.module;\n if (variableModule && variableModule !== this) {\n this.includedImports.add(variable);\n }\n }\n shimMissingExport(name) {\n this.options.onLog(LOGLEVEL_WARN, logShimmedExport(this.id, name));\n this.exports.set(name, MISSING_EXPORT_SHIM_DESCRIPTION);\n }\n tryParse() {\n try {\n return parseAst(this.info.code);\n }\n catch (error_) {\n return this.error(logModuleParseError(error_, this.id), error_.pos);\n }\n }\n}\n// if there is a cyclic import in the reexport chain, we should not\n// import from the original module but from the cyclic module to not\n// mess up execution order.\nfunction setAlternativeExporterIfCyclic(variable, importer, reexporter) {\n if (variable.module instanceof Module && variable.module !== reexporter) {\n const exporterCycles = variable.module.cycles;\n if (exporterCycles.size > 0) {\n const importerCycles = reexporter.cycles;\n for (const cycleSymbol of importerCycles) {\n if (exporterCycles.has(cycleSymbol)) {\n importer.alternativeReexportModules.set(variable, reexporter);\n break;\n }\n }\n }\n }\n}\nconst copyNameToModulesMap = (searchedNamesAndModules) => searchedNamesAndModules &&\n // eslint-disable-next-line unicorn/prefer-spread\n new Map(Array.from(searchedNamesAndModules, ([name, modules]) => [name, new Set(modules)]));\n\nfunction removeJsExtension(name) {\n return name.endsWith('.js') ? name.slice(0, -3) : name;\n}\n\nfunction getCompleteAmdId(options, chunkId) {\n if (options.autoId) {\n return `${options.basePath ? options.basePath + '/' : ''}${removeJsExtension(chunkId)}`;\n }\n return options.id ?? '';\n}\n\nfunction getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal, mechanism = 'return ') {\n const { _, getDirectReturnFunction, getFunctionIntro, getPropertyAccess, n, s } = snippets;\n if (!namedExportsMode) {\n return `${n}${n}${mechanism}${getSingleDefaultExport(exports, dependencies, interop, externalLiveBindings, getPropertyAccess)};`;\n }\n let exportBlock = '';\n if (namedExportsMode) {\n for (const { defaultVariableName, importPath, isChunk, name, namedExportsMode: depNamedExportsMode, namespaceVariableName, reexports } of dependencies) {\n if (!reexports) {\n continue;\n }\n for (const specifier of reexports) {\n if (specifier.reexported !== '*') {\n const importName = getReexportedImportName(name, specifier.imported, depNamedExportsMode, isChunk, defaultVariableName, namespaceVariableName, interop, importPath, externalLiveBindings, getPropertyAccess);\n if (exportBlock)\n exportBlock += n;\n if (specifier.imported !== '*' && specifier.needsLiveBinding) {\n const [left, right] = getDirectReturnFunction([], {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n exportBlock +=\n `Object.defineProperty(exports,${_}${JSON.stringify(specifier.reexported)},${_}{${n}` +\n `${t}enumerable:${_}true,${n}` +\n `${t}get:${_}${left}${importName}${right}${n}});`;\n }\n else if (specifier.reexported === '__proto__') {\n exportBlock +=\n `Object.defineProperty(exports,${_}\"__proto__\",${_}{${n}` +\n `${t}enumerable:${_}true,${n}` +\n `${t}value:${_}${importName}${n}});`;\n }\n else {\n exportBlock += `exports${getPropertyAccess(specifier.reexported)}${_}=${_}${importName};`;\n }\n }\n }\n }\n }\n for (const { exported, local } of exports) {\n const lhs = `exports${getPropertyAccess(exported)}`;\n const rhs = local;\n if (lhs !== rhs) {\n if (exportBlock)\n exportBlock += n;\n exportBlock +=\n exported === '__proto__'\n ? `Object.defineProperty(exports,${_}\"__proto__\",${_}{${n}` +\n `${t}enumerable:${_}true,${n}` +\n `${t}value:${_}${rhs}${n}});`\n : `${lhs}${_}=${_}${rhs};`;\n }\n }\n if (namedExportsMode) {\n for (const { name, reexports } of dependencies) {\n if (!reexports) {\n continue;\n }\n for (const specifier of reexports) {\n if (specifier.reexported === '*') {\n if (exportBlock)\n exportBlock += n;\n if (!specifier.needsLiveBinding && reexportProtoFromExternal) {\n const protoString = \"'__proto__'\";\n exportBlock +=\n `Object.prototype.hasOwnProperty.call(${name},${_}${protoString})${_}&&${n}` +\n `${t}!Object.prototype.hasOwnProperty.call(exports,${_}${protoString})${_}&&${n}` +\n `${t}Object.defineProperty(exports,${_}${protoString},${_}{${n}` +\n `${t}${t}enumerable:${_}true,${n}` +\n `${t}${t}value:${_}${name}[${protoString}]${n}` +\n `${t}});${n}${n}`;\n }\n const copyPropertyIfNecessary = `{${n}${t}if${_}(k${_}!==${_}'default'${_}&&${_}!Object.prototype.hasOwnProperty.call(exports,${_}k))${_}${getDefineProperty(name, specifier.needsLiveBinding, t, snippets)}${s}${n}}`;\n exportBlock += `Object.keys(${name}).forEach(${getFunctionIntro(['k'], {\n isAsync: false,\n name: null\n })}${copyPropertyIfNecessary});`;\n }\n }\n }\n }\n if (exportBlock) {\n return `${n}${n}${exportBlock}`;\n }\n return '';\n}\nfunction getSingleDefaultExport(exports, dependencies, interop, externalLiveBindings, getPropertyAccess) {\n if (exports.length > 0) {\n return exports[0].local;\n }\n else {\n for (const { defaultVariableName, importPath, isChunk, name, namedExportsMode: depNamedExportsMode, namespaceVariableName, reexports } of dependencies) {\n if (reexports) {\n return getReexportedImportName(name, reexports[0].imported, depNamedExportsMode, isChunk, defaultVariableName, namespaceVariableName, interop, importPath, externalLiveBindings, getPropertyAccess);\n }\n }\n }\n}\nfunction getReexportedImportName(moduleVariableName, imported, depNamedExportsMode, isChunk, defaultVariableName, namespaceVariableName, interop, moduleId, externalLiveBindings, getPropertyAccess) {\n if (imported === 'default') {\n if (!isChunk) {\n const moduleInterop = interop(moduleId);\n const variableName = defaultInteropHelpersByInteropType[moduleInterop]\n ? defaultVariableName\n : moduleVariableName;\n return isDefaultAProperty(moduleInterop, externalLiveBindings)\n ? `${variableName}${getPropertyAccess('default')}`\n : variableName;\n }\n return depNamedExportsMode\n ? `${moduleVariableName}${getPropertyAccess('default')}`\n : moduleVariableName;\n }\n if (imported === '*') {\n return (isChunk ? !depNamedExportsMode : namespaceInteropHelpersByInteropType[interop(moduleId)])\n ? namespaceVariableName\n : moduleVariableName;\n }\n return `${moduleVariableName}${getPropertyAccess(imported)}`;\n}\nfunction getEsModuleValue(getObject) {\n return getObject([['value', 'true']], {\n lineBreakIndent: null\n });\n}\nfunction getNamespaceMarkers(hasNamedExports, addEsModule, addNamespaceToStringTag, { _, getObject }) {\n if (hasNamedExports) {\n if (addEsModule) {\n if (addNamespaceToStringTag) {\n return `Object.defineProperties(exports,${_}${getObject([\n ['__esModule', getEsModuleValue(getObject)],\n [null, `[Symbol.toStringTag]:${_}${getToStringTagValue(getObject)}`]\n ], {\n lineBreakIndent: null\n })});`;\n }\n return `Object.defineProperty(exports,${_}'__esModule',${_}${getEsModuleValue(getObject)});`;\n }\n if (addNamespaceToStringTag) {\n return `Object.defineProperty(exports,${_}Symbol.toStringTag,${_}${getToStringTagValue(getObject)});`;\n }\n }\n return '';\n}\nconst getDefineProperty = (name, needsLiveBinding, t, { _, getDirectReturnFunction, n }) => {\n if (needsLiveBinding) {\n const [left, right] = getDirectReturnFunction([], {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n return (`Object.defineProperty(exports,${_}k,${_}{${n}` +\n `${t}${t}enumerable:${_}true,${n}` +\n `${t}${t}get:${_}${left}${name}[k]${right}${n}${t}})`);\n }\n return `exports[k]${_}=${_}${name}[k]`;\n};\n\nfunction getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, indent, snippets) {\n const { _, cnst, n } = snippets;\n const neededInteropHelpers = new Set();\n const interopStatements = [];\n const addInteropStatement = (helperVariableName, helper, dependencyVariableName) => {\n neededInteropHelpers.add(helper);\n interopStatements.push(`${cnst} ${helperVariableName}${_}=${_}/*#__PURE__*/${helper}(${dependencyVariableName});`);\n };\n for (const { defaultVariableName, imports, importPath, isChunk, name, namedExportsMode, namespaceVariableName, reexports } of dependencies) {\n if (isChunk) {\n for (const { imported, reexported } of [\n ...(imports || []),\n ...(reexports || [])\n ]) {\n if (imported === '*' && reexported !== '*') {\n if (!namedExportsMode) {\n addInteropStatement(namespaceVariableName, INTEROP_NAMESPACE_DEFAULT_ONLY_VARIABLE, name);\n }\n break;\n }\n }\n }\n else {\n const moduleInterop = interop(importPath);\n let hasDefault = false;\n let hasNamespace = false;\n for (const { imported, reexported } of [\n ...(imports || []),\n ...(reexports || [])\n ]) {\n let helper;\n let variableName;\n if (imported === 'default') {\n if (!hasDefault) {\n hasDefault = true;\n if (defaultVariableName !== namespaceVariableName) {\n variableName = defaultVariableName;\n helper = defaultInteropHelpersByInteropType[moduleInterop];\n }\n }\n }\n else if (imported === '*' && reexported !== '*' && !hasNamespace) {\n hasNamespace = true;\n helper = namespaceInteropHelpersByInteropType[moduleInterop];\n variableName = namespaceVariableName;\n }\n if (helper) {\n addInteropStatement(variableName, helper, name);\n }\n }\n }\n }\n return `${getHelpersBlock(neededInteropHelpers, accessedGlobals, indent, snippets, externalLiveBindings, freeze, symbols)}${interopStatements.length > 0 ? `${interopStatements.join(n)}${n}${n}` : ''}`;\n}\n\nfunction addJsExtension(name) {\n return name.endsWith('.js') ? name : name + '.js';\n}\n\n// AMD resolution will only respect the AMD baseUrl if the .js extension is omitted.\n// The assumption is that this makes sense for all relative ids:\n// https://requirejs.org/docs/api.html#jsfiles\nfunction updateExtensionForRelativeAmdId(id, forceJsExtensionForImports) {\n if (id[0] !== '.') {\n return id;\n }\n return forceJsExtensionForImports ? addJsExtension(id) : removeJsExtension(id);\n}\n\nconst builtinModules = [\n\t\"assert\",\n\t\"assert/strict\",\n\t\"async_hooks\",\n\t\"buffer\",\n\t\"child_process\",\n\t\"cluster\",\n\t\"console\",\n\t\"constants\",\n\t\"crypto\",\n\t\"dgram\",\n\t\"diagnostics_channel\",\n\t\"dns\",\n\t\"dns/promises\",\n\t\"domain\",\n\t\"events\",\n\t\"fs\",\n\t\"fs/promises\",\n\t\"http\",\n\t\"http2\",\n\t\"https\",\n\t\"inspector\",\n\t\"inspector/promises\",\n\t\"module\",\n\t\"net\",\n\t\"os\",\n\t\"path\",\n\t\"path/posix\",\n\t\"path/win32\",\n\t\"perf_hooks\",\n\t\"process\",\n\t\"punycode\",\n\t\"querystring\",\n\t\"readline\",\n\t\"readline/promises\",\n\t\"repl\",\n\t\"stream\",\n\t\"stream/consumers\",\n\t\"stream/promises\",\n\t\"stream/web\",\n\t\"string_decoder\",\n\t\"timers\",\n\t\"timers/promises\",\n\t\"tls\",\n\t\"trace_events\",\n\t\"tty\",\n\t\"url\",\n\t\"util\",\n\t\"util/types\",\n\t\"v8\",\n\t\"vm\",\n\t\"wasi\",\n\t\"worker_threads\",\n\t\"zlib\"\n];\n\nconst nodeBuiltins = new Set(builtinModules);\nfunction warnOnBuiltins(log, dependencies) {\n const externalBuiltins = dependencies\n .map(({ importPath }) => importPath)\n .filter(importPath => nodeBuiltins.has(importPath) || importPath.startsWith('node:'));\n if (externalBuiltins.length === 0)\n return;\n log(LOGLEVEL_WARN, logMissingNodeBuiltins(externalBuiltins));\n}\n\nfunction amd(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, id, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, log, outro, snippets }, { amd, esModule, externalLiveBindings, freeze, generatedCode: { symbols }, interop, reexportProtoFromExternal, strict }) {\n warnOnBuiltins(log, dependencies);\n const deps = dependencies.map(m => `'${updateExtensionForRelativeAmdId(m.importPath, amd.forceJsExtensionForImports)}'`);\n const parameters = dependencies.map(m => m.name);\n const { n, getNonArrowFunctionIntro, _ } = snippets;\n if (namedExportsMode && hasExports) {\n parameters.unshift(`exports`);\n deps.unshift(`'exports'`);\n }\n if (accessedGlobals.has('require')) {\n parameters.unshift('require');\n deps.unshift(`'require'`);\n }\n if (accessedGlobals.has('module')) {\n parameters.unshift('module');\n deps.unshift(`'module'`);\n }\n const completeAmdId = getCompleteAmdId(amd, id);\n const defineParameters = (completeAmdId ? `'${completeAmdId}',${_}` : ``) +\n (deps.length > 0 ? `[${deps.join(`,${_}`)}],${_}` : ``);\n const useStrict = strict ? `${_}'use strict';` : '';\n magicString.prepend(`${intro}${getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets)}`);\n const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal);\n let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, isEntryFacade && (esModule === true || (esModule === 'if-default-prop' && hasDefaultExport)), isModuleFacade && symbols, snippets);\n if (namespaceMarkers) {\n namespaceMarkers = n + n + namespaceMarkers;\n }\n magicString\n .append(`${exportBlock}${namespaceMarkers}${outro}`)\n .indent(t)\n // factory function should be wrapped by parentheses to avoid lazy parsing,\n // cf. https://v8.dev/blog/preparser#pife\n .prepend(`${amd.define}(${defineParameters}(${getNonArrowFunctionIntro(parameters, {\n isAsync: false,\n name: null\n })}{${useStrict}${n}${n}`)\n .append(`${n}${n}}));`);\n}\n\nfunction cjs(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, indent: t, intro, isEntryFacade, isModuleFacade, namedExportsMode, outro, snippets }, { compact, esModule, externalLiveBindings, freeze, interop, generatedCode: { symbols }, reexportProtoFromExternal, strict }) {\n const { _, n } = snippets;\n const useStrict = strict ? `'use strict';${n}${n}` : '';\n let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, isEntryFacade && (esModule === true || (esModule === 'if-default-prop' && hasDefaultExport)), isModuleFacade && symbols, snippets);\n if (namespaceMarkers) {\n namespaceMarkers += n + n;\n }\n const importBlock = getImportBlock$1(dependencies, snippets, compact);\n const interopBlock = getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets);\n magicString.prepend(`${useStrict}${intro}${namespaceMarkers}${importBlock}${interopBlock}`);\n const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal, `module.exports${_}=${_}`);\n magicString.append(`${exportBlock}${outro}`);\n}\nfunction getImportBlock$1(dependencies, { _, cnst, n }, compact) {\n let importBlock = '';\n let definingVariable = false;\n for (const { importPath, name, reexports, imports } of dependencies) {\n if (!reexports && !imports) {\n if (importBlock) {\n importBlock += compact && !definingVariable ? ',' : `;${n}`;\n }\n definingVariable = false;\n importBlock += `require('${importPath}')`;\n }\n else {\n importBlock += compact && definingVariable ? ',' : `${importBlock ? `;${n}` : ''}${cnst} `;\n definingVariable = true;\n importBlock += `${name}${_}=${_}require('${importPath}')`;\n }\n }\n if (importBlock) {\n return `${importBlock};${n}${n}`;\n }\n return '';\n}\n\nfunction es(magicString, { accessedGlobals, indent: t, intro, outro, dependencies, exports, snippets }, { externalLiveBindings, freeze, generatedCode: { symbols }, importAttributesKey }) {\n const { n } = snippets;\n const importBlock = getImportBlock(dependencies, importAttributesKey, snippets);\n if (importBlock.length > 0)\n intro += importBlock.join(n) + n + n;\n intro += getHelpersBlock(null, accessedGlobals, t, snippets, externalLiveBindings, freeze, symbols);\n if (intro)\n magicString.prepend(intro);\n const exportBlock = getExportBlock(exports, snippets);\n if (exportBlock.length > 0)\n magicString.append(n + n + exportBlock.join(n).trim());\n if (outro)\n magicString.append(outro);\n magicString.trim();\n}\nfunction getImportBlock(dependencies, importAttributesKey, { _ }) {\n const importBlock = [];\n for (const { importPath, reexports, imports, name, attributes } of dependencies) {\n const assertion = attributes ? `${_}${importAttributesKey}${_}${attributes}` : '';\n const pathWithAssertion = `'${importPath}'${assertion};`;\n if (!reexports && !imports) {\n importBlock.push(`import${_}${pathWithAssertion}`);\n continue;\n }\n if (imports) {\n let defaultImport = null;\n let starImport = null;\n const importedNames = [];\n for (const specifier of imports) {\n if (specifier.imported === 'default') {\n defaultImport = specifier;\n }\n else if (specifier.imported === '*') {\n starImport = specifier;\n }\n else {\n importedNames.push(specifier);\n }\n }\n if (starImport) {\n importBlock.push(`import${_}*${_}as ${starImport.local} from${_}${pathWithAssertion}`);\n }\n if (defaultImport && importedNames.length === 0) {\n importBlock.push(`import ${defaultImport.local} from${_}${pathWithAssertion}`);\n }\n else if (importedNames.length > 0) {\n importBlock.push(`import ${defaultImport ? `${defaultImport.local},${_}` : ''}{${_}${importedNames\n .map(specifier => specifier.imported === specifier.local\n ? specifier.imported\n : `${stringifyIdentifierIfNeeded(specifier.imported)} as ${specifier.local}`)\n .join(`,${_}`)}${_}}${_}from${_}${pathWithAssertion}`);\n }\n }\n if (reexports) {\n let starExport = null;\n const namespaceReexports = [];\n const namedReexports = [];\n for (const specifier of reexports) {\n if (specifier.reexported === '*') {\n starExport = specifier;\n }\n else if (specifier.imported === '*') {\n namespaceReexports.push(specifier);\n }\n else {\n namedReexports.push(specifier);\n }\n }\n if (starExport) {\n importBlock.push(`export${_}*${_}from${_}${pathWithAssertion}`);\n }\n if (namespaceReexports.length > 0) {\n if (!imports ||\n !imports.some(specifier => specifier.imported === '*' && specifier.local === name)) {\n importBlock.push(`import${_}*${_}as ${name} from${_}${pathWithAssertion}`);\n }\n for (const specifier of namespaceReexports) {\n importBlock.push(`export${_}{${_}${name === specifier.reexported\n ? name\n : `${name} as ${stringifyIdentifierIfNeeded(specifier.reexported)}`} };`);\n }\n }\n if (namedReexports.length > 0) {\n importBlock.push(`export${_}{${_}${namedReexports\n .map(specifier => specifier.imported === specifier.reexported\n ? stringifyIdentifierIfNeeded(specifier.imported)\n : `${stringifyIdentifierIfNeeded(specifier.imported)} as ${stringifyIdentifierIfNeeded(specifier.reexported)}`)\n .join(`,${_}`)}${_}}${_}from${_}${pathWithAssertion}`);\n }\n }\n }\n return importBlock;\n}\nfunction getExportBlock(exports, { _, cnst }) {\n const exportBlock = [];\n const exportDeclaration = [];\n for (const specifier of exports) {\n if (specifier.expression) {\n exportBlock.push(`${cnst} ${specifier.local}${_}=${_}${specifier.expression};`);\n }\n exportDeclaration.push(specifier.exported === specifier.local\n ? specifier.local\n : `${specifier.local} as ${stringifyIdentifierIfNeeded(specifier.exported)}`);\n }\n if (exportDeclaration.length > 0) {\n exportBlock.push(`export${_}{${_}${exportDeclaration.join(`,${_}`)}${_}};`);\n }\n return exportBlock;\n}\n\nconst keypath = (keypath, getPropertyAccess) => keypath.split('.').map(getPropertyAccess).join('');\n\nfunction setupNamespace(name, root, globals, { _, getPropertyAccess, s }, compact) {\n const parts = name.split('.');\n parts[0] = (typeof globals === 'function' ? globals(parts[0]) : globals[parts[0]]) || parts[0];\n parts.pop();\n let propertyPath = root;\n return (parts\n .map(part => {\n propertyPath += getPropertyAccess(part);\n return `${propertyPath}${_}=${_}${propertyPath}${_}||${_}{}${s}`;\n })\n .join(compact ? ',' : '\\n') + (compact && parts.length > 0 ? ';' : '\\n'));\n}\nfunction assignToDeepVariable(deepName, root, globals, assignment, { _, getPropertyAccess }) {\n const parts = deepName.split('.');\n parts[0] = (typeof globals === 'function' ? globals(parts[0]) : globals[parts[0]]) || parts[0];\n const last = parts.pop();\n let propertyPath = root;\n let deepAssignment = [\n ...parts.map(part => {\n propertyPath += getPropertyAccess(part);\n return `${propertyPath}${_}=${_}${propertyPath}${_}||${_}{}`;\n }),\n `${propertyPath}${getPropertyAccess(last)}`\n ].join(`,${_}`) + `${_}=${_}${assignment}`;\n if (parts.length > 0) {\n deepAssignment = `(${deepAssignment})`;\n }\n return deepAssignment;\n}\n\nfunction trimEmptyImports(dependencies) {\n let index = dependencies.length;\n while (index--) {\n const { imports, reexports } = dependencies[index];\n if (imports || reexports) {\n return dependencies.slice(0, index + 1);\n }\n }\n return [];\n}\n\nfunction iife(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, indent: t, intro, namedExportsMode, log, outro, snippets }, { compact, esModule, extend, freeze, externalLiveBindings, reexportProtoFromExternal, globals, interop, name, generatedCode: { symbols }, strict }) {\n const { _, getNonArrowFunctionIntro, getPropertyAccess, n } = snippets;\n const isNamespaced = name && name.includes('.');\n const useVariableAssignment = !extend && !isNamespaced;\n if (name && useVariableAssignment && !isLegal(name)) {\n return error(logIllegalIdentifierAsName(name));\n }\n warnOnBuiltins(log, dependencies);\n const external = trimEmptyImports(dependencies);\n const deps = external.map(dep => dep.globalName || 'null');\n const parameters = external.map(m => m.name);\n if (hasExports && !name) {\n log(LOGLEVEL_WARN, logMissingNameOptionForIifeExport());\n }\n if (namedExportsMode && hasExports) {\n if (extend) {\n deps.unshift(`this${keypath(name, getPropertyAccess)}${_}=${_}this${keypath(name, getPropertyAccess)}${_}||${_}{}`);\n parameters.unshift('exports');\n }\n else {\n deps.unshift('{}');\n parameters.unshift('exports');\n }\n }\n const useStrict = strict ? `${t}'use strict';${n}` : '';\n const interopBlock = getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets);\n magicString.prepend(`${intro}${interopBlock}`);\n let wrapperIntro = `(${getNonArrowFunctionIntro(parameters, {\n isAsync: false,\n name: null\n })}{${n}${useStrict}${n}`;\n if (hasExports) {\n if (name && !(extend && namedExportsMode)) {\n wrapperIntro =\n (useVariableAssignment ? `var ${name}` : `this${keypath(name, getPropertyAccess)}`) +\n `${_}=${_}${wrapperIntro}`;\n }\n if (isNamespaced) {\n wrapperIntro = setupNamespace(name, 'this', globals, snippets, compact) + wrapperIntro;\n }\n }\n let wrapperOutro = `${n}${n}})(${deps.join(`,${_}`)});`;\n if (hasExports && !extend && namedExportsMode) {\n wrapperOutro = `${n}${n}${t}return exports;${wrapperOutro}`;\n }\n const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal);\n let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, esModule === true || (esModule === 'if-default-prop' && hasDefaultExport), symbols, snippets);\n if (namespaceMarkers) {\n namespaceMarkers = n + n + namespaceMarkers;\n }\n magicString\n .append(`${exportBlock}${namespaceMarkers}${outro}`)\n .indent(t)\n .prepend(wrapperIntro)\n .append(wrapperOutro);\n}\n\nfunction system(magicString, { accessedGlobals, dependencies, exports, hasExports, indent: t, intro, snippets, outro, usesTopLevelAwait }, { externalLiveBindings, freeze, name, generatedCode: { symbols }, strict, systemNullSetters }) {\n const { _, getFunctionIntro, getNonArrowFunctionIntro, n, s } = snippets;\n const { importBindings, setters, starExcludes } = analyzeDependencies(dependencies, exports, t, snippets);\n const registeredName = name ? `'${name}',${_}` : '';\n const wrapperParameters = accessedGlobals.has('module')\n ? ['exports', 'module']\n : hasExports\n ? ['exports']\n : [];\n // factory function should be wrapped by parentheses to avoid lazy parsing,\n // cf. https://v8.dev/blog/preparser#pife\n let wrapperStart = `System.register(${registeredName}[` +\n dependencies.map(({ importPath }) => `'${importPath}'`).join(`,${_}`) +\n `],${_}(${getNonArrowFunctionIntro(wrapperParameters, {\n isAsync: false,\n name: null\n })}{${n}${t}${strict ? \"'use strict';\" : ''}` +\n getStarExcludesBlock(starExcludes, t, snippets) +\n getImportBindingsBlock(importBindings, t, snippets) +\n `${n}${t}return${_}{${setters.length > 0\n ? `${n}${t}${t}setters:${_}[${setters\n .map(setter => setter\n ? `${getFunctionIntro(['module'], {\n isAsync: false,\n name: null\n })}{${n}${t}${t}${t}${setter}${n}${t}${t}}`\n : systemNullSetters\n ? `null`\n : `${getFunctionIntro([], { isAsync: false, name: null })}{}`)\n .join(`,${_}`)}],`\n : ''}${n}`;\n wrapperStart += `${t}${t}execute:${_}(${getNonArrowFunctionIntro([], {\n isAsync: usesTopLevelAwait,\n name: null\n })}{${n}${n}`;\n const wrapperEnd = `${t}${t}})${n}${t}}${s}${n}}));`;\n magicString\n .prepend(intro +\n getHelpersBlock(null, accessedGlobals, t, snippets, externalLiveBindings, freeze, symbols) +\n getHoistedExportsBlock(exports, t, snippets))\n .append(`${outro}${n}${n}` +\n getSyntheticExportsBlock(exports, t, snippets) +\n getMissingExportsBlock(exports, t, snippets))\n .indent(`${t}${t}${t}`)\n .append(wrapperEnd)\n .prepend(wrapperStart);\n}\nfunction analyzeDependencies(dependencies, exports, t, { _, cnst, getObject, getPropertyAccess, n }) {\n const importBindings = [];\n const setters = [];\n let starExcludes = null;\n for (const { imports, reexports } of dependencies) {\n const setter = [];\n if (imports) {\n for (const specifier of imports) {\n importBindings.push(specifier.local);\n if (specifier.imported === '*') {\n setter.push(`${specifier.local}${_}=${_}module;`);\n }\n else {\n setter.push(`${specifier.local}${_}=${_}module${getPropertyAccess(specifier.imported)};`);\n }\n }\n }\n if (reexports) {\n const reexportedNames = [];\n let hasStarReexport = false;\n for (const { imported, reexported } of reexports) {\n if (reexported === '*') {\n hasStarReexport = true;\n }\n else {\n reexportedNames.push([\n reexported,\n imported === '*' ? 'module' : `module${getPropertyAccess(imported)}`\n ]);\n }\n }\n if (reexportedNames.length > 1 || hasStarReexport) {\n if (hasStarReexport) {\n if (!starExcludes) {\n starExcludes = getStarExcludes({ dependencies, exports });\n }\n reexportedNames.unshift([null, `__proto__:${_}null`]);\n const exportMapping = getObject(reexportedNames, { lineBreakIndent: null });\n setter.push(`${cnst} setter${_}=${_}${exportMapping};`, `for${_}(${cnst} name in module)${_}{`, `${t}if${_}(!_starExcludes[name])${_}setter[name]${_}=${_}module[name];`, '}', 'exports(setter);');\n }\n else {\n const exportMapping = getObject(reexportedNames, { lineBreakIndent: null });\n setter.push(`exports(${exportMapping});`);\n }\n }\n else {\n const [key, value] = reexportedNames[0];\n setter.push(`exports(${JSON.stringify(key)},${_}${value});`);\n }\n }\n setters.push(setter.join(`${n}${t}${t}${t}`));\n }\n return { importBindings, setters, starExcludes };\n}\nconst getStarExcludes = ({ dependencies, exports }) => {\n const starExcludes = new Set(exports.map(expt => expt.exported));\n starExcludes.add('default');\n for (const { reexports } of dependencies) {\n if (reexports) {\n for (const reexport of reexports) {\n if (reexport.reexported !== '*')\n starExcludes.add(reexport.reexported);\n }\n }\n }\n return starExcludes;\n};\nconst getStarExcludesBlock = (starExcludes, t, { _, cnst, getObject, n }) => {\n if (starExcludes) {\n const fields = [...starExcludes].map(property => [\n property,\n '1'\n ]);\n fields.unshift([null, `__proto__:${_}null`]);\n return `${n}${t}${cnst} _starExcludes${_}=${_}${getObject(fields, {\n lineBreakIndent: { base: t, t }\n })};`;\n }\n return '';\n};\nconst getImportBindingsBlock = (importBindings, t, { _, n }) => (importBindings.length > 0 ? `${n}${t}var ${importBindings.join(`,${_}`)};` : '');\nconst getHoistedExportsBlock = (exports, t, snippets) => getExportsBlock(exports.filter(expt => expt.hoisted).map(expt => ({ name: expt.exported, value: expt.local })), t, snippets);\nfunction getExportsBlock(exports, t, { _, n }) {\n if (exports.length === 0) {\n return '';\n }\n if (exports.length === 1) {\n return `exports(${JSON.stringify(exports[0].name)},${_}${exports[0].value});${n}${n}`;\n }\n return (`exports({${n}` +\n exports\n .map(({ name, value }) => `${t}${stringifyObjectKeyIfNeeded(name)}:${_}${value}`)\n .join(`,${n}`) +\n `${n}});${n}${n}`);\n}\nconst getSyntheticExportsBlock = (exports, t, snippets) => getExportsBlock(exports\n .filter(expt => expt.expression)\n .map(expt => ({ name: expt.exported, value: expt.local })), t, snippets);\nconst getMissingExportsBlock = (exports, t, snippets) => getExportsBlock(exports\n .filter(expt => expt.local === MISSING_EXPORT_SHIM_VARIABLE)\n .map(expt => ({ name: expt.exported, value: MISSING_EXPORT_SHIM_VARIABLE })), t, snippets);\n\nfunction globalProperty(name, globalVariable, getPropertyAccess) {\n if (!name)\n return 'null';\n return `${globalVariable}${keypath(name, getPropertyAccess)}`;\n}\nfunction safeAccess(name, globalVariable, { _, getPropertyAccess }) {\n let propertyPath = globalVariable;\n return name\n .split('.')\n .map(part => (propertyPath += getPropertyAccess(part)))\n .join(`${_}&&${_}`);\n}\nfunction umd(magicString, { accessedGlobals, dependencies, exports, hasDefaultExport, hasExports, id, indent: t, intro, namedExportsMode, log, outro, snippets }, { amd, compact, esModule, extend, externalLiveBindings, freeze, interop, name, generatedCode: { symbols }, globals, noConflict, reexportProtoFromExternal, strict }) {\n const { _, cnst, getFunctionIntro, getNonArrowFunctionIntro, getPropertyAccess, n, s } = snippets;\n const factoryVariable = compact ? 'f' : 'factory';\n const globalVariable = compact ? 'g' : 'global';\n if (hasExports && !name) {\n return error(logMissingNameOptionForUmdExport());\n }\n warnOnBuiltins(log, dependencies);\n const amdDeps = dependencies.map(m => `'${updateExtensionForRelativeAmdId(m.importPath, amd.forceJsExtensionForImports)}'`);\n const cjsDeps = dependencies.map(m => `require('${m.importPath}')`);\n const trimmedImports = trimEmptyImports(dependencies);\n const globalDeps = trimmedImports.map(module => globalProperty(module.globalName, globalVariable, getPropertyAccess));\n const factoryParameters = trimmedImports.map(m => m.name);\n if (namedExportsMode && (hasExports || noConflict)) {\n amdDeps.unshift(`'exports'`);\n cjsDeps.unshift(`exports`);\n globalDeps.unshift(assignToDeepVariable(name, globalVariable, globals, `${extend ? `${globalProperty(name, globalVariable, getPropertyAccess)}${_}||${_}` : ''}{}`, snippets));\n factoryParameters.unshift('exports');\n }\n const completeAmdId = getCompleteAmdId(amd, id);\n const amdParameters = (completeAmdId ? `'${completeAmdId}',${_}` : ``) +\n (amdDeps.length > 0 ? `[${amdDeps.join(`,${_}`)}],${_}` : ``);\n const define = amd.define;\n const cjsExport = !namedExportsMode && hasExports ? `module.exports${_}=${_}` : ``;\n const useStrict = strict ? `${_}'use strict';${n}` : ``;\n let iifeExport;\n if (noConflict) {\n const noConflictExportsVariable = compact ? 'e' : 'exports';\n let factory;\n if (!namedExportsMode && hasExports) {\n factory = `${cnst} ${noConflictExportsVariable}${_}=${_}${assignToDeepVariable(name, globalVariable, globals, `${factoryVariable}(${globalDeps.join(`,${_}`)})`, snippets)};`;\n }\n else {\n const module = globalDeps.shift();\n factory =\n `${cnst} ${noConflictExportsVariable}${_}=${_}${module};${n}` +\n `${t}${t}${factoryVariable}(${[noConflictExportsVariable, ...globalDeps].join(`,${_}`)});`;\n }\n iifeExport =\n `(${getFunctionIntro([], { isAsync: false, name: null })}{${n}` +\n `${t}${t}${cnst} current${_}=${_}${safeAccess(name, globalVariable, snippets)};${n}` +\n `${t}${t}${factory}${n}` +\n `${t}${t}${noConflictExportsVariable}.noConflict${_}=${_}${getFunctionIntro([], {\n isAsync: false,\n name: null\n })}{${_}` +\n `${globalProperty(name, globalVariable, getPropertyAccess)}${_}=${_}current;${_}return ${noConflictExportsVariable}${s}${_}};${n}` +\n `${t}})()`;\n }\n else {\n iifeExport = `${factoryVariable}(${globalDeps.join(`,${_}`)})`;\n if (!namedExportsMode && hasExports) {\n iifeExport = assignToDeepVariable(name, globalVariable, globals, iifeExport, snippets);\n }\n }\n const iifeNeedsGlobal = hasExports || (noConflict && namedExportsMode) || globalDeps.length > 0;\n const wrapperParameters = [factoryVariable];\n if (iifeNeedsGlobal) {\n wrapperParameters.unshift(globalVariable);\n }\n const globalArgument = iifeNeedsGlobal ? `this,${_}` : '';\n const iifeStart = iifeNeedsGlobal\n ? `(${globalVariable}${_}=${_}typeof globalThis${_}!==${_}'undefined'${_}?${_}globalThis${_}:${_}${globalVariable}${_}||${_}self,${_}`\n : '';\n const iifeEnd = iifeNeedsGlobal ? ')' : '';\n const cjsIntro = iifeNeedsGlobal\n ? `${t}typeof exports${_}===${_}'object'${_}&&${_}typeof module${_}!==${_}'undefined'${_}?` +\n `${_}${cjsExport}${factoryVariable}(${cjsDeps.join(`,${_}`)})${_}:${n}`\n : '';\n const wrapperIntro = `(${getNonArrowFunctionIntro(wrapperParameters, { isAsync: false, name: null })}{${n}` +\n cjsIntro +\n `${t}typeof ${define}${_}===${_}'function'${_}&&${_}${define}.amd${_}?${_}${define}(${amdParameters}${factoryVariable})${_}:${n}` +\n `${t}${iifeStart}${iifeExport}${iifeEnd};${n}` +\n // factory function should be wrapped by parentheses to avoid lazy parsing,\n // cf. https://v8.dev/blog/preparser#pife\n `})(${globalArgument}(${getNonArrowFunctionIntro(factoryParameters, {\n isAsync: false,\n name: null\n })}{${useStrict}${n}`;\n const wrapperOutro = n + n + '}));';\n magicString.prepend(`${intro}${getInteropBlock(dependencies, interop, externalLiveBindings, freeze, symbols, accessedGlobals, t, snippets)}`);\n const exportBlock = getExportBlock$1(exports, dependencies, namedExportsMode, interop, snippets, t, externalLiveBindings, reexportProtoFromExternal);\n let namespaceMarkers = getNamespaceMarkers(namedExportsMode && hasExports, esModule === true || (esModule === 'if-default-prop' && hasDefaultExport), symbols, snippets);\n if (namespaceMarkers) {\n namespaceMarkers = n + n + namespaceMarkers;\n }\n magicString\n .append(`${exportBlock}${namespaceMarkers}${outro}`)\n .trim()\n .indent(t)\n .append(wrapperOutro)\n .prepend(wrapperIntro);\n}\n\nconst finalisers = { amd, cjs, es, iife, system, umd };\n\nconst concatSeparator = (out, next) => (next ? `${out}\\n${next}` : out);\nconst concatDblSeparator = (out, next) => (next ? `${out}\\n\\n${next}` : out);\nasync function createAddons(options, outputPluginDriver, chunk) {\n try {\n let [banner, footer, intro, outro] = await Promise.all([\n outputPluginDriver.hookReduceValue('banner', options.banner(chunk), [chunk], concatSeparator),\n outputPluginDriver.hookReduceValue('footer', options.footer(chunk), [chunk], concatSeparator),\n outputPluginDriver.hookReduceValue('intro', options.intro(chunk), [chunk], concatDblSeparator),\n outputPluginDriver.hookReduceValue('outro', options.outro(chunk), [chunk], concatDblSeparator)\n ]);\n if (intro)\n intro += '\\n\\n';\n if (outro)\n outro = `\\n\\n${outro}`;\n if (banner)\n banner += '\\n';\n if (footer)\n footer = '\\n' + footer;\n return { banner, footer, intro, outro };\n }\n catch (error_) {\n return error(logAddonNotGenerated(error_.message, error_.hook, error_.plugin));\n }\n}\n\nconst DECONFLICT_IMPORTED_VARIABLES_BY_FORMAT = {\n amd: deconflictImportsOther,\n cjs: deconflictImportsOther,\n es: deconflictImportsEsmOrSystem,\n iife: deconflictImportsOther,\n system: deconflictImportsEsmOrSystem,\n umd: deconflictImportsOther\n};\nfunction deconflictChunk(modules, dependenciesToBeDeconflicted, imports, usedNames, format, interop, preserveModules, externalLiveBindings, chunkByModule, externalChunkByModule, syntheticExports, exportNamesByVariable, accessedGlobalsByScope, includedNamespaces) {\n const reversedModules = [...modules].reverse();\n for (const module of reversedModules) {\n module.scope.addUsedOutsideNames(usedNames, format, exportNamesByVariable, accessedGlobalsByScope);\n }\n deconflictTopLevelVariables(usedNames, reversedModules, includedNamespaces);\n DECONFLICT_IMPORTED_VARIABLES_BY_FORMAT[format](usedNames, imports, dependenciesToBeDeconflicted, interop, preserveModules, externalLiveBindings, chunkByModule, externalChunkByModule, syntheticExports);\n for (const module of reversedModules) {\n module.scope.deconflict(format, exportNamesByVariable, accessedGlobalsByScope);\n }\n}\nfunction deconflictImportsEsmOrSystem(usedNames, imports, dependenciesToBeDeconflicted, _interop, preserveModules, _externalLiveBindings, chunkByModule, externalChunkByModule, syntheticExports) {\n // This is needed for namespace reexports\n for (const dependency of dependenciesToBeDeconflicted.dependencies) {\n if (preserveModules || dependency instanceof ExternalChunk) {\n dependency.variableName = getSafeName(dependency.suggestedVariableName, usedNames, null);\n }\n }\n for (const variable of imports) {\n const module = variable.module;\n const name = variable.name;\n if (variable.isNamespace && (preserveModules || module instanceof ExternalModule)) {\n variable.setRenderNames(null, (module instanceof ExternalModule\n ? externalChunkByModule.get(module)\n : chunkByModule.get(module)).variableName);\n }\n else if (module instanceof ExternalModule && name === 'default') {\n variable.setRenderNames(null, getSafeName([...module.exportedVariables].some(([exportedVariable, exportedName]) => exportedName === '*' && exportedVariable.included)\n ? module.suggestedVariableName + '__default'\n : module.suggestedVariableName, usedNames, variable.forbiddenNames));\n }\n else {\n variable.setRenderNames(null, getSafeName(makeLegal(name), usedNames, variable.forbiddenNames));\n }\n }\n for (const variable of syntheticExports) {\n variable.setRenderNames(null, getSafeName(variable.name, usedNames, variable.forbiddenNames));\n }\n}\nfunction deconflictImportsOther(usedNames, imports, { deconflictedDefault, deconflictedNamespace, dependencies }, interop, preserveModules, externalLiveBindings, chunkByModule, externalChunkByModule) {\n for (const chunk of dependencies) {\n chunk.variableName = getSafeName(chunk.suggestedVariableName, usedNames, null);\n }\n for (const chunk of deconflictedNamespace) {\n chunk.namespaceVariableName = getSafeName(`${chunk.suggestedVariableName}__namespace`, usedNames, null);\n }\n for (const externalModule of deconflictedDefault) {\n externalModule.defaultVariableName =\n deconflictedNamespace.has(externalModule) &&\n canDefaultBeTakenFromNamespace(interop(externalModule.id), externalLiveBindings)\n ? externalModule.namespaceVariableName\n : getSafeName(`${externalModule.suggestedVariableName}__default`, usedNames, null);\n }\n for (const variable of imports) {\n const module = variable.module;\n if (module instanceof ExternalModule) {\n const chunk = externalChunkByModule.get(module);\n const name = variable.name;\n if (name === 'default') {\n const moduleInterop = interop(module.id);\n const variableName = defaultInteropHelpersByInteropType[moduleInterop]\n ? chunk.defaultVariableName\n : chunk.variableName;\n if (isDefaultAProperty(moduleInterop, externalLiveBindings)) {\n variable.setRenderNames(variableName, 'default');\n }\n else {\n variable.setRenderNames(null, variableName);\n }\n }\n else if (name === '*') {\n variable.setRenderNames(null, namespaceInteropHelpersByInteropType[interop(module.id)]\n ? chunk.namespaceVariableName\n : chunk.variableName);\n }\n else {\n // if the second parameter is `null`, it uses its \"name\" for the property name\n variable.setRenderNames(chunk.variableName, null);\n }\n }\n else {\n const chunk = chunkByModule.get(module);\n if (preserveModules && variable.isNamespace) {\n variable.setRenderNames(null, chunk.exportMode === 'default' ? chunk.namespaceVariableName : chunk.variableName);\n }\n else if (chunk.exportMode === 'default') {\n variable.setRenderNames(null, chunk.variableName);\n }\n else {\n variable.setRenderNames(chunk.variableName, chunk.getVariableExportName(variable));\n }\n }\n }\n}\nfunction deconflictTopLevelVariables(usedNames, modules, includedNamespaces) {\n for (const module of modules) {\n for (const variable of module.scope.variables.values()) {\n if (variable.included &&\n // this will only happen for exports in some formats\n !(variable.renderBaseName ||\n (variable instanceof ExportDefaultVariable && variable.getOriginalVariable() !== variable))) {\n variable.setRenderNames(null, getSafeName(variable.name, usedNames, variable.forbiddenNames));\n }\n }\n if (includedNamespaces.has(module)) {\n const namespace = module.namespace;\n namespace.setRenderNames(null, getSafeName(namespace.name, usedNames, namespace.forbiddenNames));\n }\n }\n}\n\nfunction assignExportsToMangledNames(exports, exportsByName, exportNamesByVariable) {\n let nameIndex = 0;\n for (const variable of exports) {\n let [exportName] = variable.name;\n if (exportsByName.has(exportName)) {\n do {\n exportName = toBase64(++nameIndex);\n // skip past leading number identifiers\n if (exportName.charCodeAt(0) === 49 /* '1' */) {\n nameIndex += 9 * 64 ** (exportName.length - 1);\n exportName = toBase64(nameIndex);\n }\n } while (RESERVED_NAMES.has(exportName) || exportsByName.has(exportName));\n }\n exportsByName.set(exportName, variable);\n exportNamesByVariable.set(variable, [exportName]);\n }\n}\nfunction assignExportsToNames(exports, exportsByName, exportNamesByVariable) {\n for (const variable of exports) {\n let nameIndex = 0;\n let exportName = variable.name;\n while (exportsByName.has(exportName)) {\n exportName = variable.name + '$' + ++nameIndex;\n }\n exportsByName.set(exportName, variable);\n exportNamesByVariable.set(variable, [exportName]);\n }\n}\n\nfunction getExportMode(chunk, { exports: exportMode, name, format }, facadeModuleId, log) {\n const exportKeys = chunk.getExportNames();\n if (exportMode === 'default') {\n if (exportKeys.length !== 1 || exportKeys[0] !== 'default') {\n return error(logIncompatibleExportOptionValue('default', exportKeys, facadeModuleId));\n }\n }\n else if (exportMode === 'none' && exportKeys.length > 0) {\n return error(logIncompatibleExportOptionValue('none', exportKeys, facadeModuleId));\n }\n if (exportMode === 'auto') {\n if (exportKeys.length === 0) {\n exportMode = 'none';\n }\n else if (exportKeys.length === 1 && exportKeys[0] === 'default') {\n exportMode = 'default';\n }\n else {\n if (format !== 'es' && format !== 'system' && exportKeys.includes('default')) {\n log(LOGLEVEL_WARN, logMixedExport(facadeModuleId, name));\n }\n exportMode = 'named';\n }\n }\n return exportMode;\n}\n\nfunction guessIndentString(code) {\n const lines = code.split('\\n');\n const tabbed = lines.filter(line => /^\\t+/.test(line));\n const spaced = lines.filter(line => /^ {2,}/.test(line));\n if (tabbed.length === 0 && spaced.length === 0) {\n return null;\n }\n // More lines tabbed than spaced? Assume tabs, and\n // default to tabs in the case of a tie (or nothing\n // to go on)\n if (tabbed.length >= spaced.length) {\n return '\\t';\n }\n // Otherwise, we need to guess the multiple\n const min = spaced.reduce((previous, current) => {\n const numberSpaces = /^ +/.exec(current)[0].length;\n return Math.min(numberSpaces, previous);\n }, Infinity);\n return ' '.repeat(min);\n}\nfunction getIndentString(modules, options) {\n if (options.indent !== true)\n return options.indent;\n for (const module of modules) {\n const indent = guessIndentString(module.originalCode);\n if (indent !== null)\n return indent;\n }\n return '\\t';\n}\n\nfunction getStaticDependencies(chunk, orderedModules, chunkByModule, externalChunkByModule) {\n const staticDependencyBlocks = [];\n const handledDependencies = new Set();\n for (let modulePos = orderedModules.length - 1; modulePos >= 0; modulePos--) {\n const module = orderedModules[modulePos];\n if (!handledDependencies.has(module)) {\n const staticDependencies = [];\n addStaticDependencies(module, staticDependencies, handledDependencies, chunk, chunkByModule, externalChunkByModule);\n staticDependencyBlocks.unshift(staticDependencies);\n }\n }\n const dependencies = new Set();\n for (const block of staticDependencyBlocks) {\n for (const dependency of block) {\n dependencies.add(dependency);\n }\n }\n return dependencies;\n}\nfunction addStaticDependencies(module, staticDependencies, handledModules, chunk, chunkByModule, externalChunkByModule) {\n const dependencies = module.getDependenciesToBeIncluded();\n for (const dependency of dependencies) {\n if (dependency instanceof ExternalModule) {\n staticDependencies.push(externalChunkByModule.get(dependency));\n continue;\n }\n const dependencyChunk = chunkByModule.get(dependency);\n if (dependencyChunk !== chunk) {\n staticDependencies.push(dependencyChunk);\n continue;\n }\n if (!handledModules.has(dependency)) {\n handledModules.add(dependency);\n addStaticDependencies(dependency, staticDependencies, handledModules, chunk, chunkByModule, externalChunkByModule);\n }\n }\n}\n\n// Four random characters from the private use area to minimize risk of\n// conflicts\nconst hashPlaceholderLeft = '!~{';\nconst hashPlaceholderRight = '}~';\nconst hashPlaceholderOverhead = hashPlaceholderLeft.length + hashPlaceholderRight.length;\n// This is the size of a 128-bits xxhash with base64url encoding\nconst MAX_HASH_SIZE = 22;\nconst DEFAULT_HASH_SIZE = 8;\nconst getHashPlaceholderGenerator = () => {\n let nextIndex = 0;\n return (optionName, hashSize) => {\n if (hashSize > MAX_HASH_SIZE) {\n return error(logFailedValidation(`Hashes cannot be longer than ${MAX_HASH_SIZE} characters, received ${hashSize}. Check the \"${optionName}\" option.`));\n }\n const placeholder = `${hashPlaceholderLeft}${toBase64(++nextIndex).padStart(hashSize - hashPlaceholderOverhead, '0')}${hashPlaceholderRight}`;\n if (placeholder.length > hashSize) {\n return error(logFailedValidation(`To generate hashes for this number of chunks (currently ${nextIndex}), you need a minimum hash size of ${placeholder.length}, received ${hashSize}. Check the \"${optionName}\" option.`));\n }\n return placeholder;\n };\n};\nconst REPLACER_REGEX = new RegExp(`${hashPlaceholderLeft}[0-9a-zA-Z_$]{1,${MAX_HASH_SIZE - hashPlaceholderOverhead}}${hashPlaceholderRight}`, 'g');\nconst replacePlaceholders = (code, hashesByPlaceholder) => code.replace(REPLACER_REGEX, placeholder => hashesByPlaceholder.get(placeholder) || placeholder);\nconst replaceSinglePlaceholder = (code, placeholder, value) => code.replace(REPLACER_REGEX, match => (match === placeholder ? value : match));\nconst replacePlaceholdersWithDefaultAndGetContainedPlaceholders = (code, placeholders) => {\n const containedPlaceholders = new Set();\n const transformedCode = code.replace(REPLACER_REGEX, placeholder => {\n if (placeholders.has(placeholder)) {\n containedPlaceholders.add(placeholder);\n return `${hashPlaceholderLeft}${'0'.repeat(placeholder.length - hashPlaceholderOverhead)}${hashPlaceholderRight}`;\n }\n return placeholder;\n });\n return { containedPlaceholders, transformedCode };\n};\n\nconst lowercaseBundleKeys = Symbol('bundleKeys');\nconst FILE_PLACEHOLDER = {\n type: 'placeholder'\n};\nconst getOutputBundle = (outputBundleBase) => {\n const reservedLowercaseBundleKeys = new Set();\n return new Proxy(outputBundleBase, {\n deleteProperty(target, key) {\n if (typeof key === 'string') {\n reservedLowercaseBundleKeys.delete(key.toLowerCase());\n }\n return Reflect.deleteProperty(target, key);\n },\n get(target, key) {\n if (key === lowercaseBundleKeys) {\n return reservedLowercaseBundleKeys;\n }\n return Reflect.get(target, key);\n },\n set(target, key, value) {\n if (typeof key === 'string') {\n reservedLowercaseBundleKeys.add(key.toLowerCase());\n }\n return Reflect.set(target, key, value);\n }\n });\n};\nconst removeUnreferencedAssets = (outputBundle) => {\n const unreferencedAssets = new Set();\n const bundleEntries = Object.values(outputBundle);\n for (const asset of bundleEntries) {\n asset.type === 'asset' && asset.needsCodeReference && unreferencedAssets.add(asset.fileName);\n }\n for (const chunk of bundleEntries) {\n if (chunk.type === 'chunk') {\n for (const referencedFile of chunk.referencedFiles) {\n unreferencedAssets.has(referencedFile) && unreferencedAssets.delete(referencedFile);\n }\n }\n }\n for (const file of unreferencedAssets) {\n delete outputBundle[file];\n }\n};\n\nfunction renderNamePattern(pattern, patternName, replacements) {\n if (isPathFragment(pattern))\n return error(logFailedValidation(`Invalid pattern \"${pattern}\" for \"${patternName}\", patterns can be neither absolute nor relative paths. If you want your files to be stored in a subdirectory, write its name without a leading slash like this: subdirectory/pattern.`));\n return pattern.replace(/\\[(\\w+)(:\\d+)?]/g, (_match, type, size) => {\n if (!replacements.hasOwnProperty(type) || (size && type !== 'hash')) {\n return error(logFailedValidation(`\"[${type}${size || ''}]\" is not a valid placeholder in the \"${patternName}\" pattern.`));\n }\n const replacement = replacements[type](size && Number.parseInt(size.slice(1)));\n if (isPathFragment(replacement))\n return error(logFailedValidation(`Invalid substitution \"${replacement}\" for placeholder \"[${type}]\" in \"${patternName}\" pattern, can be neither absolute nor relative path.`));\n return replacement;\n });\n}\nfunction makeUnique(name, { [lowercaseBundleKeys]: reservedLowercaseBundleKeys }) {\n if (!reservedLowercaseBundleKeys.has(name.toLowerCase()))\n return name;\n const extension = extname(name);\n name = name.slice(0, Math.max(0, name.length - extension.length));\n let uniqueName, uniqueIndex = 1;\n while (reservedLowercaseBundleKeys.has((uniqueName = name + ++uniqueIndex + extension).toLowerCase()))\n ;\n return uniqueName;\n}\n\nconst NON_ASSET_EXTENSIONS = new Set([\n '.js',\n '.jsx',\n '.ts',\n '.tsx',\n '.mjs',\n '.mts',\n '.cjs',\n '.cts'\n]);\nfunction getGlobalName(chunk, globals, hasExports, log) {\n const globalName = typeof globals === 'function' ? globals(chunk.id) : globals[chunk.id];\n if (globalName) {\n return globalName;\n }\n if (hasExports) {\n log(LOGLEVEL_WARN, logMissingGlobalName(chunk.id, chunk.variableName));\n return chunk.variableName;\n }\n}\nclass Chunk {\n constructor(orderedModules, inputOptions, outputOptions, unsetOptions, pluginDriver, modulesById, chunkByModule, externalChunkByModule, facadeChunkByModule, includedNamespaces, manualChunkAlias, getPlaceholder, bundle, inputBase, snippets) {\n this.orderedModules = orderedModules;\n this.inputOptions = inputOptions;\n this.outputOptions = outputOptions;\n this.unsetOptions = unsetOptions;\n this.pluginDriver = pluginDriver;\n this.modulesById = modulesById;\n this.chunkByModule = chunkByModule;\n this.externalChunkByModule = externalChunkByModule;\n this.facadeChunkByModule = facadeChunkByModule;\n this.includedNamespaces = includedNamespaces;\n this.manualChunkAlias = manualChunkAlias;\n this.getPlaceholder = getPlaceholder;\n this.bundle = bundle;\n this.inputBase = inputBase;\n this.snippets = snippets;\n this.entryModules = [];\n this.exportMode = 'named';\n this.facadeModule = null;\n this.namespaceVariableName = '';\n this.variableName = '';\n this.accessedGlobalsByScope = new Map();\n this.dependencies = new Set();\n this.dynamicEntryModules = [];\n this.dynamicName = null;\n this.exportNamesByVariable = new Map();\n this.exports = new Set();\n this.exportsByName = new Map();\n this.fileName = null;\n this.implicitEntryModules = [];\n this.implicitlyLoadedBefore = new Set();\n this.imports = new Set();\n this.includedDynamicImports = null;\n this.includedReexportsByModule = new Map();\n // This may be updated in the constructor\n this.isEmpty = true;\n this.name = null;\n this.needsExportsShim = false;\n this.preRenderedChunkInfo = null;\n this.preliminaryFileName = null;\n this.preliminarySourcemapFileName = null;\n this.renderedChunkInfo = null;\n this.renderedDependencies = null;\n this.renderedModules = Object.create(null);\n this.sortedExportNames = null;\n this.strictFacade = false;\n this.execIndex = orderedModules.length > 0 ? orderedModules[0].execIndex : Infinity;\n const chunkModules = new Set(orderedModules);\n for (const module of orderedModules) {\n chunkByModule.set(module, this);\n if (module.namespace.included && !outputOptions.preserveModules) {\n includedNamespaces.add(module);\n }\n if (this.isEmpty && module.isIncluded()) {\n this.isEmpty = false;\n }\n if (module.info.isEntry || outputOptions.preserveModules) {\n this.entryModules.push(module);\n }\n for (const importer of module.includedDynamicImporters) {\n if (!chunkModules.has(importer)) {\n this.dynamicEntryModules.push(module);\n // Modules with synthetic exports need an artificial namespace for dynamic imports\n if (module.info.syntheticNamedExports) {\n includedNamespaces.add(module);\n this.exports.add(module.namespace);\n }\n }\n }\n if (module.implicitlyLoadedAfter.size > 0) {\n this.implicitEntryModules.push(module);\n }\n }\n this.suggestedVariableName = makeLegal(this.generateVariableName());\n }\n static generateFacade(inputOptions, outputOptions, unsetOptions, pluginDriver, modulesById, chunkByModule, externalChunkByModule, facadeChunkByModule, includedNamespaces, facadedModule, facadeName, getPlaceholder, bundle, inputBase, snippets) {\n const chunk = new Chunk([], inputOptions, outputOptions, unsetOptions, pluginDriver, modulesById, chunkByModule, externalChunkByModule, facadeChunkByModule, includedNamespaces, null, getPlaceholder, bundle, inputBase, snippets);\n chunk.assignFacadeName(facadeName, facadedModule);\n if (!facadeChunkByModule.has(facadedModule)) {\n facadeChunkByModule.set(facadedModule, chunk);\n }\n for (const dependency of facadedModule.getDependenciesToBeIncluded()) {\n chunk.dependencies.add(dependency instanceof Module\n ? chunkByModule.get(dependency)\n : externalChunkByModule.get(dependency));\n }\n if (!chunk.dependencies.has(chunkByModule.get(facadedModule)) &&\n facadedModule.info.moduleSideEffects &&\n facadedModule.hasEffects()) {\n chunk.dependencies.add(chunkByModule.get(facadedModule));\n }\n chunk.ensureReexportsAreAvailableForModule(facadedModule);\n chunk.facadeModule = facadedModule;\n chunk.strictFacade = true;\n return chunk;\n }\n canModuleBeFacade(module, exposedVariables) {\n const moduleExportNamesByVariable = module.getExportNamesByVariable();\n // All exports of this chunk need to be exposed by the candidate module\n for (const exposedVariable of this.exports) {\n if (!moduleExportNamesByVariable.has(exposedVariable)) {\n return false;\n }\n }\n // Additionally, we need to expose namespaces of dynamic entries that are not the facade module and exports from other entry modules\n for (const exposedVariable of exposedVariables) {\n if (!(exposedVariable.module === module ||\n moduleExportNamesByVariable.has(exposedVariable) ||\n (exposedVariable instanceof SyntheticNamedExportVariable &&\n moduleExportNamesByVariable.has(exposedVariable.getBaseVariable())))) {\n return false;\n }\n }\n return true;\n }\n finalizeChunk(code, map, sourcemapFileName, hashesByPlaceholder) {\n const renderedChunkInfo = this.getRenderedChunkInfo();\n const finalize = (code) => replacePlaceholders(code, hashesByPlaceholder);\n const preliminaryFileName = renderedChunkInfo.fileName;\n const fileName = (this.fileName = finalize(preliminaryFileName));\n return {\n ...renderedChunkInfo,\n code,\n dynamicImports: renderedChunkInfo.dynamicImports.map(finalize),\n fileName,\n implicitlyLoadedBefore: renderedChunkInfo.implicitlyLoadedBefore.map(finalize),\n importedBindings: Object.fromEntries(Object.entries(renderedChunkInfo.importedBindings).map(([fileName, bindings]) => [\n finalize(fileName),\n bindings\n ])),\n imports: renderedChunkInfo.imports.map(finalize),\n map,\n preliminaryFileName,\n referencedFiles: renderedChunkInfo.referencedFiles.map(finalize),\n sourcemapFileName\n };\n }\n generateExports() {\n this.sortedExportNames = null;\n const remainingExports = new Set(this.exports);\n if (this.facadeModule !== null &&\n (this.facadeModule.preserveSignature !== false || this.strictFacade)) {\n const exportNamesByVariable = this.facadeModule.getExportNamesByVariable();\n for (const [variable, exportNames] of exportNamesByVariable) {\n this.exportNamesByVariable.set(variable, [...exportNames]);\n for (const exportName of exportNames) {\n this.exportsByName.set(exportName, variable);\n }\n remainingExports.delete(variable);\n }\n }\n if (this.outputOptions.minifyInternalExports) {\n assignExportsToMangledNames(remainingExports, this.exportsByName, this.exportNamesByVariable);\n }\n else {\n assignExportsToNames(remainingExports, this.exportsByName, this.exportNamesByVariable);\n }\n if (this.outputOptions.preserveModules || (this.facadeModule && this.facadeModule.info.isEntry))\n this.exportMode = getExportMode(this, this.outputOptions, this.facadeModule.id, this.inputOptions.onLog);\n }\n generateFacades() {\n const facades = [];\n const entryModules = new Set([...this.entryModules, ...this.implicitEntryModules]);\n const exposedVariables = new Set(this.dynamicEntryModules.map(({ namespace }) => namespace));\n for (const module of entryModules) {\n if (module.preserveSignature) {\n for (const exportedVariable of module.getExportNamesByVariable().keys()) {\n // We need to expose all entry exports from this chunk\n if (this.chunkByModule.get(exportedVariable.module) === this) {\n exposedVariables.add(exportedVariable);\n }\n }\n }\n }\n for (const module of entryModules) {\n // eslint-disable-next-line unicorn/prefer-spread\n const requiredFacades = Array.from(new Set(module.chunkNames.filter(({ isUserDefined }) => isUserDefined).map(({ name }) => name)), \n // mapping must run after Set 'name' dedupe\n name => ({\n name\n }));\n if (requiredFacades.length === 0 && module.isUserDefinedEntryPoint) {\n requiredFacades.push({});\n }\n // eslint-disable-next-line unicorn/prefer-spread\n requiredFacades.push(...Array.from(module.chunkFileNames, fileName => ({ fileName })));\n if (requiredFacades.length === 0) {\n requiredFacades.push({});\n }\n if (!this.facadeModule) {\n const needsStrictFacade = !this.outputOptions.preserveModules &&\n (module.preserveSignature === 'strict' ||\n (module.preserveSignature === 'exports-only' &&\n module.getExportNamesByVariable().size > 0));\n if (!needsStrictFacade || this.canModuleBeFacade(module, exposedVariables)) {\n this.facadeModule = module;\n this.facadeChunkByModule.set(module, this);\n if (module.preserveSignature) {\n this.strictFacade = needsStrictFacade;\n }\n this.assignFacadeName(requiredFacades.shift(), module, this.outputOptions.preserveModules);\n }\n }\n for (const facadeName of requiredFacades) {\n facades.push(Chunk.generateFacade(this.inputOptions, this.outputOptions, this.unsetOptions, this.pluginDriver, this.modulesById, this.chunkByModule, this.externalChunkByModule, this.facadeChunkByModule, this.includedNamespaces, module, facadeName, this.getPlaceholder, this.bundle, this.inputBase, this.snippets));\n }\n }\n for (const module of this.dynamicEntryModules) {\n if (module.info.syntheticNamedExports)\n continue;\n if (!this.facadeModule && this.canModuleBeFacade(module, exposedVariables)) {\n this.facadeModule = module;\n this.facadeChunkByModule.set(module, this);\n this.strictFacade = true;\n this.dynamicName = getChunkNameFromModule(module);\n }\n else if (this.facadeModule === module &&\n !this.strictFacade &&\n this.canModuleBeFacade(module, exposedVariables)) {\n this.strictFacade = true;\n }\n else if (!this.facadeChunkByModule.get(module)?.strictFacade) {\n this.includedNamespaces.add(module);\n this.exports.add(module.namespace);\n }\n }\n if (!this.outputOptions.preserveModules) {\n this.addNecessaryImportsForFacades();\n }\n return facades;\n }\n getChunkName() {\n return (this.name ??= this.outputOptions.sanitizeFileName(this.getFallbackChunkName()));\n }\n getExportNames() {\n return (this.sortedExportNames ??= [...this.exportsByName.keys()].sort());\n }\n getFileName() {\n return this.fileName || this.getPreliminaryFileName().fileName;\n }\n getImportPath(importer) {\n return escapeId(getImportPath(importer, this.getFileName(), this.outputOptions.format === 'amd' && !this.outputOptions.amd.forceJsExtensionForImports, true));\n }\n getPreliminaryFileName() {\n if (this.preliminaryFileName) {\n return this.preliminaryFileName;\n }\n let fileName;\n let hashPlaceholder = null;\n const { chunkFileNames, entryFileNames, file, format, preserveModules } = this.outputOptions;\n if (file) {\n fileName = basename(file);\n }\n else if (this.fileName === null) {\n const [pattern, patternName] = preserveModules || this.facadeModule?.isUserDefinedEntryPoint\n ? [entryFileNames, 'output.entryFileNames']\n : [chunkFileNames, 'output.chunkFileNames'];\n fileName = renderNamePattern(typeof pattern === 'function' ? pattern(this.getPreRenderedChunkInfo()) : pattern, patternName, {\n format: () => format,\n hash: size => hashPlaceholder ||\n (hashPlaceholder = this.getPlaceholder(patternName, size || DEFAULT_HASH_SIZE)),\n name: () => this.getChunkName()\n });\n if (!hashPlaceholder) {\n fileName = makeUnique(fileName, this.bundle);\n }\n }\n else {\n fileName = this.fileName;\n }\n if (!hashPlaceholder) {\n this.bundle[fileName] = FILE_PLACEHOLDER;\n }\n // Caching is essential to not conflict with the file name reservation above\n return (this.preliminaryFileName = { fileName, hashPlaceholder });\n }\n getPreliminarySourcemapFileName() {\n if (this.preliminarySourcemapFileName) {\n return this.preliminarySourcemapFileName;\n }\n let sourcemapFileName = null;\n let hashPlaceholder = null;\n const { sourcemapFileNames, format } = this.outputOptions;\n if (sourcemapFileNames) {\n const [pattern, patternName] = [sourcemapFileNames, 'output.sourcemapFileNames'];\n sourcemapFileName = renderNamePattern(typeof pattern === 'function' ? pattern(this.getPreRenderedChunkInfo()) : pattern, patternName, {\n chunkhash: () => this.getPreliminaryFileName().hashPlaceholder || '',\n format: () => format,\n hash: size => hashPlaceholder ||\n (hashPlaceholder = this.getPlaceholder(patternName, size || DEFAULT_HASH_SIZE)),\n name: () => this.getChunkName()\n });\n if (!hashPlaceholder) {\n sourcemapFileName = makeUnique(sourcemapFileName, this.bundle);\n }\n }\n else {\n return null;\n }\n return (this.preliminarySourcemapFileName = { fileName: sourcemapFileName, hashPlaceholder });\n }\n getRenderedChunkInfo() {\n if (this.renderedChunkInfo) {\n return this.renderedChunkInfo;\n }\n return (this.renderedChunkInfo = {\n ...this.getPreRenderedChunkInfo(),\n dynamicImports: this.getDynamicDependencies().map(resolveFileName),\n fileName: this.getFileName(),\n // eslint-disable-next-line unicorn/prefer-spread\n implicitlyLoadedBefore: Array.from(this.implicitlyLoadedBefore, resolveFileName),\n importedBindings: getImportedBindingsPerDependency(this.getRenderedDependencies(), resolveFileName),\n // eslint-disable-next-line unicorn/prefer-spread\n imports: Array.from(this.dependencies, resolveFileName),\n modules: this.renderedModules,\n referencedFiles: this.getReferencedFiles()\n });\n }\n getVariableExportName(variable) {\n if (this.outputOptions.preserveModules && variable instanceof NamespaceVariable) {\n return '*';\n }\n return this.exportNamesByVariable.get(variable)[0];\n }\n link() {\n this.dependencies = getStaticDependencies(this, this.orderedModules, this.chunkByModule, this.externalChunkByModule);\n for (const module of this.orderedModules) {\n this.addImplicitlyLoadedBeforeFromModule(module);\n this.setUpChunkImportsAndExportsForModule(module);\n }\n }\n async render() {\n const { dependencies, exportMode, facadeModule, inputOptions: { onLog }, outputOptions, pluginDriver, snippets } = this;\n const { format, hoistTransitiveImports, preserveModules } = outputOptions;\n // for static and dynamic entry points, add transitive dependencies to this\n // chunk's dependencies to avoid loading latency\n if (hoistTransitiveImports && !preserveModules && facadeModule !== null) {\n for (const dep of dependencies) {\n if (dep instanceof Chunk)\n this.inlineChunkDependencies(dep);\n }\n }\n const preliminaryFileName = this.getPreliminaryFileName();\n const preliminarySourcemapFileName = this.getPreliminarySourcemapFileName();\n const { accessedGlobals, indent, magicString, renderedSource, usedModules, usesTopLevelAwait } = this.renderModules(preliminaryFileName.fileName);\n const renderedDependencies = [...this.getRenderedDependencies().values()];\n const renderedExports = exportMode === 'none' ? [] : this.getChunkExportDeclarations(format);\n let hasExports = renderedExports.length > 0;\n let hasDefaultExport = false;\n for (const renderedDependency of renderedDependencies) {\n const { reexports } = renderedDependency;\n if (reexports?.length) {\n hasExports = true;\n if (!hasDefaultExport && reexports.some(reexport => reexport.reexported === 'default')) {\n hasDefaultExport = true;\n }\n if (format === 'es') {\n renderedDependency.reexports = reexports.filter(\n // eslint-disable-next-line unicorn/prefer-array-some\n ({ reexported }) => !renderedExports.find(({ exported }) => exported === reexported));\n }\n }\n }\n if (!hasDefaultExport) {\n for (const { exported } of renderedExports) {\n if (exported === 'default') {\n hasDefaultExport = true;\n break;\n }\n }\n }\n const { intro, outro, banner, footer } = await createAddons(outputOptions, pluginDriver, this.getRenderedChunkInfo());\n finalisers[format](renderedSource, {\n accessedGlobals,\n dependencies: renderedDependencies,\n exports: renderedExports,\n hasDefaultExport,\n hasExports,\n id: preliminaryFileName.fileName,\n indent,\n intro,\n isEntryFacade: preserveModules || (facadeModule !== null && facadeModule.info.isEntry),\n isModuleFacade: facadeModule !== null,\n log: onLog,\n namedExportsMode: exportMode !== 'default',\n outro,\n snippets,\n usesTopLevelAwait\n }, outputOptions);\n if (banner)\n magicString.prepend(banner);\n if (format === 'es' || format === 'cjs') {\n const shebang = facadeModule !== null && facadeModule.info.isEntry && facadeModule.shebang;\n shebang && magicString.prepend(`#!${shebang}\\n`);\n }\n if (footer)\n magicString.append(footer);\n return {\n chunk: this,\n magicString,\n preliminaryFileName,\n preliminarySourcemapFileName,\n usedModules\n };\n }\n addImplicitlyLoadedBeforeFromModule(baseModule) {\n const { chunkByModule, implicitlyLoadedBefore } = this;\n for (const module of baseModule.implicitlyLoadedBefore) {\n const chunk = chunkByModule.get(module);\n if (chunk && chunk !== this) {\n implicitlyLoadedBefore.add(chunk);\n }\n }\n }\n addNecessaryImportsForFacades() {\n for (const [module, variables] of this.includedReexportsByModule) {\n if (this.includedNamespaces.has(module)) {\n for (const variable of variables) {\n this.imports.add(variable);\n }\n }\n }\n }\n assignFacadeName({ fileName, name }, facadedModule, preservePath) {\n if (fileName) {\n this.fileName = fileName;\n }\n else {\n this.name = this.outputOptions.sanitizeFileName(name ||\n (preservePath\n ? this.getPreserveModulesChunkNameFromModule(facadedModule)\n : getChunkNameFromModule(facadedModule)));\n }\n }\n checkCircularDependencyImport(variable, importingModule) {\n const variableModule = variable.module;\n if (variableModule instanceof Module) {\n const exportChunk = this.chunkByModule.get(variableModule);\n let alternativeReexportModule;\n do {\n alternativeReexportModule = importingModule.alternativeReexportModules.get(variable);\n if (alternativeReexportModule) {\n const exportingChunk = this.chunkByModule.get(alternativeReexportModule);\n if (exportingChunk !== exportChunk) {\n this.inputOptions.onLog(LOGLEVEL_WARN, logCyclicCrossChunkReexport(\n // Namespaces do not have an export name\n variableModule.getExportNamesByVariable().get(variable)?.[0] || '*', variableModule.id, alternativeReexportModule.id, importingModule.id, this.outputOptions.preserveModules));\n }\n importingModule = alternativeReexportModule;\n }\n } while (alternativeReexportModule);\n }\n }\n ensureReexportsAreAvailableForModule(module) {\n const includedReexports = [];\n const map = module.getExportNamesByVariable();\n for (const exportedVariable of map.keys()) {\n const isSynthetic = exportedVariable instanceof SyntheticNamedExportVariable;\n const importedVariable = isSynthetic ? exportedVariable.getBaseVariable() : exportedVariable;\n this.checkCircularDependencyImport(importedVariable, module);\n // When preserving modules, we do not create namespace objects but directly\n // use the actual namespaces, which would be broken by this logic.\n if (!(importedVariable instanceof NamespaceVariable && this.outputOptions.preserveModules)) {\n const exportingModule = importedVariable.module;\n if (exportingModule instanceof Module) {\n const chunk = this.chunkByModule.get(exportingModule);\n if (chunk && chunk !== this) {\n chunk.exports.add(importedVariable);\n includedReexports.push(importedVariable);\n if (isSynthetic) {\n this.imports.add(importedVariable);\n }\n }\n }\n }\n }\n if (includedReexports.length > 0) {\n this.includedReexportsByModule.set(module, includedReexports);\n }\n }\n generateVariableName() {\n if (this.manualChunkAlias) {\n return this.manualChunkAlias;\n }\n const moduleForNaming = this.entryModules[0] ||\n this.implicitEntryModules[0] ||\n this.dynamicEntryModules[0] ||\n this.orderedModules[this.orderedModules.length - 1];\n if (moduleForNaming) {\n return getChunkNameFromModule(moduleForNaming);\n }\n return 'chunk';\n }\n getChunkExportDeclarations(format) {\n const exports = [];\n for (const exportName of this.getExportNames()) {\n if (exportName[0] === '*')\n continue;\n const variable = this.exportsByName.get(exportName);\n if (!(variable instanceof SyntheticNamedExportVariable)) {\n const module = variable.module;\n if (module) {\n const chunk = this.chunkByModule.get(module);\n if (chunk !== this) {\n if (!chunk || format !== 'es') {\n continue;\n }\n const chunkDep = this.renderedDependencies.get(chunk);\n if (!chunkDep) {\n continue;\n }\n const { imports, reexports } = chunkDep;\n const importedByReexported = reexports?.find(({ reexported }) => reexported === exportName);\n const isImported = imports?.find(({ imported }) => imported === importedByReexported?.imported);\n if (!isImported) {\n continue;\n }\n }\n }\n }\n let expression = null;\n let hoisted = false;\n let local = variable.getName(this.snippets.getPropertyAccess);\n if (variable instanceof LocalVariable) {\n for (const declaration of variable.declarations) {\n if (declaration.parent instanceof FunctionDeclaration ||\n (declaration instanceof ExportDefaultDeclaration &&\n declaration.declaration instanceof FunctionDeclaration)) {\n hoisted = true;\n break;\n }\n }\n }\n else if (variable instanceof SyntheticNamedExportVariable) {\n expression = local;\n if (format === 'es') {\n local = variable.renderName;\n }\n }\n exports.push({\n exported: exportName,\n expression,\n hoisted,\n local\n });\n }\n return exports;\n }\n getDependenciesToBeDeconflicted(addNonNamespacesAndInteropHelpers, addDependenciesWithoutBindings, interop) {\n const dependencies = new Set();\n const deconflictedDefault = new Set();\n const deconflictedNamespace = new Set();\n for (const variable of [...this.exportNamesByVariable.keys(), ...this.imports]) {\n if (addNonNamespacesAndInteropHelpers || variable.isNamespace) {\n const module = variable.module;\n if (module instanceof ExternalModule) {\n const chunk = this.externalChunkByModule.get(module);\n dependencies.add(chunk);\n if (addNonNamespacesAndInteropHelpers) {\n if (variable.name === 'default') {\n if (defaultInteropHelpersByInteropType[interop(module.id)]) {\n deconflictedDefault.add(chunk);\n }\n }\n else if (variable.isNamespace &&\n namespaceInteropHelpersByInteropType[interop(module.id)] &&\n (this.imports.has(variable) ||\n !this.exportNamesByVariable.get(variable)?.every(name => name.startsWith('*')))) {\n // We only need to deconflict it if the namespace is actually\n // created as a variable, i.e. because it is used internally or\n // because it is reexported as an object\n deconflictedNamespace.add(chunk);\n }\n }\n }\n else {\n const chunk = this.chunkByModule.get(module);\n if (chunk !== this) {\n dependencies.add(chunk);\n if (addNonNamespacesAndInteropHelpers &&\n chunk.exportMode === 'default' &&\n variable.isNamespace) {\n deconflictedNamespace.add(chunk);\n }\n }\n }\n }\n }\n if (addDependenciesWithoutBindings) {\n for (const dependency of this.dependencies) {\n dependencies.add(dependency);\n }\n }\n return { deconflictedDefault, deconflictedNamespace, dependencies };\n }\n getDynamicDependencies() {\n return this.getIncludedDynamicImports()\n .map(resolvedDynamicImport => resolvedDynamicImport.facadeChunk ||\n resolvedDynamicImport.chunk ||\n resolvedDynamicImport.externalChunk ||\n resolvedDynamicImport.resolution)\n .filter((resolution) => resolution !== this &&\n (resolution instanceof Chunk || resolution instanceof ExternalChunk));\n }\n getDynamicImportStringAndAttributes(resolution, fileName) {\n if (resolution instanceof ExternalModule) {\n const chunk = this.externalChunkByModule.get(resolution);\n return [`'${chunk.getImportPath(fileName)}'`, chunk.getImportAttributes(this.snippets)];\n }\n return [\n resolution || '',\n (this.outputOptions.format === 'es' && this.outputOptions.externalImportAttributes) || null\n ];\n }\n getFallbackChunkName() {\n if (this.manualChunkAlias) {\n return this.manualChunkAlias;\n }\n if (this.dynamicName) {\n return this.dynamicName;\n }\n if (this.fileName) {\n return getAliasName(this.fileName);\n }\n return getAliasName(this.orderedModules[this.orderedModules.length - 1].id);\n }\n getImportSpecifiers() {\n const { interop } = this.outputOptions;\n const importsByDependency = new Map();\n for (const variable of this.imports) {\n const module = variable.module;\n let dependency;\n let imported;\n if (module instanceof ExternalModule) {\n dependency = this.externalChunkByModule.get(module);\n imported = variable.name;\n if (imported !== 'default' && imported !== '*' && interop(module.id) === 'defaultOnly') {\n return error(logUnexpectedNamedImport(module.id, imported, false));\n }\n }\n else {\n dependency = this.chunkByModule.get(module);\n imported = dependency.getVariableExportName(variable);\n }\n getOrCreate(importsByDependency, dependency, getNewArray).push({\n imported,\n local: variable.getName(this.snippets.getPropertyAccess)\n });\n }\n return importsByDependency;\n }\n getIncludedDynamicImports() {\n if (this.includedDynamicImports) {\n return this.includedDynamicImports;\n }\n const includedDynamicImports = [];\n for (const module of this.orderedModules) {\n for (const { node, resolution } of module.dynamicImports) {\n if (!node.included) {\n continue;\n }\n includedDynamicImports.push(resolution instanceof Module\n ? {\n chunk: this.chunkByModule.get(resolution),\n externalChunk: null,\n facadeChunk: this.facadeChunkByModule.get(resolution),\n node,\n resolution\n }\n : resolution instanceof ExternalModule\n ? {\n chunk: null,\n externalChunk: this.externalChunkByModule.get(resolution),\n facadeChunk: null,\n node,\n resolution\n }\n : { chunk: null, externalChunk: null, facadeChunk: null, node, resolution });\n }\n }\n return (this.includedDynamicImports = includedDynamicImports);\n }\n getPreRenderedChunkInfo() {\n if (this.preRenderedChunkInfo) {\n return this.preRenderedChunkInfo;\n }\n const { dynamicEntryModules, facadeModule, implicitEntryModules, orderedModules } = this;\n return (this.preRenderedChunkInfo = {\n exports: this.getExportNames(),\n facadeModuleId: facadeModule && facadeModule.id,\n isDynamicEntry: dynamicEntryModules.length > 0,\n isEntry: !!facadeModule?.info.isEntry,\n isImplicitEntry: implicitEntryModules.length > 0,\n moduleIds: orderedModules.map(({ id }) => id),\n name: this.getChunkName(),\n type: 'chunk'\n });\n }\n getPreserveModulesChunkNameFromModule(module) {\n const predefinedChunkName = getPredefinedChunkNameFromModule(module);\n if (predefinedChunkName)\n return predefinedChunkName;\n const { preserveModulesRoot, sanitizeFileName } = this.outputOptions;\n const sanitizedId = sanitizeFileName(normalize(module.id.split(QUERY_HASH_REGEX, 1)[0]));\n const extensionName = extname(sanitizedId);\n const idWithoutExtension = NON_ASSET_EXTENSIONS.has(extensionName)\n ? sanitizedId.slice(0, -extensionName.length)\n : sanitizedId;\n if (isAbsolute$1(idWithoutExtension)) {\n return preserveModulesRoot && resolve$1(idWithoutExtension).startsWith(preserveModulesRoot)\n ? idWithoutExtension.slice(preserveModulesRoot.length).replace(/^[/\\\\]/, '')\n : relative$1(this.inputBase, idWithoutExtension);\n }\n else {\n return `_virtual/${basename(idWithoutExtension)}`;\n }\n }\n getReexportSpecifiers() {\n const { externalLiveBindings, interop } = this.outputOptions;\n const reexportSpecifiers = new Map();\n for (let exportName of this.getExportNames()) {\n let dependency;\n let imported;\n let needsLiveBinding = false;\n if (exportName[0] === '*') {\n const id = exportName.slice(1);\n if (interop(id) === 'defaultOnly') {\n this.inputOptions.onLog(LOGLEVEL_WARN, logUnexpectedNamespaceReexport(id));\n }\n needsLiveBinding = externalLiveBindings;\n dependency = this.externalChunkByModule.get(this.modulesById.get(id));\n imported = exportName = '*';\n }\n else {\n const variable = this.exportsByName.get(exportName);\n if (variable instanceof SyntheticNamedExportVariable)\n continue;\n const module = variable.module;\n if (module instanceof Module) {\n dependency = this.chunkByModule.get(module);\n if (dependency === this)\n continue;\n imported = dependency.getVariableExportName(variable);\n needsLiveBinding = variable.isReassigned;\n }\n else {\n dependency = this.externalChunkByModule.get(module);\n imported = variable.name;\n if (imported !== 'default' && imported !== '*' && interop(module.id) === 'defaultOnly') {\n return error(logUnexpectedNamedImport(module.id, imported, true));\n }\n needsLiveBinding =\n externalLiveBindings &&\n (imported !== 'default' || isDefaultAProperty(interop(module.id), true));\n }\n }\n getOrCreate(reexportSpecifiers, dependency, getNewArray).push({\n imported,\n needsLiveBinding,\n reexported: exportName\n });\n }\n return reexportSpecifiers;\n }\n getReferencedFiles() {\n const referencedFiles = new Set();\n for (const module of this.orderedModules) {\n for (const meta of module.importMetas) {\n const fileName = meta.getReferencedFileName(this.pluginDriver);\n if (fileName) {\n referencedFiles.add(fileName);\n }\n }\n }\n return [...referencedFiles];\n }\n getRenderedDependencies() {\n if (this.renderedDependencies) {\n return this.renderedDependencies;\n }\n const importSpecifiers = this.getImportSpecifiers();\n const reexportSpecifiers = this.getReexportSpecifiers();\n const renderedDependencies = new Map();\n const fileName = this.getFileName();\n for (const dependency of this.dependencies) {\n const imports = importSpecifiers.get(dependency) || null;\n const reexports = reexportSpecifiers.get(dependency) || null;\n const namedExportsMode = dependency instanceof ExternalChunk || dependency.exportMode !== 'default';\n const importPath = dependency.getImportPath(fileName);\n renderedDependencies.set(dependency, {\n attributes: dependency instanceof ExternalChunk\n ? dependency.getImportAttributes(this.snippets)\n : null,\n defaultVariableName: dependency.defaultVariableName,\n globalName: dependency instanceof ExternalChunk &&\n (this.outputOptions.format === 'umd' || this.outputOptions.format === 'iife') &&\n getGlobalName(dependency, this.outputOptions.globals, (imports || reexports) !== null, this.inputOptions.onLog),\n importPath,\n imports,\n isChunk: dependency instanceof Chunk,\n name: dependency.variableName,\n namedExportsMode,\n namespaceVariableName: dependency.namespaceVariableName,\n reexports\n });\n }\n return (this.renderedDependencies = renderedDependencies);\n }\n inlineChunkDependencies(chunk) {\n for (const dep of chunk.dependencies) {\n if (this.dependencies.has(dep))\n continue;\n this.dependencies.add(dep);\n if (dep instanceof Chunk) {\n this.inlineChunkDependencies(dep);\n }\n }\n }\n // This method changes properties on the AST before rendering and must not be async\n renderModules(fileName) {\n const { accessedGlobalsByScope, dependencies, exportNamesByVariable, includedNamespaces, inputOptions: { onLog }, isEmpty, orderedModules, outputOptions, pluginDriver, renderedModules, snippets } = this;\n const { compact, format, freeze, generatedCode: { symbols } } = outputOptions;\n const { _, cnst, n } = snippets;\n this.setDynamicImportResolutions(fileName);\n this.setImportMetaResolutions(fileName);\n this.setIdentifierRenderResolutions();\n const magicString = new Bundle$1({ separator: `${n}${n}` });\n const indent = getIndentString(orderedModules, outputOptions);\n const usedModules = [];\n let hoistedSource = '';\n const accessedGlobals = new Set();\n const renderedModuleSources = new Map();\n const renderOptions = {\n accessedDocumentCurrentScript: false,\n exportNamesByVariable,\n format,\n freeze,\n indent,\n pluginDriver,\n snippets,\n symbols,\n useOriginalName: null\n };\n let usesTopLevelAwait = false;\n for (const module of orderedModules) {\n let renderedLength = 0;\n let source;\n if (module.isIncluded() || includedNamespaces.has(module)) {\n const rendered = module.render(renderOptions);\n if (!renderOptions.accessedDocumentCurrentScript &&\n formatsMaybeAccessDocumentCurrentScript.includes(format)) {\n // eslint-disable-next-line unicorn/consistent-destructuring\n this.accessedGlobalsByScope.get(module.scope)?.delete(DOCUMENT_CURRENT_SCRIPT);\n }\n renderOptions.accessedDocumentCurrentScript = false;\n ({ source } = rendered);\n usesTopLevelAwait ||= rendered.usesTopLevelAwait;\n renderedLength = source.length();\n if (renderedLength) {\n if (compact && source.lastLine().includes('//'))\n source.append('\\n');\n renderedModuleSources.set(module, source);\n magicString.addSource(source);\n usedModules.push(module);\n }\n const namespace = module.namespace;\n if (includedNamespaces.has(module)) {\n const rendered = namespace.renderBlock(renderOptions);\n if (namespace.renderFirst())\n hoistedSource += n + rendered;\n else\n magicString.addSource(new MagicString(rendered));\n }\n const accessedGlobalVariables = accessedGlobalsByScope.get(module.scope);\n if (accessedGlobalVariables) {\n for (const name of accessedGlobalVariables) {\n accessedGlobals.add(name);\n }\n }\n }\n const { renderedExports, removedExports } = module.getRenderedExports();\n renderedModules[module.id] = {\n get code() {\n return source?.toString() ?? null;\n },\n originalLength: module.originalCode.length,\n removedExports,\n renderedExports,\n renderedLength\n };\n }\n if (hoistedSource)\n magicString.prepend(hoistedSource + n + n);\n // eslint-disable-next-line unicorn/consistent-destructuring\n if (this.needsExportsShim) {\n magicString.prepend(`${n}${cnst} ${MISSING_EXPORT_SHIM_VARIABLE}${_}=${_}void 0;${n}${n}`);\n }\n const renderedSource = compact ? magicString : magicString.trim();\n if (isEmpty && this.getExportNames().length === 0 && dependencies.size === 0) {\n onLog(LOGLEVEL_WARN, logEmptyChunk(this.getChunkName()));\n }\n return { accessedGlobals, indent, magicString, renderedSource, usedModules, usesTopLevelAwait };\n }\n setDynamicImportResolutions(fileName) {\n const { accessedGlobalsByScope, outputOptions, pluginDriver, snippets } = this;\n for (const resolvedDynamicImport of this.getIncludedDynamicImports()) {\n if (resolvedDynamicImport.chunk) {\n const { chunk, facadeChunk, node, resolution } = resolvedDynamicImport;\n if (chunk === this) {\n node.setInternalResolution(resolution.namespace);\n }\n else {\n node.setExternalResolution((facadeChunk || chunk).exportMode, resolution, outputOptions, snippets, pluginDriver, accessedGlobalsByScope, `'${(facadeChunk || chunk).getImportPath(fileName)}'`, !facadeChunk?.strictFacade && chunk.exportNamesByVariable.get(resolution.namespace)[0], null);\n }\n }\n else {\n const { node, resolution } = resolvedDynamicImport;\n const [resolutionString, attributes] = this.getDynamicImportStringAndAttributes(resolution, fileName);\n node.setExternalResolution('external', resolution, outputOptions, snippets, pluginDriver, accessedGlobalsByScope, resolutionString, false, attributes);\n }\n }\n }\n setIdentifierRenderResolutions() {\n const { format, generatedCode: { symbols }, interop, preserveModules, externalLiveBindings } = this.outputOptions;\n const syntheticExports = new Set();\n for (const exportName of this.getExportNames()) {\n const exportVariable = this.exportsByName.get(exportName);\n if (format !== 'es' &&\n format !== 'system' &&\n exportVariable.isReassigned &&\n !exportVariable.isId) {\n exportVariable.setRenderNames('exports', exportName);\n }\n else if (exportVariable instanceof SyntheticNamedExportVariable) {\n syntheticExports.add(exportVariable);\n }\n else {\n exportVariable.setRenderNames(null, null);\n }\n }\n for (const module of this.orderedModules) {\n if (module.needsExportShim) {\n this.needsExportsShim = true;\n break;\n }\n }\n const usedNames = new Set(['Object', 'Promise']);\n if (this.needsExportsShim) {\n usedNames.add(MISSING_EXPORT_SHIM_VARIABLE);\n }\n if (symbols) {\n usedNames.add('Symbol');\n }\n switch (format) {\n case 'system': {\n usedNames.add('module').add('exports');\n break;\n }\n case 'es': {\n break;\n }\n case 'cjs': {\n usedNames.add('module').add('require').add('__filename').add('__dirname');\n }\n // fallthrough\n default: {\n usedNames.add('exports');\n for (const helper of HELPER_NAMES) {\n usedNames.add(helper);\n }\n }\n }\n deconflictChunk(this.orderedModules, this.getDependenciesToBeDeconflicted(format !== 'es' && format !== 'system', format === 'amd' || format === 'umd' || format === 'iife', interop), this.imports, usedNames, format, interop, preserveModules, externalLiveBindings, this.chunkByModule, this.externalChunkByModule, syntheticExports, this.exportNamesByVariable, this.accessedGlobalsByScope, this.includedNamespaces);\n }\n setImportMetaResolutions(fileName) {\n const { accessedGlobalsByScope, includedNamespaces, orderedModules, outputOptions: { format } } = this;\n for (const module of orderedModules) {\n for (const importMeta of module.importMetas) {\n importMeta.setResolution(format, accessedGlobalsByScope, fileName);\n }\n if (includedNamespaces.has(module)) {\n module.namespace.prepare(accessedGlobalsByScope);\n }\n }\n }\n setUpChunkImportsAndExportsForModule(module) {\n const moduleImports = new Set(module.includedImports);\n // when we are not preserving modules, we need to make all namespace variables available for\n // rendering the namespace object\n if (!this.outputOptions.preserveModules && this.includedNamespaces.has(module)) {\n const memberVariables = module.namespace.getMemberVariables();\n for (const variable of Object.values(memberVariables)) {\n if (variable.included) {\n moduleImports.add(variable);\n }\n }\n }\n for (let variable of moduleImports) {\n if (variable instanceof ExportDefaultVariable) {\n variable = variable.getOriginalVariable();\n }\n if (variable instanceof SyntheticNamedExportVariable) {\n variable = variable.getBaseVariable();\n }\n const chunk = this.chunkByModule.get(variable.module);\n if (chunk !== this) {\n this.imports.add(variable);\n if (variable.module instanceof Module) {\n this.checkCircularDependencyImport(variable, module);\n // When preserving modules, we do not create namespace objects but directly\n // use the actual namespaces, which would be broken by this logic.\n if (!(variable instanceof NamespaceVariable && this.outputOptions.preserveModules)) {\n chunk.exports.add(variable);\n }\n }\n }\n }\n if (this.includedNamespaces.has(module) ||\n (module.info.isEntry && module.preserveSignature !== false) ||\n module.includedDynamicImporters.some(importer => this.chunkByModule.get(importer) !== this)) {\n this.ensureReexportsAreAvailableForModule(module);\n }\n for (const { node, resolution } of module.dynamicImports) {\n if (node.included &&\n resolution instanceof Module &&\n this.chunkByModule.get(resolution) === this &&\n !this.includedNamespaces.has(resolution)) {\n this.includedNamespaces.add(resolution);\n this.ensureReexportsAreAvailableForModule(resolution);\n }\n }\n }\n}\nfunction getChunkNameFromModule(module) {\n return getPredefinedChunkNameFromModule(module) ?? getAliasName(module.id);\n}\nfunction getPredefinedChunkNameFromModule(module) {\n return (module.chunkNames.find(({ isUserDefined }) => isUserDefined)?.name ?? module.chunkNames[0]?.name);\n}\nfunction getImportedBindingsPerDependency(renderedDependencies, resolveFileName) {\n const importedBindingsPerDependency = {};\n for (const [dependency, declaration] of renderedDependencies) {\n const specifiers = new Set();\n if (declaration.imports) {\n for (const { imported } of declaration.imports) {\n specifiers.add(imported);\n }\n }\n if (declaration.reexports) {\n for (const { imported } of declaration.reexports) {\n specifiers.add(imported);\n }\n }\n importedBindingsPerDependency[resolveFileName(dependency)] = [...specifiers];\n }\n return importedBindingsPerDependency;\n}\nconst QUERY_HASH_REGEX = /[#?]/;\nconst resolveFileName = (dependency) => dependency.getFileName();\n\n/**\n * Concatenate a number of iterables to a new iterable without fully evaluating\n * their iterators. Useful when e.g. working with large sets or lists and when\n * there is a chance that the iterators will not be fully exhausted.\n */\nfunction* concatLazy(iterables) {\n for (const iterable of iterables) {\n yield* iterable;\n }\n}\n\n/**\n * At its core, the algorithm first starts from each static or dynamic entry\n * point and then assigns that entry point to all modules than can be reached\n * via static imports. We call this the *dependent entry points* of that\n * module.\n *\n * Then we group all modules with the same dependent entry points into chunks\n * as those modules will always be loaded together.\n *\n * One non-trivial optimization we can apply is that dynamic entries are\n * different from static entries in so far as when a dynamic import occurs,\n * some modules are already in memory. If some of these modules are also\n * dependencies of the dynamic entry, then it does not make sense to create a\n * separate chunk for them. Instead, the dynamic import target can load them\n * from the importing chunk.\n *\n * With regard to chunking, if B is implicitly loaded after A, then this can be\n * handled the same way as if there was a dynamic import A => B.\n *\n * Example:\n * Assume A -> B (A imports B), A => C (A dynamically imports C) and C -> B.\n * Then the initial algorithm would assign A into the A chunk, C into the C\n * chunk and B into the AC chunk, i.e. the chunk with the dependent entry\n * points A and C.\n * However we know that C can only be loaded from A, so A and its dependency B\n * must already be in memory when C is loaded. So it is enough to create only\n * two chunks A containing [AB] and C containing [C].\n *\n * So we do not assign the dynamic entry C as dependent entry point to modules\n * that are already loaded.\n *\n * In a more complex example, let us assume that we have entry points X and Y.\n * Further, let us assume\n * X -> A, X -> B, X -> C,\n * Y -> A, Y -> B,\n * A => D,\n * D -> B, D -> C\n * So without dynamic import optimization, the dependent entry points are\n * A: XY, B: DXY, C: DX, D: D, X: X, Y: Y, so we would for now create six\n * chunks.\n *\n * Now D is loaded only after A is loaded. But A is loaded if either X is\n * loaded or Y is loaded. So the modules that are already in memory when D is\n * loaded are the intersection of all modules that X depends on with all\n * modules that Y depends on, which in this case are the modules A and B.\n * We could also say they are all modules that have both X and Y as dependent\n * entry points.\n *\n * So we can remove D as dependent entry point from A and B, which means they\n * both now have only XY as dependent entry points and can be merged into the\n * same chunk.\n *\n * Now let us extend this to the most general case where we have several\n * dynamic importers for one dynamic entry point.\n *\n * In the most general form, it works like this:\n * For each dynamic entry point, we have a number of dynamic importers, which\n * are the modules importing it. Using the previous ideas, we can determine\n * the modules already in memory for each dynamic importer by looking for all\n * modules that have all the dependent entry points of the dynamic importer as\n * dependent entry points.\n * So the modules that are guaranteed to be in memory when the dynamic entry\n * point is loaded are the intersection of the modules already in memory for\n * each dynamic importer.\n *\n * Assuming that A => D and B => D and A has dependent entry points XY and B\n * has dependent entry points YZ, then the modules guaranteed to be in memory\n * are all modules that have at least XYZ as dependent entry points.\n * We call XYZ the *dynamically dependent entry points* of D.\n *\n * Now there is one last case to consider: If one of the dynamically dependent\n * entries is itself a dynamic entry, then any module is in memory that either\n * is a dependency of that dynamic entry or again has the dynamic dependent\n * entries of that dynamic entry as dependent entry points.\n *\n * A naive algorithm for this proved to be costly as it contained an O(n^3)\n * complexity with regard to dynamic entries that blew up for very large\n * projects.\n *\n * If we have an efficient way to do Set operations, an alternative approach\n * would be to instead collect already loaded modules per dynamic entry. And as\n * all chunks from the initial grouping would behave the same, we can instead\n * collect already loaded chunks for a performance improvement.\n *\n * To do that efficiently, need\n * - a Map of dynamic imports per dynamic entry, which contains all dynamic\n * imports that can be triggered by a dynamic entry\n * - a Map of static dependencies per entry\n * - a Map of already loaded chunks per entry that we initially populate with\n * empty Sets for static entries and Sets containing all entries for dynamic\n * entries\n *\n * For efficient operations, we assign each entry a numerical index and\n * represent Sets of Chunks as BigInt values where each chunk corresponds to a\n * bit index. Then the last two maps can be represented as arrays of BigInt\n * values.\n *\n * Then we iterate through each dynamic entry. We set the already loaded modules\n * to the intersection of the previously already loaded modules with the union\n * of the already loaded modules of that chunk with its static dependencies.\n *\n * If the already loaded modules changed, then we use the Map of dynamic imports\n * per dynamic entry to marks all dynamic entry dependencies as \"dirty\" and put\n * them back into the iteration. As an additional optimization, we note for\n * each dynamic entry which dynamic dependent entries have changed and only\n * intersect those entries again on subsequent interations.\n *\n * Then we remove the dynamic entries from the list of dependent entries for\n * those chunks that are already loaded for that dynamic entry and create\n * another round of chunks.\n */\nfunction getChunkAssignments(entries, manualChunkAliasByEntry, minChunkSize, log) {\n const { chunkDefinitions, modulesInManualChunks } = getChunkDefinitionsFromManualChunks(manualChunkAliasByEntry);\n const { allEntries, dependentEntriesByModule, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry } = analyzeModuleGraph(entries);\n // Each chunk is identified by its position in this array\n const chunkAtoms = getChunksWithSameDependentEntries(getModulesWithDependentEntries(dependentEntriesByModule, modulesInManualChunks));\n const staticDependencyAtomsByEntry = getStaticDependencyAtomsByEntry(allEntries, chunkAtoms);\n // Warning: This will consume dynamicallyDependentEntriesByDynamicEntry.\n // If we no longer want this, we should make a copy here.\n const alreadyLoadedAtomsByEntry = getAlreadyLoadedAtomsByEntry(staticDependencyAtomsByEntry, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry, allEntries);\n // This mutates the dependentEntries in chunkAtoms\n removeUnnecessaryDependentEntries(chunkAtoms, alreadyLoadedAtomsByEntry);\n const { chunks, sideEffectAtoms, sizeByAtom } = getChunksWithSameDependentEntriesAndCorrelatedAtoms(chunkAtoms, staticDependencyAtomsByEntry, alreadyLoadedAtomsByEntry, minChunkSize);\n chunkDefinitions.push(...getOptimizedChunks(chunks, minChunkSize, sideEffectAtoms, sizeByAtom, log).map(({ modules }) => ({\n alias: null,\n modules\n })));\n return chunkDefinitions;\n}\nfunction getChunkDefinitionsFromManualChunks(manualChunkAliasByEntry) {\n const chunkDefinitions = [];\n const modulesInManualChunks = new Set(manualChunkAliasByEntry.keys());\n const manualChunkModulesByAlias = Object.create(null);\n for (const [entry, alias] of manualChunkAliasByEntry) {\n addStaticDependenciesToManualChunk(entry, (manualChunkModulesByAlias[alias] ||= []), modulesInManualChunks);\n }\n for (const [alias, modules] of Object.entries(manualChunkModulesByAlias)) {\n chunkDefinitions.push({ alias, modules });\n }\n return { chunkDefinitions, modulesInManualChunks };\n}\nfunction addStaticDependenciesToManualChunk(entry, manualChunkModules, modulesInManualChunks) {\n const modulesToHandle = new Set([entry]);\n for (const module of modulesToHandle) {\n modulesInManualChunks.add(module);\n manualChunkModules.push(module);\n for (const dependency of module.dependencies) {\n if (!(dependency instanceof ExternalModule || modulesInManualChunks.has(dependency))) {\n modulesToHandle.add(dependency);\n }\n }\n }\n}\nfunction analyzeModuleGraph(entries) {\n const dynamicEntryModules = new Set();\n const dependentEntriesByModule = new Map();\n const dynamicImportModulesByEntry = [];\n const allEntriesSet = new Set(entries);\n let entryIndex = 0;\n for (const currentEntry of allEntriesSet) {\n const dynamicImportsForCurrentEntry = new Set();\n dynamicImportModulesByEntry.push(dynamicImportsForCurrentEntry);\n const modulesToHandle = new Set([currentEntry]);\n for (const module of modulesToHandle) {\n getOrCreate(dependentEntriesByModule, module, (getNewSet)).add(entryIndex);\n for (const dependency of module.getDependenciesToBeIncluded()) {\n if (!(dependency instanceof ExternalModule)) {\n modulesToHandle.add(dependency);\n }\n }\n for (const { resolution } of module.dynamicImports) {\n if (resolution instanceof Module &&\n resolution.includedDynamicImporters.length > 0 &&\n !allEntriesSet.has(resolution)) {\n dynamicEntryModules.add(resolution);\n allEntriesSet.add(resolution);\n dynamicImportsForCurrentEntry.add(resolution);\n }\n }\n for (const dependency of module.implicitlyLoadedBefore) {\n if (!allEntriesSet.has(dependency)) {\n dynamicEntryModules.add(dependency);\n allEntriesSet.add(dependency);\n }\n }\n }\n entryIndex++;\n }\n const allEntries = [...allEntriesSet];\n const { dynamicEntries, dynamicImportsByEntry } = getDynamicEntries(allEntries, dynamicEntryModules, dynamicImportModulesByEntry);\n return {\n allEntries,\n dependentEntriesByModule,\n dynamicallyDependentEntriesByDynamicEntry: getDynamicallyDependentEntriesByDynamicEntry(dependentEntriesByModule, dynamicEntries, allEntries),\n dynamicImportsByEntry\n };\n}\nfunction getDynamicEntries(allEntries, dynamicEntryModules, dynamicImportModulesByEntry) {\n const entryIndexByModule = new Map();\n const dynamicEntries = new Set();\n for (const [entryIndex, entry] of allEntries.entries()) {\n entryIndexByModule.set(entry, entryIndex);\n if (dynamicEntryModules.has(entry)) {\n dynamicEntries.add(entryIndex);\n }\n }\n const dynamicImportsByEntry = [];\n for (const dynamicImportModules of dynamicImportModulesByEntry) {\n const dynamicImports = new Set();\n for (const dynamicEntry of dynamicImportModules) {\n dynamicImports.add(entryIndexByModule.get(dynamicEntry));\n }\n dynamicImportsByEntry.push(dynamicImports);\n }\n return { dynamicEntries, dynamicImportsByEntry };\n}\nfunction getDynamicallyDependentEntriesByDynamicEntry(dependentEntriesByModule, dynamicEntries, allEntries) {\n const dynamicallyDependentEntriesByDynamicEntry = new Map();\n for (const dynamicEntryIndex of dynamicEntries) {\n const dynamicallyDependentEntries = getOrCreate(dynamicallyDependentEntriesByDynamicEntry, dynamicEntryIndex, (getNewSet));\n const dynamicEntry = allEntries[dynamicEntryIndex];\n for (const importer of concatLazy([\n dynamicEntry.includedDynamicImporters,\n dynamicEntry.implicitlyLoadedAfter\n ])) {\n for (const entry of dependentEntriesByModule.get(importer)) {\n dynamicallyDependentEntries.add(entry);\n }\n }\n }\n return dynamicallyDependentEntriesByDynamicEntry;\n}\nfunction getChunksWithSameDependentEntries(modulesWithDependentEntries) {\n const chunkModules = Object.create(null);\n for (const { dependentEntries, modules } of modulesWithDependentEntries) {\n let chunkSignature = 0n;\n for (const entryIndex of dependentEntries) {\n chunkSignature |= 1n << BigInt(entryIndex);\n }\n (chunkModules[String(chunkSignature)] ||= {\n dependentEntries: new Set(dependentEntries),\n modules: []\n }).modules.push(...modules);\n }\n return Object.values(chunkModules);\n}\nfunction* getModulesWithDependentEntries(dependentEntriesByModule, modulesInManualChunks) {\n for (const [module, dependentEntries] of dependentEntriesByModule) {\n if (!modulesInManualChunks.has(module)) {\n yield { dependentEntries, modules: [module] };\n }\n }\n}\nfunction getStaticDependencyAtomsByEntry(allEntries, chunkAtoms) {\n // The indices correspond to the indices in allEntries. The atoms correspond\n // to bits in the bigint values where chunk 0 is the lowest bit.\n const staticDependencyAtomsByEntry = allEntries.map(() => 0n);\n // This toggles the bits for each atom that is a dependency of an entry\n let atomMask = 1n;\n for (const { dependentEntries } of chunkAtoms) {\n for (const entryIndex of dependentEntries) {\n staticDependencyAtomsByEntry[entryIndex] |= atomMask;\n }\n atomMask <<= 1n;\n }\n return staticDependencyAtomsByEntry;\n}\n// Warning: This will consume dynamicallyDependentEntriesByDynamicEntry.\nfunction getAlreadyLoadedAtomsByEntry(staticDependencyAtomsByEntry, dynamicallyDependentEntriesByDynamicEntry, dynamicImportsByEntry, allEntries) {\n // Dynamic entries have all atoms as already loaded initially because we then\n // intersect with the static dependency atoms of all dynamic importers.\n // Static entries cannot have already loaded atoms.\n const alreadyLoadedAtomsByEntry = allEntries.map((_entry, entryIndex) => dynamicallyDependentEntriesByDynamicEntry.has(entryIndex) ? -1n : 0n);\n for (const [dynamicEntryIndex, dynamicallyDependentEntries] of dynamicallyDependentEntriesByDynamicEntry) {\n // We delete here so that they can be added again if necessary to be handled\n // again by the loop\n dynamicallyDependentEntriesByDynamicEntry.delete(dynamicEntryIndex);\n const knownLoadedAtoms = alreadyLoadedAtomsByEntry[dynamicEntryIndex];\n let updatedLoadedAtoms = knownLoadedAtoms;\n for (const entryIndex of dynamicallyDependentEntries) {\n updatedLoadedAtoms &=\n staticDependencyAtomsByEntry[entryIndex] | alreadyLoadedAtomsByEntry[entryIndex];\n }\n // If the knownLoadedAtoms changed, all dependent dynamic entries need to be\n // updated again\n if (updatedLoadedAtoms !== knownLoadedAtoms) {\n alreadyLoadedAtomsByEntry[dynamicEntryIndex] = updatedLoadedAtoms;\n for (const dynamicImport of dynamicImportsByEntry[dynamicEntryIndex]) {\n // If this adds an entry that was deleted before, it will be handled\n // again. This is the reason why we delete every entry from this map\n // that we processed.\n getOrCreate(dynamicallyDependentEntriesByDynamicEntry, dynamicImport, (getNewSet)).add(dynamicEntryIndex);\n }\n }\n }\n return alreadyLoadedAtomsByEntry;\n}\n/**\n * This removes all unnecessary dynamic entries from the dependentEntries in its\n * first argument if a chunk is already loaded without that entry.\n */\nfunction removeUnnecessaryDependentEntries(chunkAtoms, alreadyLoadedAtomsByEntry) {\n // Remove entries from dependent entries if a chunk is already loaded without\n // that entry.\n let chunkMask = 1n;\n for (const { dependentEntries } of chunkAtoms) {\n for (const entryIndex of dependentEntries) {\n if ((alreadyLoadedAtomsByEntry[entryIndex] & chunkMask) === chunkMask) {\n dependentEntries.delete(entryIndex);\n }\n }\n chunkMask <<= 1n;\n }\n}\nfunction getChunksWithSameDependentEntriesAndCorrelatedAtoms(chunkAtoms, staticDependencyAtomsByEntry, alreadyLoadedAtomsByEntry, minChunkSize) {\n const chunksBySignature = Object.create(null);\n const chunkByModule = new Map();\n const sizeByAtom = [];\n let sideEffectAtoms = 0n;\n let atomMask = 1n;\n for (const { dependentEntries, modules } of chunkAtoms) {\n let chunkSignature = 0n;\n let correlatedAtoms = -1n;\n for (const entryIndex of dependentEntries) {\n chunkSignature |= 1n << BigInt(entryIndex);\n // Correlated atoms are the atoms that are guaranteed to be loaded as\n // well when a given atom is loaded. It is the intersection of the already\n // loaded modules of each chunk merged with its static dependencies.\n correlatedAtoms &=\n staticDependencyAtomsByEntry[entryIndex] | alreadyLoadedAtomsByEntry[entryIndex];\n }\n const chunk = (chunksBySignature[String(chunkSignature)] ||= {\n containedAtoms: 0n,\n correlatedAtoms,\n dependencies: new Set(),\n dependentChunks: new Set(),\n dependentEntries: new Set(dependentEntries),\n modules: [],\n pure: true,\n size: 0\n });\n let atomSize = 0;\n let pure = true;\n for (const module of modules) {\n chunkByModule.set(module, chunk);\n // Unfortunately, we cannot take tree-shaking into account here because\n // rendering did not happen yet, but we can detect empty modules\n if (module.isIncluded()) {\n pure &&= !module.hasEffects();\n // we use a trivial size for the default minChunkSize to improve\n // performance\n atomSize += minChunkSize > 1 ? module.estimateSize() : 1;\n }\n }\n if (!pure) {\n sideEffectAtoms |= atomMask;\n }\n sizeByAtom.push(atomSize);\n chunk.containedAtoms |= atomMask;\n chunk.modules.push(...modules);\n chunk.pure &&= pure;\n chunk.size += atomSize;\n atomMask <<= 1n;\n }\n const chunks = Object.values(chunksBySignature);\n sideEffectAtoms |= addChunkDependenciesAndGetExternalSideEffectAtoms(chunks, chunkByModule, atomMask);\n return { chunks, sideEffectAtoms, sizeByAtom };\n}\nfunction addChunkDependenciesAndGetExternalSideEffectAtoms(chunks, chunkByModule, nextAvailableAtomMask) {\n const signatureByExternalModule = new Map();\n let externalSideEffectAtoms = 0n;\n for (const chunk of chunks) {\n const { dependencies, modules } = chunk;\n for (const module of modules) {\n for (const dependency of module.getDependenciesToBeIncluded()) {\n if (dependency instanceof ExternalModule) {\n if (dependency.info.moduleSideEffects) {\n const signature = getOrCreate(signatureByExternalModule, dependency, () => {\n const signature = nextAvailableAtomMask;\n nextAvailableAtomMask <<= 1n;\n externalSideEffectAtoms |= signature;\n return signature;\n });\n chunk.containedAtoms |= signature;\n chunk.correlatedAtoms |= signature;\n }\n }\n else {\n const dependencyChunk = chunkByModule.get(dependency);\n if (dependencyChunk && dependencyChunk !== chunk) {\n dependencies.add(dependencyChunk);\n dependencyChunk.dependentChunks.add(chunk);\n }\n }\n }\n }\n }\n return externalSideEffectAtoms;\n}\n/**\n * This function tries to get rid of small chunks by merging them with other\n * chunks.\n *\n * We can only merge chunks safely if after the merge, loading any entry point\n * in any allowed order will not trigger side effects that should not have been\n * triggered. While side effects are usually things like global function calls,\n * global variable mutations or potentially thrown errors, details do not\n * matter here, and we just discern chunks without side effects (pure chunks)\n * from other chunks.\n *\n * As a first step, we assign each pre-generated chunk with side effects a\n * label. I.e. we have side effect \"A\" if the non-pure chunk \"A\" is loaded.\n *\n * Now to determine the side effects of loading a chunk, one also has to take\n * the side effects of its dependencies into account. So if A depends on B\n * (A -> B) and both have side effects, loading A triggers effects AB.\n *\n * Now from the previous step we know that each chunk is uniquely determine by\n * the entry points that depend on it and cause it to load, which we will call\n * its dependent entry points.\n *\n * E.g. if X -> A and Y -> A, then the dependent entry points of A are XY.\n * Starting from that idea, we can determine a set of chunks—and thus a set\n * of side effects—that must have been triggered if a certain chunk has been\n * loaded. Basically, it is the intersection of all chunks loaded by the\n * dependent entry points of a given chunk. We call the corresponding side\n * effects the correlated side effects of that chunk.\n *\n * Example:\n * X -> ABC, Y -> ADE, A-> F, B -> D\n * Then taking dependencies into account, X -> ABCDF, Y -> ADEF\n * The intersection is ADF. So we know that when A is loaded, D and F must also\n * be in memory even though neither D nor A is a dependency of the other.\n * If all have side effects, we call ADF the correlated side effects of A. The\n * correlated side effects need to remain constant when merging chunks.\n *\n * In contrast, we have the dependency side effects of A, which represents\n * the side effects we trigger if we directly load A. In this example, the\n * dependency side effects are AF.\n * For entry chunks, dependency and correlated side effects are the same.\n *\n * With these concepts, merging chunks is allowed if the correlated side\n * effects of each entry do not change. Thus, we are allowed to merge two\n * chunks if\n *\n * a) the dependency side effects of each chunk are a subset of the correlated\n * side effects of the other chunk, so no additional side effects are\n * triggered for any entry, or\n * b) The dependent entry points of chunk A are a subset of the dependent entry\n * points of chunk B while the dependency side effects of A are a subset of\n * the correlated side effects of B. Because in that scenario, whenever A is\n * loaded, B is loaded as well. But there are cases when B is loaded where A\n * is not loaded. So if we merge the chunks, all dependency side effects of\n * A will be added to the correlated side effects of B, and as the latter is\n * not allowed to change, the former need to be a subset of the latter.\n *\n * Another consideration when merging small chunks into other chunks is to\n * avoid\n * that too much additional code is loaded. This is achieved when the dependent\n * entries of the small chunk are a subset of the dependent entries of the\n * other\n * chunk. Because then when the small chunk is loaded, the other chunk was\n * loaded/in memory anyway, so at most when the other chunk is loaded, the\n * additional size of the small chunk is loaded unnecessarily.\n *\n * So the algorithm performs merges in two passes:\n *\n * 1. First we try to merge small chunks A only into other chunks B if the\n * dependent entries of A are a subset of the dependent entries of B and the\n * dependency side effects of A are a subset of the correlated side effects\n * of B.\n * 2. Only then for all remaining small chunks, we look for arbitrary merges\n * following the rule (a), starting with the smallest chunks to look for\n * possible merge targets.\n */\nfunction getOptimizedChunks(chunks, minChunkSize, sideEffectAtoms, sizeByAtom, log) {\n timeStart('optimize chunks', 3);\n const chunkPartition = getPartitionedChunks(chunks, minChunkSize);\n if (!chunkPartition) {\n timeEnd('optimize chunks', 3);\n return chunks; // the actual modules\n }\n minChunkSize > 1 &&\n log('info', logOptimizeChunkStatus(chunks.length, chunkPartition.small.size, 'Initially'));\n mergeChunks(chunkPartition, minChunkSize, sideEffectAtoms, sizeByAtom);\n minChunkSize > 1 &&\n log('info', logOptimizeChunkStatus(chunkPartition.small.size + chunkPartition.big.size, chunkPartition.small.size, 'After merging chunks'));\n timeEnd('optimize chunks', 3);\n return [...chunkPartition.small, ...chunkPartition.big];\n}\nfunction getPartitionedChunks(chunks, minChunkSize) {\n const smallChunks = [];\n const bigChunks = [];\n for (const chunk of chunks) {\n (chunk.size < minChunkSize ? smallChunks : bigChunks).push(chunk);\n }\n if (smallChunks.length === 0) {\n return null;\n }\n smallChunks.sort(compareChunkSize);\n bigChunks.sort(compareChunkSize);\n return {\n big: new Set(bigChunks),\n small: new Set(smallChunks)\n };\n}\nfunction compareChunkSize({ size: sizeA }, { size: sizeB }) {\n return sizeA - sizeB;\n}\nfunction mergeChunks(chunkPartition, minChunkSize, sideEffectAtoms, sizeByAtom) {\n const { small } = chunkPartition;\n for (const mergedChunk of small) {\n const bestTargetChunk = findBestMergeTarget(mergedChunk, chunkPartition, sideEffectAtoms, sizeByAtom, \n // In the default case, we do not accept size increases\n minChunkSize <= 1 ? 1 : Infinity);\n if (bestTargetChunk) {\n const { containedAtoms, correlatedAtoms, modules, pure, size } = mergedChunk;\n small.delete(mergedChunk);\n getChunksInPartition(bestTargetChunk, minChunkSize, chunkPartition).delete(bestTargetChunk);\n bestTargetChunk.modules.push(...modules);\n bestTargetChunk.size += size;\n bestTargetChunk.pure &&= pure;\n const { dependencies, dependentChunks, dependentEntries } = bestTargetChunk;\n bestTargetChunk.correlatedAtoms &= correlatedAtoms;\n bestTargetChunk.containedAtoms |= containedAtoms;\n for (const entry of mergedChunk.dependentEntries) {\n dependentEntries.add(entry);\n }\n for (const dependency of mergedChunk.dependencies) {\n dependencies.add(dependency);\n dependency.dependentChunks.delete(mergedChunk);\n dependency.dependentChunks.add(bestTargetChunk);\n }\n for (const dependentChunk of mergedChunk.dependentChunks) {\n dependentChunks.add(dependentChunk);\n dependentChunk.dependencies.delete(mergedChunk);\n dependentChunk.dependencies.add(bestTargetChunk);\n }\n dependencies.delete(bestTargetChunk);\n dependentChunks.delete(bestTargetChunk);\n getChunksInPartition(bestTargetChunk, minChunkSize, chunkPartition).add(bestTargetChunk);\n }\n }\n}\nfunction findBestMergeTarget(mergedChunk, { big, small }, sideEffectAtoms, sizeByAtom, smallestAdditionalSize) {\n let bestTargetChunk = null;\n // In the default case, we do not accept size increases\n for (const targetChunk of concatLazy([small, big])) {\n if (mergedChunk === targetChunk)\n continue;\n const additionalSizeAfterMerge = getAdditionalSizeAfterMerge(mergedChunk, targetChunk, smallestAdditionalSize, sideEffectAtoms, sizeByAtom);\n if (additionalSizeAfterMerge < smallestAdditionalSize) {\n bestTargetChunk = targetChunk;\n if (additionalSizeAfterMerge === 0)\n break;\n smallestAdditionalSize = additionalSizeAfterMerge;\n }\n }\n return bestTargetChunk;\n}\n/**\n * Determine the additional unused code size that would be added by merging the\n * two chunks. This is not an exact measurement but rather an upper bound. If\n * the merge produces cycles or adds non-correlated side effects, `Infinity`\n * is returned.\n * Merging will not produce cycles if none of the direct non-merged\n * dependencies of a chunk have the other chunk as a transitive dependency.\n */\nfunction getAdditionalSizeAfterMerge(mergedChunk, targetChunk, \n// The maximum additional unused code size allowed to be added by the merge,\n// taking dependencies into account, needs to be below this number\ncurrentAdditionalSize, sideEffectAtoms, sizeByAtom) {\n const firstSize = getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(mergedChunk, targetChunk, currentAdditionalSize, sideEffectAtoms, sizeByAtom);\n return firstSize < currentAdditionalSize\n ? firstSize +\n getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(targetChunk, mergedChunk, currentAdditionalSize - firstSize, sideEffectAtoms, sizeByAtom)\n : Infinity;\n}\nfunction getAdditionalSizeIfNoTransitiveDependencyOrNonCorrelatedSideEffect(dependentChunk, dependencyChunk, currentAdditionalSize, sideEffectAtoms, sizeByAtom) {\n const { correlatedAtoms } = dependencyChunk;\n let dependencyAtoms = dependentChunk.containedAtoms;\n const dependentContainedSideEffects = dependencyAtoms & sideEffectAtoms;\n if ((correlatedAtoms & dependentContainedSideEffects) !== dependentContainedSideEffects) {\n return Infinity;\n }\n const chunksToCheck = new Set(dependentChunk.dependencies);\n for (const { dependencies, containedAtoms } of chunksToCheck) {\n dependencyAtoms |= containedAtoms;\n const containedSideEffects = containedAtoms & sideEffectAtoms;\n if ((correlatedAtoms & containedSideEffects) !== containedSideEffects) {\n return Infinity;\n }\n for (const dependency of dependencies) {\n if (dependency === dependencyChunk) {\n return Infinity;\n }\n chunksToCheck.add(dependency);\n }\n }\n return getAtomsSizeIfBelowLimit(dependencyAtoms & ~correlatedAtoms, currentAdditionalSize, sizeByAtom);\n}\nfunction getAtomsSizeIfBelowLimit(atoms, currentAdditionalSize, sizeByAtom) {\n let size = 0;\n let atomIndex = 0;\n let atomSignature = 1n;\n const { length } = sizeByAtom;\n for (; atomIndex < length; atomIndex++) {\n if ((atoms & atomSignature) === atomSignature) {\n size += sizeByAtom[atomIndex];\n }\n atomSignature <<= 1n;\n if (size >= currentAdditionalSize) {\n return Infinity;\n }\n }\n return size;\n}\nfunction getChunksInPartition(chunk, minChunkSize, chunkPartition) {\n return chunk.size < minChunkSize ? chunkPartition.small : chunkPartition.big;\n}\n\n// ported from https://github.com/substack/node-commondir\nfunction commondir(files) {\n if (files.length === 0)\n return '/';\n if (files.length === 1)\n return dirname(files[0]);\n const commonSegments = files.slice(1).reduce((commonSegments, file) => {\n const pathSegments = file.split(/\\/+|\\\\+/);\n let index;\n for (index = 0; commonSegments[index] === pathSegments[index] &&\n index < Math.min(commonSegments.length, pathSegments.length); index++)\n ;\n return commonSegments.slice(0, index);\n }, files[0].split(/\\/+|\\\\+/));\n // Windows correctly handles paths with forward-slashes\n return commonSegments.length > 1 ? commonSegments.join('/') : '/';\n}\n\nconst compareExecIndex = (unitA, unitB) => unitA.execIndex > unitB.execIndex ? 1 : -1;\nfunction sortByExecutionOrder(units) {\n units.sort(compareExecIndex);\n}\n// This process is currently faulty in so far as it only takes the first entry\n// module into account and assumes that dynamic imports are imported in a\n// certain order.\n// A better algorithm would follow every possible execution path and mark which\n// modules are executed before or after which other modules. THen the chunking\n// would need to take care that in each chunk, all modules are always executed\n// in the same sequence.\nfunction analyseModuleExecution(entryModules) {\n let nextExecIndex = 0;\n const cyclePaths = [];\n const analysedModules = new Set();\n const dynamicImports = new Set();\n const parents = new Map();\n const orderedModules = [];\n const analyseModule = (module) => {\n if (module instanceof Module) {\n for (const dependency of module.dependencies) {\n if (parents.has(dependency)) {\n if (!analysedModules.has(dependency)) {\n cyclePaths.push(getCyclePath(dependency, module, parents));\n }\n continue;\n }\n parents.set(dependency, module);\n analyseModule(dependency);\n }\n for (const dependency of module.implicitlyLoadedBefore) {\n dynamicImports.add(dependency);\n }\n for (const { resolution } of module.dynamicImports) {\n if (resolution instanceof Module) {\n dynamicImports.add(resolution);\n }\n }\n orderedModules.push(module);\n }\n module.execIndex = nextExecIndex++;\n analysedModules.add(module);\n };\n for (const currentEntry of entryModules) {\n if (!parents.has(currentEntry)) {\n parents.set(currentEntry, null);\n analyseModule(currentEntry);\n }\n }\n for (const currentEntry of dynamicImports) {\n if (!parents.has(currentEntry)) {\n parents.set(currentEntry, null);\n analyseModule(currentEntry);\n }\n }\n return { cyclePaths, orderedModules };\n}\nfunction getCyclePath(module, parent, parents) {\n const cycleSymbol = Symbol(module.id);\n const path = [module.id];\n let nextModule = parent;\n module.cycles.add(cycleSymbol);\n while (nextModule !== module) {\n nextModule.cycles.add(cycleSymbol);\n path.push(nextModule.id);\n nextModule = parents.get(nextModule);\n }\n path.push(path[0]);\n path.reverse();\n return path;\n}\n\nfunction getGenerateCodeSnippets({ compact, generatedCode: { arrowFunctions, constBindings, objectShorthand, reservedNamesAsProps } }) {\n const { _, n, s } = compact ? { _: '', n: '', s: '' } : { _: ' ', n: '\\n', s: ';' };\n const cnst = constBindings ? 'const' : 'var';\n const getNonArrowFunctionIntro = (parameters, { isAsync, name }) => `${isAsync ? `async ` : ''}function${name ? ` ${name}` : ''}${_}(${parameters.join(`,${_}`)})${_}`;\n const getFunctionIntro = arrowFunctions\n ? (parameters, { isAsync, name }) => {\n const singleParameter = parameters.length === 1;\n const asyncString = isAsync ? `async${singleParameter ? ' ' : _}` : '';\n return `${name ? `${cnst} ${name}${_}=${_}` : ''}${asyncString}${singleParameter ? parameters[0] : `(${parameters.join(`,${_}`)})`}${_}=>${_}`;\n }\n : getNonArrowFunctionIntro;\n const getDirectReturnFunction = (parameters, { functionReturn, lineBreakIndent, name }) => [\n `${getFunctionIntro(parameters, {\n isAsync: false,\n name\n })}${arrowFunctions\n ? lineBreakIndent\n ? `${n}${lineBreakIndent.base}${lineBreakIndent.t}`\n : ''\n : `{${lineBreakIndent ? `${n}${lineBreakIndent.base}${lineBreakIndent.t}` : _}${functionReturn ? 'return ' : ''}`}`,\n arrowFunctions\n ? `${name ? ';' : ''}${lineBreakIndent ? `${n}${lineBreakIndent.base}` : ''}`\n : `${s}${lineBreakIndent ? `${n}${lineBreakIndent.base}` : _}}`\n ];\n const isValidPropertyName = reservedNamesAsProps\n ? (name) => VALID_IDENTIFIER_REGEXP.test(name)\n : (name) => !RESERVED_NAMES.has(name) && VALID_IDENTIFIER_REGEXP.test(name);\n return {\n _,\n cnst,\n getDirectReturnFunction,\n getDirectReturnIifeLeft: (parameters, returned, { needsArrowReturnParens, needsWrappedFunction }) => {\n const [left, right] = getDirectReturnFunction(parameters, {\n functionReturn: true,\n lineBreakIndent: null,\n name: null\n });\n return `${wrapIfNeeded(`${left}${wrapIfNeeded(returned, arrowFunctions && needsArrowReturnParens)}${right}`, arrowFunctions || needsWrappedFunction)}(`;\n },\n getFunctionIntro,\n getNonArrowFunctionIntro,\n getObject(fields, { lineBreakIndent }) {\n const prefix = lineBreakIndent ? `${n}${lineBreakIndent.base}${lineBreakIndent.t}` : _;\n return `{${fields\n .map(([key, value]) => {\n if (key === null)\n return `${prefix}${value}`;\n const keyInObject = stringifyObjectKeyIfNeeded(key);\n return key === value && objectShorthand && key === keyInObject\n ? prefix + key\n : `${prefix}${keyInObject}:${_}${value}`;\n })\n .join(`,`)}${fields.length === 0 ? '' : lineBreakIndent ? `${n}${lineBreakIndent.base}` : _}}`;\n },\n getPropertyAccess: (name) => isValidPropertyName(name) ? `.${name}` : `[${JSON.stringify(name)}]`,\n n,\n s\n };\n}\nconst wrapIfNeeded = (code, needsParens) => needsParens ? `(${code})` : code;\n\nclass Source {\n constructor(filename, content) {\n this.isOriginal = true;\n this.filename = filename;\n this.content = content;\n }\n traceSegment(line, column, name) {\n return { column, line, name, source: this };\n }\n}\nclass Link {\n constructor(map, sources) {\n this.sources = sources;\n this.names = map.names;\n this.mappings = map.mappings;\n }\n traceMappings() {\n const sources = [];\n const sourceIndexMap = new Map();\n const sourcesContent = [];\n const names = [];\n const nameIndexMap = new Map();\n const mappings = [];\n for (const line of this.mappings) {\n const tracedLine = [];\n for (const segment of line) {\n if (segment.length === 1)\n continue;\n const source = this.sources[segment[1]];\n if (!source)\n continue;\n const traced = source.traceSegment(segment[2], segment[3], segment.length === 5 ? this.names[segment[4]] : '');\n if (traced) {\n const { column, line, name, source: { content, filename } } = traced;\n let sourceIndex = sourceIndexMap.get(filename);\n if (sourceIndex === undefined) {\n sourceIndex = sources.length;\n sources.push(filename);\n sourceIndexMap.set(filename, sourceIndex);\n sourcesContent[sourceIndex] = content;\n }\n else if (sourcesContent[sourceIndex] == null) {\n sourcesContent[sourceIndex] = content;\n }\n else if (content != null && sourcesContent[sourceIndex] !== content) {\n return error(logConflictingSourcemapSources(filename));\n }\n const tracedSegment = [segment[0], sourceIndex, line, column];\n if (name) {\n let nameIndex = nameIndexMap.get(name);\n if (nameIndex === undefined) {\n nameIndex = names.length;\n names.push(name);\n nameIndexMap.set(name, nameIndex);\n }\n tracedSegment[4] = nameIndex;\n }\n tracedLine.push(tracedSegment);\n }\n }\n mappings.push(tracedLine);\n }\n return { mappings, names, sources, sourcesContent };\n }\n traceSegment(line, column, name) {\n const segments = this.mappings[line];\n if (!segments)\n return null;\n // binary search through segments for the given column\n let searchStart = 0;\n let searchEnd = segments.length - 1;\n while (searchStart <= searchEnd) {\n const m = (searchStart + searchEnd) >> 1;\n const segment = segments[m];\n // If a sourcemap does not have sufficient resolution to contain a\n // necessary mapping, e.g. because it only contains line information, we\n // use the best approximation we could find\n if (segment[0] === column || searchStart === searchEnd) {\n if (segment.length == 1)\n return null;\n const source = this.sources[segment[1]];\n if (!source)\n return null;\n return source.traceSegment(segment[2], segment[3], segment.length === 5 ? this.names[segment[4]] : name);\n }\n if (segment[0] > column) {\n searchEnd = m - 1;\n }\n else {\n searchStart = m + 1;\n }\n }\n return null;\n }\n}\nfunction getLinkMap(log) {\n return function linkMap(source, map) {\n if (!map.missing) {\n return new Link(map, [source]);\n }\n log(LOGLEVEL_WARN, logSourcemapBroken(map.plugin));\n return new Link({\n mappings: [],\n names: []\n }, [source]);\n };\n}\nfunction getCollapsedSourcemap(id, originalCode, originalSourcemap, sourcemapChain, linkMap) {\n let source;\n if (originalSourcemap) {\n const sources = originalSourcemap.sources;\n const sourcesContent = originalSourcemap.sourcesContent || [];\n const directory = dirname(id) || '.';\n const sourceRoot = originalSourcemap.sourceRoot || '.';\n const baseSources = sources.map((source, index) => new Source(resolve$1(directory, sourceRoot, source), sourcesContent[index]));\n source = new Link(originalSourcemap, baseSources);\n }\n else {\n source = new Source(id, originalCode);\n }\n return sourcemapChain.reduce(linkMap, source);\n}\nfunction collapseSourcemaps(file, map, modules, bundleSourcemapChain, excludeContent, log) {\n const linkMap = getLinkMap(log);\n const moduleSources = modules\n .filter(module => !module.excludeFromSourcemap)\n .map(module => getCollapsedSourcemap(module.id, module.originalCode, module.originalSourcemap, module.sourcemapChain, linkMap));\n const link = new Link(map, moduleSources);\n const source = bundleSourcemapChain.reduce(linkMap, link);\n let { sources, sourcesContent, names, mappings } = source.traceMappings();\n if (file) {\n const directory = dirname(file);\n sources = sources.map((source) => relative(directory, source));\n file = basename(file);\n }\n sourcesContent = (excludeContent ? null : sourcesContent);\n for (const module of modules) {\n resetSourcemapCache(module.originalSourcemap, module.sourcemapChain);\n }\n return new SourceMap({ file, mappings, names, sources, sourcesContent });\n}\nfunction collapseSourcemap(id, originalCode, originalSourcemap, sourcemapChain, log) {\n if (sourcemapChain.length === 0) {\n return originalSourcemap;\n }\n const source = getCollapsedSourcemap(id, originalCode, originalSourcemap, sourcemapChain, getLinkMap(log));\n const map = source.traceMappings();\n return decodedSourcemap({ version: 3, ...map });\n}\n\nlet textEncoder;\nconst getHash64 = input => xxhashBase64Url(ensureBuffer(input));\nconst getHash36 = input => xxhashBase36(ensureBuffer(input));\nconst getHash16 = input => xxhashBase16(ensureBuffer(input));\nconst hasherByType = {\n base36: getHash36,\n base64: getHash64,\n hex: getHash16\n};\nfunction ensureBuffer(input) {\n if (typeof input === 'string') {\n if (typeof Buffer === 'undefined') {\n textEncoder ??= new TextEncoder();\n return textEncoder.encode(input);\n }\n return Buffer.from(input);\n }\n return input;\n}\n\n// this looks ridiculous, but it prevents sourcemap tooling from mistaking\n// this for an actual sourceMappingURL\nlet SOURCEMAPPING_URL = 'sourceMa';\nSOURCEMAPPING_URL += 'ppingURL';\n\nasync function renderChunks(chunks, bundle, pluginDriver, outputOptions, log) {\n timeStart('render chunks', 2);\n reserveEntryChunksInBundle(chunks);\n const renderedChunks = await Promise.all(chunks.map(chunk => chunk.render()));\n timeEnd('render chunks', 2);\n timeStart('transform chunks', 2);\n const getHash = hasherByType[outputOptions.hashCharacters];\n const chunkGraph = getChunkGraph(chunks);\n const { initialHashesByPlaceholder, nonHashedChunksWithPlaceholders, renderedChunksByPlaceholder, hashDependenciesByPlaceholder } = await transformChunksAndGenerateContentHashes(renderedChunks, chunkGraph, outputOptions, pluginDriver, getHash, log);\n const hashesByPlaceholder = generateFinalHashes(renderedChunksByPlaceholder, hashDependenciesByPlaceholder, initialHashesByPlaceholder, bundle, getHash);\n addChunksToBundle(renderedChunksByPlaceholder, hashesByPlaceholder, bundle, nonHashedChunksWithPlaceholders, pluginDriver, outputOptions);\n timeEnd('transform chunks', 2);\n}\nfunction reserveEntryChunksInBundle(chunks) {\n for (const chunk of chunks) {\n if (chunk.facadeModule && chunk.facadeModule.isUserDefinedEntryPoint) {\n // reserves name in bundle as side effect if it does not contain a hash\n chunk.getPreliminaryFileName();\n }\n }\n}\nfunction getChunkGraph(chunks) {\n return Object.fromEntries(chunks.map(chunk => {\n const renderedChunkInfo = chunk.getRenderedChunkInfo();\n return [renderedChunkInfo.fileName, renderedChunkInfo];\n }));\n}\nasync function transformChunk(magicString, fileName, usedModules, chunkGraph, options, outputPluginDriver, log) {\n let map = null;\n const sourcemapChain = [];\n let code = await outputPluginDriver.hookReduceArg0('renderChunk', [magicString.toString(), chunkGraph[fileName], options, { chunks: chunkGraph }], (code, result, plugin) => {\n if (result == null)\n return code;\n if (typeof result === 'string')\n result = {\n code: result,\n map: undefined\n };\n // strict null check allows 'null' maps to not be pushed to the chain, while 'undefined' gets the missing map warning\n if (result.map !== null) {\n const map = decodedSourcemap(result.map);\n sourcemapChain.push(map || { missing: true, plugin: plugin.name });\n }\n return result.code;\n });\n const { compact, dir, file, sourcemap, sourcemapExcludeSources, sourcemapFile, sourcemapPathTransform, sourcemapIgnoreList } = options;\n if (!compact && code[code.length - 1] !== '\\n')\n code += '\\n';\n if (sourcemap) {\n timeStart('sourcemaps', 3);\n let resultingFile;\n if (file)\n resultingFile = resolve$1(sourcemapFile || file);\n else if (dir)\n resultingFile = resolve$1(dir, fileName);\n else\n resultingFile = resolve$1(fileName);\n const decodedMap = magicString.generateDecodedMap({});\n map = collapseSourcemaps(resultingFile, decodedMap, usedModules, sourcemapChain, sourcemapExcludeSources, log);\n for (let sourcesIndex = 0; sourcesIndex < map.sources.length; ++sourcesIndex) {\n let sourcePath = map.sources[sourcesIndex];\n const sourcemapPath = `${resultingFile}.map`;\n const ignoreList = sourcemapIgnoreList(sourcePath, sourcemapPath);\n if (typeof ignoreList !== 'boolean') {\n error(logFailedValidation('sourcemapIgnoreList function must return a boolean.'));\n }\n if (ignoreList) {\n if (map.x_google_ignoreList === undefined) {\n map.x_google_ignoreList = [];\n }\n if (!map.x_google_ignoreList.includes(sourcesIndex)) {\n map.x_google_ignoreList.push(sourcesIndex);\n }\n }\n if (sourcemapPathTransform) {\n sourcePath = sourcemapPathTransform(sourcePath, sourcemapPath);\n if (typeof sourcePath !== 'string') {\n error(logFailedValidation(`sourcemapPathTransform function must return a string.`));\n }\n }\n map.sources[sourcesIndex] = normalize(sourcePath);\n }\n timeEnd('sourcemaps', 3);\n }\n return {\n code,\n map\n };\n}\nasync function transformChunksAndGenerateContentHashes(renderedChunks, chunkGraph, outputOptions, pluginDriver, getHash, log) {\n const nonHashedChunksWithPlaceholders = [];\n const renderedChunksByPlaceholder = new Map();\n const hashDependenciesByPlaceholder = new Map();\n const initialHashesByPlaceholder = new Map();\n const placeholders = new Set();\n for (const { preliminaryFileName: { hashPlaceholder } } of renderedChunks) {\n if (hashPlaceholder)\n placeholders.add(hashPlaceholder);\n }\n await Promise.all(renderedChunks.map(async ({ chunk, preliminaryFileName: { fileName, hashPlaceholder }, preliminarySourcemapFileName, magicString, usedModules }) => {\n const transformedChunk = {\n chunk,\n fileName,\n sourcemapFileName: preliminarySourcemapFileName?.fileName ?? null,\n ...(await transformChunk(magicString, fileName, usedModules, chunkGraph, outputOptions, pluginDriver, log))\n };\n const { code, map } = transformedChunk;\n if (hashPlaceholder) {\n // To create a reproducible content-only hash, all placeholders are\n // replaced with the same value before hashing\n const { containedPlaceholders, transformedCode } = replacePlaceholdersWithDefaultAndGetContainedPlaceholders(code, placeholders);\n let contentToHash = transformedCode;\n const hashAugmentation = pluginDriver.hookReduceValueSync('augmentChunkHash', '', [chunk.getRenderedChunkInfo()], (augmentation, pluginHash) => {\n if (pluginHash) {\n augmentation += pluginHash;\n }\n return augmentation;\n });\n if (hashAugmentation) {\n contentToHash += hashAugmentation;\n }\n renderedChunksByPlaceholder.set(hashPlaceholder, transformedChunk);\n hashDependenciesByPlaceholder.set(hashPlaceholder, {\n containedPlaceholders,\n contentHash: getHash(contentToHash)\n });\n }\n else {\n nonHashedChunksWithPlaceholders.push(transformedChunk);\n }\n const sourcemapHashPlaceholder = preliminarySourcemapFileName?.hashPlaceholder;\n if (map && sourcemapHashPlaceholder) {\n initialHashesByPlaceholder.set(preliminarySourcemapFileName.hashPlaceholder, getHash(map.toString()).slice(0, preliminarySourcemapFileName.hashPlaceholder.length));\n }\n }));\n return {\n hashDependenciesByPlaceholder,\n initialHashesByPlaceholder,\n nonHashedChunksWithPlaceholders,\n renderedChunksByPlaceholder\n };\n}\nfunction generateFinalHashes(renderedChunksByPlaceholder, hashDependenciesByPlaceholder, initialHashesByPlaceholder, bundle, getHash) {\n const hashesByPlaceholder = new Map(initialHashesByPlaceholder);\n for (const [placeholder, { fileName }] of renderedChunksByPlaceholder) {\n let contentToHash = '';\n const hashDependencyPlaceholders = new Set([placeholder]);\n for (const dependencyPlaceholder of hashDependencyPlaceholders) {\n const { containedPlaceholders, contentHash } = hashDependenciesByPlaceholder.get(dependencyPlaceholder);\n contentToHash += contentHash;\n for (const containedPlaceholder of containedPlaceholders) {\n // When looping over a map, setting an entry only causes a new iteration if the key is new\n hashDependencyPlaceholders.add(containedPlaceholder);\n }\n }\n let finalFileName;\n let finalHash;\n do {\n // In case of a hash collision, create a hash of the hash\n if (finalHash) {\n contentToHash = finalHash;\n }\n finalHash = getHash(contentToHash).slice(0, placeholder.length);\n finalFileName = replaceSinglePlaceholder(fileName, placeholder, finalHash);\n } while (bundle[lowercaseBundleKeys].has(finalFileName.toLowerCase()));\n bundle[finalFileName] = FILE_PLACEHOLDER;\n hashesByPlaceholder.set(placeholder, finalHash);\n }\n return hashesByPlaceholder;\n}\nfunction addChunksToBundle(renderedChunksByPlaceholder, hashesByPlaceholder, bundle, nonHashedChunksWithPlaceholders, pluginDriver, options) {\n for (const { chunk, code, fileName, sourcemapFileName, map } of renderedChunksByPlaceholder.values()) {\n let updatedCode = replacePlaceholders(code, hashesByPlaceholder);\n const finalFileName = replacePlaceholders(fileName, hashesByPlaceholder);\n let finalSourcemapFileName = null;\n if (map) {\n finalSourcemapFileName = sourcemapFileName\n ? replacePlaceholders(sourcemapFileName, hashesByPlaceholder)\n : `${finalFileName}.map`;\n map.file = replacePlaceholders(map.file, hashesByPlaceholder);\n updatedCode += emitSourceMapAndGetComment(finalSourcemapFileName, map, pluginDriver, options);\n }\n bundle[finalFileName] = chunk.finalizeChunk(updatedCode, map, finalSourcemapFileName, hashesByPlaceholder);\n }\n for (const { chunk, code, fileName, sourcemapFileName, map } of nonHashedChunksWithPlaceholders) {\n let updatedCode = hashesByPlaceholder.size > 0 ? replacePlaceholders(code, hashesByPlaceholder) : code;\n let finalSourcemapFileName = null;\n if (map) {\n finalSourcemapFileName = sourcemapFileName\n ? replacePlaceholders(sourcemapFileName, hashesByPlaceholder)\n : `${fileName}.map`;\n updatedCode += emitSourceMapAndGetComment(finalSourcemapFileName, map, pluginDriver, options);\n }\n bundle[fileName] = chunk.finalizeChunk(updatedCode, map, finalSourcemapFileName, hashesByPlaceholder);\n }\n}\nfunction emitSourceMapAndGetComment(fileName, map, pluginDriver, { sourcemap, sourcemapBaseUrl }) {\n let url;\n if (sourcemap === 'inline') {\n url = map.toUrl();\n }\n else {\n const sourcemapFileName = basename(fileName);\n url = sourcemapBaseUrl\n ? new URL(sourcemapFileName, sourcemapBaseUrl).toString()\n : sourcemapFileName;\n pluginDriver.emitFile({ fileName, source: map.toString(), type: 'asset' });\n }\n return sourcemap === 'hidden' ? '' : `//# ${SOURCEMAPPING_URL}=${url}\\n`;\n}\n\nclass Bundle {\n constructor(outputOptions, unsetOptions, inputOptions, pluginDriver, graph) {\n this.outputOptions = outputOptions;\n this.unsetOptions = unsetOptions;\n this.inputOptions = inputOptions;\n this.pluginDriver = pluginDriver;\n this.graph = graph;\n this.facadeChunkByModule = new Map();\n this.includedNamespaces = new Set();\n }\n async generate(isWrite) {\n timeStart('GENERATE', 1);\n const outputBundleBase = Object.create(null);\n const outputBundle = getOutputBundle(outputBundleBase);\n this.pluginDriver.setOutputBundle(outputBundle, this.outputOptions);\n try {\n timeStart('initialize render', 2);\n await this.pluginDriver.hookParallel('renderStart', [this.outputOptions, this.inputOptions]);\n timeEnd('initialize render', 2);\n timeStart('generate chunks', 2);\n const getHashPlaceholder = getHashPlaceholderGenerator();\n const chunks = await this.generateChunks(outputBundle, getHashPlaceholder);\n if (chunks.length > 1) {\n validateOptionsForMultiChunkOutput(this.outputOptions, this.inputOptions.onLog);\n }\n this.pluginDriver.setChunkInformation(this.facadeChunkByModule);\n for (const chunk of chunks) {\n chunk.generateExports();\n }\n timeEnd('generate chunks', 2);\n await renderChunks(chunks, outputBundle, this.pluginDriver, this.outputOptions, this.inputOptions.onLog);\n }\n catch (error_) {\n await this.pluginDriver.hookParallel('renderError', [error_]);\n throw error_;\n }\n removeUnreferencedAssets(outputBundle);\n timeStart('generate bundle', 2);\n await this.pluginDriver.hookSeq('generateBundle', [\n this.outputOptions,\n outputBundle,\n isWrite\n ]);\n this.finaliseAssets(outputBundle);\n timeEnd('generate bundle', 2);\n timeEnd('GENERATE', 1);\n return outputBundleBase;\n }\n async addManualChunks(manualChunks) {\n const manualChunkAliasByEntry = new Map();\n const chunkEntries = await Promise.all(Object.entries(manualChunks).map(async ([alias, files]) => ({\n alias,\n entries: await this.graph.moduleLoader.addAdditionalModules(files, true)\n })));\n for (const { alias, entries } of chunkEntries) {\n for (const entry of entries) {\n addModuleToManualChunk(alias, entry, manualChunkAliasByEntry);\n }\n }\n return manualChunkAliasByEntry;\n }\n assignManualChunks(getManualChunk) {\n // eslint-disable-next-line unicorn/prefer-module\n const manualChunkAliasesWithEntry = [];\n const manualChunksApi = {\n getModuleIds: () => this.graph.modulesById.keys(),\n getModuleInfo: this.graph.getModuleInfo\n };\n for (const module of this.graph.modulesById.values()) {\n if (module instanceof Module) {\n const manualChunkAlias = getManualChunk(module.id, manualChunksApi);\n if (typeof manualChunkAlias === 'string') {\n manualChunkAliasesWithEntry.push([manualChunkAlias, module]);\n }\n }\n }\n manualChunkAliasesWithEntry.sort(([aliasA], [aliasB]) => aliasA > aliasB ? 1 : aliasA < aliasB ? -1 : 0);\n const manualChunkAliasByEntry = new Map();\n for (const [alias, module] of manualChunkAliasesWithEntry) {\n addModuleToManualChunk(alias, module, manualChunkAliasByEntry);\n }\n return manualChunkAliasByEntry;\n }\n finaliseAssets(bundle) {\n if (this.outputOptions.validate) {\n for (const file of Object.values(bundle)) {\n if ('code' in file) {\n try {\n parseAst(file.code);\n }\n catch (error_) {\n this.inputOptions.onLog(LOGLEVEL_WARN, logChunkInvalid(file, error_));\n }\n }\n }\n }\n this.pluginDriver.finaliseAssets();\n }\n async generateChunks(bundle, getHashPlaceholder) {\n const { experimentalMinChunkSize, inlineDynamicImports, manualChunks, preserveModules } = this.outputOptions;\n const manualChunkAliasByEntry = typeof manualChunks === 'object'\n ? await this.addManualChunks(manualChunks)\n : this.assignManualChunks(manualChunks);\n const snippets = getGenerateCodeSnippets(this.outputOptions);\n const includedModules = getIncludedModules(this.graph.modulesById);\n const inputBase = commondir(getAbsoluteEntryModulePaths(includedModules, preserveModules));\n const externalChunkByModule = getExternalChunkByModule(this.graph.modulesById, this.outputOptions, inputBase);\n const chunks = [];\n const chunkByModule = new Map();\n for (const { alias, modules } of inlineDynamicImports\n ? [{ alias: null, modules: includedModules }]\n : preserveModules\n ? includedModules.map(module => ({ alias: null, modules: [module] }))\n : getChunkAssignments(this.graph.entryModules, manualChunkAliasByEntry, experimentalMinChunkSize, this.inputOptions.onLog)) {\n sortByExecutionOrder(modules);\n const chunk = new Chunk(modules, this.inputOptions, this.outputOptions, this.unsetOptions, this.pluginDriver, this.graph.modulesById, chunkByModule, externalChunkByModule, this.facadeChunkByModule, this.includedNamespaces, alias, getHashPlaceholder, bundle, inputBase, snippets);\n chunks.push(chunk);\n }\n for (const chunk of chunks) {\n chunk.link();\n }\n const facades = [];\n for (const chunk of chunks) {\n facades.push(...chunk.generateFacades());\n }\n return [...chunks, ...facades];\n }\n}\nfunction validateOptionsForMultiChunkOutput(outputOptions, log) {\n if (outputOptions.format === 'umd' || outputOptions.format === 'iife')\n return error(logInvalidOption('output.format', URL_OUTPUT_FORMAT, 'UMD and IIFE output formats are not supported for code-splitting builds', outputOptions.format));\n if (typeof outputOptions.file === 'string')\n return error(logInvalidOption('output.file', URL_OUTPUT_DIR, 'when building multiple chunks, the \"output.dir\" option must be used, not \"output.file\". To inline dynamic imports, set the \"inlineDynamicImports\" option'));\n if (outputOptions.sourcemapFile)\n return error(logInvalidOption('output.sourcemapFile', URL_OUTPUT_SOURCEMAPFILE, '\"output.sourcemapFile\" is only supported for single-file builds'));\n if (!outputOptions.amd.autoId && outputOptions.amd.id)\n log(LOGLEVEL_WARN, logInvalidOption('output.amd.id', URL_OUTPUT_AMD_ID, 'this option is only properly supported for single-file builds. Use \"output.amd.autoId\" and \"output.amd.basePath\" instead'));\n}\nfunction getIncludedModules(modulesById) {\n const includedModules = [];\n for (const module of modulesById.values()) {\n if (module instanceof Module &&\n (module.isIncluded() || module.info.isEntry || module.includedDynamicImporters.length > 0)) {\n includedModules.push(module);\n }\n }\n return includedModules;\n}\nfunction getAbsoluteEntryModulePaths(includedModules, preserveModules) {\n const absoluteEntryModulePaths = [];\n for (const module of includedModules) {\n if ((module.info.isEntry || preserveModules) && isAbsolute$1(module.id)) {\n absoluteEntryModulePaths.push(module.id);\n }\n }\n return absoluteEntryModulePaths;\n}\nfunction getExternalChunkByModule(modulesById, outputOptions, inputBase) {\n const externalChunkByModule = new Map();\n for (const module of modulesById.values()) {\n if (module instanceof ExternalModule) {\n externalChunkByModule.set(module, new ExternalChunk(module, outputOptions, inputBase));\n }\n }\n return externalChunkByModule;\n}\nfunction addModuleToManualChunk(alias, module, manualChunkAliasByEntry) {\n const existingAlias = manualChunkAliasByEntry.get(module);\n if (typeof existingAlias === 'string' && existingAlias !== alias) {\n return error(logCannotAssignModuleToChunk(module.id, alias, existingAlias));\n }\n manualChunkAliasByEntry.set(module, alias);\n}\n\nfunction flru (max) {\n\tvar num, curr, prev;\n\tvar limit = max;\n\n\tfunction keep(key, value) {\n\t\tif (++num > limit) {\n\t\t\tprev = curr;\n\t\t\treset(1);\n\t\t\t++num;\n\t\t}\n\t\tcurr[key] = value;\n\t}\n\n\tfunction reset(isPartial) {\n\t\tnum = 0;\n\t\tcurr = Object.create(null);\n\t\tisPartial || (prev=Object.create(null));\n\t}\n\n\treset();\n\n\treturn {\n\t\tclear: reset,\n\t\thas: function (key) {\n\t\t\treturn curr[key] !== void 0 || prev[key] !== void 0;\n\t\t},\n\t\tget: function (key) {\n\t\t\tvar val = curr[key];\n\t\t\tif (val !== void 0) return val;\n\t\t\tif ((val=prev[key]) !== void 0) {\n\t\t\t\tkeep(key, val);\n\t\t\t\treturn val;\n\t\t\t}\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (curr[key] !== void 0) {\n\t\t\t\tcurr[key] = value;\n\t\t\t} else {\n\t\t\t\tkeep(key, value);\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction resolveIdViaPlugins(source, importer, pluginDriver, moduleLoaderResolveId, skip, customOptions, isEntry, attributes) {\n let skipped = null;\n let replaceContext = null;\n if (skip) {\n skipped = new Set();\n for (const skippedCall of skip) {\n if (source === skippedCall.source && importer === skippedCall.importer) {\n skipped.add(skippedCall.plugin);\n }\n }\n replaceContext = (pluginContext, plugin) => ({\n ...pluginContext,\n resolve: (source, importer, { attributes, custom, isEntry, skipSelf } = BLANK) => {\n skipSelf ??= true;\n return moduleLoaderResolveId(source, importer, custom, isEntry, attributes || EMPTY_OBJECT, skipSelf ? [...skip, { importer, plugin, source }] : skip);\n }\n });\n }\n return pluginDriver.hookFirstAndGetPlugin('resolveId', [source, importer, { attributes, custom: customOptions, isEntry }], replaceContext, skipped);\n}\n\nasync function resolveId(source, importer, preserveSymlinks, pluginDriver, moduleLoaderResolveId, skip, customOptions, isEntry, attributes) {\n const pluginResult = await resolveIdViaPlugins(source, importer, pluginDriver, moduleLoaderResolveId, skip, customOptions, isEntry, attributes);\n if (pluginResult != null) {\n const [resolveIdResult, plugin] = pluginResult;\n if (typeof resolveIdResult === 'object' && !resolveIdResult.resolvedBy) {\n return {\n ...resolveIdResult,\n resolvedBy: plugin.name\n };\n }\n if (typeof resolveIdResult === 'string') {\n return {\n id: resolveIdResult,\n resolvedBy: plugin.name\n };\n }\n return resolveIdResult;\n }\n // external modules (non-entry modules that start with neither '.' or '/')\n // are skipped at this stage.\n if (importer !== undefined && !isAbsolute$1(source) && source[0] !== '.')\n return null;\n // `resolve` processes paths from right to left, prepending them until an\n // absolute path is created. Absolute importees therefore shortcircuit the\n // resolve call and require no special handing on our part.\n // See https://nodejs.org/api/path.html#path_path_resolve_paths\n return addJsExtensionIfNecessary(importer ? resolve$1(dirname(importer), source) : resolve$1(source), preserveSymlinks);\n}\nasync function addJsExtensionIfNecessary(file, preserveSymlinks) {\n return ((await findFile(file, preserveSymlinks)) ??\n (await findFile(file + '.mjs', preserveSymlinks)) ??\n (await findFile(file + '.js', preserveSymlinks)));\n}\nasync function findFile(file, preserveSymlinks) {\n try {\n const stats = await lstat(file);\n if (!preserveSymlinks && stats.isSymbolicLink())\n return await findFile(await realpath(file), preserveSymlinks);\n if ((preserveSymlinks && stats.isSymbolicLink()) || stats.isFile()) {\n // check case\n const name = basename(file);\n const files = await readdir(dirname(file));\n if (files.includes(name))\n return file;\n }\n }\n catch {\n // suppress\n }\n}\n\nconst ANONYMOUS_PLUGIN_PREFIX = 'at position ';\nconst ANONYMOUS_OUTPUT_PLUGIN_PREFIX = 'at output position ';\n\nfunction createPluginCache(cache) {\n return {\n delete(id) {\n return delete cache[id];\n },\n get(id) {\n const item = cache[id];\n if (!item)\n return;\n item[0] = 0;\n return item[1];\n },\n has(id) {\n const item = cache[id];\n if (!item)\n return false;\n item[0] = 0;\n return true;\n },\n set(id, value) {\n cache[id] = [0, value];\n }\n };\n}\nfunction getTrackedPluginCache(pluginCache, onUse) {\n return {\n delete(id) {\n onUse();\n return pluginCache.delete(id);\n },\n get(id) {\n onUse();\n return pluginCache.get(id);\n },\n has(id) {\n onUse();\n return pluginCache.has(id);\n },\n set(id, value) {\n onUse();\n return pluginCache.set(id, value);\n }\n };\n}\nconst NO_CACHE = {\n delete() {\n return false;\n },\n get() {\n return undefined;\n },\n has() {\n return false;\n },\n set() { }\n};\nfunction uncacheablePluginError(pluginName) {\n if (pluginName.startsWith(ANONYMOUS_PLUGIN_PREFIX) ||\n pluginName.startsWith(ANONYMOUS_OUTPUT_PLUGIN_PREFIX)) {\n return error(logAnonymousPluginCache());\n }\n return error(logDuplicatePluginName(pluginName));\n}\nfunction getCacheForUncacheablePlugin(pluginName) {\n return {\n delete() {\n return uncacheablePluginError(pluginName);\n },\n get() {\n return uncacheablePluginError(pluginName);\n },\n has() {\n return uncacheablePluginError(pluginName);\n },\n set() {\n return uncacheablePluginError(pluginName);\n }\n };\n}\n\nasync function asyncFlatten(array) {\n do {\n array = (await Promise.all(array)).flat(Infinity);\n } while (array.some((v) => v?.then));\n return array;\n}\n\nconst getOnLog = (config, logLevel, printLog = defaultPrintLog) => {\n const { onwarn, onLog } = config;\n const defaultOnLog = getDefaultOnLog(printLog, onwarn);\n if (onLog) {\n const minimalPriority = logLevelPriority[logLevel];\n return (level, log) => onLog(level, addLogToString(log), (level, handledLog) => {\n if (level === LOGLEVEL_ERROR) {\n return error(normalizeLog(handledLog));\n }\n if (logLevelPriority[level] >= minimalPriority) {\n defaultOnLog(level, normalizeLog(handledLog));\n }\n });\n }\n return defaultOnLog;\n};\nconst getDefaultOnLog = (printLog, onwarn) => onwarn\n ? (level, log) => {\n if (level === LOGLEVEL_WARN) {\n onwarn(addLogToString(log), warning => printLog(LOGLEVEL_WARN, normalizeLog(warning)));\n }\n else {\n printLog(level, log);\n }\n }\n : printLog;\nconst addLogToString = (log) => {\n Object.defineProperty(log, 'toString', {\n value: () => log.message,\n writable: true\n });\n return log;\n};\nconst normalizeLog = (log) => typeof log === 'string'\n ? { message: log }\n : typeof log === 'function'\n ? normalizeLog(log())\n : log;\nconst defaultPrintLog = (level, { message }) => {\n switch (level) {\n case LOGLEVEL_WARN: {\n return console.warn(message);\n }\n case LOGLEVEL_DEBUG: {\n return console.debug(message);\n }\n default: {\n return console.info(message);\n }\n }\n};\nfunction warnUnknownOptions(passedOptions, validOptions, optionType, log, ignoredKeys = /$./) {\n const validOptionSet = new Set(validOptions);\n const unknownOptions = Object.keys(passedOptions).filter(key => !(validOptionSet.has(key) || ignoredKeys.test(key)));\n if (unknownOptions.length > 0) {\n log(LOGLEVEL_WARN, logUnknownOption(optionType, unknownOptions, [...validOptionSet].sort()));\n }\n}\nconst treeshakePresets = {\n recommended: {\n annotations: true,\n correctVarValueBeforeDeclaration: false,\n manualPureFunctions: EMPTY_ARRAY,\n moduleSideEffects: () => true,\n propertyReadSideEffects: true,\n tryCatchDeoptimization: true,\n unknownGlobalSideEffects: false\n },\n safest: {\n annotations: true,\n correctVarValueBeforeDeclaration: true,\n manualPureFunctions: EMPTY_ARRAY,\n moduleSideEffects: () => true,\n propertyReadSideEffects: true,\n tryCatchDeoptimization: true,\n unknownGlobalSideEffects: true\n },\n smallest: {\n annotations: true,\n correctVarValueBeforeDeclaration: false,\n manualPureFunctions: EMPTY_ARRAY,\n moduleSideEffects: () => false,\n propertyReadSideEffects: false,\n tryCatchDeoptimization: false,\n unknownGlobalSideEffects: false\n }\n};\nconst generatedCodePresets = {\n es2015: {\n arrowFunctions: true,\n constBindings: true,\n objectShorthand: true,\n reservedNamesAsProps: true,\n symbols: true\n },\n es5: {\n arrowFunctions: false,\n constBindings: false,\n objectShorthand: false,\n reservedNamesAsProps: true,\n symbols: false\n }\n};\nconst objectifyOption = (value) => value && typeof value === 'object' ? value : {};\nconst objectifyOptionWithPresets = (presets, optionName, urlSnippet, additionalValues) => (value) => {\n if (typeof value === 'string') {\n const preset = presets[value];\n if (preset) {\n return preset;\n }\n error(logInvalidOption(optionName, urlSnippet, `valid values are ${additionalValues}${printQuotedStringList(Object.keys(presets))}. You can also supply an object for more fine-grained control`, value));\n }\n return objectifyOption(value);\n};\nconst getOptionWithPreset = (value, presets, optionName, urlSnippet, additionalValues) => {\n const presetName = value?.preset;\n if (presetName) {\n const preset = presets[presetName];\n if (preset) {\n return { ...preset, ...value };\n }\n else {\n error(logInvalidOption(`${optionName}.preset`, urlSnippet, `valid values are ${printQuotedStringList(Object.keys(presets))}`, presetName));\n }\n }\n return objectifyOptionWithPresets(presets, optionName, urlSnippet, additionalValues)(value);\n};\nconst normalizePluginOption = async (plugins) => (await asyncFlatten([plugins])).filter(Boolean);\n\nasync function transform(source, module, pluginDriver, log) {\n const id = module.id;\n const sourcemapChain = [];\n let originalSourcemap = source.map === null ? null : decodedSourcemap(source.map);\n const originalCode = source.code;\n let ast = source.ast;\n const transformDependencies = [];\n const emittedFiles = [];\n let customTransformCache = false;\n const useCustomTransformCache = () => (customTransformCache = true);\n let pluginName = '';\n let currentSource = source.code;\n function transformReducer(previousCode, result, plugin) {\n let code;\n let map;\n if (typeof result === 'string') {\n code = result;\n }\n else if (result && typeof result === 'object') {\n module.updateOptions(result);\n if (result.code == null) {\n if (result.map || result.ast) {\n log(LOGLEVEL_WARN, logNoTransformMapOrAstWithoutCode(plugin.name));\n }\n return previousCode;\n }\n ({ code, map, ast } = result);\n }\n else {\n return previousCode;\n }\n // strict null check allows 'null' maps to not be pushed to the chain,\n // while 'undefined' gets the missing map warning\n if (map !== null) {\n sourcemapChain.push(decodedSourcemap(typeof map === 'string' ? JSON.parse(map) : map) || {\n missing: true,\n plugin: plugin.name\n });\n }\n currentSource = code;\n return code;\n }\n const getLogHandler = (handler) => (log, pos) => {\n log = normalizeLog(log);\n if (pos)\n augmentCodeLocation(log, pos, currentSource, id);\n log.id = id;\n log.hook = 'transform';\n handler(log);\n };\n let code;\n try {\n code = await pluginDriver.hookReduceArg0('transform', [currentSource, id], transformReducer, (pluginContext, plugin) => {\n pluginName = plugin.name;\n return {\n ...pluginContext,\n addWatchFile(id) {\n transformDependencies.push(id);\n pluginContext.addWatchFile(id);\n },\n cache: customTransformCache\n ? pluginContext.cache\n : getTrackedPluginCache(pluginContext.cache, useCustomTransformCache),\n debug: getLogHandler(pluginContext.debug),\n emitFile(emittedFile) {\n emittedFiles.push(emittedFile);\n return pluginDriver.emitFile(emittedFile);\n },\n error(error_, pos) {\n if (typeof error_ === 'string')\n error_ = { message: error_ };\n if (pos)\n augmentCodeLocation(error_, pos, currentSource, id);\n error_.id = id;\n error_.hook = 'transform';\n return pluginContext.error(error_);\n },\n getCombinedSourcemap() {\n const combinedMap = collapseSourcemap(id, originalCode, originalSourcemap, sourcemapChain, log);\n if (!combinedMap) {\n const magicString = new MagicString(originalCode);\n return magicString.generateMap({ hires: true, includeContent: true, source: id });\n }\n if (originalSourcemap !== combinedMap) {\n originalSourcemap = combinedMap;\n sourcemapChain.length = 0;\n }\n return new SourceMap({\n ...combinedMap,\n file: null,\n sourcesContent: combinedMap.sourcesContent\n });\n },\n info: getLogHandler(pluginContext.info),\n setAssetSource() {\n return this.error(logInvalidSetAssetSourceCall());\n },\n warn: getLogHandler(pluginContext.warn)\n };\n });\n }\n catch (error_) {\n return error(logPluginError(error_, pluginName, { hook: 'transform', id }));\n }\n if (!customTransformCache && // files emitted by a transform hook need to be emitted again if the hook is skipped\n emittedFiles.length > 0)\n module.transformFiles = emittedFiles;\n return {\n ast,\n code,\n customTransformCache,\n originalCode,\n originalSourcemap,\n sourcemapChain,\n transformDependencies\n };\n}\n\nconst RESOLVE_DEPENDENCIES = 'resolveDependencies';\nclass ModuleLoader {\n constructor(graph, modulesById, options, pluginDriver) {\n this.graph = graph;\n this.modulesById = modulesById;\n this.options = options;\n this.pluginDriver = pluginDriver;\n this.implicitEntryModules = new Set();\n this.indexedEntryModules = [];\n this.latestLoadModulesPromise = Promise.resolve();\n this.moduleLoadPromises = new Map();\n this.modulesWithLoadedDependencies = new Set();\n this.nextChunkNamePriority = 0;\n this.nextEntryModuleIndex = 0;\n this.resolveId = async (source, importer, customOptions, isEntry, attributes, skip = null) => this.getResolvedIdWithDefaults(this.getNormalizedResolvedIdWithoutDefaults(this.options.external(source, importer, false)\n ? false\n : await resolveId(source, importer, this.options.preserveSymlinks, this.pluginDriver, this.resolveId, skip, customOptions, typeof isEntry === 'boolean' ? isEntry : !importer, attributes), importer, source), attributes);\n this.hasModuleSideEffects = options.treeshake\n ? options.treeshake.moduleSideEffects\n : () => true;\n }\n async addAdditionalModules(unresolvedModules, isAddForManualChunks) {\n const result = this.extendLoadModulesPromise(Promise.all(unresolvedModules.map(id => this.loadEntryModule(id, false, undefined, null, isAddForManualChunks))));\n await this.awaitLoadModulesPromise();\n return result;\n }\n async addEntryModules(unresolvedEntryModules, isUserDefined) {\n const firstEntryModuleIndex = this.nextEntryModuleIndex;\n this.nextEntryModuleIndex += unresolvedEntryModules.length;\n const firstChunkNamePriority = this.nextChunkNamePriority;\n this.nextChunkNamePriority += unresolvedEntryModules.length;\n const newEntryModules = await this.extendLoadModulesPromise(Promise.all(unresolvedEntryModules.map(({ id, importer }) => this.loadEntryModule(id, true, importer, null))).then(entryModules => {\n for (const [index, entryModule] of entryModules.entries()) {\n entryModule.isUserDefinedEntryPoint =\n entryModule.isUserDefinedEntryPoint || isUserDefined;\n addChunkNamesToModule(entryModule, unresolvedEntryModules[index], isUserDefined, firstChunkNamePriority + index);\n const existingIndexedModule = this.indexedEntryModules.find(indexedModule => indexedModule.module === entryModule);\n if (existingIndexedModule) {\n existingIndexedModule.index = Math.min(existingIndexedModule.index, firstEntryModuleIndex + index);\n }\n else {\n this.indexedEntryModules.push({\n index: firstEntryModuleIndex + index,\n module: entryModule\n });\n }\n }\n this.indexedEntryModules.sort(({ index: indexA }, { index: indexB }) => indexA > indexB ? 1 : -1);\n return entryModules;\n }));\n await this.awaitLoadModulesPromise();\n return {\n entryModules: this.indexedEntryModules.map(({ module }) => module),\n implicitEntryModules: [...this.implicitEntryModules],\n newEntryModules\n };\n }\n async emitChunk({ fileName, id, importer, name, implicitlyLoadedAfterOneOf, preserveSignature }) {\n const unresolvedModule = {\n fileName: fileName || null,\n id,\n importer,\n name: name || null\n };\n const module = implicitlyLoadedAfterOneOf\n ? await this.addEntryWithImplicitDependants(unresolvedModule, implicitlyLoadedAfterOneOf)\n : (await this.addEntryModules([unresolvedModule], false)).newEntryModules[0];\n if (preserveSignature != null) {\n module.preserveSignature = preserveSignature;\n }\n return module;\n }\n async preloadModule(resolvedId) {\n const module = await this.fetchModule(this.getResolvedIdWithDefaults(resolvedId, EMPTY_OBJECT), undefined, false, resolvedId.resolveDependencies ? RESOLVE_DEPENDENCIES : true);\n return module.info;\n }\n addEntryWithImplicitDependants(unresolvedModule, implicitlyLoadedAfter) {\n const chunkNamePriority = this.nextChunkNamePriority++;\n return this.extendLoadModulesPromise(this.loadEntryModule(unresolvedModule.id, false, unresolvedModule.importer, null).then(async (entryModule) => {\n addChunkNamesToModule(entryModule, unresolvedModule, false, chunkNamePriority);\n if (!entryModule.info.isEntry) {\n const implicitlyLoadedAfterModules = await Promise.all(implicitlyLoadedAfter.map(id => this.loadEntryModule(id, false, unresolvedModule.importer, entryModule.id)));\n // We need to check again if this is still an entry module as these\n // changes need to be performed atomically to avoid race conditions\n // if the same module is re-emitted as an entry module.\n // The inverse changes happen in \"handleExistingModule\"\n if (!entryModule.info.isEntry) {\n this.implicitEntryModules.add(entryModule);\n for (const module of implicitlyLoadedAfterModules) {\n entryModule.implicitlyLoadedAfter.add(module);\n }\n for (const dependant of entryModule.implicitlyLoadedAfter) {\n dependant.implicitlyLoadedBefore.add(entryModule);\n }\n }\n }\n return entryModule;\n }));\n }\n async addModuleSource(id, importer, module) {\n let source;\n try {\n source = await this.graph.fileOperationQueue.run(async () => {\n const content = await this.pluginDriver.hookFirst('load', [id]);\n if (content !== null)\n return content;\n this.graph.watchFiles[id] = true;\n return await readFile(id, 'utf8');\n });\n }\n catch (error_) {\n let message = `Could not load ${id}`;\n if (importer)\n message += ` (imported by ${relativeId(importer)})`;\n message += `: ${error_.message}`;\n error_.message = message;\n throw error_;\n }\n const sourceDescription = typeof source === 'string'\n ? { code: source }\n : source != null && typeof source === 'object' && typeof source.code === 'string'\n ? source\n : error(logBadLoader(id));\n const code = sourceDescription.code;\n if (code.charCodeAt(0) === 0xfe_ff) {\n sourceDescription.code = code.slice(1);\n }\n const cachedModule = this.graph.cachedModules.get(id);\n if (cachedModule &&\n !cachedModule.customTransformCache &&\n cachedModule.originalCode === sourceDescription.code &&\n !(await this.pluginDriver.hookFirst('shouldTransformCachedModule', [\n {\n ast: cachedModule.ast,\n code: cachedModule.code,\n id: cachedModule.id,\n meta: cachedModule.meta,\n moduleSideEffects: cachedModule.moduleSideEffects,\n resolvedSources: cachedModule.resolvedIds,\n syntheticNamedExports: cachedModule.syntheticNamedExports\n }\n ]))) {\n if (cachedModule.transformFiles) {\n for (const emittedFile of cachedModule.transformFiles)\n this.pluginDriver.emitFile(emittedFile);\n }\n await module.setSource(cachedModule);\n }\n else {\n module.updateOptions(sourceDescription);\n await module.setSource(await transform(sourceDescription, module, this.pluginDriver, this.options.onLog));\n }\n }\n async awaitLoadModulesPromise() {\n let startingPromise;\n do {\n startingPromise = this.latestLoadModulesPromise;\n await startingPromise;\n } while (startingPromise !== this.latestLoadModulesPromise);\n }\n extendLoadModulesPromise(loadNewModulesPromise) {\n this.latestLoadModulesPromise = Promise.all([\n loadNewModulesPromise,\n this.latestLoadModulesPromise\n ]);\n this.latestLoadModulesPromise.catch(() => {\n /* Avoid unhandled Promise rejections */\n });\n return loadNewModulesPromise;\n }\n async fetchDynamicDependencies(module, resolveDynamicImportPromises) {\n const dependencies = await Promise.all(resolveDynamicImportPromises.map(resolveDynamicImportPromise => resolveDynamicImportPromise.then(async ([dynamicImport, resolvedId]) => {\n if (resolvedId === null)\n return null;\n if (typeof resolvedId === 'string') {\n dynamicImport.resolution = resolvedId;\n return null;\n }\n return (dynamicImport.resolution = await this.fetchResolvedDependency(relativeId(resolvedId.id), module.id, resolvedId));\n })));\n for (const dependency of dependencies) {\n if (dependency) {\n module.dynamicDependencies.add(dependency);\n dependency.dynamicImporters.push(module.id);\n }\n }\n }\n // If this is a preload, then this method always waits for the dependencies of\n // the module to be resolved.\n // Otherwise, if the module does not exist, it waits for the module and all\n // its dependencies to be loaded.\n // Otherwise, it returns immediately.\n async fetchModule({ attributes, id, meta, moduleSideEffects, syntheticNamedExports }, importer, isEntry, isPreload) {\n const existingModule = this.modulesById.get(id);\n if (existingModule instanceof Module) {\n if (importer && doAttributesDiffer(attributes, existingModule.info.attributes)) {\n this.options.onLog(LOGLEVEL_WARN, logInconsistentImportAttributes(existingModule.info.attributes, attributes, id, importer));\n }\n await this.handleExistingModule(existingModule, isEntry, isPreload);\n return existingModule;\n }\n if (existingModule instanceof ExternalModule) {\n return error(logExternalModulesCannotBeTransformedToModules(existingModule.id));\n }\n const module = new Module(this.graph, id, this.options, isEntry, moduleSideEffects, syntheticNamedExports, meta, attributes);\n this.modulesById.set(id, module);\n const loadPromise = this.addModuleSource(id, importer, module).then(() => [\n this.getResolveStaticDependencyPromises(module),\n this.getResolveDynamicImportPromises(module),\n loadAndResolveDependenciesPromise\n ]);\n const loadAndResolveDependenciesPromise = waitForDependencyResolution(loadPromise).then(() => this.pluginDriver.hookParallel('moduleParsed', [module.info]));\n loadAndResolveDependenciesPromise.catch(() => {\n /* avoid unhandled promise rejections */\n });\n this.moduleLoadPromises.set(module, loadPromise);\n const resolveDependencyPromises = await loadPromise;\n if (!isPreload) {\n await this.fetchModuleDependencies(module, ...resolveDependencyPromises);\n }\n else if (isPreload === RESOLVE_DEPENDENCIES) {\n await loadAndResolveDependenciesPromise;\n }\n return module;\n }\n async fetchModuleDependencies(module, resolveStaticDependencyPromises, resolveDynamicDependencyPromises, loadAndResolveDependenciesPromise) {\n if (this.modulesWithLoadedDependencies.has(module)) {\n return;\n }\n this.modulesWithLoadedDependencies.add(module);\n await Promise.all([\n this.fetchStaticDependencies(module, resolveStaticDependencyPromises),\n this.fetchDynamicDependencies(module, resolveDynamicDependencyPromises)\n ]);\n module.linkImports();\n // To handle errors when resolving dependencies or in moduleParsed\n await loadAndResolveDependenciesPromise;\n }\n fetchResolvedDependency(source, importer, resolvedId) {\n if (resolvedId.external) {\n const { attributes, external, id, moduleSideEffects, meta } = resolvedId;\n let externalModule = this.modulesById.get(id);\n if (!externalModule) {\n externalModule = new ExternalModule(this.options, id, moduleSideEffects, meta, external !== 'absolute' && isAbsolute$1(id), attributes);\n this.modulesById.set(id, externalModule);\n }\n else if (!(externalModule instanceof ExternalModule)) {\n return error(logInternalIdCannotBeExternal(source, importer));\n }\n else if (doAttributesDiffer(externalModule.info.attributes, attributes)) {\n this.options.onLog(LOGLEVEL_WARN, logInconsistentImportAttributes(externalModule.info.attributes, attributes, source, importer));\n }\n return Promise.resolve(externalModule);\n }\n return this.fetchModule(resolvedId, importer, false, false);\n }\n async fetchStaticDependencies(module, resolveStaticDependencyPromises) {\n for (const dependency of await Promise.all(resolveStaticDependencyPromises.map(resolveStaticDependencyPromise => resolveStaticDependencyPromise.then(([source, resolvedId]) => this.fetchResolvedDependency(source, module.id, resolvedId))))) {\n module.dependencies.add(dependency);\n dependency.importers.push(module.id);\n }\n if (!this.options.treeshake || module.info.moduleSideEffects === 'no-treeshake') {\n for (const dependency of module.dependencies) {\n if (dependency instanceof Module) {\n dependency.importedFromNotTreeshaken = true;\n }\n }\n }\n }\n getNormalizedResolvedIdWithoutDefaults(resolveIdResult, importer, source) {\n const { makeAbsoluteExternalsRelative } = this.options;\n if (resolveIdResult) {\n if (typeof resolveIdResult === 'object') {\n const external = resolveIdResult.external || this.options.external(resolveIdResult.id, importer, true);\n return {\n ...resolveIdResult,\n external: external &&\n (external === 'relative' ||\n !isAbsolute$1(resolveIdResult.id) ||\n (external === true &&\n isNotAbsoluteExternal(resolveIdResult.id, source, makeAbsoluteExternalsRelative)) ||\n 'absolute')\n };\n }\n const external = this.options.external(resolveIdResult, importer, true);\n return {\n external: external &&\n (isNotAbsoluteExternal(resolveIdResult, source, makeAbsoluteExternalsRelative) ||\n 'absolute'),\n id: external && makeAbsoluteExternalsRelative\n ? normalizeRelativeExternalId(resolveIdResult, importer)\n : resolveIdResult\n };\n }\n const id = makeAbsoluteExternalsRelative\n ? normalizeRelativeExternalId(source, importer)\n : source;\n if (resolveIdResult !== false && !this.options.external(id, importer, true)) {\n return null;\n }\n return {\n external: isNotAbsoluteExternal(id, source, makeAbsoluteExternalsRelative) || 'absolute',\n id\n };\n }\n getResolveDynamicImportPromises(module) {\n return module.dynamicImports.map(async (dynamicImport) => {\n const resolvedId = await this.resolveDynamicImport(module, dynamicImport.argument, module.id, getAttributesFromImportExpression(dynamicImport.node));\n if (resolvedId && typeof resolvedId === 'object') {\n dynamicImport.id = resolvedId.id;\n }\n return [dynamicImport, resolvedId];\n });\n }\n getResolveStaticDependencyPromises(module) {\n // eslint-disable-next-line unicorn/prefer-spread\n return Array.from(module.sourcesWithAttributes, async ([source, attributes]) => [\n source,\n (module.resolvedIds[source] =\n module.resolvedIds[source] ||\n this.handleInvalidResolvedId(await this.resolveId(source, module.id, EMPTY_OBJECT, false, attributes), source, module.id, attributes))\n ]);\n }\n getResolvedIdWithDefaults(resolvedId, attributes) {\n if (!resolvedId) {\n return null;\n }\n const external = resolvedId.external || false;\n return {\n attributes: resolvedId.attributes || attributes,\n external,\n id: resolvedId.id,\n meta: resolvedId.meta || {},\n moduleSideEffects: resolvedId.moduleSideEffects ?? this.hasModuleSideEffects(resolvedId.id, !!external),\n resolvedBy: resolvedId.resolvedBy ?? 'rollup',\n syntheticNamedExports: resolvedId.syntheticNamedExports ?? false\n };\n }\n async handleExistingModule(module, isEntry, isPreload) {\n const loadPromise = this.moduleLoadPromises.get(module);\n if (isPreload) {\n return isPreload === RESOLVE_DEPENDENCIES\n ? waitForDependencyResolution(loadPromise)\n : loadPromise;\n }\n if (isEntry) {\n // This reverts the changes in addEntryWithImplicitDependants and needs to\n // be performed atomically\n module.info.isEntry = true;\n this.implicitEntryModules.delete(module);\n for (const dependant of module.implicitlyLoadedAfter) {\n dependant.implicitlyLoadedBefore.delete(module);\n }\n module.implicitlyLoadedAfter.clear();\n }\n return this.fetchModuleDependencies(module, ...(await loadPromise));\n }\n handleInvalidResolvedId(resolvedId, source, importer, attributes) {\n if (resolvedId === null) {\n if (isRelative(source)) {\n return error(logUnresolvedImport(source, importer));\n }\n this.options.onLog(LOGLEVEL_WARN, logUnresolvedImportTreatedAsExternal(source, importer));\n return {\n attributes,\n external: true,\n id: source,\n meta: {},\n moduleSideEffects: this.hasModuleSideEffects(source, true),\n resolvedBy: 'rollup',\n syntheticNamedExports: false\n };\n }\n else if (resolvedId.external && resolvedId.syntheticNamedExports) {\n this.options.onLog(LOGLEVEL_WARN, logExternalSyntheticExports(source, importer));\n }\n return resolvedId;\n }\n async loadEntryModule(unresolvedId, isEntry, importer, implicitlyLoadedBefore, isLoadForManualChunks = false) {\n const resolveIdResult = await resolveId(unresolvedId, importer, this.options.preserveSymlinks, this.pluginDriver, this.resolveId, null, EMPTY_OBJECT, true, EMPTY_OBJECT);\n if (resolveIdResult == null) {\n return error(implicitlyLoadedBefore === null\n ? logUnresolvedEntry(unresolvedId)\n : logUnresolvedImplicitDependant(unresolvedId, implicitlyLoadedBefore));\n }\n const isExternalModules = typeof resolveIdResult === 'object' && resolveIdResult.external;\n if (resolveIdResult === false || isExternalModules) {\n return error(implicitlyLoadedBefore === null\n ? isExternalModules && isLoadForManualChunks\n ? logExternalModulesCannotBeIncludedInManualChunks(unresolvedId)\n : logEntryCannotBeExternal(unresolvedId)\n : logImplicitDependantCannotBeExternal(unresolvedId, implicitlyLoadedBefore));\n }\n return this.fetchModule(this.getResolvedIdWithDefaults(typeof resolveIdResult === 'object'\n ? resolveIdResult\n : { id: resolveIdResult }, EMPTY_OBJECT), undefined, isEntry, false);\n }\n async resolveDynamicImport(module, specifier, importer, attributes) {\n const resolution = await this.pluginDriver.hookFirst('resolveDynamicImport', [\n specifier,\n importer,\n { attributes }\n ]);\n if (typeof specifier !== 'string') {\n if (typeof resolution === 'string') {\n return resolution;\n }\n if (!resolution) {\n return null;\n }\n return this.getResolvedIdWithDefaults(resolution, attributes);\n }\n if (resolution == null) {\n const existingResolution = module.resolvedIds[specifier];\n if (existingResolution) {\n if (doAttributesDiffer(existingResolution.attributes, attributes)) {\n this.options.onLog(LOGLEVEL_WARN, logInconsistentImportAttributes(existingResolution.attributes, attributes, specifier, importer));\n }\n return existingResolution;\n }\n return (module.resolvedIds[specifier] = this.handleInvalidResolvedId(await this.resolveId(specifier, module.id, EMPTY_OBJECT, false, attributes), specifier, module.id, attributes));\n }\n return this.handleInvalidResolvedId(this.getResolvedIdWithDefaults(this.getNormalizedResolvedIdWithoutDefaults(resolution, importer, specifier), attributes), specifier, importer, attributes);\n }\n}\nfunction normalizeRelativeExternalId(source, importer) {\n return isRelative(source)\n ? importer\n ? resolve$1(importer, '..', source)\n : resolve$1(source)\n : source;\n}\nfunction addChunkNamesToModule(module, { fileName, name }, isUserDefined, priority) {\n if (fileName !== null) {\n module.chunkFileNames.add(fileName);\n }\n else if (name !== null) {\n // Always keep chunkNames sorted by priority\n let namePosition = 0;\n while (module.chunkNames[namePosition]?.priority < priority)\n namePosition++;\n module.chunkNames.splice(namePosition, 0, { isUserDefined, name, priority });\n }\n}\nfunction isNotAbsoluteExternal(id, source, makeAbsoluteExternalsRelative) {\n return (makeAbsoluteExternalsRelative === true ||\n (makeAbsoluteExternalsRelative === 'ifRelativeSource' && isRelative(source)) ||\n !isAbsolute$1(id));\n}\nasync function waitForDependencyResolution(loadPromise) {\n const [resolveStaticDependencyPromises, resolveDynamicImportPromises] = await loadPromise;\n return Promise.all([...resolveStaticDependencyPromises, ...resolveDynamicImportPromises]);\n}\n\nclass GlobalScope extends Scope {\n constructor() {\n super();\n this.parent = null;\n this.variables.set('undefined', new UndefinedVariable());\n }\n findVariable(name) {\n let variable = this.variables.get(name);\n if (!variable) {\n variable = new GlobalVariable(name);\n this.variables.set(name, variable);\n }\n return variable;\n }\n}\n\nfunction generateAssetFileName(name, source, sourceHash, outputOptions, bundle) {\n const emittedName = outputOptions.sanitizeFileName(name || 'asset');\n return makeUnique(renderNamePattern(typeof outputOptions.assetFileNames === 'function'\n ? outputOptions.assetFileNames({ name, source, type: 'asset' })\n : outputOptions.assetFileNames, 'output.assetFileNames', {\n ext: () => extname(emittedName).slice(1),\n extname: () => extname(emittedName),\n hash: size => sourceHash.slice(0, Math.max(0, size || DEFAULT_HASH_SIZE)),\n name: () => emittedName.slice(0, Math.max(0, emittedName.length - extname(emittedName).length))\n }), bundle);\n}\nfunction reserveFileNameInBundle(fileName, { bundle }, log) {\n if (bundle[lowercaseBundleKeys].has(fileName.toLowerCase())) {\n log(LOGLEVEL_WARN, logFileNameConflict(fileName));\n }\n else {\n bundle[fileName] = FILE_PLACEHOLDER;\n }\n}\nconst emittedFileTypes = new Set(['chunk', 'asset', 'prebuilt-chunk']);\nfunction hasValidType(emittedFile) {\n return Boolean(emittedFile &&\n emittedFileTypes.has(emittedFile.type));\n}\nfunction hasValidName(emittedFile) {\n const validatedName = emittedFile.fileName || emittedFile.name;\n return !validatedName || (typeof validatedName === 'string' && !isPathFragment(validatedName));\n}\nfunction getValidSource(source, emittedFile, fileReferenceId) {\n if (!(typeof source === 'string' || source instanceof Uint8Array)) {\n const assetName = emittedFile.fileName || emittedFile.name || fileReferenceId;\n return error(logFailedValidation(`Could not set source for ${typeof assetName === 'string' ? `asset \"${assetName}\"` : 'unnamed asset'}, asset source needs to be a string, Uint8Array or Buffer.`));\n }\n return source;\n}\nfunction getAssetFileName(file, referenceId) {\n if (typeof file.fileName !== 'string') {\n return error(logAssetNotFinalisedForFileName(file.name || referenceId));\n }\n return file.fileName;\n}\nfunction getChunkFileName(file, facadeChunkByModule) {\n if (file.fileName) {\n return file.fileName;\n }\n if (facadeChunkByModule) {\n return facadeChunkByModule.get(file.module).getFileName();\n }\n return error(logChunkNotGeneratedForFileName(file.fileName || file.name));\n}\nclass FileEmitter {\n constructor(graph, options, baseFileEmitter) {\n this.graph = graph;\n this.options = options;\n this.facadeChunkByModule = null;\n this.nextIdBase = 1;\n this.output = null;\n this.outputFileEmitters = [];\n this.emitFile = (emittedFile) => {\n if (!hasValidType(emittedFile)) {\n return error(logFailedValidation(`Emitted files must be of type \"asset\", \"chunk\" or \"prebuilt-chunk\", received \"${emittedFile && emittedFile.type}\".`));\n }\n if (emittedFile.type === 'prebuilt-chunk') {\n return this.emitPrebuiltChunk(emittedFile);\n }\n if (!hasValidName(emittedFile)) {\n return error(logFailedValidation(`The \"fileName\" or \"name\" properties of emitted chunks and assets must be strings that are neither absolute nor relative paths, received \"${emittedFile.fileName || emittedFile.name}\".`));\n }\n if (emittedFile.type === 'chunk') {\n return this.emitChunk(emittedFile);\n }\n return this.emitAsset(emittedFile);\n };\n this.finaliseAssets = () => {\n for (const [referenceId, emittedFile] of this.filesByReferenceId) {\n if (emittedFile.type === 'asset' && typeof emittedFile.fileName !== 'string')\n return error(logNoAssetSourceSet(emittedFile.name || referenceId));\n }\n };\n this.getFileName = (fileReferenceId) => {\n const emittedFile = this.filesByReferenceId.get(fileReferenceId);\n if (!emittedFile)\n return error(logFileReferenceIdNotFoundForFilename(fileReferenceId));\n if (emittedFile.type === 'chunk') {\n return getChunkFileName(emittedFile, this.facadeChunkByModule);\n }\n if (emittedFile.type === 'prebuilt-chunk') {\n return emittedFile.fileName;\n }\n return getAssetFileName(emittedFile, fileReferenceId);\n };\n this.setAssetSource = (referenceId, requestedSource) => {\n const consumedFile = this.filesByReferenceId.get(referenceId);\n if (!consumedFile)\n return error(logAssetReferenceIdNotFoundForSetSource(referenceId));\n if (consumedFile.type !== 'asset') {\n return error(logFailedValidation(`Asset sources can only be set for emitted assets but \"${referenceId}\" is an emitted chunk.`));\n }\n if (consumedFile.source !== undefined) {\n return error(logAssetSourceAlreadySet(consumedFile.name || referenceId));\n }\n const source = getValidSource(requestedSource, consumedFile, referenceId);\n if (this.output) {\n this.finalizeAdditionalAsset(consumedFile, source, this.output);\n }\n else {\n consumedFile.source = source;\n for (const emitter of this.outputFileEmitters) {\n emitter.finalizeAdditionalAsset(consumedFile, source, emitter.output);\n }\n }\n };\n this.setChunkInformation = (facadeChunkByModule) => {\n this.facadeChunkByModule = facadeChunkByModule;\n };\n this.setOutputBundle = (bundle, outputOptions) => {\n const getHash = hasherByType[outputOptions.hashCharacters];\n const output = (this.output = {\n bundle,\n fileNamesBySource: new Map(),\n getHash,\n outputOptions\n });\n for (const emittedFile of this.filesByReferenceId.values()) {\n if (emittedFile.fileName) {\n reserveFileNameInBundle(emittedFile.fileName, output, this.options.onLog);\n }\n }\n const consumedAssetsByHash = new Map();\n for (const consumedFile of this.filesByReferenceId.values()) {\n if (consumedFile.type === 'asset' && consumedFile.source !== undefined) {\n if (consumedFile.fileName) {\n this.finalizeAdditionalAsset(consumedFile, consumedFile.source, output);\n }\n else {\n const sourceHash = getHash(consumedFile.source);\n getOrCreate(consumedAssetsByHash, sourceHash, () => []).push(consumedFile);\n }\n }\n else if (consumedFile.type === 'prebuilt-chunk') {\n this.output.bundle[consumedFile.fileName] = this.createPrebuiltChunk(consumedFile);\n }\n }\n for (const [sourceHash, consumedFiles] of consumedAssetsByHash) {\n this.finalizeAssetsWithSameSource(consumedFiles, sourceHash, output);\n }\n };\n this.filesByReferenceId = baseFileEmitter\n ? new Map(baseFileEmitter.filesByReferenceId)\n : new Map();\n baseFileEmitter?.addOutputFileEmitter(this);\n }\n addOutputFileEmitter(outputFileEmitter) {\n this.outputFileEmitters.push(outputFileEmitter);\n }\n assignReferenceId(file, idBase) {\n let referenceId = idBase;\n do {\n referenceId = getHash64(referenceId).slice(0, 8).replaceAll('-', '$');\n } while (this.filesByReferenceId.has(referenceId) ||\n this.outputFileEmitters.some(({ filesByReferenceId }) => filesByReferenceId.has(referenceId)));\n file.referenceId = referenceId;\n this.filesByReferenceId.set(referenceId, file);\n for (const { filesByReferenceId } of this.outputFileEmitters) {\n filesByReferenceId.set(referenceId, file);\n }\n return referenceId;\n }\n createPrebuiltChunk(prebuiltChunk) {\n return {\n code: prebuiltChunk.code,\n dynamicImports: [],\n exports: prebuiltChunk.exports || [],\n facadeModuleId: null,\n fileName: prebuiltChunk.fileName,\n implicitlyLoadedBefore: [],\n importedBindings: {},\n imports: [],\n isDynamicEntry: false,\n isEntry: false,\n isImplicitEntry: false,\n map: prebuiltChunk.map || null,\n moduleIds: [],\n modules: {},\n name: prebuiltChunk.fileName,\n preliminaryFileName: prebuiltChunk.fileName,\n referencedFiles: [],\n sourcemapFileName: prebuiltChunk.sourcemapFileName || null,\n type: 'chunk'\n };\n }\n emitAsset(emittedAsset) {\n const source = emittedAsset.source === undefined\n ? undefined\n : getValidSource(emittedAsset.source, emittedAsset, null);\n const consumedAsset = {\n fileName: emittedAsset.fileName,\n name: emittedAsset.name,\n needsCodeReference: !!emittedAsset.needsCodeReference,\n referenceId: '',\n source,\n type: 'asset'\n };\n const referenceId = this.assignReferenceId(consumedAsset, emittedAsset.fileName || emittedAsset.name || String(this.nextIdBase++));\n if (this.output) {\n this.emitAssetWithReferenceId(consumedAsset, this.output);\n }\n else {\n for (const fileEmitter of this.outputFileEmitters) {\n fileEmitter.emitAssetWithReferenceId(consumedAsset, fileEmitter.output);\n }\n }\n return referenceId;\n }\n emitAssetWithReferenceId(consumedAsset, output) {\n const { fileName, source } = consumedAsset;\n if (fileName) {\n reserveFileNameInBundle(fileName, output, this.options.onLog);\n }\n if (source !== undefined) {\n this.finalizeAdditionalAsset(consumedAsset, source, output);\n }\n }\n emitChunk(emittedChunk) {\n if (this.graph.phase > BuildPhase.LOAD_AND_PARSE) {\n return error(logInvalidRollupPhaseForChunkEmission());\n }\n if (typeof emittedChunk.id !== 'string') {\n return error(logFailedValidation(`Emitted chunks need to have a valid string id, received \"${emittedChunk.id}\"`));\n }\n const consumedChunk = {\n fileName: emittedChunk.fileName,\n module: null,\n name: emittedChunk.name || emittedChunk.id,\n referenceId: '',\n type: 'chunk'\n };\n this.graph.moduleLoader\n .emitChunk(emittedChunk)\n .then(module => (consumedChunk.module = module))\n .catch(() => {\n // Avoid unhandled Promise rejection as the error will be thrown later\n // once module loading has finished\n });\n return this.assignReferenceId(consumedChunk, emittedChunk.id);\n }\n emitPrebuiltChunk(emitPrebuiltChunk) {\n if (typeof emitPrebuiltChunk.code !== 'string') {\n return error(logFailedValidation(`Emitted prebuilt chunks need to have a valid string code, received \"${emitPrebuiltChunk.code}\".`));\n }\n if (typeof emitPrebuiltChunk.fileName !== 'string' ||\n isPathFragment(emitPrebuiltChunk.fileName)) {\n return error(logFailedValidation(`The \"fileName\" property of emitted prebuilt chunks must be strings that are neither absolute nor relative paths, received \"${emitPrebuiltChunk.fileName}\".`));\n }\n const consumedPrebuiltChunk = {\n code: emitPrebuiltChunk.code,\n exports: emitPrebuiltChunk.exports,\n fileName: emitPrebuiltChunk.fileName,\n map: emitPrebuiltChunk.map,\n referenceId: '',\n type: 'prebuilt-chunk'\n };\n const referenceId = this.assignReferenceId(consumedPrebuiltChunk, consumedPrebuiltChunk.fileName);\n if (this.output) {\n this.output.bundle[consumedPrebuiltChunk.fileName] =\n this.createPrebuiltChunk(consumedPrebuiltChunk);\n }\n return referenceId;\n }\n finalizeAdditionalAsset(consumedFile, source, { bundle, fileNamesBySource, getHash, outputOptions }) {\n let { fileName, needsCodeReference, referenceId } = consumedFile;\n // Deduplicate assets if an explicit fileName is not provided\n if (!fileName) {\n const sourceHash = getHash(source);\n fileName = fileNamesBySource.get(sourceHash);\n if (!fileName) {\n fileName = generateAssetFileName(consumedFile.name, source, sourceHash, outputOptions, bundle);\n fileNamesBySource.set(sourceHash, fileName);\n }\n }\n // We must not modify the original assets to avoid interaction between outputs\n const assetWithFileName = { ...consumedFile, fileName, source };\n this.filesByReferenceId.set(referenceId, assetWithFileName);\n const existingAsset = bundle[fileName];\n if (existingAsset?.type === 'asset') {\n existingAsset.needsCodeReference &&= needsCodeReference;\n }\n else {\n bundle[fileName] = {\n fileName,\n name: consumedFile.name,\n needsCodeReference,\n source,\n type: 'asset'\n };\n }\n }\n finalizeAssetsWithSameSource(consumedFiles, sourceHash, { bundle, fileNamesBySource, outputOptions }) {\n let fileName = '';\n let usedConsumedFile;\n let needsCodeReference = true;\n for (const consumedFile of consumedFiles) {\n needsCodeReference &&= consumedFile.needsCodeReference;\n const assetFileName = generateAssetFileName(consumedFile.name, consumedFile.source, sourceHash, outputOptions, bundle);\n if (!fileName ||\n assetFileName.length < fileName.length ||\n (assetFileName.length === fileName.length && assetFileName < fileName)) {\n fileName = assetFileName;\n usedConsumedFile = consumedFile;\n }\n }\n fileNamesBySource.set(sourceHash, fileName);\n for (const consumedFile of consumedFiles) {\n // We must not modify the original assets to avoid interaction between outputs\n const assetWithFileName = { ...consumedFile, fileName };\n this.filesByReferenceId.set(consumedFile.referenceId, assetWithFileName);\n }\n bundle[fileName] = {\n fileName,\n name: usedConsumedFile.name,\n needsCodeReference,\n source: usedConsumedFile.source,\n type: 'asset'\n };\n }\n}\n\nfunction getLogHandler(level, code, logger, pluginName, logLevel) {\n if (logLevelPriority[level] < logLevelPriority[logLevel]) {\n return doNothing;\n }\n return (log, pos) => {\n if (pos != null) {\n logger(LOGLEVEL_WARN, logInvalidLogPosition(pluginName));\n }\n log = normalizeLog(log);\n if (log.code && !log.pluginCode) {\n log.pluginCode = log.code;\n }\n log.code = code;\n log.plugin = pluginName;\n logger(level, log);\n };\n}\n\nfunction getPluginContext(plugin, pluginCache, graph, options, fileEmitter, existingPluginNames) {\n const { logLevel, onLog } = options;\n let cacheable = true;\n if (typeof plugin.cacheKey !== 'string') {\n if (plugin.name.startsWith(ANONYMOUS_PLUGIN_PREFIX) ||\n plugin.name.startsWith(ANONYMOUS_OUTPUT_PLUGIN_PREFIX) ||\n existingPluginNames.has(plugin.name)) {\n cacheable = false;\n }\n else {\n existingPluginNames.add(plugin.name);\n }\n }\n let cacheInstance;\n if (!pluginCache) {\n cacheInstance = NO_CACHE;\n }\n else if (cacheable) {\n const cacheKey = plugin.cacheKey || plugin.name;\n cacheInstance = createPluginCache(pluginCache[cacheKey] || (pluginCache[cacheKey] = Object.create(null)));\n }\n else {\n cacheInstance = getCacheForUncacheablePlugin(plugin.name);\n }\n return {\n addWatchFile(id) {\n graph.watchFiles[id] = true;\n },\n cache: cacheInstance,\n debug: getLogHandler(LOGLEVEL_DEBUG, 'PLUGIN_LOG', onLog, plugin.name, logLevel),\n emitFile: fileEmitter.emitFile.bind(fileEmitter),\n error(error_) {\n return error(logPluginError(normalizeLog(error_), plugin.name));\n },\n getFileName: fileEmitter.getFileName,\n getModuleIds: () => graph.modulesById.keys(),\n getModuleInfo: graph.getModuleInfo,\n getWatchFiles: () => Object.keys(graph.watchFiles),\n info: getLogHandler(LOGLEVEL_INFO, 'PLUGIN_LOG', onLog, plugin.name, logLevel),\n load(resolvedId) {\n return graph.moduleLoader.preloadModule(resolvedId);\n },\n meta: {\n rollupVersion: version,\n watchMode: graph.watchMode\n },\n parse: parseAst,\n resolve(source, importer, { attributes, custom, isEntry, skipSelf } = BLANK) {\n skipSelf ??= true;\n return graph.moduleLoader.resolveId(source, importer, custom, isEntry, attributes || EMPTY_OBJECT, skipSelf ? [{ importer, plugin, source }] : null);\n },\n setAssetSource: fileEmitter.setAssetSource,\n warn: getLogHandler(LOGLEVEL_WARN, 'PLUGIN_WARNING', onLog, plugin.name, logLevel)\n };\n}\n\n// This will make sure no input hook is omitted\nconst inputHookNames = {\n buildEnd: 1,\n buildStart: 1,\n closeBundle: 1,\n closeWatcher: 1,\n load: 1,\n moduleParsed: 1,\n onLog: 1,\n options: 1,\n resolveDynamicImport: 1,\n resolveId: 1,\n shouldTransformCachedModule: 1,\n transform: 1,\n watchChange: 1\n};\nconst inputHooks = Object.keys(inputHookNames);\nclass PluginDriver {\n constructor(graph, options, userPlugins, pluginCache, basePluginDriver) {\n this.graph = graph;\n this.options = options;\n this.pluginCache = pluginCache;\n this.sortedPlugins = new Map();\n this.unfulfilledActions = new Set();\n this.fileEmitter = new FileEmitter(graph, options, basePluginDriver && basePluginDriver.fileEmitter);\n this.emitFile = this.fileEmitter.emitFile.bind(this.fileEmitter);\n this.getFileName = this.fileEmitter.getFileName.bind(this.fileEmitter);\n this.finaliseAssets = this.fileEmitter.finaliseAssets.bind(this.fileEmitter);\n this.setChunkInformation = this.fileEmitter.setChunkInformation.bind(this.fileEmitter);\n this.setOutputBundle = this.fileEmitter.setOutputBundle.bind(this.fileEmitter);\n this.plugins = [...(basePluginDriver ? basePluginDriver.plugins : []), ...userPlugins];\n const existingPluginNames = new Set();\n this.pluginContexts = new Map(this.plugins.map(plugin => [\n plugin,\n getPluginContext(plugin, pluginCache, graph, options, this.fileEmitter, existingPluginNames)\n ]));\n if (basePluginDriver) {\n for (const plugin of userPlugins) {\n for (const hook of inputHooks) {\n if (hook in plugin) {\n options.onLog(LOGLEVEL_WARN, logInputHookInOutputPlugin(plugin.name, hook));\n }\n }\n }\n }\n }\n createOutputPluginDriver(plugins) {\n return new PluginDriver(this.graph, this.options, plugins, this.pluginCache, this);\n }\n getUnfulfilledHookActions() {\n return this.unfulfilledActions;\n }\n // chains, first non-null result stops and returns\n hookFirst(hookName, parameters, replaceContext, skipped) {\n return this.hookFirstAndGetPlugin(hookName, parameters, replaceContext, skipped).then(result => result && result[0]);\n }\n // chains, first non-null result stops and returns result and last plugin\n async hookFirstAndGetPlugin(hookName, parameters, replaceContext, skipped) {\n for (const plugin of this.getSortedPlugins(hookName)) {\n if (skipped?.has(plugin))\n continue;\n const result = await this.runHook(hookName, parameters, plugin, replaceContext);\n if (result != null)\n return [result, plugin];\n }\n return null;\n }\n // chains synchronously, first non-null result stops and returns\n hookFirstSync(hookName, parameters, replaceContext) {\n for (const plugin of this.getSortedPlugins(hookName)) {\n const result = this.runHookSync(hookName, parameters, plugin, replaceContext);\n if (result != null)\n return result;\n }\n return null;\n }\n // parallel, ignores returns\n async hookParallel(hookName, parameters, replaceContext) {\n const parallelPromises = [];\n for (const plugin of this.getSortedPlugins(hookName)) {\n if (plugin[hookName].sequential) {\n await Promise.all(parallelPromises);\n parallelPromises.length = 0;\n await this.runHook(hookName, parameters, plugin, replaceContext);\n }\n else {\n parallelPromises.push(this.runHook(hookName, parameters, plugin, replaceContext));\n }\n }\n await Promise.all(parallelPromises);\n }\n // chains, reduces returned value, handling the reduced value as the first hook argument\n hookReduceArg0(hookName, [argument0, ...rest], reduce, replaceContext) {\n let promise = Promise.resolve(argument0);\n for (const plugin of this.getSortedPlugins(hookName)) {\n promise = promise.then(argument0 => this.runHook(hookName, [argument0, ...rest], plugin, replaceContext).then(result => reduce.call(this.pluginContexts.get(plugin), argument0, result, plugin)));\n }\n return promise;\n }\n // chains synchronously, reduces returned value, handling the reduced value as the first hook argument\n hookReduceArg0Sync(hookName, [argument0, ...rest], reduce, replaceContext) {\n for (const plugin of this.getSortedPlugins(hookName)) {\n const parameters = [argument0, ...rest];\n const result = this.runHookSync(hookName, parameters, plugin, replaceContext);\n argument0 = reduce.call(this.pluginContexts.get(plugin), argument0, result, plugin);\n }\n return argument0;\n }\n // chains, reduces returned value to type string, handling the reduced value separately. permits hooks as values.\n async hookReduceValue(hookName, initialValue, parameters, reducer) {\n const results = [];\n const parallelResults = [];\n for (const plugin of this.getSortedPlugins(hookName, validateAddonPluginHandler)) {\n if (plugin[hookName].sequential) {\n results.push(...(await Promise.all(parallelResults)));\n parallelResults.length = 0;\n results.push(await this.runHook(hookName, parameters, plugin));\n }\n else {\n parallelResults.push(this.runHook(hookName, parameters, plugin));\n }\n }\n results.push(...(await Promise.all(parallelResults)));\n return results.reduce(reducer, await initialValue);\n }\n // chains synchronously, reduces returned value to type T, handling the reduced value separately. permits hooks as values.\n hookReduceValueSync(hookName, initialValue, parameters, reduce, replaceContext) {\n let accumulator = initialValue;\n for (const plugin of this.getSortedPlugins(hookName)) {\n const result = this.runHookSync(hookName, parameters, plugin, replaceContext);\n accumulator = reduce.call(this.pluginContexts.get(plugin), accumulator, result, plugin);\n }\n return accumulator;\n }\n // chains, ignores returns\n hookSeq(hookName, parameters, replaceContext) {\n let promise = Promise.resolve();\n for (const plugin of this.getSortedPlugins(hookName)) {\n promise = promise.then(() => this.runHook(hookName, parameters, plugin, replaceContext));\n }\n return promise.then(noReturn);\n }\n getSortedPlugins(hookName, validateHandler) {\n return getOrCreate(this.sortedPlugins, hookName, () => getSortedValidatedPlugins(hookName, this.plugins, validateHandler));\n }\n // Implementation signature\n runHook(hookName, parameters, plugin, replaceContext) {\n // We always filter for plugins that support the hook before running it\n const hook = plugin[hookName];\n const handler = typeof hook === 'object' ? hook.handler : hook;\n let context = this.pluginContexts.get(plugin);\n if (replaceContext) {\n context = replaceContext(context, plugin);\n }\n let action = null;\n return Promise.resolve()\n .then(() => {\n if (typeof handler !== 'function') {\n return handler;\n }\n // eslint-disable-next-line @typescript-eslint/ban-types\n const hookResult = handler.apply(context, parameters);\n if (!hookResult?.then) {\n // short circuit for non-thenables and non-Promises\n return hookResult;\n }\n // Track pending hook actions to properly error out when\n // unfulfilled promises cause rollup to abruptly and confusingly\n // exit with a successful 0 return code but without producing any\n // output, errors or warnings.\n action = [plugin.name, hookName, parameters];\n this.unfulfilledActions.add(action);\n // Although it would be more elegant to just return hookResult here\n // and put the .then() handler just above the .catch() handler below,\n // doing so would subtly change the defacto async event dispatch order\n // which at least one test and some plugins in the wild may depend on.\n return Promise.resolve(hookResult).then(result => {\n // action was fulfilled\n this.unfulfilledActions.delete(action);\n return result;\n });\n })\n .catch(error_ => {\n if (action !== null) {\n // action considered to be fulfilled since error being handled\n this.unfulfilledActions.delete(action);\n }\n return error(logPluginError(error_, plugin.name, { hook: hookName }));\n });\n }\n /**\n * Run a sync plugin hook and return the result.\n * @param hookName Name of the plugin hook. Must be in `PluginHooks`.\n * @param args Arguments passed to the plugin hook.\n * @param plugin The acutal plugin\n * @param replaceContext When passed, the plugin context can be overridden.\n */\n runHookSync(hookName, parameters, plugin, replaceContext) {\n const hook = plugin[hookName];\n const handler = typeof hook === 'object' ? hook.handler : hook;\n let context = this.pluginContexts.get(plugin);\n if (replaceContext) {\n context = replaceContext(context, plugin);\n }\n try {\n // eslint-disable-next-line @typescript-eslint/ban-types\n return handler.apply(context, parameters);\n }\n catch (error_) {\n return error(logPluginError(error_, plugin.name, { hook: hookName }));\n }\n }\n}\nfunction getSortedValidatedPlugins(hookName, plugins, validateHandler = validateFunctionPluginHandler) {\n const pre = [];\n const normal = [];\n const post = [];\n for (const plugin of plugins) {\n const hook = plugin[hookName];\n if (hook) {\n if (typeof hook === 'object') {\n validateHandler(hook.handler, hookName, plugin);\n if (hook.order === 'pre') {\n pre.push(plugin);\n continue;\n }\n if (hook.order === 'post') {\n post.push(plugin);\n continue;\n }\n }\n else {\n validateHandler(hook, hookName, plugin);\n }\n normal.push(plugin);\n }\n }\n return [...pre, ...normal, ...post];\n}\nfunction validateFunctionPluginHandler(handler, hookName, plugin) {\n if (typeof handler !== 'function') {\n error(logInvalidFunctionPluginHook(hookName, plugin.name));\n }\n}\nfunction validateAddonPluginHandler(handler, hookName, plugin) {\n if (typeof handler !== 'string' && typeof handler !== 'function') {\n return error(logInvalidAddonPluginHook(hookName, plugin.name));\n }\n}\nfunction noReturn() { }\n\nclass Queue {\n constructor(maxParallel) {\n this.maxParallel = maxParallel;\n this.queue = [];\n this.workerCount = 0;\n }\n run(task) {\n return new Promise((resolve, reject) => {\n this.queue.push({ reject, resolve, task });\n this.work();\n });\n }\n async work() {\n if (this.workerCount >= this.maxParallel)\n return;\n this.workerCount++;\n let entry;\n while ((entry = this.queue.shift())) {\n const { reject, resolve, task } = entry;\n try {\n const result = await task();\n resolve(result);\n }\n catch (error) {\n reject(error);\n }\n }\n this.workerCount--;\n }\n}\n\nfunction normalizeEntryModules(entryModules) {\n if (Array.isArray(entryModules)) {\n return entryModules.map(id => ({\n fileName: null,\n id,\n implicitlyLoadedAfter: [],\n importer: undefined,\n name: null\n }));\n }\n return Object.entries(entryModules).map(([name, id]) => ({\n fileName: null,\n id,\n implicitlyLoadedAfter: [],\n importer: undefined,\n name\n }));\n}\nclass Graph {\n constructor(options, watcher) {\n this.options = options;\n this.astLru = flru(5);\n this.cachedModules = new Map();\n this.deoptimizationTracker = new PathTracker();\n this.entryModules = [];\n this.modulesById = new Map();\n this.needsTreeshakingPass = false;\n this.phase = BuildPhase.LOAD_AND_PARSE;\n this.scope = new GlobalScope();\n this.watchFiles = Object.create(null);\n this.watchMode = false;\n this.externalModules = [];\n this.implicitEntryModules = [];\n this.modules = [];\n this.getModuleInfo = (moduleId) => {\n const foundModule = this.modulesById.get(moduleId);\n if (!foundModule)\n return null;\n return foundModule.info;\n };\n if (options.cache !== false) {\n if (options.cache?.modules) {\n for (const module of options.cache.modules)\n this.cachedModules.set(module.id, module);\n }\n this.pluginCache = options.cache?.plugins || Object.create(null);\n // increment access counter\n for (const name in this.pluginCache) {\n const cache = this.pluginCache[name];\n for (const value of Object.values(cache))\n value[0]++;\n }\n }\n if (watcher) {\n this.watchMode = true;\n const handleChange = (...parameters) => this.pluginDriver.hookParallel('watchChange', parameters);\n const handleClose = () => this.pluginDriver.hookParallel('closeWatcher', []);\n watcher.onCurrentRun('change', handleChange);\n watcher.onCurrentRun('close', handleClose);\n }\n this.pluginDriver = new PluginDriver(this, options, options.plugins, this.pluginCache);\n this.moduleLoader = new ModuleLoader(this, this.modulesById, this.options, this.pluginDriver);\n this.fileOperationQueue = new Queue(options.maxParallelFileOps);\n this.pureFunctions = getPureFunctions(options);\n }\n async build() {\n timeStart('generate module graph', 2);\n await this.generateModuleGraph();\n timeEnd('generate module graph', 2);\n timeStart('sort and bind modules', 2);\n this.phase = BuildPhase.ANALYSE;\n this.sortModules();\n timeEnd('sort and bind modules', 2);\n timeStart('mark included statements', 2);\n this.includeStatements();\n timeEnd('mark included statements', 2);\n this.phase = BuildPhase.GENERATE;\n }\n getCache() {\n // handle plugin cache eviction\n for (const name in this.pluginCache) {\n const cache = this.pluginCache[name];\n let allDeleted = true;\n for (const [key, value] of Object.entries(cache)) {\n if (value[0] >= this.options.experimentalCacheExpiry)\n delete cache[key];\n else\n allDeleted = false;\n }\n if (allDeleted)\n delete this.pluginCache[name];\n }\n return {\n modules: this.modules.map(module => module.toJSON()),\n plugins: this.pluginCache\n };\n }\n async generateModuleGraph() {\n ({ entryModules: this.entryModules, implicitEntryModules: this.implicitEntryModules } =\n await this.moduleLoader.addEntryModules(normalizeEntryModules(this.options.input), true));\n if (this.entryModules.length === 0) {\n throw new Error('You must supply options.input to rollup');\n }\n for (const module of this.modulesById.values()) {\n module.cacheInfoGetters();\n if (module instanceof Module) {\n this.modules.push(module);\n }\n else {\n this.externalModules.push(module);\n }\n }\n }\n includeStatements() {\n const entryModules = [...this.entryModules, ...this.implicitEntryModules];\n for (const module of entryModules) {\n markModuleAndImpureDependenciesAsExecuted(module);\n }\n if (this.options.treeshake) {\n let treeshakingPass = 1;\n do {\n timeStart(`treeshaking pass ${treeshakingPass}`, 3);\n this.needsTreeshakingPass = false;\n for (const module of this.modules) {\n if (module.isExecuted) {\n if (module.info.moduleSideEffects === 'no-treeshake') {\n module.includeAllInBundle();\n }\n else {\n module.include();\n }\n }\n }\n if (treeshakingPass === 1) {\n // We only include exports after the first pass to avoid issues with\n // the TDZ detection logic\n for (const module of entryModules) {\n if (module.preserveSignature !== false) {\n module.includeAllExports(false);\n this.needsTreeshakingPass = true;\n }\n }\n }\n timeEnd(`treeshaking pass ${treeshakingPass++}`, 3);\n } while (this.needsTreeshakingPass);\n }\n else {\n for (const module of this.modules)\n module.includeAllInBundle();\n }\n for (const externalModule of this.externalModules)\n externalModule.warnUnusedImports();\n for (const module of this.implicitEntryModules) {\n for (const dependant of module.implicitlyLoadedAfter) {\n if (!(dependant.info.isEntry || dependant.isIncluded())) {\n error(logImplicitDependantIsNotIncluded(dependant));\n }\n }\n }\n }\n sortModules() {\n const { orderedModules, cyclePaths } = analyseModuleExecution(this.entryModules);\n for (const cyclePath of cyclePaths) {\n this.options.onLog(LOGLEVEL_WARN, logCircularDependency(cyclePath));\n }\n this.modules = orderedModules;\n for (const module of this.modules) {\n module.bindReferences();\n }\n this.warnForMissingExports();\n }\n warnForMissingExports() {\n for (const module of this.modules) {\n for (const importDescription of module.importDescriptions.values()) {\n if (importDescription.name !== '*' &&\n !importDescription.module.getVariableForExportName(importDescription.name)[0]) {\n module.log(LOGLEVEL_WARN, logMissingExport(importDescription.name, module.id, importDescription.module.id), importDescription.start);\n }\n }\n }\n }\n}\n\nfunction formatAction([pluginName, hookName, parameters]) {\n const action = `(${pluginName}) ${hookName}`;\n const s = JSON.stringify;\n switch (hookName) {\n case 'resolveId': {\n return `${action} ${s(parameters[0])} ${s(parameters[1])}`;\n }\n case 'load': {\n return `${action} ${s(parameters[0])}`;\n }\n case 'transform': {\n return `${action} ${s(parameters[1])}`;\n }\n case 'shouldTransformCachedModule': {\n return `${action} ${s(parameters[0].id)}`;\n }\n case 'moduleParsed': {\n return `${action} ${s(parameters[0].id)}`;\n }\n }\n return action;\n}\nlet handleBeforeExit = null;\nconst rejectByPluginDriver = new Map();\nasync function catchUnfinishedHookActions(pluginDriver, callback) {\n const emptyEventLoopPromise = new Promise((_, reject) => {\n rejectByPluginDriver.set(pluginDriver, reject);\n if (!handleBeforeExit) {\n // We only ever create a single event listener to avoid max listener and\n // other issues\n handleBeforeExit = () => {\n for (const [pluginDriver, reject] of rejectByPluginDriver) {\n const unfulfilledActions = pluginDriver.getUnfulfilledHookActions();\n reject(new Error(`Unexpected early exit. This happens when Promises returned by plugins cannot resolve. Unfinished hook action(s) on exit:\\n` +\n [...unfulfilledActions].map(formatAction).join('\\n')));\n }\n };\n process$1.once('beforeExit', handleBeforeExit);\n }\n });\n try {\n return await Promise.race([callback(), emptyEventLoopPromise]);\n }\n finally {\n rejectByPluginDriver.delete(pluginDriver);\n if (rejectByPluginDriver.size === 0) {\n process$1.off('beforeExit', handleBeforeExit);\n handleBeforeExit = null;\n }\n }\n}\n\nasync function initWasm() { }\n\nfunction getLogger(plugins, onLog, watchMode, logLevel) {\n plugins = getSortedValidatedPlugins('onLog', plugins);\n const minimalPriority = logLevelPriority[logLevel];\n const logger = (level, log, skipped = EMPTY_SET) => {\n augmentLogMessage(log);\n const logPriority = logLevelPriority[level];\n if (logPriority < minimalPriority) {\n return;\n }\n for (const plugin of plugins) {\n if (skipped.has(plugin))\n continue;\n const { onLog: pluginOnLog } = plugin;\n const getLogHandler = (level) => {\n if (logLevelPriority[level] < minimalPriority) {\n return doNothing;\n }\n return log => logger(level, normalizeLog(log), new Set(skipped).add(plugin));\n };\n const handler = 'handler' in pluginOnLog ? pluginOnLog.handler : pluginOnLog;\n if (handler.call({\n debug: getLogHandler(LOGLEVEL_DEBUG),\n error: (log) => error(normalizeLog(log)),\n info: getLogHandler(LOGLEVEL_INFO),\n meta: { rollupVersion: version, watchMode },\n warn: getLogHandler(LOGLEVEL_WARN)\n }, level, log) === false) {\n return;\n }\n }\n onLog(level, log);\n };\n return logger;\n}\n\nfunction ensureArray(items) {\n if (Array.isArray(items)) {\n return items.filter(Boolean);\n }\n if (items) {\n return [items];\n }\n return [];\n}\n\nasync function normalizeInputOptions(config, watchMode) {\n // These are options that may trigger special warnings or behaviour later\n // if the user did not select an explicit value\n const unsetOptions = new Set();\n const context = config.context ?? 'undefined';\n const plugins = await normalizePluginOption(config.plugins);\n const logLevel = config.logLevel || LOGLEVEL_INFO;\n const onLog = getLogger(plugins, getOnLog(config, logLevel), watchMode, logLevel);\n const strictDeprecations = config.strictDeprecations || false;\n const maxParallelFileOps = getMaxParallelFileOps(config);\n const options = {\n cache: getCache(config),\n context,\n experimentalCacheExpiry: config.experimentalCacheExpiry ?? 10,\n experimentalLogSideEffects: config.experimentalLogSideEffects || false,\n external: getIdMatcher(config.external),\n input: getInput(config),\n logLevel,\n makeAbsoluteExternalsRelative: config.makeAbsoluteExternalsRelative ?? 'ifRelativeSource',\n maxParallelFileOps,\n moduleContext: getModuleContext(config, context),\n onLog,\n perf: config.perf || false,\n plugins,\n preserveEntrySignatures: config.preserveEntrySignatures ?? 'exports-only',\n preserveSymlinks: config.preserveSymlinks || false,\n shimMissingExports: config.shimMissingExports || false,\n strictDeprecations,\n treeshake: getTreeshake(config)\n };\n warnUnknownOptions(config, [...Object.keys(options), 'onwarn', 'watch'], 'input options', onLog, /^(output)$/);\n return { options, unsetOptions };\n}\nconst getCache = (config) => config.cache === true // `true` is the default\n ? undefined\n : config.cache?.cache || config.cache;\nconst getIdMatcher = (option) => {\n if (option === true) {\n return () => true;\n }\n if (typeof option === 'function') {\n return (id, ...parameters) => (!id.startsWith('\\0') && option(id, ...parameters)) || false;\n }\n if (option) {\n const ids = new Set();\n const matchers = [];\n for (const value of ensureArray(option)) {\n if (value instanceof RegExp) {\n matchers.push(value);\n }\n else {\n ids.add(value);\n }\n }\n return (id, ..._arguments) => ids.has(id) || matchers.some(matcher => matcher.test(id));\n }\n return () => false;\n};\nconst getInput = (config) => {\n const configInput = config.input;\n return configInput == null ? [] : typeof configInput === 'string' ? [configInput] : configInput;\n};\nconst getMaxParallelFileOps = (config) => {\n const maxParallelFileOps = config.maxParallelFileOps;\n if (typeof maxParallelFileOps === 'number') {\n if (maxParallelFileOps <= 0)\n return Infinity;\n return maxParallelFileOps;\n }\n return 20;\n};\nconst getModuleContext = (config, context) => {\n const configModuleContext = config.moduleContext;\n if (typeof configModuleContext === 'function') {\n return id => configModuleContext(id) ?? context;\n }\n if (configModuleContext) {\n const contextByModuleId = Object.create(null);\n for (const [key, moduleContext] of Object.entries(configModuleContext)) {\n contextByModuleId[resolve$1(key)] = moduleContext;\n }\n return id => contextByModuleId[id] ?? context;\n }\n return () => context;\n};\nconst getTreeshake = (config) => {\n const configTreeshake = config.treeshake;\n if (configTreeshake === false) {\n return false;\n }\n const configWithPreset = getOptionWithPreset(config.treeshake, treeshakePresets, 'treeshake', URL_TREESHAKE, 'false, true, ');\n return {\n annotations: configWithPreset.annotations !== false,\n correctVarValueBeforeDeclaration: configWithPreset.correctVarValueBeforeDeclaration === true,\n manualPureFunctions: configWithPreset.manualPureFunctions ?? EMPTY_ARRAY,\n moduleSideEffects: getHasModuleSideEffects(configWithPreset.moduleSideEffects),\n propertyReadSideEffects: configWithPreset.propertyReadSideEffects === 'always'\n ? 'always'\n : configWithPreset.propertyReadSideEffects !== false,\n tryCatchDeoptimization: configWithPreset.tryCatchDeoptimization !== false,\n unknownGlobalSideEffects: configWithPreset.unknownGlobalSideEffects !== false\n };\n};\nconst getHasModuleSideEffects = (moduleSideEffectsOption) => {\n if (typeof moduleSideEffectsOption === 'boolean') {\n return () => moduleSideEffectsOption;\n }\n if (moduleSideEffectsOption === 'no-external') {\n return (_id, external) => !external;\n }\n if (typeof moduleSideEffectsOption === 'function') {\n return (id, external) => id.startsWith('\\0') ? true : moduleSideEffectsOption(id, external) !== false;\n }\n if (Array.isArray(moduleSideEffectsOption)) {\n const ids = new Set(moduleSideEffectsOption);\n return id => ids.has(id);\n }\n if (moduleSideEffectsOption) {\n error(logInvalidOption('treeshake.moduleSideEffects', URL_TREESHAKE_MODULESIDEEFFECTS, 'please use one of false, \"no-external\", a function or an array'));\n }\n return () => true;\n};\n\n// https://datatracker.ietf.org/doc/html/rfc2396\n// eslint-disable-next-line no-control-regex\nconst INVALID_CHAR_REGEX = /[\\u0000-\\u001F\"#$%&*+,:;<=>?[\\]^`{|}\\u007F]/g;\nconst DRIVE_LETTER_REGEX = /^[a-z]:/i;\nfunction sanitizeFileName(name) {\n const match = DRIVE_LETTER_REGEX.exec(name);\n const driveLetter = match ? match[0] : '';\n // A `:` is only allowed as part of a windows drive letter (ex: C:\\foo)\n // Otherwise, avoid them because they can refer to NTFS alternate data streams.\n return driveLetter + name.slice(driveLetter.length).replace(INVALID_CHAR_REGEX, '_');\n}\n\nasync function normalizeOutputOptions(config, inputOptions, unsetInputOptions) {\n // These are options that may trigger special warnings or behaviour later\n // if the user did not select an explicit value\n const unsetOptions = new Set(unsetInputOptions);\n const compact = config.compact || false;\n const format = getFormat(config);\n const inlineDynamicImports = getInlineDynamicImports(config, inputOptions);\n const preserveModules = getPreserveModules(config, inlineDynamicImports, inputOptions);\n const file = getFile(config, preserveModules, inputOptions);\n const generatedCode = getGeneratedCode(config);\n const externalImportAttributes = getExternalImportAttributes(config, inputOptions);\n const outputOptions = {\n amd: getAmd(config),\n assetFileNames: config.assetFileNames ?? 'assets/[name]-[hash][extname]',\n banner: getAddon(config, 'banner'),\n chunkFileNames: config.chunkFileNames ?? '[name]-[hash].js',\n compact,\n dir: getDir(config, file),\n dynamicImportInCjs: config.dynamicImportInCjs ?? true,\n entryFileNames: getEntryFileNames(config, unsetOptions),\n esModule: config.esModule ?? 'if-default-prop',\n experimentalMinChunkSize: config.experimentalMinChunkSize ?? 1,\n exports: getExports(config, unsetOptions),\n extend: config.extend || false,\n externalImportAssertions: externalImportAttributes,\n externalImportAttributes,\n externalLiveBindings: config.externalLiveBindings ?? true,\n file,\n footer: getAddon(config, 'footer'),\n format,\n freeze: config.freeze ?? true,\n generatedCode,\n globals: config.globals || {},\n hashCharacters: config.hashCharacters ?? 'base64',\n hoistTransitiveImports: config.hoistTransitiveImports ?? true,\n importAttributesKey: config.importAttributesKey ?? 'assert',\n indent: getIndent(config, compact),\n inlineDynamicImports,\n interop: getInterop(config),\n intro: getAddon(config, 'intro'),\n manualChunks: getManualChunks(config, inlineDynamicImports, preserveModules),\n minifyInternalExports: getMinifyInternalExports(config, format, compact),\n name: config.name,\n noConflict: config.noConflict || false,\n outro: getAddon(config, 'outro'),\n paths: config.paths || {},\n plugins: await normalizePluginOption(config.plugins),\n preserveModules,\n preserveModulesRoot: getPreserveModulesRoot(config),\n reexportProtoFromExternal: config.reexportProtoFromExternal ?? true,\n sanitizeFileName: typeof config.sanitizeFileName === 'function'\n ? config.sanitizeFileName\n : config.sanitizeFileName === false\n ? id => id\n : sanitizeFileName,\n sourcemap: config.sourcemap || false,\n sourcemapBaseUrl: getSourcemapBaseUrl(config),\n sourcemapExcludeSources: config.sourcemapExcludeSources || false,\n sourcemapFile: config.sourcemapFile,\n sourcemapFileNames: getSourcemapFileNames(config, unsetOptions),\n sourcemapIgnoreList: typeof config.sourcemapIgnoreList === 'function'\n ? config.sourcemapIgnoreList\n : config.sourcemapIgnoreList === false\n ? () => false\n : relativeSourcePath => relativeSourcePath.includes('node_modules'),\n sourcemapPathTransform: config.sourcemapPathTransform,\n strict: config.strict ?? true,\n systemNullSetters: config.systemNullSetters ?? true,\n validate: config.validate || false\n };\n warnUnknownOptions(config, Object.keys(outputOptions), 'output options', inputOptions.onLog);\n return { options: outputOptions, unsetOptions };\n}\nconst getFile = (config, preserveModules, inputOptions) => {\n const { file } = config;\n if (typeof file === 'string') {\n if (preserveModules) {\n return error(logInvalidOption('output.file', URL_OUTPUT_DIR, 'you must set \"output.dir\" instead of \"output.file\" when using the \"output.preserveModules\" option'));\n }\n if (!Array.isArray(inputOptions.input))\n return error(logInvalidOption('output.file', URL_OUTPUT_DIR, 'you must set \"output.dir\" instead of \"output.file\" when providing named inputs'));\n }\n return file;\n};\nconst getFormat = (config) => {\n const configFormat = config.format;\n switch (configFormat) {\n case undefined:\n case 'es':\n case 'esm':\n case 'module': {\n return 'es';\n }\n case 'cjs':\n case 'commonjs': {\n return 'cjs';\n }\n case 'system':\n case 'systemjs': {\n return 'system';\n }\n case 'amd':\n case 'iife':\n case 'umd': {\n return configFormat;\n }\n default: {\n return error(logInvalidOption('output.format', URL_OUTPUT_FORMAT, `Valid values are \"amd\", \"cjs\", \"system\", \"es\", \"iife\" or \"umd\"`, configFormat));\n }\n }\n};\nconst getInlineDynamicImports = (config, inputOptions) => {\n const inlineDynamicImports = config.inlineDynamicImports || false;\n const { input } = inputOptions;\n if (inlineDynamicImports && (Array.isArray(input) ? input : Object.keys(input)).length > 1) {\n return error(logInvalidOption('output.inlineDynamicImports', URL_OUTPUT_INLINEDYNAMICIMPORTS, 'multiple inputs are not supported when \"output.inlineDynamicImports\" is true'));\n }\n return inlineDynamicImports;\n};\nconst getPreserveModules = (config, inlineDynamicImports, inputOptions) => {\n const preserveModules = config.preserveModules || false;\n if (preserveModules) {\n if (inlineDynamicImports) {\n return error(logInvalidOption('output.inlineDynamicImports', URL_OUTPUT_INLINEDYNAMICIMPORTS, `this option is not supported for \"output.preserveModules\"`));\n }\n if (inputOptions.preserveEntrySignatures === false) {\n return error(logInvalidOption('preserveEntrySignatures', URL_PRESERVEENTRYSIGNATURES, 'setting this option to false is not supported for \"output.preserveModules\"'));\n }\n }\n return preserveModules;\n};\nconst getPreserveModulesRoot = (config) => {\n const { preserveModulesRoot } = config;\n if (preserveModulesRoot === null || preserveModulesRoot === undefined) {\n return undefined;\n }\n return resolve$1(preserveModulesRoot);\n};\nconst getAmd = (config) => {\n const mergedOption = {\n autoId: false,\n basePath: '',\n define: 'define',\n forceJsExtensionForImports: false,\n ...config.amd\n };\n if ((mergedOption.autoId || mergedOption.basePath) && mergedOption.id) {\n return error(logInvalidOption('output.amd.id', URL_OUTPUT_AMD_ID, 'this option cannot be used together with \"output.amd.autoId\"/\"output.amd.basePath\"'));\n }\n if (mergedOption.basePath && !mergedOption.autoId) {\n return error(logInvalidOption('output.amd.basePath', URL_OUTPUT_AMD_BASEPATH, 'this option only works with \"output.amd.autoId\"'));\n }\n return mergedOption.autoId\n ? {\n autoId: true,\n basePath: mergedOption.basePath,\n define: mergedOption.define,\n forceJsExtensionForImports: mergedOption.forceJsExtensionForImports\n }\n : {\n autoId: false,\n define: mergedOption.define,\n forceJsExtensionForImports: mergedOption.forceJsExtensionForImports,\n id: mergedOption.id\n };\n};\nconst getAddon = (config, name) => {\n const configAddon = config[name];\n if (typeof configAddon === 'function') {\n return configAddon;\n }\n return () => configAddon || '';\n};\n// eslint-disable-next-line unicorn/prevent-abbreviations\nconst getDir = (config, file) => {\n const { dir } = config;\n if (typeof dir === 'string' && typeof file === 'string') {\n return error(logInvalidOption('output.dir', URL_OUTPUT_DIR, 'you must set either \"output.file\" for a single-file build or \"output.dir\" when generating multiple chunks'));\n }\n return dir;\n};\nconst getEntryFileNames = (config, unsetOptions) => {\n const configEntryFileNames = config.entryFileNames;\n if (configEntryFileNames == null) {\n unsetOptions.add('entryFileNames');\n }\n return configEntryFileNames ?? '[name].js';\n};\nfunction getExports(config, unsetOptions) {\n const configExports = config.exports;\n if (configExports == null) {\n unsetOptions.add('exports');\n }\n else if (!['default', 'named', 'none', 'auto'].includes(configExports)) {\n return error(logInvalidExportOptionValue(configExports));\n }\n return configExports || 'auto';\n}\nconst getExternalImportAttributes = (config, inputOptions) => {\n if (config.externalImportAssertions != undefined) {\n warnDeprecation(`The \"output.externalImportAssertions\" option is deprecated. Use the \"output.externalImportAttributes\" option instead.`, URL_OUTPUT_EXTERNALIMPORTATTRIBUTES, true, inputOptions);\n }\n return config.externalImportAttributes ?? config.externalImportAssertions ?? true;\n};\nconst getGeneratedCode = (config) => {\n const configWithPreset = getOptionWithPreset(config.generatedCode, generatedCodePresets, 'output.generatedCode', URL_OUTPUT_GENERATEDCODE, '');\n return {\n arrowFunctions: configWithPreset.arrowFunctions === true,\n constBindings: configWithPreset.constBindings === true,\n objectShorthand: configWithPreset.objectShorthand === true,\n reservedNamesAsProps: configWithPreset.reservedNamesAsProps !== false,\n symbols: configWithPreset.symbols === true\n };\n};\nconst getIndent = (config, compact) => {\n if (compact) {\n return '';\n }\n const configIndent = config.indent;\n return configIndent === false ? '' : (configIndent ?? true);\n};\nconst ALLOWED_INTEROP_TYPES = new Set([\n 'compat',\n 'auto',\n 'esModule',\n 'default',\n 'defaultOnly'\n]);\nconst getInterop = (config) => {\n const configInterop = config.interop;\n if (typeof configInterop === 'function') {\n const interopPerId = Object.create(null);\n let defaultInterop = null;\n return id => id === null\n ? defaultInterop || validateInterop((defaultInterop = configInterop(id)))\n : id in interopPerId\n ? interopPerId[id]\n : validateInterop((interopPerId[id] = configInterop(id)));\n }\n return configInterop === undefined ? () => 'default' : () => validateInterop(configInterop);\n};\nconst validateInterop = (interop) => {\n if (!ALLOWED_INTEROP_TYPES.has(interop)) {\n return error(logInvalidOption('output.interop', URL_OUTPUT_INTEROP, \n // eslint-disable-next-line unicorn/prefer-spread\n `use one of ${Array.from(ALLOWED_INTEROP_TYPES, value => JSON.stringify(value)).join(', ')}`, interop));\n }\n return interop;\n};\nconst getManualChunks = (config, inlineDynamicImports, preserveModules) => {\n const configManualChunks = config.manualChunks;\n if (configManualChunks) {\n if (inlineDynamicImports) {\n return error(logInvalidOption('output.manualChunks', URL_OUTPUT_MANUALCHUNKS, 'this option is not supported for \"output.inlineDynamicImports\"'));\n }\n if (preserveModules) {\n return error(logInvalidOption('output.manualChunks', URL_OUTPUT_MANUALCHUNKS, 'this option is not supported for \"output.preserveModules\"'));\n }\n }\n return configManualChunks || {};\n};\nconst getMinifyInternalExports = (config, format, compact) => config.minifyInternalExports ?? (compact || format === 'es' || format === 'system');\nconst getSourcemapFileNames = (config, unsetOptions) => {\n const configSourcemapFileNames = config.sourcemapFileNames;\n if (configSourcemapFileNames == null) {\n unsetOptions.add('sourcemapFileNames');\n }\n return configSourcemapFileNames;\n};\nconst getSourcemapBaseUrl = (config) => {\n const { sourcemapBaseUrl } = config;\n if (sourcemapBaseUrl) {\n if (isValidUrl(sourcemapBaseUrl)) {\n return addTrailingSlashIfMissed(sourcemapBaseUrl);\n }\n return error(logInvalidOption('output.sourcemapBaseUrl', URL_OUTPUT_SOURCEMAPBASEURL, `must be a valid URL, received ${JSON.stringify(sourcemapBaseUrl)}`));\n }\n};\n\nfunction rollup(rawInputOptions) {\n return rollupInternal(rawInputOptions, null);\n}\nasync function rollupInternal(rawInputOptions, watcher) {\n const { options: inputOptions, unsetOptions: unsetInputOptions } = await getInputOptions(rawInputOptions, watcher !== null);\n initialiseTimers(inputOptions);\n await initWasm();\n const graph = new Graph(inputOptions, watcher);\n // remove the cache object from the memory after graph creation (cache is not used anymore)\n const useCache = rawInputOptions.cache !== false;\n if (rawInputOptions.cache) {\n inputOptions.cache = undefined;\n rawInputOptions.cache = undefined;\n }\n timeStart('BUILD', 1);\n await catchUnfinishedHookActions(graph.pluginDriver, async () => {\n try {\n timeStart('initialize', 2);\n await graph.pluginDriver.hookParallel('buildStart', [inputOptions]);\n timeEnd('initialize', 2);\n await graph.build();\n }\n catch (error_) {\n const watchFiles = Object.keys(graph.watchFiles);\n if (watchFiles.length > 0) {\n error_.watchFiles = watchFiles;\n }\n await graph.pluginDriver.hookParallel('buildEnd', [error_]);\n await graph.pluginDriver.hookParallel('closeBundle', []);\n throw error_;\n }\n await graph.pluginDriver.hookParallel('buildEnd', []);\n });\n timeEnd('BUILD', 1);\n const result = {\n cache: useCache ? graph.getCache() : undefined,\n async close() {\n if (result.closed)\n return;\n result.closed = true;\n await graph.pluginDriver.hookParallel('closeBundle', []);\n },\n closed: false,\n async generate(rawOutputOptions) {\n if (result.closed)\n return error(logAlreadyClosed());\n return handleGenerateWrite(false, inputOptions, unsetInputOptions, rawOutputOptions, graph);\n },\n get watchFiles() {\n return Object.keys(graph.watchFiles);\n },\n async write(rawOutputOptions) {\n if (result.closed)\n return error(logAlreadyClosed());\n return handleGenerateWrite(true, inputOptions, unsetInputOptions, rawOutputOptions, graph);\n }\n };\n if (inputOptions.perf)\n result.getTimings = getTimings;\n return result;\n}\nasync function getInputOptions(initialInputOptions, watchMode) {\n if (!initialInputOptions) {\n throw new Error('You must supply an options object to rollup');\n }\n const processedInputOptions = await getProcessedInputOptions(initialInputOptions, watchMode);\n const { options, unsetOptions } = await normalizeInputOptions(processedInputOptions, watchMode);\n normalizePlugins(options.plugins, ANONYMOUS_PLUGIN_PREFIX);\n return { options, unsetOptions };\n}\nasync function getProcessedInputOptions(inputOptions, watchMode) {\n const plugins = getSortedValidatedPlugins('options', await normalizePluginOption(inputOptions.plugins));\n const logLevel = inputOptions.logLevel || LOGLEVEL_INFO;\n const logger = getLogger(plugins, getOnLog(inputOptions, logLevel), watchMode, logLevel);\n for (const plugin of plugins) {\n const { name, options } = plugin;\n const handler = 'handler' in options ? options.handler : options;\n const processedOptions = await handler.call({\n debug: getLogHandler(LOGLEVEL_DEBUG, 'PLUGIN_LOG', logger, name, logLevel),\n error: (error_) => error(logPluginError(normalizeLog(error_), name, { hook: 'onLog' })),\n info: getLogHandler(LOGLEVEL_INFO, 'PLUGIN_LOG', logger, name, logLevel),\n meta: { rollupVersion: version, watchMode },\n warn: getLogHandler(LOGLEVEL_WARN, 'PLUGIN_WARNING', logger, name, logLevel)\n }, inputOptions);\n if (processedOptions) {\n inputOptions = processedOptions;\n }\n }\n return inputOptions;\n}\nfunction normalizePlugins(plugins, anonymousPrefix) {\n for (const [index, plugin] of plugins.entries()) {\n if (!plugin.name) {\n plugin.name = `${anonymousPrefix}${index + 1}`;\n }\n }\n}\nasync function handleGenerateWrite(isWrite, inputOptions, unsetInputOptions, rawOutputOptions, graph) {\n const { options: outputOptions, outputPluginDriver, unsetOptions } = await getOutputOptionsAndPluginDriver(rawOutputOptions, graph.pluginDriver, inputOptions, unsetInputOptions);\n return catchUnfinishedHookActions(outputPluginDriver, async () => {\n const bundle = new Bundle(outputOptions, unsetOptions, inputOptions, outputPluginDriver, graph);\n const generated = await bundle.generate(isWrite);\n if (isWrite) {\n timeStart('WRITE', 1);\n if (!outputOptions.dir && !outputOptions.file) {\n return error(logMissingFileOrDirOption());\n }\n await Promise.all(Object.values(generated).map(chunk => graph.fileOperationQueue.run(() => writeOutputFile(chunk, outputOptions))));\n await outputPluginDriver.hookParallel('writeBundle', [outputOptions, generated]);\n timeEnd('WRITE', 1);\n }\n return createOutput(generated);\n });\n}\nasync function getOutputOptionsAndPluginDriver(rawOutputOptions, inputPluginDriver, inputOptions, unsetInputOptions) {\n if (!rawOutputOptions) {\n throw new Error('You must supply an options object');\n }\n const rawPlugins = await normalizePluginOption(rawOutputOptions.plugins);\n normalizePlugins(rawPlugins, ANONYMOUS_OUTPUT_PLUGIN_PREFIX);\n const outputPluginDriver = inputPluginDriver.createOutputPluginDriver(rawPlugins);\n return {\n ...(await getOutputOptions(inputOptions, unsetInputOptions, rawOutputOptions, outputPluginDriver)),\n outputPluginDriver\n };\n}\nfunction getOutputOptions(inputOptions, unsetInputOptions, rawOutputOptions, outputPluginDriver) {\n return normalizeOutputOptions(outputPluginDriver.hookReduceArg0Sync('outputOptions', [rawOutputOptions], (outputOptions, result) => result || outputOptions, pluginContext => {\n const emitError = () => pluginContext.error(logCannotEmitFromOptionsHook());\n return {\n ...pluginContext,\n emitFile: emitError,\n setAssetSource: emitError\n };\n }), inputOptions, unsetInputOptions);\n}\nfunction createOutput(outputBundle) {\n return {\n output: Object.values(outputBundle).filter(outputFile => Object.keys(outputFile).length > 0).sort((outputFileA, outputFileB) => getSortingFileType(outputFileA) - getSortingFileType(outputFileB))\n };\n}\nvar SortingFileType;\n(function (SortingFileType) {\n SortingFileType[SortingFileType[\"ENTRY_CHUNK\"] = 0] = \"ENTRY_CHUNK\";\n SortingFileType[SortingFileType[\"SECONDARY_CHUNK\"] = 1] = \"SECONDARY_CHUNK\";\n SortingFileType[SortingFileType[\"ASSET\"] = 2] = \"ASSET\";\n})(SortingFileType || (SortingFileType = {}));\nfunction getSortingFileType(file) {\n if (file.type === 'asset') {\n return SortingFileType.ASSET;\n }\n if (file.isEntry) {\n return SortingFileType.ENTRY_CHUNK;\n }\n return SortingFileType.SECONDARY_CHUNK;\n}\nasync function writeOutputFile(outputFile, outputOptions) {\n const fileName = resolve$1(outputOptions.dir || dirname(outputOptions.file), outputFile.fileName);\n // 'recursive: true' does not throw if the folder structure, or parts of it, already exist\n await mkdir(dirname(fileName), { recursive: true });\n return writeFile(fileName, outputFile.type === 'asset' ? outputFile.source : outputFile.code);\n}\n/**\n * Auxiliary function for defining rollup configuration\n * Mainly to facilitate IDE code prompts, after all, export default does not\n * prompt, even if you add @type annotations, it is not accurate\n * @param options\n */\nfunction defineConfig(options) {\n return options;\n}\n\nconst {\n env = {},\n argv = [],\n platform = \"\",\n} = typeof process === \"undefined\" ? {} : process;\n\nconst isDisabled = \"NO_COLOR\" in env || argv.includes(\"--no-color\");\nconst isForced = \"FORCE_COLOR\" in env || argv.includes(\"--color\");\nconst isWindows = platform === \"win32\";\nconst isDumbTerminal = env.TERM === \"dumb\";\n\nconst isCompatibleTerminal =\n tty && tty.isatty && tty.isatty(1) && env.TERM && !isDumbTerminal;\n\nconst isCI =\n \"CI\" in env &&\n (\"GITHUB_ACTIONS\" in env || \"GITLAB_CI\" in env || \"CIRCLECI\" in env);\n\nconst isColorSupported =\n !isDisabled &&\n (isForced || (isWindows && !isDumbTerminal) || isCompatibleTerminal || isCI);\n\nconst replaceClose = (\n index,\n string,\n close,\n replace,\n head = string.substring(0, index) + replace,\n tail = string.substring(index + close.length),\n next = tail.indexOf(close)\n) => head + (next < 0 ? tail : replaceClose(next, tail, close, replace));\n\nconst clearBleed = (index, string, open, close, replace) =>\n index < 0\n ? open + string + close\n : open + replaceClose(index, string, close, replace) + close;\n\nconst filterEmpty =\n (open, close, replace = open, at = open.length + 1) =>\n (string) =>\n string || !(string === \"\" || string === undefined)\n ? clearBleed(\n (\"\" + string).indexOf(close, at),\n string,\n open,\n close,\n replace\n )\n : \"\";\n\nconst init = (open, close, replace) =>\n filterEmpty(`\\x1b[${open}m`, `\\x1b[${close}m`, replace);\n\nconst colors = {\n reset: init(0, 0),\n bold: init(1, 22, \"\\x1b[22m\\x1b[1m\"),\n dim: init(2, 22, \"\\x1b[22m\\x1b[2m\"),\n italic: init(3, 23),\n underline: init(4, 24),\n inverse: init(7, 27),\n hidden: init(8, 28),\n strikethrough: init(9, 29),\n black: init(30, 39),\n red: init(31, 39),\n green: init(32, 39),\n yellow: init(33, 39),\n blue: init(34, 39),\n magenta: init(35, 39),\n cyan: init(36, 39),\n white: init(37, 39),\n gray: init(90, 39),\n bgBlack: init(40, 49),\n bgRed: init(41, 49),\n bgGreen: init(42, 49),\n bgYellow: init(43, 49),\n bgBlue: init(44, 49),\n bgMagenta: init(45, 49),\n bgCyan: init(46, 49),\n bgWhite: init(47, 49),\n blackBright: init(90, 39),\n redBright: init(91, 39),\n greenBright: init(92, 39),\n yellowBright: init(93, 39),\n blueBright: init(94, 39),\n magentaBright: init(95, 39),\n cyanBright: init(96, 39),\n whiteBright: init(97, 39),\n bgBlackBright: init(100, 49),\n bgRedBright: init(101, 49),\n bgGreenBright: init(102, 49),\n bgYellowBright: init(103, 49),\n bgBlueBright: init(104, 49),\n bgMagentaBright: init(105, 49),\n bgCyanBright: init(106, 49),\n bgWhiteBright: init(107, 49),\n};\n\nconst createColors = ({ useColor = isColorSupported } = {}) =>\n useColor\n ? colors\n : Object.keys(colors).reduce(\n (colors, key) => ({ ...colors, [key]: String }),\n {}\n );\n\ncreateColors();\n\n// @see https://no-color.org\n// @see https://www.npmjs.com/package/chalk\nconst { bold, cyan, dim, gray, green, red, underline, yellow } = createColors({\n useColor: env$1.FORCE_COLOR !== '0' && !env$1.NO_COLOR\n});\n\n// log to stderr to keep `rollup main.js > bundle.js` from breaking\nconst stderr = (...parameters) => process$1.stderr.write(`${parameters.join('')}\\n`);\nfunction handleError(error, recover = false) {\n const name = error.name || error.cause?.name;\n const nameSection = name ? `${name}: ` : '';\n const pluginSection = error.plugin ? `(plugin ${error.plugin}) ` : '';\n const message = `${pluginSection}${nameSection}${error.message}`;\n const outputLines = [bold(red(`[!] ${bold(message.toString())}`))];\n if (error.url) {\n outputLines.push(cyan(error.url));\n }\n if (error.loc) {\n outputLines.push(`${relativeId((error.loc.file || error.id))} (${error.loc.line}:${error.loc.column})`);\n }\n else if (error.id) {\n outputLines.push(relativeId(error.id));\n }\n if (error.frame) {\n outputLines.push(dim(error.frame));\n }\n if (error.stack) {\n outputLines.push(dim(error.stack?.replace(`${nameSection}${error.message}\\n`, '')));\n }\n // ES2022: Error.prototype.cause is optional\n if (error.cause) {\n let cause = error.cause;\n const causeErrorLines = [];\n let indent = '';\n while (cause) {\n indent += ' ';\n const message = cause.stack || cause;\n causeErrorLines.push(...`[cause] ${message}`.split('\\n').map(line => indent + line));\n cause = cause.cause;\n }\n outputLines.push(dim(causeErrorLines.join('\\n')));\n }\n outputLines.push('', '');\n stderr(outputLines.join('\\n'));\n if (!recover)\n process$1.exit(1);\n}\n\nconst commandAliases = {\n c: 'config',\n d: 'dir',\n e: 'external',\n f: 'format',\n g: 'globals',\n h: 'help',\n i: 'input',\n m: 'sourcemap',\n n: 'name',\n o: 'file',\n p: 'plugin',\n v: 'version',\n w: 'watch'\n};\nconst EMPTY_COMMAND_OPTIONS = { external: [], globals: undefined };\nasync function mergeOptions(config, watchMode, rawCommandOptions = EMPTY_COMMAND_OPTIONS, printLog) {\n const command = getCommandOptions(rawCommandOptions);\n const plugins = await normalizePluginOption(config.plugins);\n const logLevel = config.logLevel || LOGLEVEL_INFO;\n const onLog = getOnLog(config, logLevel, printLog);\n const log = getLogger(plugins, onLog, watchMode, logLevel);\n const inputOptions = mergeInputOptions(config, command, plugins, log, onLog);\n if (command.output) {\n Object.assign(command, command.output);\n }\n const outputOptionsArray = ensureArray(config.output);\n if (outputOptionsArray.length === 0)\n outputOptionsArray.push({});\n const outputOptions = await Promise.all(outputOptionsArray.map(singleOutputOptions => mergeOutputOptions(singleOutputOptions, command, log)));\n warnUnknownOptions(command, [\n ...Object.keys(inputOptions),\n ...Object.keys(outputOptions[0]).filter(option => option !== 'sourcemapIgnoreList' && option !== 'sourcemapPathTransform'),\n ...Object.keys(commandAliases),\n 'bundleConfigAsCjs',\n 'config',\n 'configPlugin',\n 'environment',\n 'failAfterWarnings',\n 'filterLogs',\n 'forceExit',\n 'plugin',\n 'silent',\n 'stdin',\n 'waitForBundleInput'\n ], 'CLI flags', log, /^_$|output$|config/);\n inputOptions.output = outputOptions;\n return inputOptions;\n}\nfunction getCommandOptions(rawCommandOptions) {\n const external = rawCommandOptions.external && typeof rawCommandOptions.external === 'string'\n ? rawCommandOptions.external.split(',')\n : [];\n return {\n ...rawCommandOptions,\n external,\n globals: typeof rawCommandOptions.globals === 'string'\n ? rawCommandOptions.globals.split(',').reduce((globals, globalDefinition) => {\n const [id, variableName] = globalDefinition.split(':');\n globals[id] = variableName;\n if (!external.includes(id)) {\n external.push(id);\n }\n return globals;\n }, Object.create(null))\n : undefined\n };\n}\nfunction mergeInputOptions(config, overrides, plugins, log, onLog) {\n const getOption = (name) => overrides[name] ?? config[name];\n const inputOptions = {\n cache: config.cache,\n context: getOption('context'),\n experimentalCacheExpiry: getOption('experimentalCacheExpiry'),\n experimentalLogSideEffects: getOption('experimentalLogSideEffects'),\n external: getExternal(config, overrides),\n input: getOption('input') || [],\n logLevel: getOption('logLevel'),\n makeAbsoluteExternalsRelative: getOption('makeAbsoluteExternalsRelative'),\n maxParallelFileOps: getOption('maxParallelFileOps'),\n moduleContext: getOption('moduleContext'),\n onLog,\n onwarn: undefined,\n perf: getOption('perf'),\n plugins,\n preserveEntrySignatures: getOption('preserveEntrySignatures'),\n preserveSymlinks: getOption('preserveSymlinks'),\n shimMissingExports: getOption('shimMissingExports'),\n strictDeprecations: getOption('strictDeprecations'),\n treeshake: getObjectOption(config, overrides, 'treeshake', objectifyOptionWithPresets(treeshakePresets, 'treeshake', URL_TREESHAKE, 'false, true, ')),\n watch: getWatch(config, overrides)\n };\n warnUnknownOptions(config, Object.keys(inputOptions), 'input options', log, /^output$/);\n return inputOptions;\n}\nconst getExternal = (config, overrides) => {\n const configExternal = config.external;\n return typeof configExternal === 'function'\n ? (source, importer, isResolved) => configExternal(source, importer, isResolved) || overrides.external.includes(source)\n : [...ensureArray(configExternal), ...overrides.external];\n};\nconst getObjectOption = (config, overrides, name, objectifyValue = objectifyOption) => {\n const commandOption = normalizeObjectOptionValue(overrides[name], objectifyValue);\n const configOption = normalizeObjectOptionValue(config[name], objectifyValue);\n if (commandOption !== undefined) {\n return commandOption && { ...configOption, ...commandOption };\n }\n return configOption;\n};\nconst getWatch = (config, overrides) => config.watch !== false && getObjectOption(config, overrides, 'watch');\nconst normalizeObjectOptionValue = (optionValue, objectifyValue) => {\n if (!optionValue) {\n return optionValue;\n }\n if (Array.isArray(optionValue)) {\n return optionValue.reduce((result, value) => value && result && { ...result, ...objectifyValue(value) }, {});\n }\n return objectifyValue(optionValue);\n};\nasync function mergeOutputOptions(config, overrides, log) {\n const getOption = (name) => overrides[name] ?? config[name];\n const outputOptions = {\n amd: getObjectOption(config, overrides, 'amd'),\n assetFileNames: getOption('assetFileNames'),\n banner: getOption('banner'),\n chunkFileNames: getOption('chunkFileNames'),\n compact: getOption('compact'),\n dir: getOption('dir'),\n dynamicImportInCjs: getOption('dynamicImportInCjs'),\n entryFileNames: getOption('entryFileNames'),\n esModule: getOption('esModule'),\n experimentalMinChunkSize: getOption('experimentalMinChunkSize'),\n exports: getOption('exports'),\n extend: getOption('extend'),\n externalImportAssertions: getOption('externalImportAssertions'),\n externalImportAttributes: getOption('externalImportAttributes'),\n externalLiveBindings: getOption('externalLiveBindings'),\n file: getOption('file'),\n footer: getOption('footer'),\n format: getOption('format'),\n freeze: getOption('freeze'),\n generatedCode: getObjectOption(config, overrides, 'generatedCode', objectifyOptionWithPresets(generatedCodePresets, 'output.generatedCode', URL_OUTPUT_GENERATEDCODE, '')),\n globals: getOption('globals'),\n hashCharacters: getOption('hashCharacters'),\n hoistTransitiveImports: getOption('hoistTransitiveImports'),\n importAttributesKey: getOption('importAttributesKey'),\n indent: getOption('indent'),\n inlineDynamicImports: getOption('inlineDynamicImports'),\n interop: getOption('interop'),\n intro: getOption('intro'),\n manualChunks: getOption('manualChunks'),\n minifyInternalExports: getOption('minifyInternalExports'),\n name: getOption('name'),\n noConflict: getOption('noConflict'),\n outro: getOption('outro'),\n paths: getOption('paths'),\n plugins: await normalizePluginOption(config.plugins),\n preserveModules: getOption('preserveModules'),\n preserveModulesRoot: getOption('preserveModulesRoot'),\n reexportProtoFromExternal: getOption('reexportProtoFromExternal'),\n sanitizeFileName: getOption('sanitizeFileName'),\n sourcemap: getOption('sourcemap'),\n sourcemapBaseUrl: getOption('sourcemapBaseUrl'),\n sourcemapExcludeSources: getOption('sourcemapExcludeSources'),\n sourcemapFile: getOption('sourcemapFile'),\n sourcemapFileNames: getOption('sourcemapFileNames'),\n sourcemapIgnoreList: getOption('sourcemapIgnoreList'),\n sourcemapPathTransform: getOption('sourcemapPathTransform'),\n strict: getOption('strict'),\n systemNullSetters: getOption('systemNullSetters'),\n validate: getOption('validate')\n };\n warnUnknownOptions(config, Object.keys(outputOptions), 'output options', log);\n return outputOptions;\n}\n\nclass WatchEmitter {\n constructor() {\n this.currentHandlers = Object.create(null);\n this.persistentHandlers = Object.create(null);\n }\n // Will be overwritten by Rollup\n async close() { }\n emit(event, ...parameters) {\n return Promise.all([...this.getCurrentHandlers(event), ...this.getPersistentHandlers(event)].map(handler => handler(...parameters)));\n }\n off(event, listener) {\n const listeners = this.persistentHandlers[event];\n if (listeners) {\n // A hack stolen from \"mitt\": \">>> 0\" does not change numbers >= 0, but -1\n // (which would remove the last array element if used unchanged) is turned\n // into max_int, which is outside the array and does not change anything.\n listeners.splice(listeners.indexOf(listener) >>> 0, 1);\n }\n return this;\n }\n on(event, listener) {\n this.getPersistentHandlers(event).push(listener);\n return this;\n }\n onCurrentRun(event, listener) {\n this.getCurrentHandlers(event).push(listener);\n return this;\n }\n once(event, listener) {\n const selfRemovingListener = (...parameters) => {\n this.off(event, selfRemovingListener);\n return listener(...parameters);\n };\n this.on(event, selfRemovingListener);\n return this;\n }\n removeAllListeners() {\n this.removeListenersForCurrentRun();\n this.persistentHandlers = Object.create(null);\n return this;\n }\n removeListenersForCurrentRun() {\n this.currentHandlers = Object.create(null);\n return this;\n }\n getCurrentHandlers(event) {\n return this.currentHandlers[event] || (this.currentHandlers[event] = []);\n }\n getPersistentHandlers(event) {\n return this.persistentHandlers[event] || (this.persistentHandlers[event] = []);\n }\n}\n\nlet fsEvents;\nlet fsEventsImportError;\nasync function loadFsEvents() {\n try {\n ({ default: fsEvents } = await import('fsevents'));\n }\n catch (error) {\n fsEventsImportError = error;\n }\n}\n// A call to this function will be injected into the chokidar code\nfunction getFsEvents() {\n if (fsEventsImportError)\n throw fsEventsImportError;\n return fsEvents;\n}\n\nconst fseventsImporter = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n getFsEvents,\n loadFsEvents\n}, Symbol.toStringTag, { value: 'Module' });\n\nfunction watch(configs) {\n const emitter = new WatchEmitter();\n watchInternal(configs, emitter).catch(error => {\n handleError(error);\n });\n return emitter;\n}\nasync function watchInternal(configs, emitter) {\n const optionsList = await Promise.all(ensureArray(configs).map(config => mergeOptions(config, true)));\n const watchOptionsList = optionsList.filter(config => config.watch !== false);\n if (watchOptionsList.length === 0) {\n return error(logInvalidOption('watch', URL_WATCH, 'there must be at least one config where \"watch\" is not set to \"false\"'));\n }\n await loadFsEvents();\n const { Watcher } = await import('./watch.js');\n new Watcher(watchOptionsList, emitter);\n}\n\nexport { createFilter, defineConfig, fseventsImporter, getAugmentedNamespace, picomatch, rollup, rollupInternal, version, watch };\n"], - "mappings": "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ACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ;AACA,IAAM,qBAAqB;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAtB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAD;AAAA,EACA;AAAA,EACAI;AAAA,EACAC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAS;AAAA,EACA;AAAA,EACA;AAAA,EACAT;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAH;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAM;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACAA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACAe;AAAA,EACAC;AAAA,EACA;AAAA,EACA;AAAA,EACAC;AAAA,EACA;AAAA,EACA;AAAA,EACAb;AAAA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", - "names": ["relative", "n", "locate", "segment", "replacement", "init", "path", "identifier", "property", "a", "require$$0", "chars", "win32", "base", "DOT_LITERAL", "PLUS_LITERAL", "SLASH_LITERAL", "ONE_CHAR", "DOTS_SLASH", "NO_DOT", "NO_DOT_SLASH", "NO_DOTS_SLASH", "QMARK", "QMARK_NO_DOT", "STAR", "START_ANCHOR", "opts", "value", "rest", "posix", "NO_DOTS", "source", "state", "extractAssignedNames", "normalizePath", "createFilter", "Identifier", "importExpression", "declaredVariable", "ExpressionStatement", "BlockStatement", "ArrowFunctionExpression", "Literal", "memberExpression", "CallExpression", "CatchClause", "StaticBlock", "decorator", "ExportDefaultDeclaration", "VariableDeclarator", "callExpression", "resolve", "objectPattern", "metaProperty", "URL", "umd", "parseError", "Program", "Property", "ReturnStatement", "switchCase", "TemplateLiteral", "exportDefaultDeclaration", "convertNode", "_", "name", "BuildPhase", "map", "process$1", "module", "id", "amd", "keypath", "Chunk", "code", "fileName", "sanitizeFileName", "resolve$1", "rendered", "resolveFileName", "signature", "commonSegments", "line", "Bundle", "importer", "attributes", "isEntry", "level", "getLogHandler", "log", "external", "argument0", "error", "pluginDriver", "reject", "SortingFileType", "colors", "env$1", "message"] -} diff --git a/site/game/node_modules/.vite/deps/chunk-UIZRH6IJ.js b/site/game/node_modules/.vite/deps/chunk-UIZRH6IJ.js deleted file mode 100644 index db5b66e..0000000 --- a/site/game/node_modules/.vite/deps/chunk-UIZRH6IJ.js +++ /dev/null @@ -1,57970 +0,0 @@ -import { - require_url -} from "./chunk-MPVQUUHK.js"; -import { - require_events, - require_node_os, - require_os, - require_stream, - require_util -} from "./chunk-KPGLAEFU.js"; -import { - require_fs -} from "./chunk-I5RSIQOR.js"; -import { - parseAst, - parseAstAsync, - require_native, - require_node_fs, - require_node_perf_hooks, - require_promises, - require_tty -} from "./chunk-I6YKGN4K.js"; -import { - require_path -} from "./chunk-4XRL7ZXG.js"; -import { - require_node_http -} from "./chunk-X45QO7DX.js"; -import { - require_node_https -} from "./chunk-OZBCPRVH.js"; -import { - require_node_module, - require_node_url -} from "./chunk-G2ZEZZAJ.js"; -import { - require_node_path -} from "./chunk-M2MSWSHF.js"; -import { - __commonJS, - __privateAdd, - __privateGet, - __privateMethod, - __privateSet, - __privateWrapper, - __publicField, - __require, - __toESM -} from "./chunk-ZSMWDLMK.js"; - -// browser-external:node:util -var require_node_util = __commonJS({ - "browser-external:node:util"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:util" has been externalized for browser compatibility. Cannot access "node:util.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:child_process -var require_child_process = __commonJS({ - "browser-external:child_process"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "child_process" has been externalized for browser compatibility. Cannot access "child_process.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:crypto -var require_crypto = __commonJS({ - "browser-external:crypto"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "crypto" has been externalized for browser compatibility. Cannot access "crypto.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:worker_threads -var require_worker_threads = __commonJS({ - "browser-external:worker_threads"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "worker_threads" has been externalized for browser compatibility. Cannot access "worker_threads.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// node_modules/esbuild/lib/main.js -var require_main = __commonJS({ - "node_modules/esbuild/lib/main.js"(exports2, module) { - "use strict"; - var __defProp = Object.defineProperty; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __hasOwnProp = Object.prototype.hasOwnProperty; - var __export = (target, all) => { - for (var name2 in all) - __defProp(target, name2, { get: all[name2], enumerable: true }); - }; - var __copyProps = (to, from, except, desc) => { - if (from && typeof from === "object" || typeof from === "function") { - for (let key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(to, key) && key !== except) - __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); - } - return to; - }; - var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); - var node_exports = {}; - __export(node_exports, { - analyzeMetafile: () => analyzeMetafile, - analyzeMetafileSync: () => analyzeMetafileSync, - build: () => build2, - buildSync: () => buildSync, - context: () => context, - default: () => node_default, - formatMessages: () => formatMessages2, - formatMessagesSync: () => formatMessagesSync, - initialize: () => initialize, - stop: () => stop, - transform: () => transform2, - transformSync: () => transformSync, - version: () => version3 - }); - module.exports = __toCommonJS(node_exports); - function encodePacket(packet) { - let visit2 = (value2) => { - if (value2 === null) { - bb.write8(0); - } else if (typeof value2 === "boolean") { - bb.write8(1); - bb.write8(+value2); - } else if (typeof value2 === "number") { - bb.write8(2); - bb.write32(value2 | 0); - } else if (typeof value2 === "string") { - bb.write8(3); - bb.write(encodeUTF8(value2)); - } else if (value2 instanceof Uint8Array) { - bb.write8(4); - bb.write(value2); - } else if (value2 instanceof Array) { - bb.write8(5); - bb.write32(value2.length); - for (let item of value2) { - visit2(item); - } - } else { - let keys = Object.keys(value2); - bb.write8(6); - bb.write32(keys.length); - for (let key of keys) { - bb.write(encodeUTF8(key)); - visit2(value2[key]); - } - } - }; - let bb = new ByteBuffer(); - bb.write32(0); - bb.write32(packet.id << 1 | +!packet.isRequest); - visit2(packet.value); - writeUInt32LE(bb.buf, bb.len - 4, 0); - return bb.buf.subarray(0, bb.len); - } - function decodePacket(bytes) { - let visit2 = () => { - switch (bb.read8()) { - case 0: - return null; - case 1: - return !!bb.read8(); - case 2: - return bb.read32(); - case 3: - return decodeUTF8(bb.read()); - case 4: - return bb.read(); - case 5: { - let count = bb.read32(); - let value22 = []; - for (let i = 0; i < count; i++) { - value22.push(visit2()); - } - return value22; - } - case 6: { - let count = bb.read32(); - let value22 = {}; - for (let i = 0; i < count; i++) { - value22[decodeUTF8(bb.read())] = visit2(); - } - return value22; - } - default: - throw new Error("Invalid packet"); - } - }; - let bb = new ByteBuffer(bytes); - let id = bb.read32(); - let isRequest = (id & 1) === 0; - id >>>= 1; - let value2 = visit2(); - if (bb.ptr !== bytes.length) { - throw new Error("Invalid packet"); - } - return { id, isRequest, value: value2 }; - } - var ByteBuffer = class { - constructor(buf = new Uint8Array(1024)) { - this.buf = buf; - this.len = 0; - this.ptr = 0; - } - _write(delta) { - if (this.len + delta > this.buf.length) { - let clone2 = new Uint8Array((this.len + delta) * 2); - clone2.set(this.buf); - this.buf = clone2; - } - this.len += delta; - return this.len - delta; - } - write8(value2) { - let offset2 = this._write(1); - this.buf[offset2] = value2; - } - write32(value2) { - let offset2 = this._write(4); - writeUInt32LE(this.buf, value2, offset2); - } - write(bytes) { - let offset2 = this._write(4 + bytes.length); - writeUInt32LE(this.buf, bytes.length, offset2); - this.buf.set(bytes, offset2 + 4); - } - _read(delta) { - if (this.ptr + delta > this.buf.length) { - throw new Error("Invalid packet"); - } - this.ptr += delta; - return this.ptr - delta; - } - read8() { - return this.buf[this._read(1)]; - } - read32() { - return readUInt32LE(this.buf, this._read(4)); - } - read() { - let length = this.read32(); - let bytes = new Uint8Array(length); - let ptr = this._read(bytes.length); - bytes.set(this.buf.subarray(ptr, ptr + length)); - return bytes; - } - }; - var encodeUTF8; - var decodeUTF8; - var encodeInvariant; - if (typeof TextEncoder !== "undefined" && typeof TextDecoder !== "undefined") { - let encoder = new TextEncoder(); - let decoder2 = new TextDecoder(); - encodeUTF8 = (text) => encoder.encode(text); - decodeUTF8 = (bytes) => decoder2.decode(bytes); - encodeInvariant = 'new TextEncoder().encode("")'; - } else if (typeof Buffer !== "undefined") { - encodeUTF8 = (text) => Buffer.from(text); - decodeUTF8 = (bytes) => { - let { buffer, byteOffset, byteLength } = bytes; - return Buffer.from(buffer, byteOffset, byteLength).toString(); - }; - encodeInvariant = 'Buffer.from("")'; - } else { - throw new Error("No UTF-8 codec found"); - } - if (!(encodeUTF8("") instanceof Uint8Array)) - throw new Error(`Invariant violation: "${encodeInvariant} instanceof Uint8Array" is incorrectly false - -This indicates that your JavaScript environment is broken. You cannot use -esbuild in this environment because esbuild relies on this invariant. This -is not a problem with esbuild. You need to fix your environment instead. -`); - function readUInt32LE(buffer, offset2) { - return buffer[offset2++] | buffer[offset2++] << 8 | buffer[offset2++] << 16 | buffer[offset2++] << 24; - } - function writeUInt32LE(buffer, value2, offset2) { - buffer[offset2++] = value2; - buffer[offset2++] = value2 >> 8; - buffer[offset2++] = value2 >> 16; - buffer[offset2++] = value2 >> 24; - } - var quote3 = JSON.stringify; - var buildLogLevelDefault = "warning"; - var transformLogLevelDefault = "silent"; - function validateTarget(target) { - validateStringValue(target, "target"); - if (target.indexOf(",") >= 0) throw new Error(`Invalid target: ${target}`); - return target; - } - var canBeAnything = () => null; - var mustBeBoolean = (value2) => typeof value2 === "boolean" ? null : "a boolean"; - var mustBeString = (value2) => typeof value2 === "string" ? null : "a string"; - var mustBeRegExp = (value2) => value2 instanceof RegExp ? null : "a RegExp object"; - var mustBeInteger = (value2) => typeof value2 === "number" && value2 === (value2 | 0) ? null : "an integer"; - var mustBeFunction = (value2) => typeof value2 === "function" ? null : "a function"; - var mustBeArray = (value2) => Array.isArray(value2) ? null : "an array"; - var mustBeObject = (value2) => typeof value2 === "object" && value2 !== null && !Array.isArray(value2) ? null : "an object"; - var mustBeEntryPoints = (value2) => typeof value2 === "object" && value2 !== null ? null : "an array or an object"; - var mustBeWebAssemblyModule = (value2) => value2 instanceof WebAssembly.Module ? null : "a WebAssembly.Module"; - var mustBeObjectOrNull = (value2) => typeof value2 === "object" && !Array.isArray(value2) ? null : "an object or null"; - var mustBeStringOrBoolean = (value2) => typeof value2 === "string" || typeof value2 === "boolean" ? null : "a string or a boolean"; - var mustBeStringOrObject = (value2) => typeof value2 === "string" || typeof value2 === "object" && value2 !== null && !Array.isArray(value2) ? null : "a string or an object"; - var mustBeStringOrArray = (value2) => typeof value2 === "string" || Array.isArray(value2) ? null : "a string or an array"; - var mustBeStringOrUint8Array = (value2) => typeof value2 === "string" || value2 instanceof Uint8Array ? null : "a string or a Uint8Array"; - var mustBeStringOrURL = (value2) => typeof value2 === "string" || value2 instanceof URL ? null : "a string or a URL"; - function getFlag(object, keys, key, mustBeFn) { - let value2 = object[key]; - keys[key + ""] = true; - if (value2 === void 0) return void 0; - let mustBe = mustBeFn(value2); - if (mustBe !== null) throw new Error(`${quote3(key)} must be ${mustBe}`); - return value2; - } - function checkForInvalidFlags(object, keys, where) { - for (let key in object) { - if (!(key in keys)) { - throw new Error(`Invalid option ${where}: ${quote3(key)}`); - } - } - } - function validateInitializeOptions(options2) { - let keys = /* @__PURE__ */ Object.create(null); - let wasmURL = getFlag(options2, keys, "wasmURL", mustBeStringOrURL); - let wasmModule = getFlag(options2, keys, "wasmModule", mustBeWebAssemblyModule); - let worker = getFlag(options2, keys, "worker", mustBeBoolean); - checkForInvalidFlags(options2, keys, "in initialize() call"); - return { - wasmURL, - wasmModule, - worker - }; - } - function validateMangleCache(mangleCache) { - let validated; - if (mangleCache !== void 0) { - validated = /* @__PURE__ */ Object.create(null); - for (let key in mangleCache) { - let value2 = mangleCache[key]; - if (typeof value2 === "string" || value2 === false) { - validated[key] = value2; - } else { - throw new Error(`Expected ${quote3(key)} in mangle cache to map to either a string or false`); - } - } - } - return validated; - } - function pushLogFlags(flags, options2, keys, isTTY2, logLevelDefault) { - let color = getFlag(options2, keys, "color", mustBeBoolean); - let logLevel = getFlag(options2, keys, "logLevel", mustBeString); - let logLimit = getFlag(options2, keys, "logLimit", mustBeInteger); - if (color !== void 0) flags.push(`--color=${color}`); - else if (isTTY2) flags.push(`--color=true`); - flags.push(`--log-level=${logLevel || logLevelDefault}`); - flags.push(`--log-limit=${logLimit || 0}`); - } - function validateStringValue(value2, what, key) { - if (typeof value2 !== "string") { - throw new Error(`Expected value for ${what}${key !== void 0 ? " " + quote3(key) : ""} to be a string, got ${typeof value2} instead`); - } - return value2; - } - function pushCommonFlags(flags, options2, keys) { - let legalComments = getFlag(options2, keys, "legalComments", mustBeString); - let sourceRoot = getFlag(options2, keys, "sourceRoot", mustBeString); - let sourcesContent = getFlag(options2, keys, "sourcesContent", mustBeBoolean); - let target = getFlag(options2, keys, "target", mustBeStringOrArray); - let format2 = getFlag(options2, keys, "format", mustBeString); - let globalName = getFlag(options2, keys, "globalName", mustBeString); - let mangleProps = getFlag(options2, keys, "mangleProps", mustBeRegExp); - let reserveProps = getFlag(options2, keys, "reserveProps", mustBeRegExp); - let mangleQuoted = getFlag(options2, keys, "mangleQuoted", mustBeBoolean); - let minify = getFlag(options2, keys, "minify", mustBeBoolean); - let minifySyntax = getFlag(options2, keys, "minifySyntax", mustBeBoolean); - let minifyWhitespace = getFlag(options2, keys, "minifyWhitespace", mustBeBoolean); - let minifyIdentifiers = getFlag(options2, keys, "minifyIdentifiers", mustBeBoolean); - let lineLimit = getFlag(options2, keys, "lineLimit", mustBeInteger); - let drop = getFlag(options2, keys, "drop", mustBeArray); - let dropLabels = getFlag(options2, keys, "dropLabels", mustBeArray); - let charset = getFlag(options2, keys, "charset", mustBeString); - let treeShaking = getFlag(options2, keys, "treeShaking", mustBeBoolean); - let ignoreAnnotations = getFlag(options2, keys, "ignoreAnnotations", mustBeBoolean); - let jsx = getFlag(options2, keys, "jsx", mustBeString); - let jsxFactory = getFlag(options2, keys, "jsxFactory", mustBeString); - let jsxFragment = getFlag(options2, keys, "jsxFragment", mustBeString); - let jsxImportSource = getFlag(options2, keys, "jsxImportSource", mustBeString); - let jsxDev = getFlag(options2, keys, "jsxDev", mustBeBoolean); - let jsxSideEffects = getFlag(options2, keys, "jsxSideEffects", mustBeBoolean); - let define = getFlag(options2, keys, "define", mustBeObject); - let logOverride = getFlag(options2, keys, "logOverride", mustBeObject); - let supported = getFlag(options2, keys, "supported", mustBeObject); - let pure = getFlag(options2, keys, "pure", mustBeArray); - let keepNames = getFlag(options2, keys, "keepNames", mustBeBoolean); - let platform2 = getFlag(options2, keys, "platform", mustBeString); - let tsconfigRaw = getFlag(options2, keys, "tsconfigRaw", mustBeStringOrObject); - if (legalComments) flags.push(`--legal-comments=${legalComments}`); - if (sourceRoot !== void 0) flags.push(`--source-root=${sourceRoot}`); - if (sourcesContent !== void 0) flags.push(`--sources-content=${sourcesContent}`); - if (target) { - if (Array.isArray(target)) flags.push(`--target=${Array.from(target).map(validateTarget).join(",")}`); - else flags.push(`--target=${validateTarget(target)}`); - } - if (format2) flags.push(`--format=${format2}`); - if (globalName) flags.push(`--global-name=${globalName}`); - if (platform2) flags.push(`--platform=${platform2}`); - if (tsconfigRaw) flags.push(`--tsconfig-raw=${typeof tsconfigRaw === "string" ? tsconfigRaw : JSON.stringify(tsconfigRaw)}`); - if (minify) flags.push("--minify"); - if (minifySyntax) flags.push("--minify-syntax"); - if (minifyWhitespace) flags.push("--minify-whitespace"); - if (minifyIdentifiers) flags.push("--minify-identifiers"); - if (lineLimit) flags.push(`--line-limit=${lineLimit}`); - if (charset) flags.push(`--charset=${charset}`); - if (treeShaking !== void 0) flags.push(`--tree-shaking=${treeShaking}`); - if (ignoreAnnotations) flags.push(`--ignore-annotations`); - if (drop) for (let what of drop) flags.push(`--drop:${validateStringValue(what, "drop")}`); - if (dropLabels) flags.push(`--drop-labels=${Array.from(dropLabels).map((what) => validateStringValue(what, "dropLabels")).join(",")}`); - if (mangleProps) flags.push(`--mangle-props=${mangleProps.source}`); - if (reserveProps) flags.push(`--reserve-props=${reserveProps.source}`); - if (mangleQuoted !== void 0) flags.push(`--mangle-quoted=${mangleQuoted}`); - if (jsx) flags.push(`--jsx=${jsx}`); - if (jsxFactory) flags.push(`--jsx-factory=${jsxFactory}`); - if (jsxFragment) flags.push(`--jsx-fragment=${jsxFragment}`); - if (jsxImportSource) flags.push(`--jsx-import-source=${jsxImportSource}`); - if (jsxDev) flags.push(`--jsx-dev`); - if (jsxSideEffects) flags.push(`--jsx-side-effects`); - if (define) { - for (let key in define) { - if (key.indexOf("=") >= 0) throw new Error(`Invalid define: ${key}`); - flags.push(`--define:${key}=${validateStringValue(define[key], "define", key)}`); - } - } - if (logOverride) { - for (let key in logOverride) { - if (key.indexOf("=") >= 0) throw new Error(`Invalid log override: ${key}`); - flags.push(`--log-override:${key}=${validateStringValue(logOverride[key], "log override", key)}`); - } - } - if (supported) { - for (let key in supported) { - if (key.indexOf("=") >= 0) throw new Error(`Invalid supported: ${key}`); - const value2 = supported[key]; - if (typeof value2 !== "boolean") throw new Error(`Expected value for supported ${quote3(key)} to be a boolean, got ${typeof value2} instead`); - flags.push(`--supported:${key}=${value2}`); - } - } - if (pure) for (let fn of pure) flags.push(`--pure:${validateStringValue(fn, "pure")}`); - if (keepNames) flags.push(`--keep-names`); - } - function flagsForBuildOptions(callName, options2, isTTY2, logLevelDefault, writeDefault) { - var _a22; - let flags = []; - let entries = []; - let keys = /* @__PURE__ */ Object.create(null); - let stdinContents = null; - let stdinResolveDir = null; - pushLogFlags(flags, options2, keys, isTTY2, logLevelDefault); - pushCommonFlags(flags, options2, keys); - let sourcemap = getFlag(options2, keys, "sourcemap", mustBeStringOrBoolean); - let bundle = getFlag(options2, keys, "bundle", mustBeBoolean); - let splitting = getFlag(options2, keys, "splitting", mustBeBoolean); - let preserveSymlinks = getFlag(options2, keys, "preserveSymlinks", mustBeBoolean); - let metafile = getFlag(options2, keys, "metafile", mustBeBoolean); - let outfile = getFlag(options2, keys, "outfile", mustBeString); - let outdir = getFlag(options2, keys, "outdir", mustBeString); - let outbase = getFlag(options2, keys, "outbase", mustBeString); - let tsconfig = getFlag(options2, keys, "tsconfig", mustBeString); - let resolveExtensions2 = getFlag(options2, keys, "resolveExtensions", mustBeArray); - let nodePathsInput = getFlag(options2, keys, "nodePaths", mustBeArray); - let mainFields = getFlag(options2, keys, "mainFields", mustBeArray); - let conditions = getFlag(options2, keys, "conditions", mustBeArray); - let external = getFlag(options2, keys, "external", mustBeArray); - let packages = getFlag(options2, keys, "packages", mustBeString); - let alias2 = getFlag(options2, keys, "alias", mustBeObject); - let loader = getFlag(options2, keys, "loader", mustBeObject); - let outExtension = getFlag(options2, keys, "outExtension", mustBeObject); - let publicPath = getFlag(options2, keys, "publicPath", mustBeString); - let entryNames = getFlag(options2, keys, "entryNames", mustBeString); - let chunkNames = getFlag(options2, keys, "chunkNames", mustBeString); - let assetNames = getFlag(options2, keys, "assetNames", mustBeString); - let inject = getFlag(options2, keys, "inject", mustBeArray); - let banner = getFlag(options2, keys, "banner", mustBeObject); - let footer = getFlag(options2, keys, "footer", mustBeObject); - let entryPoints = getFlag(options2, keys, "entryPoints", mustBeEntryPoints); - let absWorkingDir = getFlag(options2, keys, "absWorkingDir", mustBeString); - let stdin = getFlag(options2, keys, "stdin", mustBeObject); - let write = (_a22 = getFlag(options2, keys, "write", mustBeBoolean)) != null ? _a22 : writeDefault; - let allowOverwrite = getFlag(options2, keys, "allowOverwrite", mustBeBoolean); - let mangleCache = getFlag(options2, keys, "mangleCache", mustBeObject); - keys.plugins = true; - checkForInvalidFlags(options2, keys, `in ${callName}() call`); - if (sourcemap) flags.push(`--sourcemap${sourcemap === true ? "" : `=${sourcemap}`}`); - if (bundle) flags.push("--bundle"); - if (allowOverwrite) flags.push("--allow-overwrite"); - if (splitting) flags.push("--splitting"); - if (preserveSymlinks) flags.push("--preserve-symlinks"); - if (metafile) flags.push(`--metafile`); - if (outfile) flags.push(`--outfile=${outfile}`); - if (outdir) flags.push(`--outdir=${outdir}`); - if (outbase) flags.push(`--outbase=${outbase}`); - if (tsconfig) flags.push(`--tsconfig=${tsconfig}`); - if (packages) flags.push(`--packages=${packages}`); - if (resolveExtensions2) { - let values = []; - for (let value2 of resolveExtensions2) { - validateStringValue(value2, "resolve extension"); - if (value2.indexOf(",") >= 0) throw new Error(`Invalid resolve extension: ${value2}`); - values.push(value2); - } - flags.push(`--resolve-extensions=${values.join(",")}`); - } - if (publicPath) flags.push(`--public-path=${publicPath}`); - if (entryNames) flags.push(`--entry-names=${entryNames}`); - if (chunkNames) flags.push(`--chunk-names=${chunkNames}`); - if (assetNames) flags.push(`--asset-names=${assetNames}`); - if (mainFields) { - let values = []; - for (let value2 of mainFields) { - validateStringValue(value2, "main field"); - if (value2.indexOf(",") >= 0) throw new Error(`Invalid main field: ${value2}`); - values.push(value2); - } - flags.push(`--main-fields=${values.join(",")}`); - } - if (conditions) { - let values = []; - for (let value2 of conditions) { - validateStringValue(value2, "condition"); - if (value2.indexOf(",") >= 0) throw new Error(`Invalid condition: ${value2}`); - values.push(value2); - } - flags.push(`--conditions=${values.join(",")}`); - } - if (external) for (let name2 of external) flags.push(`--external:${validateStringValue(name2, "external")}`); - if (alias2) { - for (let old in alias2) { - if (old.indexOf("=") >= 0) throw new Error(`Invalid package name in alias: ${old}`); - flags.push(`--alias:${old}=${validateStringValue(alias2[old], "alias", old)}`); - } - } - if (banner) { - for (let type in banner) { - if (type.indexOf("=") >= 0) throw new Error(`Invalid banner file type: ${type}`); - flags.push(`--banner:${type}=${validateStringValue(banner[type], "banner", type)}`); - } - } - if (footer) { - for (let type in footer) { - if (type.indexOf("=") >= 0) throw new Error(`Invalid footer file type: ${type}`); - flags.push(`--footer:${type}=${validateStringValue(footer[type], "footer", type)}`); - } - } - if (inject) for (let path32 of inject) flags.push(`--inject:${validateStringValue(path32, "inject")}`); - if (loader) { - for (let ext2 in loader) { - if (ext2.indexOf("=") >= 0) throw new Error(`Invalid loader extension: ${ext2}`); - flags.push(`--loader:${ext2}=${validateStringValue(loader[ext2], "loader", ext2)}`); - } - } - if (outExtension) { - for (let ext2 in outExtension) { - if (ext2.indexOf("=") >= 0) throw new Error(`Invalid out extension: ${ext2}`); - flags.push(`--out-extension:${ext2}=${validateStringValue(outExtension[ext2], "out extension", ext2)}`); - } - } - if (entryPoints) { - if (Array.isArray(entryPoints)) { - for (let i = 0, n2 = entryPoints.length; i < n2; i++) { - let entryPoint = entryPoints[i]; - if (typeof entryPoint === "object" && entryPoint !== null) { - let entryPointKeys = /* @__PURE__ */ Object.create(null); - let input = getFlag(entryPoint, entryPointKeys, "in", mustBeString); - let output = getFlag(entryPoint, entryPointKeys, "out", mustBeString); - checkForInvalidFlags(entryPoint, entryPointKeys, "in entry point at index " + i); - if (input === void 0) throw new Error('Missing property "in" for entry point at index ' + i); - if (output === void 0) throw new Error('Missing property "out" for entry point at index ' + i); - entries.push([output, input]); - } else { - entries.push(["", validateStringValue(entryPoint, "entry point at index " + i)]); - } - } - } else { - for (let key in entryPoints) { - entries.push([key, validateStringValue(entryPoints[key], "entry point", key)]); - } - } - } - if (stdin) { - let stdinKeys = /* @__PURE__ */ Object.create(null); - let contents = getFlag(stdin, stdinKeys, "contents", mustBeStringOrUint8Array); - let resolveDir = getFlag(stdin, stdinKeys, "resolveDir", mustBeString); - let sourcefile = getFlag(stdin, stdinKeys, "sourcefile", mustBeString); - let loader2 = getFlag(stdin, stdinKeys, "loader", mustBeString); - checkForInvalidFlags(stdin, stdinKeys, 'in "stdin" object'); - if (sourcefile) flags.push(`--sourcefile=${sourcefile}`); - if (loader2) flags.push(`--loader=${loader2}`); - if (resolveDir) stdinResolveDir = resolveDir; - if (typeof contents === "string") stdinContents = encodeUTF8(contents); - else if (contents instanceof Uint8Array) stdinContents = contents; - } - let nodePaths = []; - if (nodePathsInput) { - for (let value2 of nodePathsInput) { - value2 += ""; - nodePaths.push(value2); - } - } - return { - entries, - flags, - write, - stdinContents, - stdinResolveDir, - absWorkingDir, - nodePaths, - mangleCache: validateMangleCache(mangleCache) - }; - } - function flagsForTransformOptions(callName, options2, isTTY2, logLevelDefault) { - let flags = []; - let keys = /* @__PURE__ */ Object.create(null); - pushLogFlags(flags, options2, keys, isTTY2, logLevelDefault); - pushCommonFlags(flags, options2, keys); - let sourcemap = getFlag(options2, keys, "sourcemap", mustBeStringOrBoolean); - let sourcefile = getFlag(options2, keys, "sourcefile", mustBeString); - let loader = getFlag(options2, keys, "loader", mustBeString); - let banner = getFlag(options2, keys, "banner", mustBeString); - let footer = getFlag(options2, keys, "footer", mustBeString); - let mangleCache = getFlag(options2, keys, "mangleCache", mustBeObject); - checkForInvalidFlags(options2, keys, `in ${callName}() call`); - if (sourcemap) flags.push(`--sourcemap=${sourcemap === true ? "external" : sourcemap}`); - if (sourcefile) flags.push(`--sourcefile=${sourcefile}`); - if (loader) flags.push(`--loader=${loader}`); - if (banner) flags.push(`--banner=${banner}`); - if (footer) flags.push(`--footer=${footer}`); - return { - flags, - mangleCache: validateMangleCache(mangleCache) - }; - } - function createChannel(streamIn) { - const requestCallbacksByKey = {}; - const closeData = { didClose: false, reason: "" }; - let responseCallbacks = {}; - let nextRequestID = 0; - let nextBuildKey = 0; - let stdout = new Uint8Array(16 * 1024); - let stdoutUsed = 0; - let readFromStdout = (chunk) => { - let limit = stdoutUsed + chunk.length; - if (limit > stdout.length) { - let swap = new Uint8Array(limit * 2); - swap.set(stdout); - stdout = swap; - } - stdout.set(chunk, stdoutUsed); - stdoutUsed += chunk.length; - let offset2 = 0; - while (offset2 + 4 <= stdoutUsed) { - let length = readUInt32LE(stdout, offset2); - if (offset2 + 4 + length > stdoutUsed) { - break; - } - offset2 += 4; - handleIncomingPacket(stdout.subarray(offset2, offset2 + length)); - offset2 += length; - } - if (offset2 > 0) { - stdout.copyWithin(0, offset2, stdoutUsed); - stdoutUsed -= offset2; - } - }; - let afterClose = (error2) => { - closeData.didClose = true; - if (error2) closeData.reason = ": " + (error2.message || error2); - const text = "The service was stopped" + closeData.reason; - for (let id in responseCallbacks) { - responseCallbacks[id](text, null); - } - responseCallbacks = {}; - }; - let sendRequest = (refs, value2, callback) => { - if (closeData.didClose) return callback("The service is no longer running" + closeData.reason, null); - let id = nextRequestID++; - responseCallbacks[id] = (error2, response) => { - try { - callback(error2, response); - } finally { - if (refs) refs.unref(); - } - }; - if (refs) refs.ref(); - streamIn.writeToStdin(encodePacket({ id, isRequest: true, value: value2 })); - }; - let sendResponse = (id, value2) => { - if (closeData.didClose) throw new Error("The service is no longer running" + closeData.reason); - streamIn.writeToStdin(encodePacket({ id, isRequest: false, value: value2 })); - }; - let handleRequest = async (id, request) => { - try { - if (request.command === "ping") { - sendResponse(id, {}); - return; - } - if (typeof request.key === "number") { - const requestCallbacks = requestCallbacksByKey[request.key]; - if (!requestCallbacks) { - return; - } - const callback = requestCallbacks[request.command]; - if (callback) { - await callback(id, request); - return; - } - } - throw new Error(`Invalid command: ` + request.command); - } catch (e2) { - const errors = [extractErrorMessageV8(e2, streamIn, null, void 0, "")]; - try { - sendResponse(id, { errors }); - } catch { - } - } - }; - let isFirstPacket = true; - let handleIncomingPacket = (bytes) => { - if (isFirstPacket) { - isFirstPacket = false; - let binaryVersion = String.fromCharCode(...bytes); - if (binaryVersion !== "0.21.5") { - throw new Error(`Cannot start service: Host version "${"0.21.5"}" does not match binary version ${quote3(binaryVersion)}`); - } - return; - } - let packet = decodePacket(bytes); - if (packet.isRequest) { - handleRequest(packet.id, packet.value); - } else { - let callback = responseCallbacks[packet.id]; - delete responseCallbacks[packet.id]; - if (packet.value.error) callback(packet.value.error, {}); - else callback(null, packet.value); - } - }; - let buildOrContext = ({ callName, refs, options: options2, isTTY: isTTY2, defaultWD: defaultWD2, callback }) => { - let refCount = 0; - const buildKey = nextBuildKey++; - const requestCallbacks = {}; - const buildRefs = { - ref() { - if (++refCount === 1) { - if (refs) refs.ref(); - } - }, - unref() { - if (--refCount === 0) { - delete requestCallbacksByKey[buildKey]; - if (refs) refs.unref(); - } - } - }; - requestCallbacksByKey[buildKey] = requestCallbacks; - buildRefs.ref(); - buildOrContextImpl( - callName, - buildKey, - sendRequest, - sendResponse, - buildRefs, - streamIn, - requestCallbacks, - options2, - isTTY2, - defaultWD2, - (err2, res) => { - try { - callback(err2, res); - } finally { - buildRefs.unref(); - } - } - ); - }; - let transform22 = ({ callName, refs, input, options: options2, isTTY: isTTY2, fs: fs3, callback }) => { - const details = createObjectStash(); - let start = (inputPath) => { - try { - if (typeof input !== "string" && !(input instanceof Uint8Array)) - throw new Error('The input to "transform" must be a string or a Uint8Array'); - let { - flags, - mangleCache - } = flagsForTransformOptions(callName, options2, isTTY2, transformLogLevelDefault); - let request = { - command: "transform", - flags, - inputFS: inputPath !== null, - input: inputPath !== null ? encodeUTF8(inputPath) : typeof input === "string" ? encodeUTF8(input) : input - }; - if (mangleCache) request.mangleCache = mangleCache; - sendRequest(refs, request, (error2, response) => { - if (error2) return callback(new Error(error2), null); - let errors = replaceDetailsInMessages(response.errors, details); - let warnings = replaceDetailsInMessages(response.warnings, details); - let outstanding = 1; - let next = () => { - if (--outstanding === 0) { - let result = { - warnings, - code: response.code, - map: response.map, - mangleCache: void 0, - legalComments: void 0 - }; - if ("legalComments" in response) result.legalComments = response == null ? void 0 : response.legalComments; - if (response.mangleCache) result.mangleCache = response == null ? void 0 : response.mangleCache; - callback(null, result); - } - }; - if (errors.length > 0) return callback(failureErrorWithLog("Transform failed", errors, warnings), null); - if (response.codeFS) { - outstanding++; - fs3.readFile(response.code, (err2, contents) => { - if (err2 !== null) { - callback(err2, null); - } else { - response.code = contents; - next(); - } - }); - } - if (response.mapFS) { - outstanding++; - fs3.readFile(response.map, (err2, contents) => { - if (err2 !== null) { - callback(err2, null); - } else { - response.map = contents; - next(); - } - }); - } - next(); - }); - } catch (e2) { - let flags = []; - try { - pushLogFlags(flags, options2, {}, isTTY2, transformLogLevelDefault); - } catch { - } - const error2 = extractErrorMessageV8(e2, streamIn, details, void 0, ""); - sendRequest(refs, { command: "error", flags, error: error2 }, () => { - error2.detail = details.load(error2.detail); - callback(failureErrorWithLog("Transform failed", [error2], []), null); - }); - } - }; - if ((typeof input === "string" || input instanceof Uint8Array) && input.length > 1024 * 1024) { - let next = start; - start = () => fs3.writeFile(input, next); - } - start(null); - }; - let formatMessages22 = ({ callName, refs, messages: messages2, options: options2, callback }) => { - if (!options2) throw new Error(`Missing second argument in ${callName}() call`); - let keys = {}; - let kind = getFlag(options2, keys, "kind", mustBeString); - let color = getFlag(options2, keys, "color", mustBeBoolean); - let terminalWidth = getFlag(options2, keys, "terminalWidth", mustBeInteger); - checkForInvalidFlags(options2, keys, `in ${callName}() call`); - if (kind === void 0) throw new Error(`Missing "kind" in ${callName}() call`); - if (kind !== "error" && kind !== "warning") throw new Error(`Expected "kind" to be "error" or "warning" in ${callName}() call`); - let request = { - command: "format-msgs", - messages: sanitizeMessages(messages2, "messages", null, "", terminalWidth), - isWarning: kind === "warning" - }; - if (color !== void 0) request.color = color; - if (terminalWidth !== void 0) request.terminalWidth = terminalWidth; - sendRequest(refs, request, (error2, response) => { - if (error2) return callback(new Error(error2), null); - callback(null, response.messages); - }); - }; - let analyzeMetafile2 = ({ callName, refs, metafile, options: options2, callback }) => { - if (options2 === void 0) options2 = {}; - let keys = {}; - let color = getFlag(options2, keys, "color", mustBeBoolean); - let verbose = getFlag(options2, keys, "verbose", mustBeBoolean); - checkForInvalidFlags(options2, keys, `in ${callName}() call`); - let request = { - command: "analyze-metafile", - metafile - }; - if (color !== void 0) request.color = color; - if (verbose !== void 0) request.verbose = verbose; - sendRequest(refs, request, (error2, response) => { - if (error2) return callback(new Error(error2), null); - callback(null, response.result); - }); - }; - return { - readFromStdout, - afterClose, - service: { - buildOrContext, - transform: transform22, - formatMessages: formatMessages22, - analyzeMetafile: analyzeMetafile2 - } - }; - } - function buildOrContextImpl(callName, buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, options2, isTTY2, defaultWD2, callback) { - const details = createObjectStash(); - const isContext = callName === "context"; - const handleError = (e2, pluginName) => { - const flags = []; - try { - pushLogFlags(flags, options2, {}, isTTY2, buildLogLevelDefault); - } catch { - } - const message = extractErrorMessageV8(e2, streamIn, details, void 0, pluginName); - sendRequest(refs, { command: "error", flags, error: message }, () => { - message.detail = details.load(message.detail); - callback(failureErrorWithLog(isContext ? "Context failed" : "Build failed", [message], []), null); - }); - }; - let plugins2; - if (typeof options2 === "object") { - const value2 = options2.plugins; - if (value2 !== void 0) { - if (!Array.isArray(value2)) return handleError(new Error(`"plugins" must be an array`), ""); - plugins2 = value2; - } - } - if (plugins2 && plugins2.length > 0) { - if (streamIn.isSync) return handleError(new Error("Cannot use plugins in synchronous API calls"), ""); - handlePlugins( - buildKey, - sendRequest, - sendResponse, - refs, - streamIn, - requestCallbacks, - options2, - plugins2, - details - ).then( - (result) => { - if (!result.ok) return handleError(result.error, result.pluginName); - try { - buildOrContextContinue(result.requestPlugins, result.runOnEndCallbacks, result.scheduleOnDisposeCallbacks); - } catch (e2) { - handleError(e2, ""); - } - }, - (e2) => handleError(e2, "") - ); - return; - } - try { - buildOrContextContinue(null, (result, done) => done([], []), () => { - }); - } catch (e2) { - handleError(e2, ""); - } - function buildOrContextContinue(requestPlugins, runOnEndCallbacks, scheduleOnDisposeCallbacks) { - const writeDefault = streamIn.hasFS; - const { - entries, - flags, - write, - stdinContents, - stdinResolveDir, - absWorkingDir, - nodePaths, - mangleCache - } = flagsForBuildOptions(callName, options2, isTTY2, buildLogLevelDefault, writeDefault); - if (write && !streamIn.hasFS) throw new Error(`The "write" option is unavailable in this environment`); - const request = { - command: "build", - key: buildKey, - entries, - flags, - write, - stdinContents, - stdinResolveDir, - absWorkingDir: absWorkingDir || defaultWD2, - nodePaths, - context: isContext - }; - if (requestPlugins) request.plugins = requestPlugins; - if (mangleCache) request.mangleCache = mangleCache; - const buildResponseToResult = (response, callback2) => { - const result = { - errors: replaceDetailsInMessages(response.errors, details), - warnings: replaceDetailsInMessages(response.warnings, details), - outputFiles: void 0, - metafile: void 0, - mangleCache: void 0 - }; - const originalErrors = result.errors.slice(); - const originalWarnings = result.warnings.slice(); - if (response.outputFiles) result.outputFiles = response.outputFiles.map(convertOutputFiles); - if (response.metafile) result.metafile = JSON.parse(response.metafile); - if (response.mangleCache) result.mangleCache = response.mangleCache; - if (response.writeToStdout !== void 0) console.log(decodeUTF8(response.writeToStdout).replace(/\n$/, "")); - runOnEndCallbacks(result, (onEndErrors, onEndWarnings) => { - if (originalErrors.length > 0 || onEndErrors.length > 0) { - const error2 = failureErrorWithLog("Build failed", originalErrors.concat(onEndErrors), originalWarnings.concat(onEndWarnings)); - return callback2(error2, null, onEndErrors, onEndWarnings); - } - callback2(null, result, onEndErrors, onEndWarnings); - }); - }; - let latestResultPromise; - let provideLatestResult; - if (isContext) - requestCallbacks["on-end"] = (id, request2) => new Promise((resolve3) => { - buildResponseToResult(request2, (err2, result, onEndErrors, onEndWarnings) => { - const response = { - errors: onEndErrors, - warnings: onEndWarnings - }; - if (provideLatestResult) provideLatestResult(err2, result); - latestResultPromise = void 0; - provideLatestResult = void 0; - sendResponse(id, response); - resolve3(); - }); - }); - sendRequest(refs, request, (error2, response) => { - if (error2) return callback(new Error(error2), null); - if (!isContext) { - return buildResponseToResult(response, (err2, res) => { - scheduleOnDisposeCallbacks(); - return callback(err2, res); - }); - } - if (response.errors.length > 0) { - return callback(failureErrorWithLog("Context failed", response.errors, response.warnings), null); - } - let didDispose = false; - const result = { - rebuild: () => { - if (!latestResultPromise) latestResultPromise = new Promise((resolve3, reject) => { - let settlePromise; - provideLatestResult = (err2, result2) => { - if (!settlePromise) settlePromise = () => err2 ? reject(err2) : resolve3(result2); - }; - const triggerAnotherBuild = () => { - const request2 = { - command: "rebuild", - key: buildKey - }; - sendRequest(refs, request2, (error22, response2) => { - if (error22) { - reject(new Error(error22)); - } else if (settlePromise) { - settlePromise(); - } else { - triggerAnotherBuild(); - } - }); - }; - triggerAnotherBuild(); - }); - return latestResultPromise; - }, - watch: (options22 = {}) => new Promise((resolve3, reject) => { - if (!streamIn.hasFS) throw new Error(`Cannot use the "watch" API in this environment`); - const keys = {}; - checkForInvalidFlags(options22, keys, `in watch() call`); - const request2 = { - command: "watch", - key: buildKey - }; - sendRequest(refs, request2, (error22) => { - if (error22) reject(new Error(error22)); - else resolve3(void 0); - }); - }), - serve: (options22 = {}) => new Promise((resolve3, reject) => { - if (!streamIn.hasFS) throw new Error(`Cannot use the "serve" API in this environment`); - const keys = {}; - const port = getFlag(options22, keys, "port", mustBeInteger); - const host = getFlag(options22, keys, "host", mustBeString); - const servedir = getFlag(options22, keys, "servedir", mustBeString); - const keyfile = getFlag(options22, keys, "keyfile", mustBeString); - const certfile = getFlag(options22, keys, "certfile", mustBeString); - const fallback = getFlag(options22, keys, "fallback", mustBeString); - const onRequest = getFlag(options22, keys, "onRequest", mustBeFunction); - checkForInvalidFlags(options22, keys, `in serve() call`); - const request2 = { - command: "serve", - key: buildKey, - onRequest: !!onRequest - }; - if (port !== void 0) request2.port = port; - if (host !== void 0) request2.host = host; - if (servedir !== void 0) request2.servedir = servedir; - if (keyfile !== void 0) request2.keyfile = keyfile; - if (certfile !== void 0) request2.certfile = certfile; - if (fallback !== void 0) request2.fallback = fallback; - sendRequest(refs, request2, (error22, response2) => { - if (error22) return reject(new Error(error22)); - if (onRequest) { - requestCallbacks["serve-request"] = (id, request3) => { - onRequest(request3.args); - sendResponse(id, {}); - }; - } - resolve3(response2); - }); - }), - cancel: () => new Promise((resolve3) => { - if (didDispose) return resolve3(); - const request2 = { - command: "cancel", - key: buildKey - }; - sendRequest(refs, request2, () => { - resolve3(); - }); - }), - dispose: () => new Promise((resolve3) => { - if (didDispose) return resolve3(); - didDispose = true; - const request2 = { - command: "dispose", - key: buildKey - }; - sendRequest(refs, request2, () => { - resolve3(); - scheduleOnDisposeCallbacks(); - refs.unref(); - }); - }) - }; - refs.ref(); - callback(null, result); - }); - } - } - var handlePlugins = async (buildKey, sendRequest, sendResponse, refs, streamIn, requestCallbacks, initialOptions, plugins2, details) => { - let onStartCallbacks = []; - let onEndCallbacks = []; - let onResolveCallbacks = {}; - let onLoadCallbacks = {}; - let onDisposeCallbacks = []; - let nextCallbackID = 0; - let i = 0; - let requestPlugins = []; - let isSetupDone = false; - plugins2 = [...plugins2]; - for (let item of plugins2) { - let keys = {}; - if (typeof item !== "object") throw new Error(`Plugin at index ${i} must be an object`); - const name2 = getFlag(item, keys, "name", mustBeString); - if (typeof name2 !== "string" || name2 === "") throw new Error(`Plugin at index ${i} is missing a name`); - try { - let setup = getFlag(item, keys, "setup", mustBeFunction); - if (typeof setup !== "function") throw new Error(`Plugin is missing a setup function`); - checkForInvalidFlags(item, keys, `on plugin ${quote3(name2)}`); - let plugin = { - name: name2, - onStart: false, - onEnd: false, - onResolve: [], - onLoad: [] - }; - i++; - let resolve3 = (path32, options2 = {}) => { - if (!isSetupDone) throw new Error('Cannot call "resolve" before plugin setup has completed'); - if (typeof path32 !== "string") throw new Error(`The path to resolve must be a string`); - let keys2 = /* @__PURE__ */ Object.create(null); - let pluginName = getFlag(options2, keys2, "pluginName", mustBeString); - let importer = getFlag(options2, keys2, "importer", mustBeString); - let namespace = getFlag(options2, keys2, "namespace", mustBeString); - let resolveDir = getFlag(options2, keys2, "resolveDir", mustBeString); - let kind = getFlag(options2, keys2, "kind", mustBeString); - let pluginData = getFlag(options2, keys2, "pluginData", canBeAnything); - let importAttributes = getFlag(options2, keys2, "with", mustBeObject); - checkForInvalidFlags(options2, keys2, "in resolve() call"); - return new Promise((resolve22, reject) => { - const request = { - command: "resolve", - path: path32, - key: buildKey, - pluginName: name2 - }; - if (pluginName != null) request.pluginName = pluginName; - if (importer != null) request.importer = importer; - if (namespace != null) request.namespace = namespace; - if (resolveDir != null) request.resolveDir = resolveDir; - if (kind != null) request.kind = kind; - else throw new Error(`Must specify "kind" when calling "resolve"`); - if (pluginData != null) request.pluginData = details.store(pluginData); - if (importAttributes != null) request.with = sanitizeStringMap(importAttributes, "with"); - sendRequest(refs, request, (error2, response) => { - if (error2 !== null) reject(new Error(error2)); - else resolve22({ - errors: replaceDetailsInMessages(response.errors, details), - warnings: replaceDetailsInMessages(response.warnings, details), - path: response.path, - external: response.external, - sideEffects: response.sideEffects, - namespace: response.namespace, - suffix: response.suffix, - pluginData: details.load(response.pluginData) - }); - }); - }); - }; - let promise2 = setup({ - initialOptions, - resolve: resolve3, - onStart(callback) { - let registeredText = `This error came from the "onStart" callback registered here:`; - let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onStart"); - onStartCallbacks.push({ name: name2, callback, note: registeredNote }); - plugin.onStart = true; - }, - onEnd(callback) { - let registeredText = `This error came from the "onEnd" callback registered here:`; - let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onEnd"); - onEndCallbacks.push({ name: name2, callback, note: registeredNote }); - plugin.onEnd = true; - }, - onResolve(options2, callback) { - let registeredText = `This error came from the "onResolve" callback registered here:`; - let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onResolve"); - let keys2 = {}; - let filter2 = getFlag(options2, keys2, "filter", mustBeRegExp); - let namespace = getFlag(options2, keys2, "namespace", mustBeString); - checkForInvalidFlags(options2, keys2, `in onResolve() call for plugin ${quote3(name2)}`); - if (filter2 == null) throw new Error(`onResolve() call is missing a filter`); - let id = nextCallbackID++; - onResolveCallbacks[id] = { name: name2, callback, note: registeredNote }; - plugin.onResolve.push({ id, filter: filter2.source, namespace: namespace || "" }); - }, - onLoad(options2, callback) { - let registeredText = `This error came from the "onLoad" callback registered here:`; - let registeredNote = extractCallerV8(new Error(registeredText), streamIn, "onLoad"); - let keys2 = {}; - let filter2 = getFlag(options2, keys2, "filter", mustBeRegExp); - let namespace = getFlag(options2, keys2, "namespace", mustBeString); - checkForInvalidFlags(options2, keys2, `in onLoad() call for plugin ${quote3(name2)}`); - if (filter2 == null) throw new Error(`onLoad() call is missing a filter`); - let id = nextCallbackID++; - onLoadCallbacks[id] = { name: name2, callback, note: registeredNote }; - plugin.onLoad.push({ id, filter: filter2.source, namespace: namespace || "" }); - }, - onDispose(callback) { - onDisposeCallbacks.push(callback); - }, - esbuild: streamIn.esbuild - }); - if (promise2) await promise2; - requestPlugins.push(plugin); - } catch (e2) { - return { ok: false, error: e2, pluginName: name2 }; - } - } - requestCallbacks["on-start"] = async (id, request) => { - let response = { errors: [], warnings: [] }; - await Promise.all(onStartCallbacks.map(async ({ name: name2, callback, note }) => { - try { - let result = await callback(); - if (result != null) { - if (typeof result !== "object") throw new Error(`Expected onStart() callback in plugin ${quote3(name2)} to return an object`); - let keys = {}; - let errors = getFlag(result, keys, "errors", mustBeArray); - let warnings = getFlag(result, keys, "warnings", mustBeArray); - checkForInvalidFlags(result, keys, `from onStart() callback in plugin ${quote3(name2)}`); - if (errors != null) response.errors.push(...sanitizeMessages(errors, "errors", details, name2, void 0)); - if (warnings != null) response.warnings.push(...sanitizeMessages(warnings, "warnings", details, name2, void 0)); - } - } catch (e2) { - response.errors.push(extractErrorMessageV8(e2, streamIn, details, note && note(), name2)); - } - })); - sendResponse(id, response); - }; - requestCallbacks["on-resolve"] = async (id, request) => { - let response = {}, name2 = "", callback, note; - for (let id2 of request.ids) { - try { - ({ name: name2, callback, note } = onResolveCallbacks[id2]); - let result = await callback({ - path: request.path, - importer: request.importer, - namespace: request.namespace, - resolveDir: request.resolveDir, - kind: request.kind, - pluginData: details.load(request.pluginData), - with: request.with - }); - if (result != null) { - if (typeof result !== "object") throw new Error(`Expected onResolve() callback in plugin ${quote3(name2)} to return an object`); - let keys = {}; - let pluginName = getFlag(result, keys, "pluginName", mustBeString); - let path32 = getFlag(result, keys, "path", mustBeString); - let namespace = getFlag(result, keys, "namespace", mustBeString); - let suffix = getFlag(result, keys, "suffix", mustBeString); - let external = getFlag(result, keys, "external", mustBeBoolean); - let sideEffects = getFlag(result, keys, "sideEffects", mustBeBoolean); - let pluginData = getFlag(result, keys, "pluginData", canBeAnything); - let errors = getFlag(result, keys, "errors", mustBeArray); - let warnings = getFlag(result, keys, "warnings", mustBeArray); - let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray); - let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray); - checkForInvalidFlags(result, keys, `from onResolve() callback in plugin ${quote3(name2)}`); - response.id = id2; - if (pluginName != null) response.pluginName = pluginName; - if (path32 != null) response.path = path32; - if (namespace != null) response.namespace = namespace; - if (suffix != null) response.suffix = suffix; - if (external != null) response.external = external; - if (sideEffects != null) response.sideEffects = sideEffects; - if (pluginData != null) response.pluginData = details.store(pluginData); - if (errors != null) response.errors = sanitizeMessages(errors, "errors", details, name2, void 0); - if (warnings != null) response.warnings = sanitizeMessages(warnings, "warnings", details, name2, void 0); - if (watchFiles != null) response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles"); - if (watchDirs != null) response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs"); - break; - } - } catch (e2) { - response = { id: id2, errors: [extractErrorMessageV8(e2, streamIn, details, note && note(), name2)] }; - break; - } - } - sendResponse(id, response); - }; - requestCallbacks["on-load"] = async (id, request) => { - let response = {}, name2 = "", callback, note; - for (let id2 of request.ids) { - try { - ({ name: name2, callback, note } = onLoadCallbacks[id2]); - let result = await callback({ - path: request.path, - namespace: request.namespace, - suffix: request.suffix, - pluginData: details.load(request.pluginData), - with: request.with - }); - if (result != null) { - if (typeof result !== "object") throw new Error(`Expected onLoad() callback in plugin ${quote3(name2)} to return an object`); - let keys = {}; - let pluginName = getFlag(result, keys, "pluginName", mustBeString); - let contents = getFlag(result, keys, "contents", mustBeStringOrUint8Array); - let resolveDir = getFlag(result, keys, "resolveDir", mustBeString); - let pluginData = getFlag(result, keys, "pluginData", canBeAnything); - let loader = getFlag(result, keys, "loader", mustBeString); - let errors = getFlag(result, keys, "errors", mustBeArray); - let warnings = getFlag(result, keys, "warnings", mustBeArray); - let watchFiles = getFlag(result, keys, "watchFiles", mustBeArray); - let watchDirs = getFlag(result, keys, "watchDirs", mustBeArray); - checkForInvalidFlags(result, keys, `from onLoad() callback in plugin ${quote3(name2)}`); - response.id = id2; - if (pluginName != null) response.pluginName = pluginName; - if (contents instanceof Uint8Array) response.contents = contents; - else if (contents != null) response.contents = encodeUTF8(contents); - if (resolveDir != null) response.resolveDir = resolveDir; - if (pluginData != null) response.pluginData = details.store(pluginData); - if (loader != null) response.loader = loader; - if (errors != null) response.errors = sanitizeMessages(errors, "errors", details, name2, void 0); - if (warnings != null) response.warnings = sanitizeMessages(warnings, "warnings", details, name2, void 0); - if (watchFiles != null) response.watchFiles = sanitizeStringArray(watchFiles, "watchFiles"); - if (watchDirs != null) response.watchDirs = sanitizeStringArray(watchDirs, "watchDirs"); - break; - } - } catch (e2) { - response = { id: id2, errors: [extractErrorMessageV8(e2, streamIn, details, note && note(), name2)] }; - break; - } - } - sendResponse(id, response); - }; - let runOnEndCallbacks = (result, done) => done([], []); - if (onEndCallbacks.length > 0) { - runOnEndCallbacks = (result, done) => { - (async () => { - const onEndErrors = []; - const onEndWarnings = []; - for (const { name: name2, callback, note } of onEndCallbacks) { - let newErrors; - let newWarnings; - try { - const value2 = await callback(result); - if (value2 != null) { - if (typeof value2 !== "object") throw new Error(`Expected onEnd() callback in plugin ${quote3(name2)} to return an object`); - let keys = {}; - let errors = getFlag(value2, keys, "errors", mustBeArray); - let warnings = getFlag(value2, keys, "warnings", mustBeArray); - checkForInvalidFlags(value2, keys, `from onEnd() callback in plugin ${quote3(name2)}`); - if (errors != null) newErrors = sanitizeMessages(errors, "errors", details, name2, void 0); - if (warnings != null) newWarnings = sanitizeMessages(warnings, "warnings", details, name2, void 0); - } - } catch (e2) { - newErrors = [extractErrorMessageV8(e2, streamIn, details, note && note(), name2)]; - } - if (newErrors) { - onEndErrors.push(...newErrors); - try { - result.errors.push(...newErrors); - } catch { - } - } - if (newWarnings) { - onEndWarnings.push(...newWarnings); - try { - result.warnings.push(...newWarnings); - } catch { - } - } - } - done(onEndErrors, onEndWarnings); - })(); - }; - } - let scheduleOnDisposeCallbacks = () => { - for (const cb of onDisposeCallbacks) { - setTimeout(() => cb(), 0); - } - }; - isSetupDone = true; - return { - ok: true, - requestPlugins, - runOnEndCallbacks, - scheduleOnDisposeCallbacks - }; - }; - function createObjectStash() { - const map2 = /* @__PURE__ */ new Map(); - let nextID = 0; - return { - load(id) { - return map2.get(id); - }, - store(value2) { - if (value2 === void 0) return -1; - const id = nextID++; - map2.set(id, value2); - return id; - } - }; - } - function extractCallerV8(e2, streamIn, ident) { - let note; - let tried = false; - return () => { - if (tried) return note; - tried = true; - try { - let lines = (e2.stack + "").split("\n"); - lines.splice(1, 1); - let location2 = parseStackLinesV8(streamIn, lines, ident); - if (location2) { - note = { text: e2.message, location: location2 }; - return note; - } - } catch { - } - }; - } - function extractErrorMessageV8(e2, streamIn, stash, note, pluginName) { - let text = "Internal error"; - let location2 = null; - try { - text = (e2 && e2.message || e2) + ""; - } catch { - } - try { - location2 = parseStackLinesV8(streamIn, (e2.stack + "").split("\n"), ""); - } catch { - } - return { id: "", pluginName, text, location: location2, notes: note ? [note] : [], detail: stash ? stash.store(e2) : -1 }; - } - function parseStackLinesV8(streamIn, lines, ident) { - let at = " at "; - if (streamIn.readFileSync && !lines[0].startsWith(at) && lines[1].startsWith(at)) { - for (let i = 1; i < lines.length; i++) { - let line = lines[i]; - if (!line.startsWith(at)) continue; - line = line.slice(at.length); - while (true) { - let match2 = /^(?:new |async )?\S+ \((.*)\)$/.exec(line); - if (match2) { - line = match2[1]; - continue; - } - match2 = /^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(line); - if (match2) { - line = match2[1]; - continue; - } - match2 = /^(\S+):(\d+):(\d+)$/.exec(line); - if (match2) { - let contents; - try { - contents = streamIn.readFileSync(match2[1], "utf8"); - } catch { - break; - } - let lineText = contents.split(/\r\n|\r|\n|\u2028|\u2029/)[+match2[2] - 1] || ""; - let column = +match2[3] - 1; - let length = lineText.slice(column, column + ident.length) === ident ? ident.length : 0; - return { - file: match2[1], - namespace: "file", - line: +match2[2], - column: encodeUTF8(lineText.slice(0, column)).length, - length: encodeUTF8(lineText.slice(column, column + length)).length, - lineText: lineText + "\n" + lines.slice(1).join("\n"), - suggestion: "" - }; - } - break; - } - } - } - return null; - } - function failureErrorWithLog(text, errors, warnings) { - let limit = 5; - text += errors.length < 1 ? "" : ` with ${errors.length} error${errors.length < 2 ? "" : "s"}:` + errors.slice(0, limit + 1).map((e2, i) => { - if (i === limit) return "\n..."; - if (!e2.location) return ` -error: ${e2.text}`; - let { file, line, column } = e2.location; - let pluginText = e2.pluginName ? `[plugin: ${e2.pluginName}] ` : ""; - return ` -${file}:${line}:${column}: ERROR: ${pluginText}${e2.text}`; - }).join(""); - let error2 = new Error(text); - for (const [key, value2] of [["errors", errors], ["warnings", warnings]]) { - Object.defineProperty(error2, key, { - configurable: true, - enumerable: true, - get: () => value2, - set: (value22) => Object.defineProperty(error2, key, { - configurable: true, - enumerable: true, - value: value22 - }) - }); - } - return error2; - } - function replaceDetailsInMessages(messages2, stash) { - for (const message of messages2) { - message.detail = stash.load(message.detail); - } - return messages2; - } - function sanitizeLocation(location2, where, terminalWidth) { - if (location2 == null) return null; - let keys = {}; - let file = getFlag(location2, keys, "file", mustBeString); - let namespace = getFlag(location2, keys, "namespace", mustBeString); - let line = getFlag(location2, keys, "line", mustBeInteger); - let column = getFlag(location2, keys, "column", mustBeInteger); - let length = getFlag(location2, keys, "length", mustBeInteger); - let lineText = getFlag(location2, keys, "lineText", mustBeString); - let suggestion = getFlag(location2, keys, "suggestion", mustBeString); - checkForInvalidFlags(location2, keys, where); - if (lineText) { - const relevantASCII = lineText.slice( - 0, - (column && column > 0 ? column : 0) + (length && length > 0 ? length : 0) + (terminalWidth && terminalWidth > 0 ? terminalWidth : 80) - ); - if (!/[\x7F-\uFFFF]/.test(relevantASCII) && !/\n/.test(lineText)) { - lineText = relevantASCII; - } - } - return { - file: file || "", - namespace: namespace || "", - line: line || 0, - column: column || 0, - length: length || 0, - lineText: lineText || "", - suggestion: suggestion || "" - }; - } - function sanitizeMessages(messages2, property, stash, fallbackPluginName, terminalWidth) { - let messagesClone = []; - let index = 0; - for (const message of messages2) { - let keys = {}; - let id = getFlag(message, keys, "id", mustBeString); - let pluginName = getFlag(message, keys, "pluginName", mustBeString); - let text = getFlag(message, keys, "text", mustBeString); - let location2 = getFlag(message, keys, "location", mustBeObjectOrNull); - let notes = getFlag(message, keys, "notes", mustBeArray); - let detail = getFlag(message, keys, "detail", canBeAnything); - let where = `in element ${index} of "${property}"`; - checkForInvalidFlags(message, keys, where); - let notesClone = []; - if (notes) { - for (const note of notes) { - let noteKeys = {}; - let noteText = getFlag(note, noteKeys, "text", mustBeString); - let noteLocation = getFlag(note, noteKeys, "location", mustBeObjectOrNull); - checkForInvalidFlags(note, noteKeys, where); - notesClone.push({ - text: noteText || "", - location: sanitizeLocation(noteLocation, where, terminalWidth) - }); - } - } - messagesClone.push({ - id: id || "", - pluginName: pluginName || fallbackPluginName, - text: text || "", - location: sanitizeLocation(location2, where, terminalWidth), - notes: notesClone, - detail: stash ? stash.store(detail) : -1 - }); - index++; - } - return messagesClone; - } - function sanitizeStringArray(values, property) { - const result = []; - for (const value2 of values) { - if (typeof value2 !== "string") throw new Error(`${quote3(property)} must be an array of strings`); - result.push(value2); - } - return result; - } - function sanitizeStringMap(map2, property) { - const result = /* @__PURE__ */ Object.create(null); - for (const key in map2) { - const value2 = map2[key]; - if (typeof value2 !== "string") throw new Error(`key ${quote3(key)} in object ${quote3(property)} must be a string`); - result[key] = value2; - } - return result; - } - function convertOutputFiles({ path: path32, contents, hash: hash2 }) { - let text = null; - return { - path: path32, - contents, - hash: hash2, - get text() { - const binary2 = this.contents; - if (text === null || binary2 !== contents) { - contents = binary2; - text = decodeUTF8(binary2); - } - return text; - } - }; - } - var fs2 = require_fs(); - var os2 = require_os(); - var path3 = require_path(); - var ESBUILD_BINARY_PATH = process.env.ESBUILD_BINARY_PATH || ESBUILD_BINARY_PATH; - var isValidBinaryPath = (x) => !!x && x !== "/usr/bin/esbuild"; - var packageDarwin_arm64 = "@esbuild/darwin-arm64"; - var packageDarwin_x64 = "@esbuild/darwin-x64"; - var knownWindowsPackages = { - "win32 arm64 LE": "@esbuild/win32-arm64", - "win32 ia32 LE": "@esbuild/win32-ia32", - "win32 x64 LE": "@esbuild/win32-x64" - }; - var knownUnixlikePackages = { - "aix ppc64 BE": "@esbuild/aix-ppc64", - "android arm64 LE": "@esbuild/android-arm64", - "darwin arm64 LE": "@esbuild/darwin-arm64", - "darwin x64 LE": "@esbuild/darwin-x64", - "freebsd arm64 LE": "@esbuild/freebsd-arm64", - "freebsd x64 LE": "@esbuild/freebsd-x64", - "linux arm LE": "@esbuild/linux-arm", - "linux arm64 LE": "@esbuild/linux-arm64", - "linux ia32 LE": "@esbuild/linux-ia32", - "linux mips64el LE": "@esbuild/linux-mips64el", - "linux ppc64 LE": "@esbuild/linux-ppc64", - "linux riscv64 LE": "@esbuild/linux-riscv64", - "linux s390x BE": "@esbuild/linux-s390x", - "linux x64 LE": "@esbuild/linux-x64", - "linux loong64 LE": "@esbuild/linux-loong64", - "netbsd x64 LE": "@esbuild/netbsd-x64", - "openbsd x64 LE": "@esbuild/openbsd-x64", - "sunos x64 LE": "@esbuild/sunos-x64" - }; - var knownWebAssemblyFallbackPackages = { - "android arm LE": "@esbuild/android-arm", - "android x64 LE": "@esbuild/android-x64" - }; - function pkgAndSubpathForCurrentPlatform() { - let pkg; - let subpath; - let isWASM = false; - let platformKey = `${process.platform} ${os2.arch()} ${os2.endianness()}`; - if (platformKey in knownWindowsPackages) { - pkg = knownWindowsPackages[platformKey]; - subpath = "esbuild.exe"; - } else if (platformKey in knownUnixlikePackages) { - pkg = knownUnixlikePackages[platformKey]; - subpath = "bin/esbuild"; - } else if (platformKey in knownWebAssemblyFallbackPackages) { - pkg = knownWebAssemblyFallbackPackages[platformKey]; - subpath = "bin/esbuild"; - isWASM = true; - } else { - throw new Error(`Unsupported platform: ${platformKey}`); - } - return { pkg, subpath, isWASM }; - } - function pkgForSomeOtherPlatform() { - const libMainJS = __require.resolve("esbuild"); - const nodeModulesDirectory = path3.dirname(path3.dirname(path3.dirname(libMainJS))); - if (path3.basename(nodeModulesDirectory) === "node_modules") { - for (const unixKey in knownUnixlikePackages) { - try { - const pkg = knownUnixlikePackages[unixKey]; - if (fs2.existsSync(path3.join(nodeModulesDirectory, pkg))) return pkg; - } catch { - } - } - for (const windowsKey in knownWindowsPackages) { - try { - const pkg = knownWindowsPackages[windowsKey]; - if (fs2.existsSync(path3.join(nodeModulesDirectory, pkg))) return pkg; - } catch { - } - } - } - return null; - } - function downloadedBinPath(pkg, subpath) { - const esbuildLibDir = path3.dirname(__require.resolve("esbuild")); - return path3.join(esbuildLibDir, `downloaded-${pkg.replace("/", "-")}-${path3.basename(subpath)}`); - } - function generateBinPath() { - if (isValidBinaryPath(ESBUILD_BINARY_PATH)) { - if (!fs2.existsSync(ESBUILD_BINARY_PATH)) { - console.warn(`[esbuild] Ignoring bad configuration: ESBUILD_BINARY_PATH=${ESBUILD_BINARY_PATH}`); - } else { - return { binPath: ESBUILD_BINARY_PATH, isWASM: false }; - } - } - const { pkg, subpath, isWASM } = pkgAndSubpathForCurrentPlatform(); - let binPath; - try { - binPath = __require.resolve(`${pkg}/${subpath}`); - } catch (e2) { - binPath = downloadedBinPath(pkg, subpath); - if (!fs2.existsSync(binPath)) { - try { - __require.resolve(pkg); - } catch { - const otherPkg = pkgForSomeOtherPlatform(); - if (otherPkg) { - let suggestions = ` -Specifically the "${otherPkg}" package is present but this platform -needs the "${pkg}" package instead. People often get into this -situation by installing esbuild on Windows or macOS and copying "node_modules" -into a Docker image that runs Linux, or by copying "node_modules" between -Windows and WSL environments. - -If you are installing with npm, you can try not copying the "node_modules" -directory when you copy the files over, and running "npm ci" or "npm install" -on the destination platform after the copy. Or you could consider using yarn -instead of npm which has built-in support for installing a package on multiple -platforms simultaneously. - -If you are installing with yarn, you can try listing both this platform and the -other platform in your ".yarnrc.yml" file using the "supportedArchitectures" -feature: https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures -Keep in mind that this means multiple copies of esbuild will be present. -`; - if (pkg === packageDarwin_x64 && otherPkg === packageDarwin_arm64 || pkg === packageDarwin_arm64 && otherPkg === packageDarwin_x64) { - suggestions = ` -Specifically the "${otherPkg}" package is present but this platform -needs the "${pkg}" package instead. People often get into this -situation by installing esbuild with npm running inside of Rosetta 2 and then -trying to use it with node running outside of Rosetta 2, or vice versa (Rosetta -2 is Apple's on-the-fly x86_64-to-arm64 translation service). - -If you are installing with npm, you can try ensuring that both npm and node are -not running under Rosetta 2 and then reinstalling esbuild. This likely involves -changing how you installed npm and/or node. For example, installing node with -the universal installer here should work: https://nodejs.org/en/download/. Or -you could consider using yarn instead of npm which has built-in support for -installing a package on multiple platforms simultaneously. - -If you are installing with yarn, you can try listing both "arm64" and "x64" -in your ".yarnrc.yml" file using the "supportedArchitectures" feature: -https://yarnpkg.com/configuration/yarnrc/#supportedArchitectures -Keep in mind that this means multiple copies of esbuild will be present. -`; - } - throw new Error(` -You installed esbuild for another platform than the one you're currently using. -This won't work because esbuild is written with native code and needs to -install a platform-specific binary executable. -${suggestions} -Another alternative is to use the "esbuild-wasm" package instead, which works -the same way on all platforms. But it comes with a heavy performance cost and -can sometimes be 10x slower than the "esbuild" package, so you may also not -want to do that. -`); - } - throw new Error(`The package "${pkg}" could not be found, and is needed by esbuild. - -If you are installing esbuild with npm, make sure that you don't specify the -"--no-optional" or "--omit=optional" flags. The "optionalDependencies" feature -of "package.json" is used by esbuild to install the correct binary executable -for your current platform.`); - } - throw e2; - } - } - if (/\.zip\//.test(binPath)) { - let pnpapi; - try { - pnpapi = __require("pnpapi"); - } catch (e2) { - } - if (pnpapi) { - const root = pnpapi.getPackageInformation(pnpapi.topLevel).packageLocation; - const binTargetPath = path3.join( - root, - "node_modules", - ".cache", - "esbuild", - `pnpapi-${pkg.replace("/", "-")}-${"0.21.5"}-${path3.basename(subpath)}` - ); - if (!fs2.existsSync(binTargetPath)) { - fs2.mkdirSync(path3.dirname(binTargetPath), { recursive: true }); - fs2.copyFileSync(binPath, binTargetPath); - fs2.chmodSync(binTargetPath, 493); - } - return { binPath: binTargetPath, isWASM }; - } - } - return { binPath, isWASM }; - } - var child_process = require_child_process(); - var crypto2 = require_crypto(); - var path22 = require_path(); - var fs22 = require_fs(); - var os22 = require_os(); - var tty = require_tty(); - var worker_threads; - if (process.env.ESBUILD_WORKER_THREADS !== "0") { - try { - worker_threads = require_worker_threads(); - } catch { - } - let [major, minor] = process.versions.node.split("."); - if ( - // { - if ((!ESBUILD_BINARY_PATH || false) && (path22.basename(__filename) !== "main.js" || path22.basename(__dirname) !== "lib")) { - throw new Error( - `The esbuild JavaScript API cannot be bundled. Please mark the "esbuild" package as external so it's not included in the bundle. - -More information: The file containing the code for esbuild's JavaScript API (${__filename}) does not appear to be inside the esbuild package on the file system, which usually means that the esbuild package was bundled into another file. This is problematic because the API needs to run a binary executable inside the esbuild package which is located using a relative path from the API code to the executable. If the esbuild package is bundled, the relative path will be incorrect and the executable won't be found.` - ); - } - if (false) { - return ["node", [path22.join(__dirname, "..", "bin", "esbuild")]]; - } else { - const { binPath, isWASM } = generateBinPath(); - if (isWASM) { - return ["node", [binPath]]; - } else { - return [binPath, []]; - } - } - }; - var isTTY = () => tty.isatty(2); - var fsSync = { - readFile(tempFile, callback) { - try { - let contents = fs22.readFileSync(tempFile, "utf8"); - try { - fs22.unlinkSync(tempFile); - } catch { - } - callback(null, contents); - } catch (err2) { - callback(err2, null); - } - }, - writeFile(contents, callback) { - try { - let tempFile = randomFileName(); - fs22.writeFileSync(tempFile, contents); - callback(tempFile); - } catch { - callback(null); - } - } - }; - var fsAsync = { - readFile(tempFile, callback) { - try { - fs22.readFile(tempFile, "utf8", (err2, contents) => { - try { - fs22.unlink(tempFile, () => callback(err2, contents)); - } catch { - callback(err2, contents); - } - }); - } catch (err2) { - callback(err2, null); - } - }, - writeFile(contents, callback) { - try { - let tempFile = randomFileName(); - fs22.writeFile(tempFile, contents, (err2) => err2 !== null ? callback(null) : callback(tempFile)); - } catch { - callback(null); - } - } - }; - var version3 = "0.21.5"; - var build2 = (options2) => ensureServiceIsRunning().build(options2); - var context = (buildOptions) => ensureServiceIsRunning().context(buildOptions); - var transform2 = (input, options2) => ensureServiceIsRunning().transform(input, options2); - var formatMessages2 = (messages2, options2) => ensureServiceIsRunning().formatMessages(messages2, options2); - var analyzeMetafile = (messages2, options2) => ensureServiceIsRunning().analyzeMetafile(messages2, options2); - var buildSync = (options2) => { - if (worker_threads && !isInternalWorkerThread) { - if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads); - return workerThreadService.buildSync(options2); - } - let result; - runServiceSync((service) => service.buildOrContext({ - callName: "buildSync", - refs: null, - options: options2, - isTTY: isTTY(), - defaultWD, - callback: (err2, res) => { - if (err2) throw err2; - result = res; - } - })); - return result; - }; - var transformSync = (input, options2) => { - if (worker_threads && !isInternalWorkerThread) { - if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads); - return workerThreadService.transformSync(input, options2); - } - let result; - runServiceSync((service) => service.transform({ - callName: "transformSync", - refs: null, - input, - options: options2 || {}, - isTTY: isTTY(), - fs: fsSync, - callback: (err2, res) => { - if (err2) throw err2; - result = res; - } - })); - return result; - }; - var formatMessagesSync = (messages2, options2) => { - if (worker_threads && !isInternalWorkerThread) { - if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads); - return workerThreadService.formatMessagesSync(messages2, options2); - } - let result; - runServiceSync((service) => service.formatMessages({ - callName: "formatMessagesSync", - refs: null, - messages: messages2, - options: options2, - callback: (err2, res) => { - if (err2) throw err2; - result = res; - } - })); - return result; - }; - var analyzeMetafileSync = (metafile, options2) => { - if (worker_threads && !isInternalWorkerThread) { - if (!workerThreadService) workerThreadService = startWorkerThreadService(worker_threads); - return workerThreadService.analyzeMetafileSync(metafile, options2); - } - let result; - runServiceSync((service) => service.analyzeMetafile({ - callName: "analyzeMetafileSync", - refs: null, - metafile: typeof metafile === "string" ? metafile : JSON.stringify(metafile), - options: options2, - callback: (err2, res) => { - if (err2) throw err2; - result = res; - } - })); - return result; - }; - var stop = () => { - if (stopService) stopService(); - if (workerThreadService) workerThreadService.stop(); - return Promise.resolve(); - }; - var initializeWasCalled = false; - var initialize = (options2) => { - options2 = validateInitializeOptions(options2 || {}); - if (options2.wasmURL) throw new Error(`The "wasmURL" option only works in the browser`); - if (options2.wasmModule) throw new Error(`The "wasmModule" option only works in the browser`); - if (options2.worker) throw new Error(`The "worker" option only works in the browser`); - if (initializeWasCalled) throw new Error('Cannot call "initialize" more than once'); - ensureServiceIsRunning(); - initializeWasCalled = true; - return Promise.resolve(); - }; - var defaultWD = process.cwd(); - var longLivedService; - var stopService; - var ensureServiceIsRunning = () => { - if (longLivedService) return longLivedService; - let [command, args] = esbuildCommandAndArgs(); - let child = child_process.spawn(command, args.concat(`--service=${"0.21.5"}`, "--ping"), { - windowsHide: true, - stdio: ["pipe", "pipe", "inherit"], - cwd: defaultWD - }); - let { readFromStdout, afterClose, service } = createChannel({ - writeToStdin(bytes) { - child.stdin.write(bytes, (err2) => { - if (err2) afterClose(err2); - }); - }, - readFileSync: fs22.readFileSync, - isSync: false, - hasFS: true, - esbuild: node_exports - }); - child.stdin.on("error", afterClose); - child.on("error", afterClose); - const stdin = child.stdin; - const stdout = child.stdout; - stdout.on("data", readFromStdout); - stdout.on("end", afterClose); - stopService = () => { - stdin.destroy(); - stdout.destroy(); - child.kill(); - initializeWasCalled = false; - longLivedService = void 0; - stopService = void 0; - }; - let refCount = 0; - child.unref(); - if (stdin.unref) { - stdin.unref(); - } - if (stdout.unref) { - stdout.unref(); - } - const refs = { - ref() { - if (++refCount === 1) child.ref(); - }, - unref() { - if (--refCount === 0) child.unref(); - } - }; - longLivedService = { - build: (options2) => new Promise((resolve3, reject) => { - service.buildOrContext({ - callName: "build", - refs, - options: options2, - isTTY: isTTY(), - defaultWD, - callback: (err2, res) => err2 ? reject(err2) : resolve3(res) - }); - }), - context: (options2) => new Promise((resolve3, reject) => service.buildOrContext({ - callName: "context", - refs, - options: options2, - isTTY: isTTY(), - defaultWD, - callback: (err2, res) => err2 ? reject(err2) : resolve3(res) - })), - transform: (input, options2) => new Promise((resolve3, reject) => service.transform({ - callName: "transform", - refs, - input, - options: options2 || {}, - isTTY: isTTY(), - fs: fsAsync, - callback: (err2, res) => err2 ? reject(err2) : resolve3(res) - })), - formatMessages: (messages2, options2) => new Promise((resolve3, reject) => service.formatMessages({ - callName: "formatMessages", - refs, - messages: messages2, - options: options2, - callback: (err2, res) => err2 ? reject(err2) : resolve3(res) - })), - analyzeMetafile: (metafile, options2) => new Promise((resolve3, reject) => service.analyzeMetafile({ - callName: "analyzeMetafile", - refs, - metafile: typeof metafile === "string" ? metafile : JSON.stringify(metafile), - options: options2, - callback: (err2, res) => err2 ? reject(err2) : resolve3(res) - })) - }; - return longLivedService; - }; - var runServiceSync = (callback) => { - let [command, args] = esbuildCommandAndArgs(); - let stdin = new Uint8Array(); - let { readFromStdout, afterClose, service } = createChannel({ - writeToStdin(bytes) { - if (stdin.length !== 0) throw new Error("Must run at most one command"); - stdin = bytes; - }, - isSync: true, - hasFS: true, - esbuild: node_exports - }); - callback(service); - let stdout = child_process.execFileSync(command, args.concat(`--service=${"0.21.5"}`), { - cwd: defaultWD, - windowsHide: true, - input: stdin, - // We don't know how large the output could be. If it's too large, the - // command will fail with ENOBUFS. Reserve 16mb for now since that feels - // like it should be enough. Also allow overriding this with an environment - // variable. - maxBuffer: +process.env.ESBUILD_MAX_BUFFER || 16 * 1024 * 1024 - }); - readFromStdout(stdout); - afterClose(null); - }; - var randomFileName = () => { - return path22.join(os22.tmpdir(), `esbuild-${crypto2.randomBytes(32).toString("hex")}`); - }; - var workerThreadService = null; - var startWorkerThreadService = (worker_threads2) => { - let { port1: mainPort, port2: workerPort } = new worker_threads2.MessageChannel(); - let worker = new worker_threads2.Worker(__filename, { - workerData: { workerPort, defaultWD, esbuildVersion: "0.21.5" }, - transferList: [workerPort], - // From node's documentation: https://nodejs.org/api/worker_threads.html - // - // Take care when launching worker threads from preload scripts (scripts loaded - // and run using the `-r` command line flag). Unless the `execArgv` option is - // explicitly set, new Worker threads automatically inherit the command line flags - // from the running process and will preload the same preload scripts as the main - // thread. If the preload script unconditionally launches a worker thread, every - // thread spawned will spawn another until the application crashes. - // - execArgv: [] - }); - let nextID = 0; - let fakeBuildError = (text) => { - let error2 = new Error(`Build failed with 1 error: -error: ${text}`); - let errors = [{ id: "", pluginName: "", text, location: null, notes: [], detail: void 0 }]; - error2.errors = errors; - error2.warnings = []; - return error2; - }; - let validateBuildSyncOptions = (options2) => { - if (!options2) return; - let plugins2 = options2.plugins; - if (plugins2 && plugins2.length > 0) throw fakeBuildError(`Cannot use plugins in synchronous API calls`); - }; - let applyProperties = (object, properties) => { - for (let key in properties) { - object[key] = properties[key]; - } - }; - let runCallSync = (command, args) => { - let id = nextID++; - let sharedBuffer = new SharedArrayBuffer(8); - let sharedBufferView = new Int32Array(sharedBuffer); - let msg = { sharedBuffer, id, command, args }; - worker.postMessage(msg); - let status2 = Atomics.wait(sharedBufferView, 0, 0); - if (status2 !== "ok" && status2 !== "not-equal") throw new Error("Internal error: Atomics.wait() failed: " + status2); - let { message: { id: id2, resolve: resolve3, reject, properties } } = worker_threads2.receiveMessageOnPort(mainPort); - if (id !== id2) throw new Error(`Internal error: Expected id ${id} but got id ${id2}`); - if (reject) { - applyProperties(reject, properties); - throw reject; - } - return resolve3; - }; - worker.unref(); - return { - buildSync(options2) { - validateBuildSyncOptions(options2); - return runCallSync("build", [options2]); - }, - transformSync(input, options2) { - return runCallSync("transform", [input, options2]); - }, - formatMessagesSync(messages2, options2) { - return runCallSync("formatMessages", [messages2, options2]); - }, - analyzeMetafileSync(metafile, options2) { - return runCallSync("analyzeMetafile", [metafile, options2]); - }, - stop() { - worker.terminate(); - workerThreadService = null; - } - }; - }; - var startSyncServiceWorker = () => { - let workerPort = worker_threads.workerData.workerPort; - let parentPort = worker_threads.parentPort; - let extractProperties = (object) => { - let properties = {}; - if (object && typeof object === "object") { - for (let key in object) { - properties[key] = object[key]; - } - } - return properties; - }; - try { - let service = ensureServiceIsRunning(); - defaultWD = worker_threads.workerData.defaultWD; - parentPort.on("message", (msg) => { - (async () => { - let { sharedBuffer, id, command, args } = msg; - let sharedBufferView = new Int32Array(sharedBuffer); - try { - switch (command) { - case "build": - workerPort.postMessage({ id, resolve: await service.build(args[0]) }); - break; - case "transform": - workerPort.postMessage({ id, resolve: await service.transform(args[0], args[1]) }); - break; - case "formatMessages": - workerPort.postMessage({ id, resolve: await service.formatMessages(args[0], args[1]) }); - break; - case "analyzeMetafile": - workerPort.postMessage({ id, resolve: await service.analyzeMetafile(args[0], args[1]) }); - break; - default: - throw new Error(`Invalid command: ${command}`); - } - } catch (reject) { - workerPort.postMessage({ id, reject, properties: extractProperties(reject) }); - } - Atomics.add(sharedBufferView, 0, 1); - Atomics.notify(sharedBufferView, 0, Infinity); - })(); - }); - } catch (reject) { - parentPort.on("message", (msg) => { - let { sharedBuffer, id } = msg; - let sharedBufferView = new Int32Array(sharedBuffer); - workerPort.postMessage({ id, reject, properties: extractProperties(reject) }); - Atomics.add(sharedBufferView, 0, 1); - Atomics.notify(sharedBufferView, 0, Infinity); - }); - } - }; - if (isInternalWorkerThread) { - startSyncServiceWorker(); - } - var node_default = node_exports; - } -}); - -// browser-external:node:events -var require_node_events = __commonJS({ - "browser-external:node:events"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:events" has been externalized for browser compatibility. Cannot access "node:events.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:stream -var require_node_stream = __commonJS({ - "browser-external:node:stream"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:stream" has been externalized for browser compatibility. Cannot access "node:stream.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:string_decoder -var require_node_string_decoder = __commonJS({ - "browser-external:node:string_decoder"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:string_decoder" has been externalized for browser compatibility. Cannot access "node:string_decoder.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:child_process -var require_node_child_process = __commonJS({ - "browser-external:node:child_process"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:child_process" has been externalized for browser compatibility. Cannot access "node:child_process.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:net -var require_net = __commonJS({ - "browser-external:net"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "net" has been externalized for browser compatibility. Cannot access "net.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:http -var require_http = __commonJS({ - "browser-external:http"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "http" has been externalized for browser compatibility. Cannot access "http.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:crypto -var require_node_crypto = __commonJS({ - "browser-external:node:crypto"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:crypto" has been externalized for browser compatibility. Cannot access "node:crypto.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:dns -var require_node_dns = __commonJS({ - "browser-external:node:dns"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:dns" has been externalized for browser compatibility. Cannot access "node:dns.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:module -var require_module = __commonJS({ - "browser-external:module"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "module" has been externalized for browser compatibility. Cannot access "module.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:assert -var require_node_assert = __commonJS({ - "browser-external:node:assert"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:assert" has been externalized for browser compatibility. Cannot access "node:assert.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:v8 -var require_node_v8 = __commonJS({ - "browser-external:node:v8"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:v8" has been externalized for browser compatibility. Cannot access "node:v8.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:worker_threads -var require_node_worker_threads = __commonJS({ - "browser-external:node:worker_threads"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:worker_threads" has been externalized for browser compatibility. Cannot access "node:worker_threads.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:buffer -var require_node_buffer = __commonJS({ - "browser-external:node:buffer"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:buffer" has been externalized for browser compatibility. Cannot access "node:buffer.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:querystring -var require_querystring = __commonJS({ - "browser-external:querystring"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "querystring" has been externalized for browser compatibility. Cannot access "querystring.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:readline -var require_node_readline = __commonJS({ - "browser-external:node:readline"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:readline" has been externalized for browser compatibility. Cannot access "node:readline.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:zlib -var require_zlib = __commonJS({ - "browser-external:zlib"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "zlib" has been externalized for browser compatibility. Cannot access "zlib.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:buffer -var require_buffer = __commonJS({ - "browser-external:buffer"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "buffer" has been externalized for browser compatibility. Cannot access "buffer.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:https -var require_https = __commonJS({ - "browser-external:https"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "https" has been externalized for browser compatibility. Cannot access "https.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:tls -var require_tls = __commonJS({ - "browser-external:tls"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "tls" has been externalized for browser compatibility. Cannot access "tls.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:assert -var require_assert = __commonJS({ - "browser-external:assert"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "assert" has been externalized for browser compatibility. Cannot access "assert.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// browser-external:node:zlib -var require_node_zlib = __commonJS({ - "browser-external:node:zlib"(exports2, module) { - module.exports = Object.create(new Proxy({}, { - get(_, key) { - if (key !== "__esModule" && key !== "__proto__" && key !== "constructor" && key !== "splice") { - console.warn(`Module "node:zlib" has been externalized for browser compatibility. Cannot access "node:zlib.${key}" in client code. See https://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`); - } - } - })); - } -}); - -// node_modules/rollup/dist/es/parseAst.js -var import_native = __toESM(require_native()); -var import_node_path = __toESM(require_node_path()); - -// node_modules/vite/dist/node/constants.js -var import_node_path2 = __toESM(require_node_path(), 1); -var import_node_url = __toESM(require_node_url(), 1); -var import_node_fs = __toESM(require_node_fs(), 1); -var { version } = JSON.parse( - (0, import_node_fs.readFileSync)(new URL("../../package.json", import.meta.url)).toString() -); -var VERSION = version; -var DEFAULT_MAIN_FIELDS = [ - "browser", - "module", - "jsnext:main", - // moment still uses this... - "jsnext" -]; -var ESBUILD_MODULES_TARGET = [ - "es2020", - // support import.meta.url - "edge88", - "firefox78", - "chrome87", - "safari14" -]; -var DEFAULT_EXTENSIONS = [ - ".mjs", - ".js", - ".mts", - ".ts", - ".jsx", - ".tsx", - ".json" -]; -var DEFAULT_CONFIG_FILES = [ - "vite.config.js", - "vite.config.mjs", - "vite.config.ts", - "vite.config.cjs", - "vite.config.mts", - "vite.config.cts" -]; -var JS_TYPES_RE = /\.(?:j|t)sx?$|\.mjs$/; -var CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/; -var OPTIMIZABLE_ENTRY_RE = /\.[cm]?[jt]s$/; -var SPECIAL_QUERY_RE = /[?&](?:worker|sharedworker|raw|url)\b/; -var FS_PREFIX = `/@fs/`; -var CLIENT_PUBLIC_PATH = `/@vite/client`; -var ENV_PUBLIC_PATH = `/@vite/env`; -var VITE_PACKAGE_DIR = (0, import_node_path2.resolve)( - // import.meta.url is `dist/node/constants.js` after bundle - (0, import_node_url.fileURLToPath)(import.meta.url), - "../../.." -); -var CLIENT_ENTRY = (0, import_node_path2.resolve)(VITE_PACKAGE_DIR, "dist/client/client.mjs"); -var ENV_ENTRY = (0, import_node_path2.resolve)(VITE_PACKAGE_DIR, "dist/client/env.mjs"); -var CLIENT_DIR = import_node_path2.default.dirname(CLIENT_ENTRY); -var KNOWN_ASSET_TYPES = [ - // images - "apng", - "bmp", - "png", - "jpe?g", - "jfif", - "pjpeg", - "pjp", - "gif", - "svg", - "ico", - "webp", - "avif", - // media - "mp4", - "webm", - "ogg", - "mp3", - "wav", - "flac", - "aac", - "opus", - "mov", - "m4a", - "vtt", - // fonts - "woff2?", - "eot", - "ttf", - "otf", - // other - "webmanifest", - "pdf", - "txt" -]; -var DEFAULT_ASSETS_RE = new RegExp( - `\\.(` + KNOWN_ASSET_TYPES.join("|") + `)(\\?.*)?$` -); -var DEP_VERSION_RE = /[?&](v=[\w.-]+)\b/; -var loopbackHosts = /* @__PURE__ */ new Set([ - "localhost", - "127.0.0.1", - "::1", - "0000:0000:0000:0000:0000:0000:0000:0001" -]); -var wildcardHosts = /* @__PURE__ */ new Set([ - "0.0.0.0", - "::", - "0000:0000:0000:0000:0000:0000:0000:0000" -]); -var DEFAULT_DEV_PORT = 5173; -var DEFAULT_PREVIEW_PORT = 4173; -var DEFAULT_ASSETS_INLINE_LIMIT = 4096; -var METADATA_FILENAME = "_metadata.json"; - -// node_modules/vite/dist/node/chunks/dep-mCdpKltl.js -var fs$j = __toESM(require_node_fs(), 1); -var import_node_fs2 = __toESM(require_node_fs(), 1); -var import_promises = __toESM(require_promises(), 1); -var import_node_path3 = __toESM(require_node_path(), 1); -var import_node_url2 = __toESM(require_node_url(), 1); -var import_node_util = __toESM(require_node_util(), 1); -var import_node_perf_hooks = __toESM(require_node_perf_hooks(), 1); -var import_node_module = __toESM(require_node_module(), 1); -var import_tty = __toESM(require_tty(), 1); -var import_path = __toESM(require_path(), 1); -var import_esbuild = __toESM(require_main(), 1); -var require$$0$2 = __toESM(require_fs(), 1); -var import_fs = __toESM(require_fs(), 1); -var import_node_events = __toESM(require_node_events(), 1); -var import_node_stream = __toESM(require_node_stream(), 1); -var import_node_string_decoder = __toESM(require_node_string_decoder(), 1); -var import_node_child_process = __toESM(require_node_child_process(), 1); -var import_node_http = __toESM(require_node_http(), 1); -var import_node_https = __toESM(require_node_https(), 1); -var import_util = __toESM(require_util(), 1); -var import_net = __toESM(require_net(), 1); -var import_events = __toESM(require_events(), 1); -var import_url = __toESM(require_url(), 1); -var import_http = __toESM(require_http(), 1); -var import_stream = __toESM(require_stream(), 1); -var import_os = __toESM(require_os(), 1); -var import_child_process = __toESM(require_child_process(), 1); -var import_node_os = __toESM(require_node_os(), 1); -var import_node_crypto = __toESM(require_node_crypto(), 1); -var import_node_dns = __toESM(require_node_dns(), 1); -var import_crypto = __toESM(require_crypto(), 1); -var import_module = __toESM(require_module(), 1); -var import_node_assert = __toESM(require_node_assert(), 1); -var import_node_v8 = __toESM(require_node_v8(), 1); -var import_node_worker_threads = __toESM(require_node_worker_threads(), 1); -var import_node_buffer = __toESM(require_node_buffer(), 1); -var qs = __toESM(require_querystring(), 1); -var import_node_readline = __toESM(require_node_readline(), 1); -var import_zlib = __toESM(require_zlib(), 1); -var import_buffer = __toESM(require_buffer(), 1); -var import_https = __toESM(require_https(), 1); -var import_tls = __toESM(require_tls(), 1); -var import_assert = __toESM(require_assert(), 1); -var import_node_zlib = __toESM(require_node_zlib(), 1); -var import_node_url3 = __toESM(require_node_url(), 1); -var import_node_path4 = __toESM(require_node_path(), 1); -var import_node_module2 = __toESM(require_node_module(), 1); -var __filename2 = (0, import_node_url3.fileURLToPath)(import.meta.url); -var __dirname2 = (0, import_node_path4.dirname)(__filename2); -var require2 = (0, import_node_module2.createRequire)(import.meta.url); -var __require2 = require2; -var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; -function getDefaultExportFromCjs(x) { - return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x; -} -function getAugmentedNamespace(n2) { - if (n2.__esModule) return n2; - var f2 = n2.default; - if (typeof f2 == "function") { - var a = function a2() { - if (this instanceof a2) { - return Reflect.construct(f2, arguments, this.constructor); - } - return f2.apply(this, arguments); - }; - a.prototype = f2.prototype; - } else a = {}; - Object.defineProperty(a, "__esModule", { value: true }); - Object.keys(n2).forEach(function(k) { - var d = Object.getOwnPropertyDescriptor(n2, k); - Object.defineProperty(a, k, d.get ? d : { - enumerable: true, - get: function() { - return n2[k]; - } - }); - }); - return a; -} -function commonjsRequire(path3) { - throw new Error('Could not dynamically require "' + path3 + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); -} -var picocolors = { exports: {} }; -var argv = process.argv || []; -var env$1 = process.env; -var isColorSupported = !("NO_COLOR" in env$1 || argv.includes("--no-color")) && ("FORCE_COLOR" in env$1 || argv.includes("--color") || process.platform === "win32" || commonjsRequire != null && import_tty.default.isatty(1) && env$1.TERM !== "dumb" || "CI" in env$1); -var formatter = (open2, close2, replace = open2) => (input) => { - let string2 = "" + input; - let index = string2.indexOf(close2, open2.length); - return ~index ? open2 + replaceClose(string2, close2, replace, index) + close2 : open2 + string2 + close2; -}; -var replaceClose = (string2, close2, replace, index) => { - let result = ""; - let cursor = 0; - do { - result += string2.substring(cursor, index) + replace; - cursor = index + close2.length; - index = string2.indexOf(close2, cursor); - } while (~index); - return result + string2.substring(cursor); -}; -var createColors = (enabled = isColorSupported) => { - let init2 = enabled ? formatter : () => String; - return { - isColorSupported: enabled, - reset: init2("\x1B[0m", "\x1B[0m"), - bold: init2("\x1B[1m", "\x1B[22m", "\x1B[22m\x1B[1m"), - dim: init2("\x1B[2m", "\x1B[22m", "\x1B[22m\x1B[2m"), - italic: init2("\x1B[3m", "\x1B[23m"), - underline: init2("\x1B[4m", "\x1B[24m"), - inverse: init2("\x1B[7m", "\x1B[27m"), - hidden: init2("\x1B[8m", "\x1B[28m"), - strikethrough: init2("\x1B[9m", "\x1B[29m"), - black: init2("\x1B[30m", "\x1B[39m"), - red: init2("\x1B[31m", "\x1B[39m"), - green: init2("\x1B[32m", "\x1B[39m"), - yellow: init2("\x1B[33m", "\x1B[39m"), - blue: init2("\x1B[34m", "\x1B[39m"), - magenta: init2("\x1B[35m", "\x1B[39m"), - cyan: init2("\x1B[36m", "\x1B[39m"), - white: init2("\x1B[37m", "\x1B[39m"), - gray: init2("\x1B[90m", "\x1B[39m"), - bgBlack: init2("\x1B[40m", "\x1B[49m"), - bgRed: init2("\x1B[41m", "\x1B[49m"), - bgGreen: init2("\x1B[42m", "\x1B[49m"), - bgYellow: init2("\x1B[43m", "\x1B[49m"), - bgBlue: init2("\x1B[44m", "\x1B[49m"), - bgMagenta: init2("\x1B[45m", "\x1B[49m"), - bgCyan: init2("\x1B[46m", "\x1B[49m"), - bgWhite: init2("\x1B[47m", "\x1B[49m") - }; -}; -picocolors.exports = createColors(); -picocolors.exports.createColors = createColors; -var picocolorsExports = picocolors.exports; -var colors$1 = getDefaultExportFromCjs(picocolorsExports); -function matches$1(pattern2, importee) { - if (pattern2 instanceof RegExp) { - return pattern2.test(importee); - } - if (importee.length < pattern2.length) { - return false; - } - if (importee === pattern2) { - return true; - } - return importee.startsWith(pattern2 + "/"); -} -function getEntries({ entries, customResolver }) { - if (!entries) { - return []; - } - const resolverFunctionFromOptions = resolveCustomResolver(customResolver); - if (Array.isArray(entries)) { - return entries.map((entry2) => { - return { - find: entry2.find, - replacement: entry2.replacement, - resolverFunction: resolveCustomResolver(entry2.customResolver) || resolverFunctionFromOptions - }; - }); - } - return Object.entries(entries).map(([key, value2]) => { - return { find: key, replacement: value2, resolverFunction: resolverFunctionFromOptions }; - }); -} -function getHookFunction(hook) { - if (typeof hook === "function") { - return hook; - } - if (hook && "handler" in hook && typeof hook.handler === "function") { - return hook.handler; - } - return null; -} -function resolveCustomResolver(customResolver) { - if (typeof customResolver === "function") { - return customResolver; - } - if (customResolver) { - return getHookFunction(customResolver.resolveId); - } - return null; -} -function alias$1(options2 = {}) { - const entries = getEntries(options2); - if (entries.length === 0) { - return { - name: "alias", - resolveId: () => null - }; - } - return { - name: "alias", - async buildStart(inputOptions) { - await Promise.all([...Array.isArray(options2.entries) ? options2.entries : [], options2].map(({ customResolver }) => { - var _a4; - return customResolver && ((_a4 = getHookFunction(customResolver.buildStart)) === null || _a4 === void 0 ? void 0 : _a4.call(this, inputOptions)); - })); - }, - resolveId(importee, importer, resolveOptions) { - const matchedEntry = entries.find((entry2) => matches$1(entry2.find, importee)); - if (!matchedEntry) { - return null; - } - const updatedId = importee.replace(matchedEntry.find, matchedEntry.replacement); - if (matchedEntry.resolverFunction) { - return matchedEntry.resolverFunction.call(this, updatedId, importer, resolveOptions); - } - return this.resolve(updatedId, importer, Object.assign({ skipSelf: true }, resolveOptions)).then((resolved) => { - if (resolved) - return resolved; - if (!import_path.default.isAbsolute(updatedId)) { - this.warn(`rewrote ${importee} to ${updatedId} but was not an abolute path and was not handled by other plugins. This will lead to duplicated modules for the same path. To avoid duplicating modules, you should resolve to an absolute path.`); - } - return { id: updatedId }; - }); - } - }; -} -var VALID_ID_PREFIX = `/@id/`; -var NULL_BYTE_PLACEHOLDER = `__x00__`; -var SOURCEMAPPING_URL = "sourceMa"; -SOURCEMAPPING_URL += "ppingURL"; -var VITE_RUNTIME_SOURCEMAPPING_SOURCE = "//# sourceMappingSource=vite-runtime"; -var isWindows$3 = typeof process !== "undefined" && process.platform === "win32"; -function wrapId$1(id) { - return id.startsWith(VALID_ID_PREFIX) ? id : VALID_ID_PREFIX + id.replace("\0", NULL_BYTE_PLACEHOLDER); -} -function unwrapId$1(id) { - return id.startsWith(VALID_ID_PREFIX) ? id.slice(VALID_ID_PREFIX.length).replace(NULL_BYTE_PLACEHOLDER, "\0") : id; -} -var windowsSlashRE = /\\/g; -function slash$1(p) { - return p.replace(windowsSlashRE, "/"); -} -var postfixRE = /[?#].*$/; -function cleanUrl(url2) { - return url2.replace(postfixRE, ""); -} -function withTrailingSlash(path3) { - if (path3[path3.length - 1] !== "/") { - return `${path3}/`; - } - return path3; -} -var AsyncFunction = (async function() { -}).constructor; -var asyncFunctionDeclarationPaddingLineCount = (() => { - const body = "/*code*/"; - const source = new AsyncFunction("a", "b", body).toString(); - return source.slice(0, source.indexOf(body)).split("\n").length - 1; -})(); -var WalkerBase$1 = class WalkerBase { - constructor() { - this.should_skip = false; - this.should_remove = false; - this.replacement = null; - this.context = { - skip: () => this.should_skip = true, - remove: () => this.should_remove = true, - replace: (node2) => this.replacement = node2 - }; - } - /** - * - * @param {any} parent - * @param {string} prop - * @param {number} index - * @param {BaseNode} node - */ - replace(parent, prop, index, node2) { - if (parent) { - if (index !== null) { - parent[prop][index] = node2; - } else { - parent[prop] = node2; - } - } - } - /** - * - * @param {any} parent - * @param {string} prop - * @param {number} index - */ - remove(parent, prop, index) { - if (parent) { - if (index !== null) { - parent[prop].splice(index, 1); - } else { - delete parent[prop]; - } - } - } -}; -var SyncWalker$1 = class SyncWalker extends WalkerBase$1 { - /** - * - * @param {SyncHandler} enter - * @param {SyncHandler} leave - */ - constructor(enter, leave) { - super(); - this.enter = enter; - this.leave = leave; - } - /** - * - * @param {BaseNode} node - * @param {BaseNode} parent - * @param {string} [prop] - * @param {number} [index] - * @returns {BaseNode} - */ - visit(node2, parent, prop, index) { - if (node2) { - if (this.enter) { - const _should_skip = this.should_skip; - const _should_remove = this.should_remove; - const _replacement = this.replacement; - this.should_skip = false; - this.should_remove = false; - this.replacement = null; - this.enter.call(this.context, node2, parent, prop, index); - if (this.replacement) { - node2 = this.replacement; - this.replace(parent, prop, index, node2); - } - if (this.should_remove) { - this.remove(parent, prop, index); - } - const skipped = this.should_skip; - const removed = this.should_remove; - this.should_skip = _should_skip; - this.should_remove = _should_remove; - this.replacement = _replacement; - if (skipped) return node2; - if (removed) return null; - } - for (const key in node2) { - const value2 = node2[key]; - if (typeof value2 !== "object") { - continue; - } else if (Array.isArray(value2)) { - for (let i = 0; i < value2.length; i += 1) { - if (value2[i] !== null && typeof value2[i].type === "string") { - if (!this.visit(value2[i], node2, key, i)) { - i--; - } - } - } - } else if (value2 !== null && typeof value2.type === "string") { - this.visit(value2, node2, key, null); - } - } - if (this.leave) { - const _replacement = this.replacement; - const _should_remove = this.should_remove; - this.replacement = null; - this.should_remove = false; - this.leave.call(this.context, node2, parent, prop, index); - if (this.replacement) { - node2 = this.replacement; - this.replace(parent, prop, index, node2); - } - if (this.should_remove) { - this.remove(parent, prop, index); - } - const removed = this.should_remove; - this.replacement = _replacement; - this.should_remove = _should_remove; - if (removed) return null; - } - } - return node2; - } -}; -function walk$3(ast, { enter, leave }) { - const instance = new SyncWalker$1(enter, leave); - return instance.visit(ast, null); -} -var utils$k = {}; -var path$m = import_path.default; -var WIN_SLASH = "\\\\/"; -var WIN_NO_SLASH = `[^${WIN_SLASH}]`; -var DOT_LITERAL = "\\."; -var PLUS_LITERAL = "\\+"; -var QMARK_LITERAL = "\\?"; -var SLASH_LITERAL = "\\/"; -var ONE_CHAR = "(?=.)"; -var QMARK = "[^/]"; -var END_ANCHOR = `(?:${SLASH_LITERAL}|$)`; -var START_ANCHOR = `(?:^|${SLASH_LITERAL})`; -var DOTS_SLASH = `${DOT_LITERAL}{1,2}${END_ANCHOR}`; -var NO_DOT = `(?!${DOT_LITERAL})`; -var NO_DOTS = `(?!${START_ANCHOR}${DOTS_SLASH})`; -var NO_DOT_SLASH = `(?!${DOT_LITERAL}{0,1}${END_ANCHOR})`; -var NO_DOTS_SLASH = `(?!${DOTS_SLASH})`; -var QMARK_NO_DOT = `[^.${SLASH_LITERAL}]`; -var STAR$1 = `${QMARK}*?`; -var POSIX_CHARS = { - DOT_LITERAL, - PLUS_LITERAL, - QMARK_LITERAL, - SLASH_LITERAL, - ONE_CHAR, - QMARK, - END_ANCHOR, - DOTS_SLASH, - NO_DOT, - NO_DOTS, - NO_DOT_SLASH, - NO_DOTS_SLASH, - QMARK_NO_DOT, - STAR: STAR$1, - START_ANCHOR -}; -var WINDOWS_CHARS = { - ...POSIX_CHARS, - SLASH_LITERAL: `[${WIN_SLASH}]`, - QMARK: WIN_NO_SLASH, - STAR: `${WIN_NO_SLASH}*?`, - DOTS_SLASH: `${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$)`, - NO_DOT: `(?!${DOT_LITERAL})`, - NO_DOTS: `(?!(?:^|[${WIN_SLASH}])${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - NO_DOT_SLASH: `(?!${DOT_LITERAL}{0,1}(?:[${WIN_SLASH}]|$))`, - NO_DOTS_SLASH: `(?!${DOT_LITERAL}{1,2}(?:[${WIN_SLASH}]|$))`, - QMARK_NO_DOT: `[^.${WIN_SLASH}]`, - START_ANCHOR: `(?:^|[${WIN_SLASH}])`, - END_ANCHOR: `(?:[${WIN_SLASH}]|$)` -}; -var POSIX_REGEX_SOURCE$1 = { - alnum: "a-zA-Z0-9", - alpha: "a-zA-Z", - ascii: "\\x00-\\x7F", - blank: " \\t", - cntrl: "\\x00-\\x1F\\x7F", - digit: "0-9", - graph: "\\x21-\\x7E", - lower: "a-z", - print: "\\x20-\\x7E ", - punct: "\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~", - space: " \\t\\r\\n\\v\\f", - upper: "A-Z", - word: "A-Za-z0-9_", - xdigit: "A-Fa-f0-9" -}; -var constants$6 = { - MAX_LENGTH: 1024 * 64, - POSIX_REGEX_SOURCE: POSIX_REGEX_SOURCE$1, - // regular expressions - REGEX_BACKSLASH: /\\(?![*+?^${}(|)[\]])/g, - REGEX_NON_SPECIAL_CHARS: /^[^@![\].,$*+?^{}()|\\/]+/, - REGEX_SPECIAL_CHARS: /[-*+?.^${}(|)[\]]/, - REGEX_SPECIAL_CHARS_BACKREF: /(\\?)((\W)(\3*))/g, - REGEX_SPECIAL_CHARS_GLOBAL: /([-*+?.^${}(|)[\]])/g, - REGEX_REMOVE_BACKSLASH: /(?:\[.*?[^\\]\]|\\(?=.))/g, - // Replace globs with equivalent patterns to reduce parsing time. - REPLACEMENTS: { - "***": "*", - "**/**": "**", - "**/**/**": "**" - }, - // Digits - CHAR_0: 48, - /* 0 */ - CHAR_9: 57, - /* 9 */ - // Alphabet chars. - CHAR_UPPERCASE_A: 65, - /* A */ - CHAR_LOWERCASE_A: 97, - /* a */ - CHAR_UPPERCASE_Z: 90, - /* Z */ - CHAR_LOWERCASE_Z: 122, - /* z */ - CHAR_LEFT_PARENTHESES: 40, - /* ( */ - CHAR_RIGHT_PARENTHESES: 41, - /* ) */ - CHAR_ASTERISK: 42, - /* * */ - // Non-alphabetic chars. - CHAR_AMPERSAND: 38, - /* & */ - CHAR_AT: 64, - /* @ */ - CHAR_BACKWARD_SLASH: 92, - /* \ */ - CHAR_CARRIAGE_RETURN: 13, - /* \r */ - CHAR_CIRCUMFLEX_ACCENT: 94, - /* ^ */ - CHAR_COLON: 58, - /* : */ - CHAR_COMMA: 44, - /* , */ - CHAR_DOT: 46, - /* . */ - CHAR_DOUBLE_QUOTE: 34, - /* " */ - CHAR_EQUAL: 61, - /* = */ - CHAR_EXCLAMATION_MARK: 33, - /* ! */ - CHAR_FORM_FEED: 12, - /* \f */ - CHAR_FORWARD_SLASH: 47, - /* / */ - CHAR_GRAVE_ACCENT: 96, - /* ` */ - CHAR_HASH: 35, - /* # */ - CHAR_HYPHEN_MINUS: 45, - /* - */ - CHAR_LEFT_ANGLE_BRACKET: 60, - /* < */ - CHAR_LEFT_CURLY_BRACE: 123, - /* { */ - CHAR_LEFT_SQUARE_BRACKET: 91, - /* [ */ - CHAR_LINE_FEED: 10, - /* \n */ - CHAR_NO_BREAK_SPACE: 160, - /* \u00A0 */ - CHAR_PERCENT: 37, - /* % */ - CHAR_PLUS: 43, - /* + */ - CHAR_QUESTION_MARK: 63, - /* ? */ - CHAR_RIGHT_ANGLE_BRACKET: 62, - /* > */ - CHAR_RIGHT_CURLY_BRACE: 125, - /* } */ - CHAR_RIGHT_SQUARE_BRACKET: 93, - /* ] */ - CHAR_SEMICOLON: 59, - /* ; */ - CHAR_SINGLE_QUOTE: 39, - /* ' */ - CHAR_SPACE: 32, - /* */ - CHAR_TAB: 9, - /* \t */ - CHAR_UNDERSCORE: 95, - /* _ */ - CHAR_VERTICAL_LINE: 124, - /* | */ - CHAR_ZERO_WIDTH_NOBREAK_SPACE: 65279, - /* \uFEFF */ - SEP: path$m.sep, - /** - * Create EXTGLOB_CHARS - */ - extglobChars(chars2) { - return { - "!": { type: "negate", open: "(?:(?!(?:", close: `))${chars2.STAR})` }, - "?": { type: "qmark", open: "(?:", close: ")?" }, - "+": { type: "plus", open: "(?:", close: ")+" }, - "*": { type: "star", open: "(?:", close: ")*" }, - "@": { type: "at", open: "(?:", close: ")" } - }; - }, - /** - * Create GLOB_CHARS - */ - globChars(win322) { - return win322 === true ? WINDOWS_CHARS : POSIX_CHARS; - } -}; -(function(exports2) { - const path3 = import_path.default; - const win322 = process.platform === "win32"; - const { - REGEX_BACKSLASH, - REGEX_REMOVE_BACKSLASH, - REGEX_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_GLOBAL - } = constants$6; - exports2.isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val); - exports2.hasRegexChars = (str) => REGEX_SPECIAL_CHARS.test(str); - exports2.isRegexChar = (str) => str.length === 1 && exports2.hasRegexChars(str); - exports2.escapeRegex = (str) => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, "\\$1"); - exports2.toPosixSlashes = (str) => str.replace(REGEX_BACKSLASH, "/"); - exports2.removeBackslashes = (str) => { - return str.replace(REGEX_REMOVE_BACKSLASH, (match2) => { - return match2 === "\\" ? "" : match2; - }); - }; - exports2.supportsLookbehinds = () => { - const segs = process.version.slice(1).split(".").map(Number); - if (segs.length === 3 && segs[0] >= 9 || segs[0] === 8 && segs[1] >= 10) { - return true; - } - return false; - }; - exports2.isWindows = (options2) => { - if (options2 && typeof options2.windows === "boolean") { - return options2.windows; - } - return win322 === true || path3.sep === "\\"; - }; - exports2.escapeLast = (input, char, lastIdx) => { - const idx = input.lastIndexOf(char, lastIdx); - if (idx === -1) return input; - if (input[idx - 1] === "\\") return exports2.escapeLast(input, char, idx - 1); - return `${input.slice(0, idx)}\\${input.slice(idx)}`; - }; - exports2.removePrefix = (input, state = {}) => { - let output = input; - if (output.startsWith("./")) { - output = output.slice(2); - state.prefix = "./"; - } - return output; - }; - exports2.wrapOutput = (input, state = {}, options2 = {}) => { - const prepend = options2.contains ? "" : "^"; - const append2 = options2.contains ? "" : "$"; - let output = `${prepend}(?:${input})${append2}`; - if (state.negated === true) { - output = `(?:^(?!${output}).*$)`; - } - return output; - }; -})(utils$k); -var utils$j = utils$k; -var { - CHAR_ASTERISK, - /* * */ - CHAR_AT, - /* @ */ - CHAR_BACKWARD_SLASH, - /* \ */ - CHAR_COMMA: CHAR_COMMA$1, - /* , */ - CHAR_DOT: CHAR_DOT$1, - /* . */ - CHAR_EXCLAMATION_MARK, - /* ! */ - CHAR_FORWARD_SLASH, - /* / */ - CHAR_LEFT_CURLY_BRACE: CHAR_LEFT_CURLY_BRACE$1, - /* { */ - CHAR_LEFT_PARENTHESES: CHAR_LEFT_PARENTHESES$1, - /* ( */ - CHAR_LEFT_SQUARE_BRACKET: CHAR_LEFT_SQUARE_BRACKET$1, - /* [ */ - CHAR_PLUS, - /* + */ - CHAR_QUESTION_MARK, - /* ? */ - CHAR_RIGHT_CURLY_BRACE: CHAR_RIGHT_CURLY_BRACE$1, - /* } */ - CHAR_RIGHT_PARENTHESES: CHAR_RIGHT_PARENTHESES$1, - /* ) */ - CHAR_RIGHT_SQUARE_BRACKET: CHAR_RIGHT_SQUARE_BRACKET$1 - /* ] */ -} = constants$6; -var isPathSeparator = (code) => { - return code === CHAR_FORWARD_SLASH || code === CHAR_BACKWARD_SLASH; -}; -var depth = (token) => { - if (token.isPrefix !== true) { - token.depth = token.isGlobstar ? Infinity : 1; - } -}; -var scan$2 = (input, options2) => { - const opts = options2 || {}; - const length = input.length - 1; - const scanToEnd = opts.parts === true || opts.scanToEnd === true; - const slashes = []; - const tokens = []; - const parts = []; - let str = input; - let index = -1; - let start = 0; - let lastIndex = 0; - let isBrace = false; - let isBracket = false; - let isGlob3 = false; - let isExtglob3 = false; - let isGlobstar = false; - let braceEscaped = false; - let backslashes = false; - let negated = false; - let negatedExtglob = false; - let finished = false; - let braces2 = 0; - let prev; - let code; - let token = { value: "", depth: 0, isGlob: false }; - const eos = () => index >= length; - const peek = () => str.charCodeAt(index + 1); - const advance = () => { - prev = code; - return str.charCodeAt(++index); - }; - while (index < length) { - code = advance(); - let next; - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - if (code === CHAR_LEFT_CURLY_BRACE$1) { - braceEscaped = true; - } - continue; - } - if (braceEscaped === true || code === CHAR_LEFT_CURLY_BRACE$1) { - braces2++; - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (code === CHAR_LEFT_CURLY_BRACE$1) { - braces2++; - continue; - } - if (braceEscaped !== true && code === CHAR_DOT$1 && (code = advance()) === CHAR_DOT$1) { - isBrace = token.isBrace = true; - isGlob3 = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (braceEscaped !== true && code === CHAR_COMMA$1) { - isBrace = token.isBrace = true; - isGlob3 = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_RIGHT_CURLY_BRACE$1) { - braces2--; - if (braces2 === 0) { - braceEscaped = false; - isBrace = token.isBrace = true; - finished = true; - break; - } - } - } - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_FORWARD_SLASH) { - slashes.push(index); - tokens.push(token); - token = { value: "", depth: 0, isGlob: false }; - if (finished === true) continue; - if (prev === CHAR_DOT$1 && index === start + 1) { - start += 2; - continue; - } - lastIndex = index + 1; - continue; - } - if (opts.noext !== true) { - const isExtglobChar = code === CHAR_PLUS || code === CHAR_AT || code === CHAR_ASTERISK || code === CHAR_QUESTION_MARK || code === CHAR_EXCLAMATION_MARK; - if (isExtglobChar === true && peek() === CHAR_LEFT_PARENTHESES$1) { - isGlob3 = token.isGlob = true; - isExtglob3 = token.isExtglob = true; - finished = true; - if (code === CHAR_EXCLAMATION_MARK && index === start) { - negatedExtglob = true; - } - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES$1) { - isGlob3 = token.isGlob = true; - finished = true; - break; - } - } - continue; - } - break; - } - } - if (code === CHAR_ASTERISK) { - if (prev === CHAR_ASTERISK) isGlobstar = token.isGlobstar = true; - isGlob3 = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_QUESTION_MARK) { - isGlob3 = token.isGlob = true; - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - if (code === CHAR_LEFT_SQUARE_BRACKET$1) { - while (eos() !== true && (next = advance())) { - if (next === CHAR_BACKWARD_SLASH) { - backslashes = token.backslashes = true; - advance(); - continue; - } - if (next === CHAR_RIGHT_SQUARE_BRACKET$1) { - isBracket = token.isBracket = true; - isGlob3 = token.isGlob = true; - finished = true; - break; - } - } - if (scanToEnd === true) { - continue; - } - break; - } - if (opts.nonegate !== true && code === CHAR_EXCLAMATION_MARK && index === start) { - negated = token.negated = true; - start++; - continue; - } - if (opts.noparen !== true && code === CHAR_LEFT_PARENTHESES$1) { - isGlob3 = token.isGlob = true; - if (scanToEnd === true) { - while (eos() !== true && (code = advance())) { - if (code === CHAR_LEFT_PARENTHESES$1) { - backslashes = token.backslashes = true; - code = advance(); - continue; - } - if (code === CHAR_RIGHT_PARENTHESES$1) { - finished = true; - break; - } - } - continue; - } - break; - } - if (isGlob3 === true) { - finished = true; - if (scanToEnd === true) { - continue; - } - break; - } - } - if (opts.noext === true) { - isExtglob3 = false; - isGlob3 = false; - } - let base = str; - let prefix = ""; - let glob2 = ""; - if (start > 0) { - prefix = str.slice(0, start); - str = str.slice(start); - lastIndex -= start; - } - if (base && isGlob3 === true && lastIndex > 0) { - base = str.slice(0, lastIndex); - glob2 = str.slice(lastIndex); - } else if (isGlob3 === true) { - base = ""; - glob2 = str; - } else { - base = str; - } - if (base && base !== "" && base !== "/" && base !== str) { - if (isPathSeparator(base.charCodeAt(base.length - 1))) { - base = base.slice(0, -1); - } - } - if (opts.unescape === true) { - if (glob2) glob2 = utils$j.removeBackslashes(glob2); - if (base && backslashes === true) { - base = utils$j.removeBackslashes(base); - } - } - const state = { - prefix, - input, - start, - base, - glob: glob2, - isBrace, - isBracket, - isGlob: isGlob3, - isExtglob: isExtglob3, - isGlobstar, - negated, - negatedExtglob - }; - if (opts.tokens === true) { - state.maxDepth = 0; - if (!isPathSeparator(code)) { - tokens.push(token); - } - state.tokens = tokens; - } - if (opts.parts === true || opts.tokens === true) { - let prevIndex; - for (let idx = 0; idx < slashes.length; idx++) { - const n2 = prevIndex ? prevIndex + 1 : start; - const i = slashes[idx]; - const value2 = input.slice(n2, i); - if (opts.tokens) { - if (idx === 0 && start !== 0) { - tokens[idx].isPrefix = true; - tokens[idx].value = prefix; - } else { - tokens[idx].value = value2; - } - depth(tokens[idx]); - state.maxDepth += tokens[idx].depth; - } - if (idx !== 0 || value2 !== "") { - parts.push(value2); - } - prevIndex = i; - } - if (prevIndex && prevIndex + 1 < input.length) { - const value2 = input.slice(prevIndex + 1); - parts.push(value2); - if (opts.tokens) { - tokens[tokens.length - 1].value = value2; - depth(tokens[tokens.length - 1]); - state.maxDepth += tokens[tokens.length - 1].depth; - } - } - state.slashes = slashes; - state.parts = parts; - } - return state; -}; -var scan_1 = scan$2; -var constants$5 = constants$6; -var utils$i = utils$k; -var { - MAX_LENGTH: MAX_LENGTH$1, - POSIX_REGEX_SOURCE, - REGEX_NON_SPECIAL_CHARS, - REGEX_SPECIAL_CHARS_BACKREF, - REPLACEMENTS -} = constants$5; -var expandRange = (args, options2) => { - if (typeof options2.expandRange === "function") { - return options2.expandRange(...args, options2); - } - args.sort(); - const value2 = `[${args.join("-")}]`; - return value2; -}; -var syntaxError = (type, char) => { - return `Missing ${type}: "${char}" - use "\\\\${char}" to match literal characters`; -}; -var parse$g = (input, options2) => { - if (typeof input !== "string") { - throw new TypeError("Expected a string"); - } - input = REPLACEMENTS[input] || input; - const opts = { ...options2 }; - const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; - let len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); - } - const bos = { type: "bos", value: "", output: opts.prepend || "" }; - const tokens = [bos]; - const capture = opts.capture ? "" : "?:"; - const win322 = utils$i.isWindows(options2); - const PLATFORM_CHARS = constants$5.globChars(win322); - const EXTGLOB_CHARS = constants$5.extglobChars(PLATFORM_CHARS); - const { - DOT_LITERAL: DOT_LITERAL2, - PLUS_LITERAL: PLUS_LITERAL2, - SLASH_LITERAL: SLASH_LITERAL2, - ONE_CHAR: ONE_CHAR2, - DOTS_SLASH: DOTS_SLASH2, - NO_DOT: NO_DOT2, - NO_DOT_SLASH: NO_DOT_SLASH2, - NO_DOTS_SLASH: NO_DOTS_SLASH2, - QMARK: QMARK2, - QMARK_NO_DOT: QMARK_NO_DOT2, - STAR: STAR2, - START_ANCHOR: START_ANCHOR2 - } = PLATFORM_CHARS; - const globstar = (opts2) => { - return `(${capture}(?:(?!${START_ANCHOR2}${opts2.dot ? DOTS_SLASH2 : DOT_LITERAL2}).)*?)`; - }; - const nodot = opts.dot ? "" : NO_DOT2; - const qmarkNoDot = opts.dot ? QMARK2 : QMARK_NO_DOT2; - let star2 = opts.bash === true ? globstar(opts) : STAR2; - if (opts.capture) { - star2 = `(${star2})`; - } - if (typeof opts.noext === "boolean") { - opts.noextglob = opts.noext; - } - const state = { - input, - index: -1, - start: 0, - dot: opts.dot === true, - consumed: "", - output: "", - prefix: "", - backtrack: false, - negated: false, - brackets: 0, - braces: 0, - parens: 0, - quotes: 0, - globstar: false, - tokens - }; - input = utils$i.removePrefix(input, state); - len = input.length; - const extglobs = []; - const braces2 = []; - const stack = []; - let prev = bos; - let value2; - const eos = () => state.index === len - 1; - const peek = state.peek = (n2 = 1) => input[state.index + n2]; - const advance = state.advance = () => input[++state.index] || ""; - const remaining = () => input.slice(state.index + 1); - const consume = (value3 = "", num = 0) => { - state.consumed += value3; - state.index += num; - }; - const append2 = (token) => { - state.output += token.output != null ? token.output : token.value; - consume(token.value); - }; - const negate = () => { - let count = 1; - while (peek() === "!" && (peek(2) !== "(" || peek(3) === "?")) { - advance(); - state.start++; - count++; - } - if (count % 2 === 0) { - return false; - } - state.negated = true; - state.start++; - return true; - }; - const increment = (type) => { - state[type]++; - stack.push(type); - }; - const decrement = (type) => { - state[type]--; - stack.pop(); - }; - const push2 = (tok) => { - if (prev.type === "globstar") { - const isBrace = state.braces > 0 && (tok.type === "comma" || tok.type === "brace"); - const isExtglob3 = tok.extglob === true || extglobs.length && (tok.type === "pipe" || tok.type === "paren"); - if (tok.type !== "slash" && tok.type !== "paren" && !isBrace && !isExtglob3) { - state.output = state.output.slice(0, -prev.output.length); - prev.type = "star"; - prev.value = "*"; - prev.output = star2; - state.output += prev.output; - } - } - if (extglobs.length && tok.type !== "paren") { - extglobs[extglobs.length - 1].inner += tok.value; - } - if (tok.value || tok.output) append2(tok); - if (prev && prev.type === "text" && tok.type === "text") { - prev.value += tok.value; - prev.output = (prev.output || "") + tok.value; - return; - } - tok.prev = prev; - tokens.push(tok); - prev = tok; - }; - const extglobOpen = (type, value3) => { - const token = { ...EXTGLOB_CHARS[value3], conditions: 1, inner: "" }; - token.prev = prev; - token.parens = state.parens; - token.output = state.output; - const output = (opts.capture ? "(" : "") + token.open; - increment("parens"); - push2({ type, value: value3, output: state.output ? "" : ONE_CHAR2 }); - push2({ type: "paren", extglob: true, value: advance(), output }); - extglobs.push(token); - }; - const extglobClose = (token) => { - let output = token.close + (opts.capture ? ")" : ""); - let rest; - if (token.type === "negate") { - let extglobStar = star2; - if (token.inner && token.inner.length > 1 && token.inner.includes("/")) { - extglobStar = globstar(opts); - } - if (extglobStar !== star2 || eos() || /^\)+$/.test(remaining())) { - output = token.close = `)$))${extglobStar}`; - } - if (token.inner.includes("*") && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) { - const expression = parse$g(rest, { ...options2, fastpaths: false }).output; - output = token.close = `)${expression})${extglobStar})`; - } - if (token.prev.type === "bos") { - state.negatedExtglob = true; - } - } - push2({ type: "paren", extglob: true, value: value2, output }); - decrement("parens"); - }; - if (opts.fastpaths !== false && !/(^[*!]|[/()[\]{}"])/.test(input)) { - let backslashes = false; - let output = input.replace(REGEX_SPECIAL_CHARS_BACKREF, (m, esc, chars2, first2, rest, index) => { - if (first2 === "\\") { - backslashes = true; - return m; - } - if (first2 === "?") { - if (esc) { - return esc + first2 + (rest ? QMARK2.repeat(rest.length) : ""); - } - if (index === 0) { - return qmarkNoDot + (rest ? QMARK2.repeat(rest.length) : ""); - } - return QMARK2.repeat(chars2.length); - } - if (first2 === ".") { - return DOT_LITERAL2.repeat(chars2.length); - } - if (first2 === "*") { - if (esc) { - return esc + first2 + (rest ? star2 : ""); - } - return star2; - } - return esc ? m : `\\${m}`; - }); - if (backslashes === true) { - if (opts.unescape === true) { - output = output.replace(/\\/g, ""); - } else { - output = output.replace(/\\+/g, (m) => { - return m.length % 2 === 0 ? "\\\\" : m ? "\\" : ""; - }); - } - } - if (output === input && opts.contains === true) { - state.output = input; - return state; - } - state.output = utils$i.wrapOutput(output, state, options2); - return state; - } - while (!eos()) { - value2 = advance(); - if (value2 === "\0") { - continue; - } - if (value2 === "\\") { - const next = peek(); - if (next === "/" && opts.bash !== true) { - continue; - } - if (next === "." || next === ";") { - continue; - } - if (!next) { - value2 += "\\"; - push2({ type: "text", value: value2 }); - continue; - } - const match2 = /^\\+/.exec(remaining()); - let slashes = 0; - if (match2 && match2[0].length > 2) { - slashes = match2[0].length; - state.index += slashes; - if (slashes % 2 !== 0) { - value2 += "\\"; - } - } - if (opts.unescape === true) { - value2 = advance(); - } else { - value2 += advance(); - } - if (state.brackets === 0) { - push2({ type: "text", value: value2 }); - continue; - } - } - if (state.brackets > 0 && (value2 !== "]" || prev.value === "[" || prev.value === "[^")) { - if (opts.posix !== false && value2 === ":") { - const inner = prev.value.slice(1); - if (inner.includes("[")) { - prev.posix = true; - if (inner.includes(":")) { - const idx = prev.value.lastIndexOf("["); - const pre = prev.value.slice(0, idx); - const rest2 = prev.value.slice(idx + 2); - const posix2 = POSIX_REGEX_SOURCE[rest2]; - if (posix2) { - prev.value = pre + posix2; - state.backtrack = true; - advance(); - if (!bos.output && tokens.indexOf(prev) === 1) { - bos.output = ONE_CHAR2; - } - continue; - } - } - } - } - if (value2 === "[" && peek() !== ":" || value2 === "-" && peek() === "]") { - value2 = `\\${value2}`; - } - if (value2 === "]" && (prev.value === "[" || prev.value === "[^")) { - value2 = `\\${value2}`; - } - if (opts.posix === true && value2 === "!" && prev.value === "[") { - value2 = "^"; - } - prev.value += value2; - append2({ value: value2 }); - continue; - } - if (state.quotes === 1 && value2 !== '"') { - value2 = utils$i.escapeRegex(value2); - prev.value += value2; - append2({ value: value2 }); - continue; - } - if (value2 === '"') { - state.quotes = state.quotes === 1 ? 0 : 1; - if (opts.keepQuotes === true) { - push2({ type: "text", value: value2 }); - } - continue; - } - if (value2 === "(") { - increment("parens"); - push2({ type: "paren", value: value2 }); - continue; - } - if (value2 === ")") { - if (state.parens === 0 && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "(")); - } - const extglob = extglobs[extglobs.length - 1]; - if (extglob && state.parens === extglob.parens + 1) { - extglobClose(extglobs.pop()); - continue; - } - push2({ type: "paren", value: value2, output: state.parens ? ")" : "\\)" }); - decrement("parens"); - continue; - } - if (value2 === "[") { - if (opts.nobracket === true || !remaining().includes("]")) { - if (opts.nobracket !== true && opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("closing", "]")); - } - value2 = `\\${value2}`; - } else { - increment("brackets"); - } - push2({ type: "bracket", value: value2 }); - continue; - } - if (value2 === "]") { - if (opts.nobracket === true || prev && prev.type === "bracket" && prev.value.length === 1) { - push2({ type: "text", value: value2, output: `\\${value2}` }); - continue; - } - if (state.brackets === 0) { - if (opts.strictBrackets === true) { - throw new SyntaxError(syntaxError("opening", "[")); - } - push2({ type: "text", value: value2, output: `\\${value2}` }); - continue; - } - decrement("brackets"); - const prevValue = prev.value.slice(1); - if (prev.posix !== true && prevValue[0] === "^" && !prevValue.includes("/")) { - value2 = `/${value2}`; - } - prev.value += value2; - append2({ value: value2 }); - if (opts.literalBrackets === false || utils$i.hasRegexChars(prevValue)) { - continue; - } - const escaped2 = utils$i.escapeRegex(prev.value); - state.output = state.output.slice(0, -prev.value.length); - if (opts.literalBrackets === true) { - state.output += escaped2; - prev.value = escaped2; - continue; - } - prev.value = `(${capture}${escaped2}|${prev.value})`; - state.output += prev.value; - continue; - } - if (value2 === "{" && opts.nobrace !== true) { - increment("braces"); - const open2 = { - type: "brace", - value: value2, - output: "(", - outputIndex: state.output.length, - tokensIndex: state.tokens.length - }; - braces2.push(open2); - push2(open2); - continue; - } - if (value2 === "}") { - const brace = braces2[braces2.length - 1]; - if (opts.nobrace === true || !brace) { - push2({ type: "text", value: value2, output: value2 }); - continue; - } - let output = ")"; - if (brace.dots === true) { - const arr = tokens.slice(); - const range2 = []; - for (let i = arr.length - 1; i >= 0; i--) { - tokens.pop(); - if (arr[i].type === "brace") { - break; - } - if (arr[i].type !== "dots") { - range2.unshift(arr[i].value); - } - } - output = expandRange(range2, opts); - state.backtrack = true; - } - if (brace.comma !== true && brace.dots !== true) { - const out2 = state.output.slice(0, brace.outputIndex); - const toks = state.tokens.slice(brace.tokensIndex); - brace.value = brace.output = "\\{"; - value2 = output = "\\}"; - state.output = out2; - for (const t2 of toks) { - state.output += t2.output || t2.value; - } - } - push2({ type: "brace", value: value2, output }); - decrement("braces"); - braces2.pop(); - continue; - } - if (value2 === "|") { - if (extglobs.length > 0) { - extglobs[extglobs.length - 1].conditions++; - } - push2({ type: "text", value: value2 }); - continue; - } - if (value2 === ",") { - let output = value2; - const brace = braces2[braces2.length - 1]; - if (brace && stack[stack.length - 1] === "braces") { - brace.comma = true; - output = "|"; - } - push2({ type: "comma", value: value2, output }); - continue; - } - if (value2 === "/") { - if (prev.type === "dot" && state.index === state.start + 1) { - state.start = state.index + 1; - state.consumed = ""; - state.output = ""; - tokens.pop(); - prev = bos; - continue; - } - push2({ type: "slash", value: value2, output: SLASH_LITERAL2 }); - continue; - } - if (value2 === ".") { - if (state.braces > 0 && prev.type === "dot") { - if (prev.value === ".") prev.output = DOT_LITERAL2; - const brace = braces2[braces2.length - 1]; - prev.type = "dots"; - prev.output += value2; - prev.value += value2; - brace.dots = true; - continue; - } - if (state.braces + state.parens === 0 && prev.type !== "bos" && prev.type !== "slash") { - push2({ type: "text", value: value2, output: DOT_LITERAL2 }); - continue; - } - push2({ type: "dot", value: value2, output: DOT_LITERAL2 }); - continue; - } - if (value2 === "?") { - const isGroup = prev && prev.value === "("; - if (!isGroup && opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("qmark", value2); - continue; - } - if (prev && prev.type === "paren") { - const next = peek(); - let output = value2; - if (next === "<" && !utils$i.supportsLookbehinds()) { - throw new Error("Node.js v10 or higher is required for regex lookbehinds"); - } - if (prev.value === "(" && !/[!=<:]/.test(next) || next === "<" && !/<([!=]|\w+>)/.test(remaining())) { - output = `\\${value2}`; - } - push2({ type: "text", value: value2, output }); - continue; - } - if (opts.dot !== true && (prev.type === "slash" || prev.type === "bos")) { - push2({ type: "qmark", value: value2, output: QMARK_NO_DOT2 }); - continue; - } - push2({ type: "qmark", value: value2, output: QMARK2 }); - continue; - } - if (value2 === "!") { - if (opts.noextglob !== true && peek() === "(") { - if (peek(2) !== "?" || !/[!=<:]/.test(peek(3))) { - extglobOpen("negate", value2); - continue; - } - } - if (opts.nonegate !== true && state.index === 0) { - negate(); - continue; - } - } - if (value2 === "+") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - extglobOpen("plus", value2); - continue; - } - if (prev && prev.value === "(" || opts.regex === false) { - push2({ type: "plus", value: value2, output: PLUS_LITERAL2 }); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren" || prev.type === "brace") || state.parens > 0) { - push2({ type: "plus", value: value2 }); - continue; - } - push2({ type: "plus", value: PLUS_LITERAL2 }); - continue; - } - if (value2 === "@") { - if (opts.noextglob !== true && peek() === "(" && peek(2) !== "?") { - push2({ type: "at", extglob: true, value: value2, output: "" }); - continue; - } - push2({ type: "text", value: value2 }); - continue; - } - if (value2 !== "*") { - if (value2 === "$" || value2 === "^") { - value2 = `\\${value2}`; - } - const match2 = REGEX_NON_SPECIAL_CHARS.exec(remaining()); - if (match2) { - value2 += match2[0]; - state.index += match2[0].length; - } - push2({ type: "text", value: value2 }); - continue; - } - if (prev && (prev.type === "globstar" || prev.star === true)) { - prev.type = "star"; - prev.star = true; - prev.value += value2; - prev.output = star2; - state.backtrack = true; - state.globstar = true; - consume(value2); - continue; - } - let rest = remaining(); - if (opts.noextglob !== true && /^\([^?]/.test(rest)) { - extglobOpen("star", value2); - continue; - } - if (prev.type === "star") { - if (opts.noglobstar === true) { - consume(value2); - continue; - } - const prior = prev.prev; - const before = prior.prev; - const isStart = prior.type === "slash" || prior.type === "bos"; - const afterStar = before && (before.type === "star" || before.type === "globstar"); - if (opts.bash === true && (!isStart || rest[0] && rest[0] !== "/")) { - push2({ type: "star", value: value2, output: "" }); - continue; - } - const isBrace = state.braces > 0 && (prior.type === "comma" || prior.type === "brace"); - const isExtglob3 = extglobs.length && (prior.type === "pipe" || prior.type === "paren"); - if (!isStart && prior.type !== "paren" && !isBrace && !isExtglob3) { - push2({ type: "star", value: value2, output: "" }); - continue; - } - while (rest.slice(0, 3) === "/**") { - const after = input[state.index + 4]; - if (after && after !== "/") { - break; - } - rest = rest.slice(3); - consume("/**", 3); - } - if (prior.type === "bos" && eos()) { - prev.type = "globstar"; - prev.value += value2; - prev.output = globstar(opts); - state.output = prev.output; - state.globstar = true; - consume(value2); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && !afterStar && eos()) { - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = globstar(opts) + (opts.strictSlashes ? ")" : "|$)"); - prev.value += value2; - state.globstar = true; - state.output += prior.output + prev.output; - consume(value2); - continue; - } - if (prior.type === "slash" && prior.prev.type !== "bos" && rest[0] === "/") { - const end = rest[1] !== void 0 ? "|$" : ""; - state.output = state.output.slice(0, -(prior.output + prev.output).length); - prior.output = `(?:${prior.output}`; - prev.type = "globstar"; - prev.output = `${globstar(opts)}${SLASH_LITERAL2}|${SLASH_LITERAL2}${end})`; - prev.value += value2; - state.output += prior.output + prev.output; - state.globstar = true; - consume(value2 + advance()); - push2({ type: "slash", value: "/", output: "" }); - continue; - } - if (prior.type === "bos" && rest[0] === "/") { - prev.type = "globstar"; - prev.value += value2; - prev.output = `(?:^|${SLASH_LITERAL2}|${globstar(opts)}${SLASH_LITERAL2})`; - state.output = prev.output; - state.globstar = true; - consume(value2 + advance()); - push2({ type: "slash", value: "/", output: "" }); - continue; - } - state.output = state.output.slice(0, -prev.output.length); - prev.type = "globstar"; - prev.output = globstar(opts); - prev.value += value2; - state.output += prev.output; - state.globstar = true; - consume(value2); - continue; - } - const token = { type: "star", value: value2, output: star2 }; - if (opts.bash === true) { - token.output = ".*?"; - if (prev.type === "bos" || prev.type === "slash") { - token.output = nodot + token.output; - } - push2(token); - continue; - } - if (prev && (prev.type === "bracket" || prev.type === "paren") && opts.regex === true) { - token.output = value2; - push2(token); - continue; - } - if (state.index === state.start || prev.type === "slash" || prev.type === "dot") { - if (prev.type === "dot") { - state.output += NO_DOT_SLASH2; - prev.output += NO_DOT_SLASH2; - } else if (opts.dot === true) { - state.output += NO_DOTS_SLASH2; - prev.output += NO_DOTS_SLASH2; - } else { - state.output += nodot; - prev.output += nodot; - } - if (peek() !== "*") { - state.output += ONE_CHAR2; - prev.output += ONE_CHAR2; - } - } - push2(token); - } - while (state.brackets > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "]")); - state.output = utils$i.escapeLast(state.output, "["); - decrement("brackets"); - } - while (state.parens > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", ")")); - state.output = utils$i.escapeLast(state.output, "("); - decrement("parens"); - } - while (state.braces > 0) { - if (opts.strictBrackets === true) throw new SyntaxError(syntaxError("closing", "}")); - state.output = utils$i.escapeLast(state.output, "{"); - decrement("braces"); - } - if (opts.strictSlashes !== true && (prev.type === "star" || prev.type === "bracket")) { - push2({ type: "maybe_slash", value: "", output: `${SLASH_LITERAL2}?` }); - } - if (state.backtrack === true) { - state.output = ""; - for (const token of state.tokens) { - state.output += token.output != null ? token.output : token.value; - if (token.suffix) { - state.output += token.suffix; - } - } - } - return state; -}; -parse$g.fastpaths = (input, options2) => { - const opts = { ...options2 }; - const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH$1, opts.maxLength) : MAX_LENGTH$1; - const len = input.length; - if (len > max) { - throw new SyntaxError(`Input length: ${len}, exceeds maximum allowed length: ${max}`); - } - input = REPLACEMENTS[input] || input; - const win322 = utils$i.isWindows(options2); - const { - DOT_LITERAL: DOT_LITERAL2, - SLASH_LITERAL: SLASH_LITERAL2, - ONE_CHAR: ONE_CHAR2, - DOTS_SLASH: DOTS_SLASH2, - NO_DOT: NO_DOT2, - NO_DOTS: NO_DOTS2, - NO_DOTS_SLASH: NO_DOTS_SLASH2, - STAR: STAR2, - START_ANCHOR: START_ANCHOR2 - } = constants$5.globChars(win322); - const nodot = opts.dot ? NO_DOTS2 : NO_DOT2; - const slashDot = opts.dot ? NO_DOTS_SLASH2 : NO_DOT2; - const capture = opts.capture ? "" : "?:"; - const state = { negated: false, prefix: "" }; - let star2 = opts.bash === true ? ".*?" : STAR2; - if (opts.capture) { - star2 = `(${star2})`; - } - const globstar = (opts2) => { - if (opts2.noglobstar === true) return star2; - return `(${capture}(?:(?!${START_ANCHOR2}${opts2.dot ? DOTS_SLASH2 : DOT_LITERAL2}).)*?)`; - }; - const create = (str) => { - switch (str) { - case "*": - return `${nodot}${ONE_CHAR2}${star2}`; - case ".*": - return `${DOT_LITERAL2}${ONE_CHAR2}${star2}`; - case "*.*": - return `${nodot}${star2}${DOT_LITERAL2}${ONE_CHAR2}${star2}`; - case "*/*": - return `${nodot}${star2}${SLASH_LITERAL2}${ONE_CHAR2}${slashDot}${star2}`; - case "**": - return nodot + globstar(opts); - case "**/*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL2})?${slashDot}${ONE_CHAR2}${star2}`; - case "**/*.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL2})?${slashDot}${star2}${DOT_LITERAL2}${ONE_CHAR2}${star2}`; - case "**/.*": - return `(?:${nodot}${globstar(opts)}${SLASH_LITERAL2})?${DOT_LITERAL2}${ONE_CHAR2}${star2}`; - default: { - const match2 = /^(.*?)\.(\w+)$/.exec(str); - if (!match2) return; - const source2 = create(match2[1]); - if (!source2) return; - return source2 + DOT_LITERAL2 + match2[2]; - } - } - }; - const output = utils$i.removePrefix(input, state); - let source = create(output); - if (source && opts.strictSlashes !== true) { - source += `${SLASH_LITERAL2}?`; - } - return source; -}; -var parse_1$3 = parse$g; -var path$l = import_path.default; -var scan$1 = scan_1; -var parse$f = parse_1$3; -var utils$h = utils$k; -var constants$4 = constants$6; -var isObject$3 = (val) => val && typeof val === "object" && !Array.isArray(val); -var picomatch$5 = (glob2, options2, returnState = false) => { - if (Array.isArray(glob2)) { - const fns = glob2.map((input) => picomatch$5(input, options2, returnState)); - const arrayMatcher = (str) => { - for (const isMatch2 of fns) { - const state2 = isMatch2(str); - if (state2) return state2; - } - return false; - }; - return arrayMatcher; - } - const isState = isObject$3(glob2) && glob2.tokens && glob2.input; - if (glob2 === "" || typeof glob2 !== "string" && !isState) { - throw new TypeError("Expected pattern to be a non-empty string"); - } - const opts = options2 || {}; - const posix2 = utils$h.isWindows(options2); - const regex2 = isState ? picomatch$5.compileRe(glob2, options2) : picomatch$5.makeRe(glob2, options2, false, true); - const state = regex2.state; - delete regex2.state; - let isIgnored = () => false; - if (opts.ignore) { - const ignoreOpts = { ...options2, ignore: null, onMatch: null, onResult: null }; - isIgnored = picomatch$5(opts.ignore, ignoreOpts, returnState); - } - const matcher2 = (input, returnObject = false) => { - const { isMatch: isMatch2, match: match2, output } = picomatch$5.test(input, regex2, options2, { glob: glob2, posix: posix2 }); - const result = { glob: glob2, state, regex: regex2, posix: posix2, input, output, match: match2, isMatch: isMatch2 }; - if (typeof opts.onResult === "function") { - opts.onResult(result); - } - if (isMatch2 === false) { - result.isMatch = false; - return returnObject ? result : false; - } - if (isIgnored(input)) { - if (typeof opts.onIgnore === "function") { - opts.onIgnore(result); - } - result.isMatch = false; - return returnObject ? result : false; - } - if (typeof opts.onMatch === "function") { - opts.onMatch(result); - } - return returnObject ? result : true; - }; - if (returnState) { - matcher2.state = state; - } - return matcher2; -}; -picomatch$5.test = (input, regex2, options2, { glob: glob2, posix: posix2 } = {}) => { - if (typeof input !== "string") { - throw new TypeError("Expected input to be a string"); - } - if (input === "") { - return { isMatch: false, output: "" }; - } - const opts = options2 || {}; - const format2 = opts.format || (posix2 ? utils$h.toPosixSlashes : null); - let match2 = input === glob2; - let output = match2 && format2 ? format2(input) : input; - if (match2 === false) { - output = format2 ? format2(input) : input; - match2 = output === glob2; - } - if (match2 === false || opts.capture === true) { - if (opts.matchBase === true || opts.basename === true) { - match2 = picomatch$5.matchBase(input, regex2, options2, posix2); - } else { - match2 = regex2.exec(output); - } - } - return { isMatch: Boolean(match2), match: match2, output }; -}; -picomatch$5.matchBase = (input, glob2, options2, posix2 = utils$h.isWindows(options2)) => { - const regex2 = glob2 instanceof RegExp ? glob2 : picomatch$5.makeRe(glob2, options2); - return regex2.test(path$l.basename(input)); -}; -picomatch$5.isMatch = (str, patterns, options2) => picomatch$5(patterns, options2)(str); -picomatch$5.parse = (pattern2, options2) => { - if (Array.isArray(pattern2)) return pattern2.map((p) => picomatch$5.parse(p, options2)); - return parse$f(pattern2, { ...options2, fastpaths: false }); -}; -picomatch$5.scan = (input, options2) => scan$1(input, options2); -picomatch$5.compileRe = (state, options2, returnOutput = false, returnState = false) => { - if (returnOutput === true) { - return state.output; - } - const opts = options2 || {}; - const prepend = opts.contains ? "" : "^"; - const append2 = opts.contains ? "" : "$"; - let source = `${prepend}(?:${state.output})${append2}`; - if (state && state.negated === true) { - source = `^(?!${source}).*$`; - } - const regex2 = picomatch$5.toRegex(source, options2); - if (returnState === true) { - regex2.state = state; - } - return regex2; -}; -picomatch$5.makeRe = (input, options2 = {}, returnOutput = false, returnState = false) => { - if (!input || typeof input !== "string") { - throw new TypeError("Expected a non-empty string"); - } - let parsed = { negated: false, fastpaths: true }; - if (options2.fastpaths !== false && (input[0] === "." || input[0] === "*")) { - parsed.output = parse$f.fastpaths(input, options2); - } - if (!parsed.output) { - parsed = parse$f(input, options2); - } - return picomatch$5.compileRe(parsed, options2, returnOutput, returnState); -}; -picomatch$5.toRegex = (source, options2) => { - try { - const opts = options2 || {}; - return new RegExp(source, opts.flags || (opts.nocase ? "i" : "")); - } catch (err2) { - if (options2 && options2.debug === true) throw err2; - return /$^/; - } -}; -picomatch$5.constants = constants$4; -var picomatch_1 = picomatch$5; -var picomatch$3 = picomatch_1; -var picomatch$4 = getDefaultExportFromCjs(picomatch$3); -var extractors = { - ArrayPattern(names, param) { - for (const element of param.elements) { - if (element) - extractors[element.type](names, element); - } - }, - AssignmentPattern(names, param) { - extractors[param.left.type](names, param.left); - }, - Identifier(names, param) { - names.push(param.name); - }, - MemberExpression() { - }, - ObjectPattern(names, param) { - for (const prop of param.properties) { - if (prop.type === "RestElement") { - extractors.RestElement(names, prop); - } else { - extractors[prop.value.type](names, prop.value); - } - } - }, - RestElement(names, param) { - extractors[param.argument.type](names, param.argument); - } -}; -var extractAssignedNames = function extractAssignedNames2(param) { - const names = []; - extractors[param.type](names, param); - return names; -}; -var blockDeclarations = { - const: true, - let: true -}; -var Scope = class { - constructor(options2 = {}) { - this.parent = options2.parent; - this.isBlockScope = !!options2.block; - this.declarations = /* @__PURE__ */ Object.create(null); - if (options2.params) { - options2.params.forEach((param) => { - extractAssignedNames(param).forEach((name2) => { - this.declarations[name2] = true; - }); - }); - } - } - addDeclaration(node2, isBlockDeclaration, isVar) { - if (!isBlockDeclaration && this.isBlockScope) { - this.parent.addDeclaration(node2, isBlockDeclaration, isVar); - } else if (node2.id) { - extractAssignedNames(node2.id).forEach((name2) => { - this.declarations[name2] = true; - }); - } - } - contains(name2) { - return this.declarations[name2] || (this.parent ? this.parent.contains(name2) : false); - } -}; -var attachScopes = function attachScopes2(ast, propertyName = "scope") { - let scope = new Scope(); - walk$3(ast, { - enter(n2, parent) { - const node2 = n2; - if (/(Function|Class)Declaration/.test(node2.type)) { - scope.addDeclaration(node2, false, false); - } - if (node2.type === "VariableDeclaration") { - const { kind } = node2; - const isBlockDeclaration = blockDeclarations[kind]; - node2.declarations.forEach((declaration) => { - scope.addDeclaration(declaration, isBlockDeclaration, true); - }); - } - let newScope; - if (/Function/.test(node2.type)) { - const func = node2; - newScope = new Scope({ - parent: scope, - block: false, - params: func.params - }); - if (func.type === "FunctionExpression" && func.id) { - newScope.addDeclaration(func, false, false); - } - } - if (/For(In|Of)?Statement/.test(node2.type)) { - newScope = new Scope({ - parent: scope, - block: true - }); - } - if (node2.type === "BlockStatement" && !/Function/.test(parent.type)) { - newScope = new Scope({ - parent: scope, - block: true - }); - } - if (node2.type === "CatchClause") { - newScope = new Scope({ - parent: scope, - params: node2.param ? [node2.param] : [], - block: true - }); - } - if (newScope) { - Object.defineProperty(node2, propertyName, { - value: newScope, - configurable: true - }); - scope = newScope; - } - }, - leave(n2) { - const node2 = n2; - if (node2[propertyName]) - scope = scope.parent; - } - }); - return scope; -}; -function isArray(arg) { - return Array.isArray(arg); -} -function ensureArray(thing) { - if (isArray(thing)) - return thing; - if (thing == null) - return []; - return [thing]; -} -var normalizePath$5 = function normalizePath(filename) { - return filename.split(import_path.win32.sep).join(import_path.posix.sep); -}; -function getMatcherString(id, resolutionBase) { - if (resolutionBase === false || (0, import_path.isAbsolute)(id) || id.startsWith("**")) { - return normalizePath$5(id); - } - const basePath = normalizePath$5((0, import_path.resolve)(resolutionBase || "")).replace(/[-^$*+?.()|[\]{}]/g, "\\$&"); - return import_path.posix.join(basePath, normalizePath$5(id)); -} -var createFilter$1 = function createFilter(include, exclude, options2) { - const resolutionBase = options2 && options2.resolve; - const getMatcher = (id) => id instanceof RegExp ? id : { - test: (what) => { - const pattern2 = getMatcherString(id, resolutionBase); - const fn = picomatch$4(pattern2, { dot: true }); - const result = fn(what); - return result; - } - }; - const includeMatchers = ensureArray(include).map(getMatcher); - const excludeMatchers = ensureArray(exclude).map(getMatcher); - return function result(id) { - if (typeof id !== "string") - return false; - if (/\0/.test(id)) - return false; - const pathId = normalizePath$5(id); - for (let i = 0; i < excludeMatchers.length; ++i) { - const matcher2 = excludeMatchers[i]; - if (matcher2.test(pathId)) - return false; - } - for (let i = 0; i < includeMatchers.length; ++i) { - const matcher2 = includeMatchers[i]; - if (matcher2.test(pathId)) - return true; - } - return !includeMatchers.length; - }; -}; -var reservedWords = "break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public"; -var builtins = "arguments Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl"; -var forbiddenIdentifiers = new Set(`${reservedWords} ${builtins}`.split(" ")); -forbiddenIdentifiers.add(""); -var makeLegalIdentifier = function makeLegalIdentifier2(str) { - let identifier = str.replace(/-(\w)/g, (_, letter) => letter.toUpperCase()).replace(/[^$_a-zA-Z0-9]/g, "_"); - if (/\d/.test(identifier[0]) || forbiddenIdentifiers.has(identifier)) { - identifier = `_${identifier}`; - } - return identifier || "_"; -}; -function stringify$8(obj) { - return (JSON.stringify(obj) || "undefined").replace(/[\u2028\u2029]/g, (char) => `\\u${`000${char.charCodeAt(0).toString(16)}`.slice(-4)}`); -} -function serializeArray(arr, indent, baseIndent) { - let output = "["; - const separator = indent ? ` -${baseIndent}${indent}` : ""; - for (let i = 0; i < arr.length; i++) { - const key = arr[i]; - output += `${i > 0 ? "," : ""}${separator}${serialize(key, indent, baseIndent + indent)}`; - } - return `${output}${indent ? ` -${baseIndent}` : ""}]`; -} -function serializeObject(obj, indent, baseIndent) { - let output = "{"; - const separator = indent ? ` -${baseIndent}${indent}` : ""; - const entries = Object.entries(obj); - for (let i = 0; i < entries.length; i++) { - const [key, value2] = entries[i]; - const stringKey = makeLegalIdentifier(key) === key ? key : stringify$8(key); - output += `${i > 0 ? "," : ""}${separator}${stringKey}:${indent ? " " : ""}${serialize(value2, indent, baseIndent + indent)}`; - } - return `${output}${indent ? ` -${baseIndent}` : ""}}`; -} -function serialize(obj, indent, baseIndent) { - if (typeof obj === "object" && obj !== null) { - if (Array.isArray(obj)) - return serializeArray(obj, indent, baseIndent); - if (obj instanceof Date) - return `new Date(${obj.getTime()})`; - if (obj instanceof RegExp) - return obj.toString(); - return serializeObject(obj, indent, baseIndent); - } - if (typeof obj === "number") { - if (obj === Infinity) - return "Infinity"; - if (obj === -Infinity) - return "-Infinity"; - if (obj === 0) - return 1 / obj === Infinity ? "0" : "-0"; - if (obj !== obj) - return "NaN"; - } - if (typeof obj === "symbol") { - const key = Symbol.keyFor(obj); - if (key !== void 0) - return `Symbol.for(${stringify$8(key)})`; - } - if (typeof obj === "bigint") - return `${obj}n`; - return stringify$8(obj); -} -var hasStringIsWellFormed = "isWellFormed" in String.prototype; -function isWellFormedString(input) { - if (hasStringIsWellFormed) - return input.isWellFormed(); - return !new RegExp("\\p{Surrogate}", "u").test(input); -} -var dataToEsm = function dataToEsm2(data, options2 = {}) { - var _a4, _b3; - const t2 = options2.compact ? "" : "indent" in options2 ? options2.indent : " "; - const _ = options2.compact ? "" : " "; - const n2 = options2.compact ? "" : "\n"; - const declarationType = options2.preferConst ? "const" : "var"; - if (options2.namedExports === false || typeof data !== "object" || Array.isArray(data) || data instanceof Date || data instanceof RegExp || data === null) { - const code = serialize(data, options2.compact ? null : t2, ""); - const magic = _ || (/^[{[\-\/]/.test(code) ? "" : " "); - return `export default${magic}${code};`; - } - let maxUnderbarPrefixLength = 0; - for (const key of Object.keys(data)) { - const underbarPrefixLength = (_b3 = (_a4 = key.match(/^(_+)/)) === null || _a4 === void 0 ? void 0 : _a4[0].length) !== null && _b3 !== void 0 ? _b3 : 0; - if (underbarPrefixLength > maxUnderbarPrefixLength) { - maxUnderbarPrefixLength = underbarPrefixLength; - } - } - const arbitraryNamePrefix = `${"_".repeat(maxUnderbarPrefixLength + 1)}arbitrary`; - let namedExportCode = ""; - const defaultExportRows = []; - const arbitraryNameExportRows = []; - for (const [key, value2] of Object.entries(data)) { - if (key === makeLegalIdentifier(key)) { - if (options2.objectShorthand) - defaultExportRows.push(key); - else - defaultExportRows.push(`${key}:${_}${key}`); - namedExportCode += `export ${declarationType} ${key}${_}=${_}${serialize(value2, options2.compact ? null : t2, "")};${n2}`; - } else { - defaultExportRows.push(`${stringify$8(key)}:${_}${serialize(value2, options2.compact ? null : t2, "")}`); - if (options2.includeArbitraryNames && isWellFormedString(key)) { - const variableName = `${arbitraryNamePrefix}${arbitraryNameExportRows.length}`; - namedExportCode += `${declarationType} ${variableName}${_}=${_}${serialize(value2, options2.compact ? null : t2, "")};${n2}`; - arbitraryNameExportRows.push(`${variableName} as ${JSON.stringify(key)}`); - } - } - } - const arbitraryExportCode = arbitraryNameExportRows.length > 0 ? `export${_}{${n2}${t2}${arbitraryNameExportRows.join(`,${n2}${t2}`)}${n2}};${n2}` : ""; - const defaultExportCode = `export default${_}{${n2}${t2}${defaultExportRows.join(`,${n2}${t2}`)}${n2}};${n2}`; - return `${namedExportCode}${arbitraryExportCode}${defaultExportCode}`; -}; -var path$k = import_path.default; -var commondir = function(basedir, relfiles) { - if (relfiles) { - var files = relfiles.map(function(r2) { - return path$k.resolve(basedir, r2); - }); - } else { - var files = basedir; - } - var res = files.slice(1).reduce(function(ps, file) { - if (!file.match(/^([A-Za-z]:)?\/|\\/)) { - throw new Error("relative path without a basedir"); - } - var xs = file.split(/\/+|\\+/); - for (var i = 0; ps[i] === xs[i] && i < Math.min(ps.length, xs.length); i++) ; - return ps.slice(0, i); - }, files[0].split(/\/+|\\+/)); - return res.length > 1 ? res.join("/") : "/"; -}; -var getCommonDir = getDefaultExportFromCjs(commondir); -var balancedMatch = balanced$1; -function balanced$1(a, b, str) { - if (a instanceof RegExp) a = maybeMatch(a, str); - if (b instanceof RegExp) b = maybeMatch(b, str); - var r2 = range$1(a, b, str); - return r2 && { - start: r2[0], - end: r2[1], - pre: str.slice(0, r2[0]), - body: str.slice(r2[0] + a.length, r2[1]), - post: str.slice(r2[1] + b.length) - }; -} -function maybeMatch(reg, str) { - var m = str.match(reg); - return m ? m[0] : null; -} -balanced$1.range = range$1; -function range$1(a, b, str) { - var begs, beg, left, right, result; - var ai = str.indexOf(a); - var bi = str.indexOf(b, ai + 1); - var i = ai; - if (ai >= 0 && bi > 0) { - if (a === b) { - return [ai, bi]; - } - begs = []; - left = str.length; - while (i >= 0 && !result) { - if (i == ai) { - begs.push(i); - ai = str.indexOf(a, i + 1); - } else if (begs.length == 1) { - result = [begs.pop(), bi]; - } else { - beg = begs.pop(); - if (beg < left) { - left = beg; - right = bi; - } - bi = str.indexOf(b, i + 1); - } - i = ai < bi && ai >= 0 ? ai : bi; - } - if (begs.length) { - result = [left, right]; - } - } - return result; -} -var balanced = balancedMatch; -var braceExpansion = expandTop; -var escSlash = "\0SLASH" + Math.random() + "\0"; -var escOpen = "\0OPEN" + Math.random() + "\0"; -var escClose = "\0CLOSE" + Math.random() + "\0"; -var escComma = "\0COMMA" + Math.random() + "\0"; -var escPeriod = "\0PERIOD" + Math.random() + "\0"; -function numeric(str) { - return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0); -} -function escapeBraces(str) { - return str.split("\\\\").join(escSlash).split("\\{").join(escOpen).split("\\}").join(escClose).split("\\,").join(escComma).split("\\.").join(escPeriod); -} -function unescapeBraces(str) { - return str.split(escSlash).join("\\").split(escOpen).join("{").split(escClose).join("}").split(escComma).join(",").split(escPeriod).join("."); -} -function parseCommaParts(str) { - if (!str) - return [""]; - var parts = []; - var m = balanced("{", "}", str); - if (!m) - return str.split(","); - var pre = m.pre; - var body = m.body; - var post = m.post; - var p = pre.split(","); - p[p.length - 1] += "{" + body + "}"; - var postParts = parseCommaParts(post); - if (post.length) { - p[p.length - 1] += postParts.shift(); - p.push.apply(p, postParts); - } - parts.push.apply(parts, p); - return parts; -} -function expandTop(str) { - if (!str) - return []; - if (str.substr(0, 2) === "{}") { - str = "\\{\\}" + str.substr(2); - } - return expand$3(escapeBraces(str), true).map(unescapeBraces); -} -function embrace(str) { - return "{" + str + "}"; -} -function isPadded(el) { - return /^-?0\d/.test(el); -} -function lte(i, y) { - return i <= y; -} -function gte(i, y) { - return i >= y; -} -function expand$3(str, isTop) { - var expansions = []; - var m = balanced("{", "}", str); - if (!m) return [str]; - var pre = m.pre; - var post = m.post.length ? expand$3(m.post, false) : [""]; - if (/\$$/.test(m.pre)) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + "{" + m.body + "}" + post[k]; - expansions.push(expansion); - } - } else { - var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body); - var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body); - var isSequence = isNumericSequence || isAlphaSequence; - var isOptions = m.body.indexOf(",") >= 0; - if (!isSequence && !isOptions) { - if (m.post.match(/,.*\}/)) { - str = m.pre + "{" + m.body + escClose + m.post; - return expand$3(str); - } - return [str]; - } - var n2; - if (isSequence) { - n2 = m.body.split(/\.\./); - } else { - n2 = parseCommaParts(m.body); - if (n2.length === 1) { - n2 = expand$3(n2[0], false).map(embrace); - if (n2.length === 1) { - return post.map(function(p) { - return m.pre + n2[0] + p; - }); - } - } - } - var N; - if (isSequence) { - var x = numeric(n2[0]); - var y = numeric(n2[1]); - var width = Math.max(n2[0].length, n2[1].length); - var incr = n2.length == 3 ? Math.abs(numeric(n2[2])) : 1; - var test = lte; - var reverse = y < x; - if (reverse) { - incr *= -1; - test = gte; - } - var pad2 = n2.some(isPadded); - N = []; - for (var i = x; test(i, y); i += incr) { - var c; - if (isAlphaSequence) { - c = String.fromCharCode(i); - if (c === "\\") - c = ""; - } else { - c = String(i); - if (pad2) { - var need = width - c.length; - if (need > 0) { - var z = new Array(need + 1).join("0"); - if (i < 0) - c = "-" + z + c.slice(1); - else - c = z + c; - } - } - } - N.push(c); - } - } else { - N = []; - for (var j = 0; j < n2.length; j++) { - N.push.apply(N, expand$3(n2[j], false)); - } - } - for (var j = 0; j < N.length; j++) { - for (var k = 0; k < post.length; k++) { - var expansion = pre + N[j] + post[k]; - if (!isTop || isSequence || expansion) - expansions.push(expansion); - } - } - } - return expansions; -} -var expand$4 = getDefaultExportFromCjs(braceExpansion); -var MAX_PATTERN_LENGTH = 1024 * 64; -var assertValidPattern = (pattern2) => { - if (typeof pattern2 !== "string") { - throw new TypeError("invalid pattern"); - } - if (pattern2.length > MAX_PATTERN_LENGTH) { - throw new TypeError("pattern is too long"); - } -}; -var posixClasses = { - "[:alnum:]": ["\\p{L}\\p{Nl}\\p{Nd}", true], - "[:alpha:]": ["\\p{L}\\p{Nl}", true], - "[:ascii:]": ["\\x00-\\x7f", false], - "[:blank:]": ["\\p{Zs}\\t", true], - "[:cntrl:]": ["\\p{Cc}", true], - "[:digit:]": ["\\p{Nd}", true], - "[:graph:]": ["\\p{Z}\\p{C}", true, true], - "[:lower:]": ["\\p{Ll}", true], - "[:print:]": ["\\p{C}", true], - "[:punct:]": ["\\p{P}", true], - "[:space:]": ["\\p{Z}\\t\\r\\n\\v\\f", true], - "[:upper:]": ["\\p{Lu}", true], - "[:word:]": ["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}", true], - "[:xdigit:]": ["A-Fa-f0-9", false] -}; -var braceEscape = (s) => s.replace(/[[\]\\-]/g, "\\$&"); -var regexpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); -var rangesToString = (ranges) => ranges.join(""); -var parseClass = (glob2, position) => { - const pos = position; - if (glob2.charAt(pos) !== "[") { - throw new Error("not in a brace expression"); - } - const ranges = []; - const negs = []; - let i = pos + 1; - let sawStart = false; - let uflag = false; - let escaping = false; - let negate = false; - let endPos = pos; - let rangeStart = ""; - WHILE: while (i < glob2.length) { - const c = glob2.charAt(i); - if ((c === "!" || c === "^") && i === pos + 1) { - negate = true; - i++; - continue; - } - if (c === "]" && sawStart && !escaping) { - endPos = i + 1; - break; - } - sawStart = true; - if (c === "\\") { - if (!escaping) { - escaping = true; - i++; - continue; - } - } - if (c === "[" && !escaping) { - for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) { - if (glob2.startsWith(cls, i)) { - if (rangeStart) { - return ["$.", false, glob2.length - pos, true]; - } - i += cls.length; - if (neg) - negs.push(unip); - else - ranges.push(unip); - uflag = uflag || u; - continue WHILE; - } - } - } - escaping = false; - if (rangeStart) { - if (c > rangeStart) { - ranges.push(braceEscape(rangeStart) + "-" + braceEscape(c)); - } else if (c === rangeStart) { - ranges.push(braceEscape(c)); - } - rangeStart = ""; - i++; - continue; - } - if (glob2.startsWith("-]", i + 1)) { - ranges.push(braceEscape(c + "-")); - i += 2; - continue; - } - if (glob2.startsWith("-", i + 1)) { - rangeStart = c; - i += 2; - continue; - } - ranges.push(braceEscape(c)); - i++; - } - if (endPos < i) { - return ["", false, 0, false]; - } - if (!ranges.length && !negs.length) { - return ["$.", false, glob2.length - pos, true]; - } - if (negs.length === 0 && ranges.length === 1 && /^\\?.$/.test(ranges[0]) && !negate) { - const r2 = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0]; - return [regexpEscape(r2), false, endPos - pos, false]; - } - const sranges = "[" + (negate ? "^" : "") + rangesToString(ranges) + "]"; - const snegs = "[" + (negate ? "" : "^") + rangesToString(negs) + "]"; - const comb = ranges.length && negs.length ? "(" + sranges + "|" + snegs + ")" : ranges.length ? sranges : snegs; - return [comb, uflag, endPos - pos, true]; -}; -var unescape$1 = (s, { windowsPathsNoEscape = false } = {}) => { - return windowsPathsNoEscape ? s.replace(/\[([^\/\\])\]/g, "$1") : s.replace(/((?!\\).|^)\[([^\/\\])\]/g, "$1$2").replace(/\\([^\/])/g, "$1"); -}; -var types$1 = /* @__PURE__ */ new Set(["!", "?", "+", "*", "@"]); -var isExtglobType = (c) => types$1.has(c); -var startNoTraversal = "(?!(?:^|/)\\.\\.?(?:$|/))"; -var startNoDot = "(?!\\.)"; -var addPatternStart = /* @__PURE__ */ new Set(["[", "."]); -var justDots = /* @__PURE__ */ new Set(["..", "."]); -var reSpecials = new Set("().*{}+?[]^$\\!"); -var regExpEscape$1 = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); -var qmark$1 = "[^/]"; -var star$1 = qmark$1 + "*?"; -var starNoEmpty = qmark$1 + "+?"; -var _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn; -var _AST = class _AST { - constructor(type, parent, options2 = {}) { - __privateAdd(this, _AST_instances); - __publicField(this, "type"); - __privateAdd(this, _root); - __privateAdd(this, _hasMagic); - __privateAdd(this, _uflag, false); - __privateAdd(this, _parts, []); - __privateAdd(this, _parent); - __privateAdd(this, _parentIndex); - __privateAdd(this, _negs); - __privateAdd(this, _filledNegs, false); - __privateAdd(this, _options); - __privateAdd(this, _toString); - // set to true if it's an extglob with no children - // (which really means one child of '') - __privateAdd(this, _emptyExt, false); - this.type = type; - if (type) - __privateSet(this, _hasMagic, true); - __privateSet(this, _parent, parent); - __privateSet(this, _root, __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _root) : this); - __privateSet(this, _options, __privateGet(this, _root) === this ? options2 : __privateGet(__privateGet(this, _root), _options)); - __privateSet(this, _negs, __privateGet(this, _root) === this ? [] : __privateGet(__privateGet(this, _root), _negs)); - if (type === "!" && !__privateGet(__privateGet(this, _root), _filledNegs)) - __privateGet(this, _negs).push(this); - __privateSet(this, _parentIndex, __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _parts).length : 0); - } - get hasMagic() { - if (__privateGet(this, _hasMagic) !== void 0) - return __privateGet(this, _hasMagic); - for (const p of __privateGet(this, _parts)) { - if (typeof p === "string") - continue; - if (p.type || p.hasMagic) - return __privateSet(this, _hasMagic, true); - } - return __privateGet(this, _hasMagic); - } - // reconstructs the pattern - toString() { - if (__privateGet(this, _toString) !== void 0) - return __privateGet(this, _toString); - if (!this.type) { - return __privateSet(this, _toString, __privateGet(this, _parts).map((p) => String(p)).join("")); - } else { - return __privateSet(this, _toString, this.type + "(" + __privateGet(this, _parts).map((p) => String(p)).join("|") + ")"); - } - } - push(...parts) { - for (const p of parts) { - if (p === "") - continue; - if (typeof p !== "string" && !(p instanceof _AST && __privateGet(p, _parent) === this)) { - throw new Error("invalid part: " + p); - } - __privateGet(this, _parts).push(p); - } - } - toJSON() { - var _a4; - const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === "string" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())]; - if (this.isStart() && !this.type) - ret.unshift([]); - if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a4 = __privateGet(this, _parent)) == null ? void 0 : _a4.type) === "!")) { - ret.push({}); - } - return ret; - } - isStart() { - var _a4; - if (__privateGet(this, _root) === this) - return true; - if (!((_a4 = __privateGet(this, _parent)) == null ? void 0 : _a4.isStart())) - return false; - if (__privateGet(this, _parentIndex) === 0) - return true; - const p = __privateGet(this, _parent); - for (let i = 0; i < __privateGet(this, _parentIndex); i++) { - const pp = __privateGet(p, _parts)[i]; - if (!(pp instanceof _AST && pp.type === "!")) { - return false; - } - } - return true; - } - isEnd() { - var _a4, _b3, _c2; - if (__privateGet(this, _root) === this) - return true; - if (((_a4 = __privateGet(this, _parent)) == null ? void 0 : _a4.type) === "!") - return true; - if (!((_b3 = __privateGet(this, _parent)) == null ? void 0 : _b3.isEnd())) - return false; - if (!this.type) - return (_c2 = __privateGet(this, _parent)) == null ? void 0 : _c2.isEnd(); - const pl = __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _parts).length : 0; - return __privateGet(this, _parentIndex) === pl - 1; - } - copyIn(part) { - if (typeof part === "string") - this.push(part); - else - this.push(part.clone(this)); - } - clone(parent) { - const c = new _AST(this.type, parent); - for (const p of __privateGet(this, _parts)) { - c.copyIn(p); - } - return c; - } - static fromGlob(pattern2, options2 = {}) { - var _a4; - const ast = new _AST(null, void 0, options2); - __privateMethod(_a4 = _AST, _AST_static, parseAST_fn).call(_a4, pattern2, ast, 0, options2); - return ast; - } - // returns the regular expression if there's magic, or the unescaped - // string if not. - toMMPattern() { - if (this !== __privateGet(this, _root)) - return __privateGet(this, _root).toMMPattern(); - const glob2 = this.toString(); - const [re, body, hasMagic2, uflag] = this.toRegExpSource(); - const anyMagic = hasMagic2 || __privateGet(this, _hasMagic) || __privateGet(this, _options).nocase && !__privateGet(this, _options).nocaseMagicOnly && glob2.toUpperCase() !== glob2.toLowerCase(); - if (!anyMagic) { - return body; - } - const flags = (__privateGet(this, _options).nocase ? "i" : "") + (uflag ? "u" : ""); - return Object.assign(new RegExp(`^${re}$`, flags), { - _src: re, - _glob: glob2 - }); - } - get options() { - return __privateGet(this, _options); - } - // returns the string match, the regexp source, whether there's magic - // in the regexp (so a regular expression is required) and whether or - // not the uflag is needed for the regular expression (for posix classes) - // TODO: instead of injecting the start/end at this point, just return - // the BODY of the regexp, along with the start/end portions suitable - // for binding the start/end in either a joined full-path makeRe context - // (where we bind to (^|/), or a standalone matchPart context (where - // we bind to ^, and not /). Otherwise slashes get duped! - // - // In part-matching mode, the start is: - // - if not isStart: nothing - // - if traversal possible, but not allowed: ^(?!\.\.?$) - // - if dots allowed or not possible: ^ - // - if dots possible and not allowed: ^(?!\.) - // end is: - // - if not isEnd(): nothing - // - else: $ - // - // In full-path matching mode, we put the slash at the START of the - // pattern, so start is: - // - if first pattern: same as part-matching mode - // - if not isStart(): nothing - // - if traversal possible, but not allowed: /(?!\.\.?(?:$|/)) - // - if dots allowed or not possible: / - // - if dots possible and not allowed: /(?!\.) - // end is: - // - if last pattern, same as part-matching mode - // - else nothing - // - // Always put the (?:$|/) on negated tails, though, because that has to be - // there to bind the end of the negated pattern portion, and it's easier to - // just stick it in now rather than try to inject it later in the middle of - // the pattern. - // - // We can just always return the same end, and leave it up to the caller - // to know whether it's going to be used joined or in parts. - // And, if the start is adjusted slightly, can do the same there: - // - if not isStart: nothing - // - if traversal possible, but not allowed: (?:/|^)(?!\.\.?$) - // - if dots allowed or not possible: (?:/|^) - // - if dots possible and not allowed: (?:/|^)(?!\.) - // - // But it's better to have a simpler binding without a conditional, for - // performance, so probably better to return both start options. - // - // Then the caller just ignores the end if it's not the first pattern, - // and the start always gets applied. - // - // But that's always going to be $ if it's the ending pattern, or nothing, - // so the caller can just attach $ at the end of the pattern when building. - // - // So the todo is: - // - better detect what kind of start is needed - // - return both flavors of starting pattern - // - attach $ at the end of the pattern when creating the actual RegExp - // - // Ah, but wait, no, that all only applies to the root when the first pattern - // is not an extglob. If the first pattern IS an extglob, then we need all - // that dot prevention biz to live in the extglob portions, because eg - // +(*|.x*) can match .xy but not .yx. - // - // So, return the two flavors if it's #root and the first child is not an - // AST, otherwise leave it to the child AST to handle it, and there, - // use the (?:^|/) style of start binding. - // - // Even simplified further: - // - Since the start for a join is eg /(?!\.) and the start for a part - // is ^(?!\.), we can just prepend (?!\.) to the pattern (either root - // or start or whatever) and prepend ^ or / at the Regexp construction. - toRegExpSource(allowDot) { - var _a4; - const dot = allowDot ?? !!__privateGet(this, _options).dot; - if (__privateGet(this, _root) === this) - __privateMethod(this, _AST_instances, fillNegs_fn).call(this); - if (!this.type) { - const noEmpty = this.isStart() && this.isEnd(); - const src2 = __privateGet(this, _parts).map((p) => { - var _a5; - const [re, _, hasMagic2, uflag] = typeof p === "string" ? __privateMethod(_a5 = _AST, _AST_static, parseGlob_fn).call(_a5, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot); - __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic2); - __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag); - return re; - }).join(""); - let start2 = ""; - if (this.isStart()) { - if (typeof __privateGet(this, _parts)[0] === "string") { - const dotTravAllowed = __privateGet(this, _parts).length === 1 && justDots.has(__privateGet(this, _parts)[0]); - if (!dotTravAllowed) { - const aps = addPatternStart; - const needNoTrav = ( - // dots are allowed, and the pattern starts with [ or . - dot && aps.has(src2.charAt(0)) || // the pattern starts with \., and then [ or . - src2.startsWith("\\.") && aps.has(src2.charAt(2)) || // the pattern starts with \.\., and then [ or . - src2.startsWith("\\.\\.") && aps.has(src2.charAt(4)) - ); - const needNoDot = !dot && !allowDot && aps.has(src2.charAt(0)); - start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : ""; - } - } - } - let end = ""; - if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a4 = __privateGet(this, _parent)) == null ? void 0 : _a4.type) === "!") { - end = "(?:$|\\/)"; - } - const final2 = start2 + src2 + end; - return [ - final2, - unescape$1(src2), - __privateSet(this, _hasMagic, !!__privateGet(this, _hasMagic)), - __privateGet(this, _uflag) - ]; - } - const repeated = this.type === "*" || this.type === "+"; - const start = this.type === "!" ? "(?:(?!(?:" : "(?:"; - let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot); - if (this.isStart() && this.isEnd() && !body && this.type !== "!") { - const s = this.toString(); - __privateSet(this, _parts, [s]); - this.type = null; - __privateSet(this, _hasMagic, void 0); - return [s, unescape$1(this.toString()), false, false]; - } - let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot ? "" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true); - if (bodyDotAllowed === body) { - bodyDotAllowed = ""; - } - if (bodyDotAllowed) { - body = `(?:${body})(?:${bodyDotAllowed})*?`; - } - let final = ""; - if (this.type === "!" && __privateGet(this, _emptyExt)) { - final = (this.isStart() && !dot ? startNoDot : "") + starNoEmpty; - } else { - const close2 = this.type === "!" ? ( - // !() must match something,but !(x) can match '' - "))" + (this.isStart() && !dot && !allowDot ? startNoDot : "") + star$1 + ")" - ) : this.type === "@" ? ")" : this.type === "?" ? ")?" : this.type === "+" && bodyDotAllowed ? ")" : this.type === "*" && bodyDotAllowed ? `)?` : `)${this.type}`; - final = start + body + close2; - } - return [ - final, - unescape$1(body), - __privateSet(this, _hasMagic, !!__privateGet(this, _hasMagic)), - __privateGet(this, _uflag) - ]; - } -}; -_root = new WeakMap(); -_hasMagic = new WeakMap(); -_uflag = new WeakMap(); -_parts = new WeakMap(); -_parent = new WeakMap(); -_parentIndex = new WeakMap(); -_negs = new WeakMap(); -_filledNegs = new WeakMap(); -_options = new WeakMap(); -_toString = new WeakMap(); -_emptyExt = new WeakMap(); -_AST_instances = new WeakSet(); -fillNegs_fn = function() { - if (this !== __privateGet(this, _root)) - throw new Error("should only call on root"); - if (__privateGet(this, _filledNegs)) - return this; - this.toString(); - __privateSet(this, _filledNegs, true); - let n2; - while (n2 = __privateGet(this, _negs).pop()) { - if (n2.type !== "!") - continue; - let p = n2; - let pp = __privateGet(p, _parent); - while (pp) { - for (let i = __privateGet(p, _parentIndex) + 1; !pp.type && i < __privateGet(pp, _parts).length; i++) { - for (const part of __privateGet(n2, _parts)) { - if (typeof part === "string") { - throw new Error("string part in extglob AST??"); - } - part.copyIn(__privateGet(pp, _parts)[i]); - } - } - p = pp; - pp = __privateGet(p, _parent); - } - } - return this; -}; -_AST_static = new WeakSet(); -parseAST_fn = function(str, ast, pos, opt) { - var _a4, _b3; - let escaping = false; - let inBrace = false; - let braceStart = -1; - let braceNeg = false; - if (ast.type === null) { - let i2 = pos; - let acc2 = ""; - while (i2 < str.length) { - const c = str.charAt(i2++); - if (escaping || c === "\\") { - escaping = !escaping; - acc2 += c; - continue; - } - if (inBrace) { - if (i2 === braceStart + 1) { - if (c === "^" || c === "!") { - braceNeg = true; - } - } else if (c === "]" && !(i2 === braceStart + 2 && braceNeg)) { - inBrace = false; - } - acc2 += c; - continue; - } else if (c === "[") { - inBrace = true; - braceStart = i2; - braceNeg = false; - acc2 += c; - continue; - } - if (!opt.noext && isExtglobType(c) && str.charAt(i2) === "(") { - ast.push(acc2); - acc2 = ""; - const ext2 = new _AST(c, ast); - i2 = __privateMethod(_a4 = _AST, _AST_static, parseAST_fn).call(_a4, str, ext2, i2, opt); - ast.push(ext2); - continue; - } - acc2 += c; - } - ast.push(acc2); - return i2; - } - let i = pos + 1; - let part = new _AST(null, ast); - const parts = []; - let acc = ""; - while (i < str.length) { - const c = str.charAt(i++); - if (escaping || c === "\\") { - escaping = !escaping; - acc += c; - continue; - } - if (inBrace) { - if (i === braceStart + 1) { - if (c === "^" || c === "!") { - braceNeg = true; - } - } else if (c === "]" && !(i === braceStart + 2 && braceNeg)) { - inBrace = false; - } - acc += c; - continue; - } else if (c === "[") { - inBrace = true; - braceStart = i; - braceNeg = false; - acc += c; - continue; - } - if (isExtglobType(c) && str.charAt(i) === "(") { - part.push(acc); - acc = ""; - const ext2 = new _AST(c, part); - part.push(ext2); - i = __privateMethod(_b3 = _AST, _AST_static, parseAST_fn).call(_b3, str, ext2, i, opt); - continue; - } - if (c === "|") { - part.push(acc); - acc = ""; - parts.push(part); - part = new _AST(null, ast); - continue; - } - if (c === ")") { - if (acc === "" && __privateGet(ast, _parts).length === 0) { - __privateSet(ast, _emptyExt, true); - } - part.push(acc); - acc = ""; - ast.push(...parts, part); - return i; - } - acc += c; - } - ast.type = null; - __privateSet(ast, _hasMagic, void 0); - __privateSet(ast, _parts, [str.substring(pos - 1)]); - return i; -}; -partsToRegExp_fn = function(dot) { - return __privateGet(this, _parts).map((p) => { - if (typeof p === "string") { - throw new Error("string type in extglob ast??"); - } - const [re, _, _hasMagic2, uflag] = p.toRegExpSource(dot); - __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag); - return re; - }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join("|"); -}; -parseGlob_fn = function(glob2, hasMagic2, noEmpty = false) { - let escaping = false; - let re = ""; - let uflag = false; - for (let i = 0; i < glob2.length; i++) { - const c = glob2.charAt(i); - if (escaping) { - escaping = false; - re += (reSpecials.has(c) ? "\\" : "") + c; - continue; - } - if (c === "\\") { - if (i === glob2.length - 1) { - re += "\\\\"; - } else { - escaping = true; - } - continue; - } - if (c === "[") { - const [src2, needUflag, consumed, magic] = parseClass(glob2, i); - if (consumed) { - re += src2; - uflag = uflag || needUflag; - i += consumed - 1; - hasMagic2 = hasMagic2 || magic; - continue; - } - } - if (c === "*") { - if (noEmpty && glob2 === "*") - re += starNoEmpty; - else - re += star$1; - hasMagic2 = true; - continue; - } - if (c === "?") { - re += qmark$1; - hasMagic2 = true; - continue; - } - re += regExpEscape$1(c); - } - return [re, unescape$1(glob2), !!hasMagic2, uflag]; -}; -__privateAdd(_AST, _AST_static); -var AST = _AST; -var escape$2 = (s, { windowsPathsNoEscape = false } = {}) => { - return windowsPathsNoEscape ? s.replace(/[?*()[\]]/g, "[$&]") : s.replace(/[?*()[\]\\]/g, "\\$&"); -}; -var minimatch = (p, pattern2, options2 = {}) => { - assertValidPattern(pattern2); - if (!options2.nocomment && pattern2.charAt(0) === "#") { - return false; - } - return new Minimatch(pattern2, options2).match(p); -}; -var starDotExtRE = /^\*+([^+@!?\*\[\(]*)$/; -var starDotExtTest = (ext2) => (f2) => !f2.startsWith(".") && f2.endsWith(ext2); -var starDotExtTestDot = (ext2) => (f2) => f2.endsWith(ext2); -var starDotExtTestNocase = (ext2) => { - ext2 = ext2.toLowerCase(); - return (f2) => !f2.startsWith(".") && f2.toLowerCase().endsWith(ext2); -}; -var starDotExtTestNocaseDot = (ext2) => { - ext2 = ext2.toLowerCase(); - return (f2) => f2.toLowerCase().endsWith(ext2); -}; -var starDotStarRE = /^\*+\.\*+$/; -var starDotStarTest = (f2) => !f2.startsWith(".") && f2.includes("."); -var starDotStarTestDot = (f2) => f2 !== "." && f2 !== ".." && f2.includes("."); -var dotStarRE = /^\.\*+$/; -var dotStarTest = (f2) => f2 !== "." && f2 !== ".." && f2.startsWith("."); -var starRE = /^\*+$/; -var starTest = (f2) => f2.length !== 0 && !f2.startsWith("."); -var starTestDot = (f2) => f2.length !== 0 && f2 !== "." && f2 !== ".."; -var qmarksRE = /^\?+([^+@!?\*\[\(]*)?$/; -var qmarksTestNocase = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExt([$0]); - if (!ext2) - return noext; - ext2 = ext2.toLowerCase(); - return (f2) => noext(f2) && f2.toLowerCase().endsWith(ext2); -}; -var qmarksTestNocaseDot = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExtDot([$0]); - if (!ext2) - return noext; - ext2 = ext2.toLowerCase(); - return (f2) => noext(f2) && f2.toLowerCase().endsWith(ext2); -}; -var qmarksTestDot = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExtDot([$0]); - return !ext2 ? noext : (f2) => noext(f2) && f2.endsWith(ext2); -}; -var qmarksTest = ([$0, ext2 = ""]) => { - const noext = qmarksTestNoExt([$0]); - return !ext2 ? noext : (f2) => noext(f2) && f2.endsWith(ext2); -}; -var qmarksTestNoExt = ([$0]) => { - const len = $0.length; - return (f2) => f2.length === len && !f2.startsWith("."); -}; -var qmarksTestNoExtDot = ([$0]) => { - const len = $0.length; - return (f2) => f2.length === len && f2 !== "." && f2 !== ".."; -}; -var defaultPlatform$2 = typeof process === "object" && process ? typeof process.env === "object" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : "posix"; -var path$j = { - win32: { sep: "\\" }, - posix: { sep: "/" } -}; -var sep = defaultPlatform$2 === "win32" ? path$j.win32.sep : path$j.posix.sep; -minimatch.sep = sep; -var GLOBSTAR$2 = Symbol("globstar **"); -minimatch.GLOBSTAR = GLOBSTAR$2; -var qmark = "[^/]"; -var star = qmark + "*?"; -var twoStarDot = "(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?"; -var twoStarNoDot = "(?:(?!(?:\\/|^)\\.).)*?"; -var filter$1 = (pattern2, options2 = {}) => (p) => minimatch(p, pattern2, options2); -minimatch.filter = filter$1; -var ext = (a, b = {}) => Object.assign({}, a, b); -var defaults = (def) => { - if (!def || typeof def !== "object" || !Object.keys(def).length) { - return minimatch; - } - const orig = minimatch; - const m = (p, pattern2, options2 = {}) => orig(p, pattern2, ext(def, options2)); - return Object.assign(m, { - Minimatch: class Minimatch extends orig.Minimatch { - constructor(pattern2, options2 = {}) { - super(pattern2, ext(def, options2)); - } - static defaults(options2) { - return orig.defaults(ext(def, options2)).Minimatch; - } - }, - AST: class AST extends orig.AST { - /* c8 ignore start */ - constructor(type, parent, options2 = {}) { - super(type, parent, ext(def, options2)); - } - /* c8 ignore stop */ - static fromGlob(pattern2, options2 = {}) { - return orig.AST.fromGlob(pattern2, ext(def, options2)); - } - }, - unescape: (s, options2 = {}) => orig.unescape(s, ext(def, options2)), - escape: (s, options2 = {}) => orig.escape(s, ext(def, options2)), - filter: (pattern2, options2 = {}) => orig.filter(pattern2, ext(def, options2)), - defaults: (options2) => orig.defaults(ext(def, options2)), - makeRe: (pattern2, options2 = {}) => orig.makeRe(pattern2, ext(def, options2)), - braceExpand: (pattern2, options2 = {}) => orig.braceExpand(pattern2, ext(def, options2)), - match: (list, pattern2, options2 = {}) => orig.match(list, pattern2, ext(def, options2)), - sep: orig.sep, - GLOBSTAR: GLOBSTAR$2 - }); -}; -minimatch.defaults = defaults; -var braceExpand = (pattern2, options2 = {}) => { - assertValidPattern(pattern2); - if (options2.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern2)) { - return [pattern2]; - } - return expand$4(pattern2); -}; -minimatch.braceExpand = braceExpand; -var makeRe$1 = (pattern2, options2 = {}) => new Minimatch(pattern2, options2).makeRe(); -minimatch.makeRe = makeRe$1; -var match = (list, pattern2, options2 = {}) => { - const mm = new Minimatch(pattern2, options2); - list = list.filter((f2) => mm.match(f2)); - if (mm.options.nonull && !list.length) { - list.push(pattern2); - } - return list; -}; -minimatch.match = match; -var globMagic = /[?*]|[+@!]\(.*?\)|\[|\]/; -var regExpEscape = (s) => s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); -var Minimatch = class { - constructor(pattern2, options2 = {}) { - __publicField(this, "options"); - __publicField(this, "set"); - __publicField(this, "pattern"); - __publicField(this, "windowsPathsNoEscape"); - __publicField(this, "nonegate"); - __publicField(this, "negate"); - __publicField(this, "comment"); - __publicField(this, "empty"); - __publicField(this, "preserveMultipleSlashes"); - __publicField(this, "partial"); - __publicField(this, "globSet"); - __publicField(this, "globParts"); - __publicField(this, "nocase"); - __publicField(this, "isWindows"); - __publicField(this, "platform"); - __publicField(this, "windowsNoMagicRoot"); - __publicField(this, "regexp"); - assertValidPattern(pattern2); - options2 = options2 || {}; - this.options = options2; - this.pattern = pattern2; - this.platform = options2.platform || defaultPlatform$2; - this.isWindows = this.platform === "win32"; - this.windowsPathsNoEscape = !!options2.windowsPathsNoEscape || options2.allowWindowsEscape === false; - if (this.windowsPathsNoEscape) { - this.pattern = this.pattern.replace(/\\/g, "/"); - } - this.preserveMultipleSlashes = !!options2.preserveMultipleSlashes; - this.regexp = null; - this.negate = false; - this.nonegate = !!options2.nonegate; - this.comment = false; - this.empty = false; - this.partial = !!options2.partial; - this.nocase = !!this.options.nocase; - this.windowsNoMagicRoot = options2.windowsNoMagicRoot !== void 0 ? options2.windowsNoMagicRoot : !!(this.isWindows && this.nocase); - this.globSet = []; - this.globParts = []; - this.set = []; - this.make(); - } - hasMagic() { - if (this.options.magicalBraces && this.set.length > 1) { - return true; - } - for (const pattern2 of this.set) { - for (const part of pattern2) { - if (typeof part !== "string") - return true; - } - } - return false; - } - debug(..._) { - } - make() { - const pattern2 = this.pattern; - const options2 = this.options; - if (!options2.nocomment && pattern2.charAt(0) === "#") { - this.comment = true; - return; - } - if (!pattern2) { - this.empty = true; - return; - } - this.parseNegate(); - this.globSet = [...new Set(this.braceExpand())]; - if (options2.debug) { - this.debug = (...args) => console.error(...args); - } - this.debug(this.pattern, this.globSet); - const rawGlobParts = this.globSet.map((s) => this.slashSplit(s)); - this.globParts = this.preprocess(rawGlobParts); - this.debug(this.pattern, this.globParts); - let set2 = this.globParts.map((s, _, __) => { - if (this.isWindows && this.windowsNoMagicRoot) { - const isUNC = s[0] === "" && s[1] === "" && (s[2] === "?" || !globMagic.test(s[2])) && !globMagic.test(s[3]); - const isDrive = /^[a-z]:/i.test(s[0]); - if (isUNC) { - return [...s.slice(0, 4), ...s.slice(4).map((ss) => this.parse(ss))]; - } else if (isDrive) { - return [s[0], ...s.slice(1).map((ss) => this.parse(ss))]; - } - } - return s.map((ss) => this.parse(ss)); - }); - this.debug(this.pattern, set2); - this.set = set2.filter((s) => s.indexOf(false) === -1); - if (this.isWindows) { - for (let i = 0; i < this.set.length; i++) { - const p = this.set[i]; - if (p[0] === "" && p[1] === "" && this.globParts[i][2] === "?" && typeof p[3] === "string" && /^[a-z]:$/i.test(p[3])) { - p[2] = "?"; - } - } - } - this.debug(this.pattern, this.set); - } - // various transforms to equivalent pattern sets that are - // faster to process in a filesystem walk. The goal is to - // eliminate what we can, and push all ** patterns as far - // to the right as possible, even if it increases the number - // of patterns that we have to process. - preprocess(globParts) { - if (this.options.noglobstar) { - for (let i = 0; i < globParts.length; i++) { - for (let j = 0; j < globParts[i].length; j++) { - if (globParts[i][j] === "**") { - globParts[i][j] = "*"; - } - } - } - } - const { optimizationLevel = 1 } = this.options; - if (optimizationLevel >= 2) { - globParts = this.firstPhasePreProcess(globParts); - globParts = this.secondPhasePreProcess(globParts); - } else if (optimizationLevel >= 1) { - globParts = this.levelOneOptimize(globParts); - } else { - globParts = this.adjascentGlobstarOptimize(globParts); - } - return globParts; - } - // just get rid of adjascent ** portions - adjascentGlobstarOptimize(globParts) { - return globParts.map((parts) => { - let gs = -1; - while (-1 !== (gs = parts.indexOf("**", gs + 1))) { - let i = gs; - while (parts[i + 1] === "**") { - i++; - } - if (i !== gs) { - parts.splice(gs, i - gs); - } - } - return parts; - }); - } - // get rid of adjascent ** and resolve .. portions - levelOneOptimize(globParts) { - return globParts.map((parts) => { - parts = parts.reduce((set2, part) => { - const prev = set2[set2.length - 1]; - if (part === "**" && prev === "**") { - return set2; - } - if (part === "..") { - if (prev && prev !== ".." && prev !== "." && prev !== "**") { - set2.pop(); - return set2; - } - } - set2.push(part); - return set2; - }, []); - return parts.length === 0 ? [""] : parts; - }); - } - levelTwoFileOptimize(parts) { - if (!Array.isArray(parts)) { - parts = this.slashSplit(parts); - } - let didSomething = false; - do { - didSomething = false; - if (!this.preserveMultipleSlashes) { - for (let i = 1; i < parts.length - 1; i++) { - const p = parts[i]; - if (i === 1 && p === "" && parts[0] === "") - continue; - if (p === "." || p === "") { - didSomething = true; - parts.splice(i, 1); - i--; - } - } - if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) { - didSomething = true; - parts.pop(); - } - } - let dd = 0; - while (-1 !== (dd = parts.indexOf("..", dd + 1))) { - const p = parts[dd - 1]; - if (p && p !== "." && p !== ".." && p !== "**") { - didSomething = true; - parts.splice(dd - 1, 2); - dd -= 2; - } - } - } while (didSomething); - return parts.length === 0 ? [""] : parts; - } - // First phase: single-pattern processing - //
 is 1 or more portions
-  //  is 1 or more portions
-  // 

is any portion other than ., .., '', or ** - // is . or '' - // - // **/.. is *brutal* for filesystem walking performance, because - // it effectively resets the recursive walk each time it occurs, - // and ** cannot be reduced out by a .. pattern part like a regexp - // or most strings (other than .., ., and '') can be. - // - //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/} - //

// -> 
/
-  // 
/

/../ ->

/
-  // **/**/ -> **/
-  //
-  // **/*/ -> */**/ <== not valid because ** doesn't follow
-  // this WOULD be allowed if ** did follow symlinks, or * didn't
-  firstPhasePreProcess(globParts) {
-    let didSomething = false;
-    do {
-      didSomething = false;
-      for (let parts of globParts) {
-        let gs = -1;
-        while (-1 !== (gs = parts.indexOf("**", gs + 1))) {
-          let gss = gs;
-          while (parts[gss + 1] === "**") {
-            gss++;
-          }
-          if (gss > gs) {
-            parts.splice(gs + 1, gss - gs);
-          }
-          let next = parts[gs + 1];
-          const p = parts[gs + 2];
-          const p2 = parts[gs + 3];
-          if (next !== "..")
-            continue;
-          if (!p || p === "." || p === ".." || !p2 || p2 === "." || p2 === "..") {
-            continue;
-          }
-          didSomething = true;
-          parts.splice(gs, 1);
-          const other = parts.slice(0);
-          other[gs] = "**";
-          globParts.push(other);
-          gs--;
-        }
-        if (!this.preserveMultipleSlashes) {
-          for (let i = 1; i < parts.length - 1; i++) {
-            const p = parts[i];
-            if (i === 1 && p === "" && parts[0] === "")
-              continue;
-            if (p === "." || p === "") {
-              didSomething = true;
-              parts.splice(i, 1);
-              i--;
-            }
-          }
-          if (parts[0] === "." && parts.length === 2 && (parts[1] === "." || parts[1] === "")) {
-            didSomething = true;
-            parts.pop();
-          }
-        }
-        let dd = 0;
-        while (-1 !== (dd = parts.indexOf("..", dd + 1))) {
-          const p = parts[dd - 1];
-          if (p && p !== "." && p !== ".." && p !== "**") {
-            didSomething = true;
-            const needDot = dd === 1 && parts[dd + 1] === "**";
-            const splin = needDot ? ["."] : [];
-            parts.splice(dd - 1, 2, ...splin);
-            if (parts.length === 0)
-              parts.push("");
-            dd -= 2;
-          }
-        }
-      }
-    } while (didSomething);
-    return globParts;
-  }
-  // second phase: multi-pattern dedupes
-  // {
/*/,
/

/} ->

/*/
-  // {
/,
/} -> 
/
-  // {
/**/,
/} -> 
/**/
-  //
-  // {
/**/,
/**/

/} ->

/**/
-  // ^-- not valid because ** doens't follow symlinks
-  secondPhasePreProcess(globParts) {
-    for (let i = 0; i < globParts.length - 1; i++) {
-      for (let j = i + 1; j < globParts.length; j++) {
-        const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);
-        if (matched) {
-          globParts[i] = [];
-          globParts[j] = matched;
-          break;
-        }
-      }
-    }
-    return globParts.filter((gs) => gs.length);
-  }
-  partsMatch(a, b, emptyGSMatch = false) {
-    let ai = 0;
-    let bi = 0;
-    let result = [];
-    let which2 = "";
-    while (ai < a.length && bi < b.length) {
-      if (a[ai] === b[bi]) {
-        result.push(which2 === "b" ? b[bi] : a[ai]);
-        ai++;
-        bi++;
-      } else if (emptyGSMatch && a[ai] === "**" && b[bi] === a[ai + 1]) {
-        result.push(a[ai]);
-        ai++;
-      } else if (emptyGSMatch && b[bi] === "**" && a[ai] === b[bi + 1]) {
-        result.push(b[bi]);
-        bi++;
-      } else if (a[ai] === "*" && b[bi] && (this.options.dot || !b[bi].startsWith(".")) && b[bi] !== "**") {
-        if (which2 === "b")
-          return false;
-        which2 = "a";
-        result.push(a[ai]);
-        ai++;
-        bi++;
-      } else if (b[bi] === "*" && a[ai] && (this.options.dot || !a[ai].startsWith(".")) && a[ai] !== "**") {
-        if (which2 === "a")
-          return false;
-        which2 = "b";
-        result.push(b[bi]);
-        ai++;
-        bi++;
-      } else {
-        return false;
-      }
-    }
-    return a.length === b.length && result;
-  }
-  parseNegate() {
-    if (this.nonegate)
-      return;
-    const pattern2 = this.pattern;
-    let negate = false;
-    let negateOffset = 0;
-    for (let i = 0; i < pattern2.length && pattern2.charAt(i) === "!"; i++) {
-      negate = !negate;
-      negateOffset++;
-    }
-    if (negateOffset)
-      this.pattern = pattern2.slice(negateOffset);
-    this.negate = negate;
-  }
-  // set partial to true to test if, for example,
-  // "/a/b" matches the start of "/*/b/*/d"
-  // Partial means, if you run out of file before you run
-  // out of pattern, then that's fine, as long as all
-  // the parts match.
-  matchOne(file, pattern2, partial2 = false) {
-    const options2 = this.options;
-    if (this.isWindows) {
-      const fileDrive = typeof file[0] === "string" && /^[a-z]:$/i.test(file[0]);
-      const fileUNC = !fileDrive && file[0] === "" && file[1] === "" && file[2] === "?" && /^[a-z]:$/i.test(file[3]);
-      const patternDrive = typeof pattern2[0] === "string" && /^[a-z]:$/i.test(pattern2[0]);
-      const patternUNC = !patternDrive && pattern2[0] === "" && pattern2[1] === "" && pattern2[2] === "?" && typeof pattern2[3] === "string" && /^[a-z]:$/i.test(pattern2[3]);
-      const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;
-      const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;
-      if (typeof fdi === "number" && typeof pdi === "number") {
-        const [fd, pd] = [file[fdi], pattern2[pdi]];
-        if (fd.toLowerCase() === pd.toLowerCase()) {
-          pattern2[pdi] = fd;
-          if (pdi > fdi) {
-            pattern2 = pattern2.slice(pdi);
-          } else if (fdi > pdi) {
-            file = file.slice(fdi);
-          }
-        }
-      }
-    }
-    const { optimizationLevel = 1 } = this.options;
-    if (optimizationLevel >= 2) {
-      file = this.levelTwoFileOptimize(file);
-    }
-    this.debug("matchOne", this, { file, pattern: pattern2 });
-    this.debug("matchOne", file.length, pattern2.length);
-    for (var fi = 0, pi = 0, fl = file.length, pl = pattern2.length; fi < fl && pi < pl; fi++, pi++) {
-      this.debug("matchOne loop");
-      var p = pattern2[pi];
-      var f2 = file[fi];
-      this.debug(pattern2, p, f2);
-      if (p === false) {
-        return false;
-      }
-      if (p === GLOBSTAR$2) {
-        this.debug("GLOBSTAR", [pattern2, p, f2]);
-        var fr = fi;
-        var pr = pi + 1;
-        if (pr === pl) {
-          this.debug("** at the end");
-          for (; fi < fl; fi++) {
-            if (file[fi] === "." || file[fi] === ".." || !options2.dot && file[fi].charAt(0) === ".")
-              return false;
-          }
-          return true;
-        }
-        while (fr < fl) {
-          var swallowee = file[fr];
-          this.debug("\nglobstar while", file, fr, pattern2, pr, swallowee);
-          if (this.matchOne(file.slice(fr), pattern2.slice(pr), partial2)) {
-            this.debug("globstar found match!", fr, fl, swallowee);
-            return true;
-          } else {
-            if (swallowee === "." || swallowee === ".." || !options2.dot && swallowee.charAt(0) === ".") {
-              this.debug("dot detected!", file, fr, pattern2, pr);
-              break;
-            }
-            this.debug("globstar swallow a segment, and continue");
-            fr++;
-          }
-        }
-        if (partial2) {
-          this.debug("\n>>> no match, partial?", file, fr, pattern2, pr);
-          if (fr === fl) {
-            return true;
-          }
-        }
-        return false;
-      }
-      let hit;
-      if (typeof p === "string") {
-        hit = f2 === p;
-        this.debug("string match", p, f2, hit);
-      } else {
-        hit = p.test(f2);
-        this.debug("pattern match", p, f2, hit);
-      }
-      if (!hit)
-        return false;
-    }
-    if (fi === fl && pi === pl) {
-      return true;
-    } else if (fi === fl) {
-      return partial2;
-    } else if (pi === pl) {
-      return fi === fl - 1 && file[fi] === "";
-    } else {
-      throw new Error("wtf?");
-    }
-  }
-  braceExpand() {
-    return braceExpand(this.pattern, this.options);
-  }
-  parse(pattern2) {
-    assertValidPattern(pattern2);
-    const options2 = this.options;
-    if (pattern2 === "**")
-      return GLOBSTAR$2;
-    if (pattern2 === "")
-      return "";
-    let m;
-    let fastTest = null;
-    if (m = pattern2.match(starRE)) {
-      fastTest = options2.dot ? starTestDot : starTest;
-    } else if (m = pattern2.match(starDotExtRE)) {
-      fastTest = (options2.nocase ? options2.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options2.dot ? starDotExtTestDot : starDotExtTest)(m[1]);
-    } else if (m = pattern2.match(qmarksRE)) {
-      fastTest = (options2.nocase ? options2.dot ? qmarksTestNocaseDot : qmarksTestNocase : options2.dot ? qmarksTestDot : qmarksTest)(m);
-    } else if (m = pattern2.match(starDotStarRE)) {
-      fastTest = options2.dot ? starDotStarTestDot : starDotStarTest;
-    } else if (m = pattern2.match(dotStarRE)) {
-      fastTest = dotStarTest;
-    }
-    const re = AST.fromGlob(pattern2, this.options).toMMPattern();
-    if (fastTest && typeof re === "object") {
-      Reflect.defineProperty(re, "test", { value: fastTest });
-    }
-    return re;
-  }
-  makeRe() {
-    if (this.regexp || this.regexp === false)
-      return this.regexp;
-    const set2 = this.set;
-    if (!set2.length) {
-      this.regexp = false;
-      return this.regexp;
-    }
-    const options2 = this.options;
-    const twoStar = options2.noglobstar ? star : options2.dot ? twoStarDot : twoStarNoDot;
-    const flags = new Set(options2.nocase ? ["i"] : []);
-    let re = set2.map((pattern2) => {
-      const pp = pattern2.map((p) => {
-        if (p instanceof RegExp) {
-          for (const f2 of p.flags.split(""))
-            flags.add(f2);
-        }
-        return typeof p === "string" ? regExpEscape(p) : p === GLOBSTAR$2 ? GLOBSTAR$2 : p._src;
-      });
-      pp.forEach((p, i) => {
-        const next = pp[i + 1];
-        const prev = pp[i - 1];
-        if (p !== GLOBSTAR$2 || prev === GLOBSTAR$2) {
-          return;
-        }
-        if (prev === void 0) {
-          if (next !== void 0 && next !== GLOBSTAR$2) {
-            pp[i + 1] = "(?:\\/|" + twoStar + "\\/)?" + next;
-          } else {
-            pp[i] = twoStar;
-          }
-        } else if (next === void 0) {
-          pp[i - 1] = prev + "(?:\\/|" + twoStar + ")?";
-        } else if (next !== GLOBSTAR$2) {
-          pp[i - 1] = prev + "(?:\\/|\\/" + twoStar + "\\/)" + next;
-          pp[i + 1] = GLOBSTAR$2;
-        }
-      });
-      return pp.filter((p) => p !== GLOBSTAR$2).join("/");
-    }).join("|");
-    const [open2, close2] = set2.length > 1 ? ["(?:", ")"] : ["", ""];
-    re = "^" + open2 + re + close2 + "$";
-    if (this.negate)
-      re = "^(?!" + re + ").+$";
-    try {
-      this.regexp = new RegExp(re, [...flags].join(""));
-    } catch (ex) {
-      this.regexp = false;
-    }
-    return this.regexp;
-  }
-  slashSplit(p) {
-    if (this.preserveMultipleSlashes) {
-      return p.split("/");
-    } else if (this.isWindows && /^\/\/[^\/]+/.test(p)) {
-      return ["", ...p.split(/\/+/)];
-    } else {
-      return p.split(/\/+/);
-    }
-  }
-  match(f2, partial2 = this.partial) {
-    this.debug("match", f2, this.pattern);
-    if (this.comment) {
-      return false;
-    }
-    if (this.empty) {
-      return f2 === "";
-    }
-    if (f2 === "/" && partial2) {
-      return true;
-    }
-    const options2 = this.options;
-    if (this.isWindows) {
-      f2 = f2.split("\\").join("/");
-    }
-    const ff = this.slashSplit(f2);
-    this.debug(this.pattern, "split", ff);
-    const set2 = this.set;
-    this.debug(this.pattern, "set", set2);
-    let filename = ff[ff.length - 1];
-    if (!filename) {
-      for (let i = ff.length - 2; !filename && i >= 0; i--) {
-        filename = ff[i];
-      }
-    }
-    for (let i = 0; i < set2.length; i++) {
-      const pattern2 = set2[i];
-      let file = ff;
-      if (options2.matchBase && pattern2.length === 1) {
-        file = [filename];
-      }
-      const hit = this.matchOne(file, pattern2, partial2);
-      if (hit) {
-        if (options2.flipNegate) {
-          return true;
-        }
-        return !this.negate;
-      }
-    }
-    if (options2.flipNegate) {
-      return false;
-    }
-    return this.negate;
-  }
-  static defaults(def) {
-    return minimatch.defaults(def).Minimatch;
-  }
-};
-minimatch.AST = AST;
-minimatch.Minimatch = Minimatch;
-minimatch.escape = escape$2;
-minimatch.unescape = unescape$1;
-var perf = typeof performance === "object" && performance && typeof performance.now === "function" ? performance : Date;
-var warned$1 = /* @__PURE__ */ new Set();
-var PROCESS = typeof process === "object" && !!process ? process : {};
-var emitWarning = (msg, type, code, fn) => {
-  typeof PROCESS.emitWarning === "function" ? PROCESS.emitWarning(msg, type, code, fn) : console.error(`[${code}] ${type}: ${msg}`);
-};
-var AC = globalThis.AbortController;
-var AS = globalThis.AbortSignal;
-var _a;
-if (typeof AC === "undefined") {
-  AS = class AbortSignal {
-    constructor() {
-      __publicField(this, "onabort");
-      __publicField(this, "_onabort", []);
-      __publicField(this, "reason");
-      __publicField(this, "aborted", false);
-    }
-    addEventListener(_, fn) {
-      this._onabort.push(fn);
-    }
-  };
-  AC = class AbortController {
-    constructor() {
-      __publicField(this, "signal", new AS());
-      warnACPolyfill();
-    }
-    abort(reason) {
-      var _a4, _b3;
-      if (this.signal.aborted)
-        return;
-      this.signal.reason = reason;
-      this.signal.aborted = true;
-      for (const fn of this.signal._onabort) {
-        fn(reason);
-      }
-      (_b3 = (_a4 = this.signal).onabort) == null ? void 0 : _b3.call(_a4, reason);
-    }
-  };
-  let printACPolyfillWarning = ((_a = PROCESS.env) == null ? void 0 : _a.LRU_CACHE_IGNORE_AC_WARNING) !== "1";
-  const warnACPolyfill = () => {
-    if (!printACPolyfillWarning)
-      return;
-    printACPolyfillWarning = false;
-    emitWarning("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.", "NO_ABORT_CONTROLLER", "ENOTSUP", warnACPolyfill);
-  };
-}
-var shouldWarn = (code) => !warned$1.has(code);
-var isPosInt = (n2) => n2 && n2 === Math.floor(n2) && n2 > 0 && isFinite(n2);
-var getUintArray = (max) => !isPosInt(max) ? null : max <= Math.pow(2, 8) ? Uint8Array : max <= Math.pow(2, 16) ? Uint16Array : max <= Math.pow(2, 32) ? Uint32Array : max <= Number.MAX_SAFE_INTEGER ? ZeroArray : null;
-var ZeroArray = class extends Array {
-  constructor(size) {
-    super(size);
-    this.fill(0);
-  }
-};
-var _constructing;
-var _Stack = class _Stack {
-  constructor(max, HeapCls) {
-    __publicField(this, "heap");
-    __publicField(this, "length");
-    if (!__privateGet(_Stack, _constructing)) {
-      throw new TypeError("instantiate Stack using Stack.create(n)");
-    }
-    this.heap = new HeapCls(max);
-    this.length = 0;
-  }
-  static create(max) {
-    const HeapCls = getUintArray(max);
-    if (!HeapCls)
-      return [];
-    __privateSet(_Stack, _constructing, true);
-    const s = new _Stack(max, HeapCls);
-    __privateSet(_Stack, _constructing, false);
-    return s;
-  }
-  push(n2) {
-    this.heap[this.length++] = n2;
-  }
-  pop() {
-    return this.heap[--this.length];
-  }
-};
-_constructing = new WeakMap();
-// private constructor
-__privateAdd(_Stack, _constructing, false);
-var Stack = _Stack;
-var _a2, _b, _max, _maxSize, _dispose, _disposeAfter, _fetchMethod, _memoMethod, _size, _calculatedSize, _keyMap, _keyList, _valList, _next, _prev, _head, _tail, _free, _disposed, _sizes, _starts, _ttls, _hasDispose, _hasFetchMethod, _hasDisposeAfter, _LRUCache_instances, initializeTTLTracking_fn, _updateItemAge, _statusTTL, _setItemTTL, _isStale, initializeSizeTracking_fn, _removeItemSize, _addItemSize, _requireSize, indexes_fn, rindexes_fn, isValidIndex_fn, evict_fn, backgroundFetch_fn, isBackgroundFetch_fn, connect_fn, moveToTail_fn, delete_fn, clear_fn;
-var _LRUCache = class _LRUCache {
-  constructor(options2) {
-    __privateAdd(this, _LRUCache_instances);
-    // options that cannot be changed without disaster
-    __privateAdd(this, _max);
-    __privateAdd(this, _maxSize);
-    __privateAdd(this, _dispose);
-    __privateAdd(this, _disposeAfter);
-    __privateAdd(this, _fetchMethod);
-    __privateAdd(this, _memoMethod);
-    /**
-     * {@link LRUCache.OptionsBase.ttl}
-     */
-    __publicField(this, "ttl");
-    /**
-     * {@link LRUCache.OptionsBase.ttlResolution}
-     */
-    __publicField(this, "ttlResolution");
-    /**
-     * {@link LRUCache.OptionsBase.ttlAutopurge}
-     */
-    __publicField(this, "ttlAutopurge");
-    /**
-     * {@link LRUCache.OptionsBase.updateAgeOnGet}
-     */
-    __publicField(this, "updateAgeOnGet");
-    /**
-     * {@link LRUCache.OptionsBase.updateAgeOnHas}
-     */
-    __publicField(this, "updateAgeOnHas");
-    /**
-     * {@link LRUCache.OptionsBase.allowStale}
-     */
-    __publicField(this, "allowStale");
-    /**
-     * {@link LRUCache.OptionsBase.noDisposeOnSet}
-     */
-    __publicField(this, "noDisposeOnSet");
-    /**
-     * {@link LRUCache.OptionsBase.noUpdateTTL}
-     */
-    __publicField(this, "noUpdateTTL");
-    /**
-     * {@link LRUCache.OptionsBase.maxEntrySize}
-     */
-    __publicField(this, "maxEntrySize");
-    /**
-     * {@link LRUCache.OptionsBase.sizeCalculation}
-     */
-    __publicField(this, "sizeCalculation");
-    /**
-     * {@link LRUCache.OptionsBase.noDeleteOnFetchRejection}
-     */
-    __publicField(this, "noDeleteOnFetchRejection");
-    /**
-     * {@link LRUCache.OptionsBase.noDeleteOnStaleGet}
-     */
-    __publicField(this, "noDeleteOnStaleGet");
-    /**
-     * {@link LRUCache.OptionsBase.allowStaleOnFetchAbort}
-     */
-    __publicField(this, "allowStaleOnFetchAbort");
-    /**
-     * {@link LRUCache.OptionsBase.allowStaleOnFetchRejection}
-     */
-    __publicField(this, "allowStaleOnFetchRejection");
-    /**
-     * {@link LRUCache.OptionsBase.ignoreFetchAbort}
-     */
-    __publicField(this, "ignoreFetchAbort");
-    // computed properties
-    __privateAdd(this, _size);
-    __privateAdd(this, _calculatedSize);
-    __privateAdd(this, _keyMap);
-    __privateAdd(this, _keyList);
-    __privateAdd(this, _valList);
-    __privateAdd(this, _next);
-    __privateAdd(this, _prev);
-    __privateAdd(this, _head);
-    __privateAdd(this, _tail);
-    __privateAdd(this, _free);
-    __privateAdd(this, _disposed);
-    __privateAdd(this, _sizes);
-    __privateAdd(this, _starts);
-    __privateAdd(this, _ttls);
-    __privateAdd(this, _hasDispose);
-    __privateAdd(this, _hasFetchMethod);
-    __privateAdd(this, _hasDisposeAfter);
-    // conditionally set private methods related to TTL
-    __privateAdd(this, _updateItemAge, () => {
-    });
-    __privateAdd(this, _statusTTL, () => {
-    });
-    __privateAdd(this, _setItemTTL, () => {
-    });
-    /* c8 ignore stop */
-    __privateAdd(this, _isStale, () => false);
-    __privateAdd(this, _removeItemSize, (_i2) => {
-    });
-    __privateAdd(this, _addItemSize, (_i2, _s2, _st) => {
-    });
-    __privateAdd(this, _requireSize, (_k2, _v, size, sizeCalculation) => {
-      if (size || sizeCalculation) {
-        throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");
-      }
-      return 0;
-    });
-    /**
-     * A String value that is used in the creation of the default string
-     * description of an object. Called by the built-in method
-     * `Object.prototype.toString`.
-     */
-    __publicField(this, _a2, "LRUCache");
-    const { max = 0, ttl, ttlResolution = 1, ttlAutopurge, updateAgeOnGet, updateAgeOnHas, allowStale, dispose, disposeAfter, noDisposeOnSet, noUpdateTTL, maxSize = 0, maxEntrySize = 0, sizeCalculation, fetchMethod, memoMethod, noDeleteOnFetchRejection, noDeleteOnStaleGet, allowStaleOnFetchRejection, allowStaleOnFetchAbort, ignoreFetchAbort } = options2;
-    if (max !== 0 && !isPosInt(max)) {
-      throw new TypeError("max option must be a nonnegative integer");
-    }
-    const UintArray = max ? getUintArray(max) : Array;
-    if (!UintArray) {
-      throw new Error("invalid max value: " + max);
-    }
-    __privateSet(this, _max, max);
-    __privateSet(this, _maxSize, maxSize);
-    this.maxEntrySize = maxEntrySize || __privateGet(this, _maxSize);
-    this.sizeCalculation = sizeCalculation;
-    if (this.sizeCalculation) {
-      if (!__privateGet(this, _maxSize) && !this.maxEntrySize) {
-        throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");
-      }
-      if (typeof this.sizeCalculation !== "function") {
-        throw new TypeError("sizeCalculation set to non-function");
-      }
-    }
-    if (memoMethod !== void 0 && typeof memoMethod !== "function") {
-      throw new TypeError("memoMethod must be a function if defined");
-    }
-    __privateSet(this, _memoMethod, memoMethod);
-    if (fetchMethod !== void 0 && typeof fetchMethod !== "function") {
-      throw new TypeError("fetchMethod must be a function if specified");
-    }
-    __privateSet(this, _fetchMethod, fetchMethod);
-    __privateSet(this, _hasFetchMethod, !!fetchMethod);
-    __privateSet(this, _keyMap, /* @__PURE__ */ new Map());
-    __privateSet(this, _keyList, new Array(max).fill(void 0));
-    __privateSet(this, _valList, new Array(max).fill(void 0));
-    __privateSet(this, _next, new UintArray(max));
-    __privateSet(this, _prev, new UintArray(max));
-    __privateSet(this, _head, 0);
-    __privateSet(this, _tail, 0);
-    __privateSet(this, _free, Stack.create(max));
-    __privateSet(this, _size, 0);
-    __privateSet(this, _calculatedSize, 0);
-    if (typeof dispose === "function") {
-      __privateSet(this, _dispose, dispose);
-    }
-    if (typeof disposeAfter === "function") {
-      __privateSet(this, _disposeAfter, disposeAfter);
-      __privateSet(this, _disposed, []);
-    } else {
-      __privateSet(this, _disposeAfter, void 0);
-      __privateSet(this, _disposed, void 0);
-    }
-    __privateSet(this, _hasDispose, !!__privateGet(this, _dispose));
-    __privateSet(this, _hasDisposeAfter, !!__privateGet(this, _disposeAfter));
-    this.noDisposeOnSet = !!noDisposeOnSet;
-    this.noUpdateTTL = !!noUpdateTTL;
-    this.noDeleteOnFetchRejection = !!noDeleteOnFetchRejection;
-    this.allowStaleOnFetchRejection = !!allowStaleOnFetchRejection;
-    this.allowStaleOnFetchAbort = !!allowStaleOnFetchAbort;
-    this.ignoreFetchAbort = !!ignoreFetchAbort;
-    if (this.maxEntrySize !== 0) {
-      if (__privateGet(this, _maxSize) !== 0) {
-        if (!isPosInt(__privateGet(this, _maxSize))) {
-          throw new TypeError("maxSize must be a positive integer if specified");
-        }
-      }
-      if (!isPosInt(this.maxEntrySize)) {
-        throw new TypeError("maxEntrySize must be a positive integer if specified");
-      }
-      __privateMethod(this, _LRUCache_instances, initializeSizeTracking_fn).call(this);
-    }
-    this.allowStale = !!allowStale;
-    this.noDeleteOnStaleGet = !!noDeleteOnStaleGet;
-    this.updateAgeOnGet = !!updateAgeOnGet;
-    this.updateAgeOnHas = !!updateAgeOnHas;
-    this.ttlResolution = isPosInt(ttlResolution) || ttlResolution === 0 ? ttlResolution : 1;
-    this.ttlAutopurge = !!ttlAutopurge;
-    this.ttl = ttl || 0;
-    if (this.ttl) {
-      if (!isPosInt(this.ttl)) {
-        throw new TypeError("ttl must be a positive integer if specified");
-      }
-      __privateMethod(this, _LRUCache_instances, initializeTTLTracking_fn).call(this);
-    }
-    if (__privateGet(this, _max) === 0 && this.ttl === 0 && __privateGet(this, _maxSize) === 0) {
-      throw new TypeError("At least one of max, maxSize, or ttl is required");
-    }
-    if (!this.ttlAutopurge && !__privateGet(this, _max) && !__privateGet(this, _maxSize)) {
-      const code = "LRU_CACHE_UNBOUNDED";
-      if (shouldWarn(code)) {
-        warned$1.add(code);
-        const msg = "TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.";
-        emitWarning(msg, "UnboundedCacheWarning", code, _LRUCache);
-      }
-    }
-  }
-  /**
-   * Do not call this method unless you need to inspect the
-   * inner workings of the cache.  If anything returned by this
-   * object is modified in any way, strange breakage may occur.
-   *
-   * These fields are private for a reason!
-   *
-   * @internal
-   */
-  static unsafeExposeInternals(c) {
-    return {
-      // properties
-      starts: __privateGet(c, _starts),
-      ttls: __privateGet(c, _ttls),
-      sizes: __privateGet(c, _sizes),
-      keyMap: __privateGet(c, _keyMap),
-      keyList: __privateGet(c, _keyList),
-      valList: __privateGet(c, _valList),
-      next: __privateGet(c, _next),
-      prev: __privateGet(c, _prev),
-      get head() {
-        return __privateGet(c, _head);
-      },
-      get tail() {
-        return __privateGet(c, _tail);
-      },
-      free: __privateGet(c, _free),
-      // methods
-      isBackgroundFetch: (p) => {
-        var _a4;
-        return __privateMethod(_a4 = c, _LRUCache_instances, isBackgroundFetch_fn).call(_a4, p);
-      },
-      backgroundFetch: (k, index, options2, context) => {
-        var _a4;
-        return __privateMethod(_a4 = c, _LRUCache_instances, backgroundFetch_fn).call(_a4, k, index, options2, context);
-      },
-      moveToTail: (index) => {
-        var _a4;
-        return __privateMethod(_a4 = c, _LRUCache_instances, moveToTail_fn).call(_a4, index);
-      },
-      indexes: (options2) => {
-        var _a4;
-        return __privateMethod(_a4 = c, _LRUCache_instances, indexes_fn).call(_a4, options2);
-      },
-      rindexes: (options2) => {
-        var _a4;
-        return __privateMethod(_a4 = c, _LRUCache_instances, rindexes_fn).call(_a4, options2);
-      },
-      isStale: (index) => {
-        var _a4;
-        return __privateGet(_a4 = c, _isStale).call(_a4, index);
-      }
-    };
-  }
-  // Protected read-only members
-  /**
-   * {@link LRUCache.OptionsBase.max} (read-only)
-   */
-  get max() {
-    return __privateGet(this, _max);
-  }
-  /**
-   * {@link LRUCache.OptionsBase.maxSize} (read-only)
-   */
-  get maxSize() {
-    return __privateGet(this, _maxSize);
-  }
-  /**
-   * The total computed size of items in the cache (read-only)
-   */
-  get calculatedSize() {
-    return __privateGet(this, _calculatedSize);
-  }
-  /**
-   * The number of items stored in the cache (read-only)
-   */
-  get size() {
-    return __privateGet(this, _size);
-  }
-  /**
-   * {@link LRUCache.OptionsBase.fetchMethod} (read-only)
-   */
-  get fetchMethod() {
-    return __privateGet(this, _fetchMethod);
-  }
-  get memoMethod() {
-    return __privateGet(this, _memoMethod);
-  }
-  /**
-   * {@link LRUCache.OptionsBase.dispose} (read-only)
-   */
-  get dispose() {
-    return __privateGet(this, _dispose);
-  }
-  /**
-   * {@link LRUCache.OptionsBase.disposeAfter} (read-only)
-   */
-  get disposeAfter() {
-    return __privateGet(this, _disposeAfter);
-  }
-  /**
-   * Return the number of ms left in the item's TTL. If item is not in cache,
-   * returns `0`. Returns `Infinity` if item is in cache without a defined TTL.
-   */
-  getRemainingTTL(key) {
-    return __privateGet(this, _keyMap).has(key) ? Infinity : 0;
-  }
-  /**
-   * Return a generator yielding `[key, value]` pairs,
-   * in order from most recently used to least recently used.
-   */
-  *entries() {
-    for (const i of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) {
-      if (__privateGet(this, _valList)[i] !== void 0 && __privateGet(this, _keyList)[i] !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i])) {
-        yield [__privateGet(this, _keyList)[i], __privateGet(this, _valList)[i]];
-      }
-    }
-  }
-  /**
-   * Inverse order version of {@link LRUCache.entries}
-   *
-   * Return a generator yielding `[key, value]` pairs,
-   * in order from least recently used to most recently used.
-   */
-  *rentries() {
-    for (const i of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) {
-      if (__privateGet(this, _valList)[i] !== void 0 && __privateGet(this, _keyList)[i] !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i])) {
-        yield [__privateGet(this, _keyList)[i], __privateGet(this, _valList)[i]];
-      }
-    }
-  }
-  /**
-   * Return a generator yielding the keys in the cache,
-   * in order from most recently used to least recently used.
-   */
-  *keys() {
-    for (const i of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) {
-      const k = __privateGet(this, _keyList)[i];
-      if (k !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i])) {
-        yield k;
-      }
-    }
-  }
-  /**
-   * Inverse order version of {@link LRUCache.keys}
-   *
-   * Return a generator yielding the keys in the cache,
-   * in order from least recently used to most recently used.
-   */
-  *rkeys() {
-    for (const i of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) {
-      const k = __privateGet(this, _keyList)[i];
-      if (k !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i])) {
-        yield k;
-      }
-    }
-  }
-  /**
-   * Return a generator yielding the values in the cache,
-   * in order from most recently used to least recently used.
-   */
-  *values() {
-    for (const i of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) {
-      const v = __privateGet(this, _valList)[i];
-      if (v !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i])) {
-        yield __privateGet(this, _valList)[i];
-      }
-    }
-  }
-  /**
-   * Inverse order version of {@link LRUCache.values}
-   *
-   * Return a generator yielding the values in the cache,
-   * in order from least recently used to most recently used.
-   */
-  *rvalues() {
-    for (const i of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) {
-      const v = __privateGet(this, _valList)[i];
-      if (v !== void 0 && !__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, __privateGet(this, _valList)[i])) {
-        yield __privateGet(this, _valList)[i];
-      }
-    }
-  }
-  /**
-   * Iterating over the cache itself yields the same results as
-   * {@link LRUCache.entries}
-   */
-  [(_b = Symbol.iterator, _a2 = Symbol.toStringTag, _b)]() {
-    return this.entries();
-  }
-  /**
-   * Find a value for which the supplied fn method returns a truthy value,
-   * similar to `Array.find()`. fn is called as `fn(value, key, cache)`.
-   */
-  find(fn, getOptions2 = {}) {
-    for (const i of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) {
-      const v = __privateGet(this, _valList)[i];
-      const value2 = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v;
-      if (value2 === void 0)
-        continue;
-      if (fn(value2, __privateGet(this, _keyList)[i], this)) {
-        return this.get(__privateGet(this, _keyList)[i], getOptions2);
-      }
-    }
-  }
-  /**
-   * Call the supplied function on each item in the cache, in order from most
-   * recently used to least recently used.
-   *
-   * `fn` is called as `fn(value, key, cache)`.
-   *
-   * If `thisp` is provided, function will be called in the `this`-context of
-   * the provided object, or the cache if no `thisp` object is provided.
-   *
-   * Does not update age or recenty of use, or iterate over stale values.
-   */
-  forEach(fn, thisp = this) {
-    for (const i of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this)) {
-      const v = __privateGet(this, _valList)[i];
-      const value2 = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v;
-      if (value2 === void 0)
-        continue;
-      fn.call(thisp, value2, __privateGet(this, _keyList)[i], this);
-    }
-  }
-  /**
-   * The same as {@link LRUCache.forEach} but items are iterated over in
-   * reverse order.  (ie, less recently used items are iterated over first.)
-   */
-  rforEach(fn, thisp = this) {
-    for (const i of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this)) {
-      const v = __privateGet(this, _valList)[i];
-      const value2 = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v;
-      if (value2 === void 0)
-        continue;
-      fn.call(thisp, value2, __privateGet(this, _keyList)[i], this);
-    }
-  }
-  /**
-   * Delete any stale entries. Returns true if anything was removed,
-   * false otherwise.
-   */
-  purgeStale() {
-    let deleted = false;
-    for (const i of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this, { allowStale: true })) {
-      if (__privateGet(this, _isStale).call(this, i)) {
-        __privateMethod(this, _LRUCache_instances, delete_fn).call(this, __privateGet(this, _keyList)[i], "expire");
-        deleted = true;
-      }
-    }
-    return deleted;
-  }
-  /**
-   * Get the extended info about a given entry, to get its value, size, and
-   * TTL info simultaneously. Returns `undefined` if the key is not present.
-   *
-   * Unlike {@link LRUCache#dump}, which is designed to be portable and survive
-   * serialization, the `start` value is always the current timestamp, and the
-   * `ttl` is a calculated remaining time to live (negative if expired).
-   *
-   * Always returns stale values, if their info is found in the cache, so be
-   * sure to check for expirations (ie, a negative {@link LRUCache.Entry#ttl})
-   * if relevant.
-   */
-  info(key) {
-    const i = __privateGet(this, _keyMap).get(key);
-    if (i === void 0)
-      return void 0;
-    const v = __privateGet(this, _valList)[i];
-    const value2 = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v;
-    if (value2 === void 0)
-      return void 0;
-    const entry2 = { value: value2 };
-    if (__privateGet(this, _ttls) && __privateGet(this, _starts)) {
-      const ttl = __privateGet(this, _ttls)[i];
-      const start = __privateGet(this, _starts)[i];
-      if (ttl && start) {
-        const remain = ttl - (perf.now() - start);
-        entry2.ttl = remain;
-        entry2.start = Date.now();
-      }
-    }
-    if (__privateGet(this, _sizes)) {
-      entry2.size = __privateGet(this, _sizes)[i];
-    }
-    return entry2;
-  }
-  /**
-   * Return an array of [key, {@link LRUCache.Entry}] tuples which can be
-   * passed to {@link LRLUCache#load}.
-   *
-   * The `start` fields are calculated relative to a portable `Date.now()`
-   * timestamp, even if `performance.now()` is available.
-   *
-   * Stale entries are always included in the `dump`, even if
-   * {@link LRUCache.OptionsBase.allowStale} is false.
-   *
-   * Note: this returns an actual array, not a generator, so it can be more
-   * easily passed around.
-   */
-  dump() {
-    const arr = [];
-    for (const i of __privateMethod(this, _LRUCache_instances, indexes_fn).call(this, { allowStale: true })) {
-      const key = __privateGet(this, _keyList)[i];
-      const v = __privateGet(this, _valList)[i];
-      const value2 = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v;
-      if (value2 === void 0 || key === void 0)
-        continue;
-      const entry2 = { value: value2 };
-      if (__privateGet(this, _ttls) && __privateGet(this, _starts)) {
-        entry2.ttl = __privateGet(this, _ttls)[i];
-        const age = perf.now() - __privateGet(this, _starts)[i];
-        entry2.start = Math.floor(Date.now() - age);
-      }
-      if (__privateGet(this, _sizes)) {
-        entry2.size = __privateGet(this, _sizes)[i];
-      }
-      arr.unshift([key, entry2]);
-    }
-    return arr;
-  }
-  /**
-   * Reset the cache and load in the items in entries in the order listed.
-   *
-   * The shape of the resulting cache may be different if the same options are
-   * not used in both caches.
-   *
-   * The `start` fields are assumed to be calculated relative to a portable
-   * `Date.now()` timestamp, even if `performance.now()` is available.
-   */
-  load(arr) {
-    this.clear();
-    for (const [key, entry2] of arr) {
-      if (entry2.start) {
-        const age = Date.now() - entry2.start;
-        entry2.start = perf.now() - age;
-      }
-      this.set(key, entry2.value, entry2);
-    }
-  }
-  /**
-   * Add a value to the cache.
-   *
-   * Note: if `undefined` is specified as a value, this is an alias for
-   * {@link LRUCache#delete}
-   *
-   * Fields on the {@link LRUCache.SetOptions} options param will override
-   * their corresponding values in the constructor options for the scope
-   * of this single `set()` operation.
-   *
-   * If `start` is provided, then that will set the effective start
-   * time for the TTL calculation. Note that this must be a previous
-   * value of `performance.now()` if supported, or a previous value of
-   * `Date.now()` if not.
-   *
-   * Options object may also include `size`, which will prevent
-   * calling the `sizeCalculation` function and just use the specified
-   * number if it is a positive integer, and `noDisposeOnSet` which
-   * will prevent calling a `dispose` function in the case of
-   * overwrites.
-   *
-   * If the `size` (or return value of `sizeCalculation`) for a given
-   * entry is greater than `maxEntrySize`, then the item will not be
-   * added to the cache.
-   *
-   * Will update the recency of the entry.
-   *
-   * If the value is `undefined`, then this is an alias for
-   * `cache.delete(key)`. `undefined` is never stored in the cache.
-   */
-  set(k, v, setOptions = {}) {
-    var _a4, _b3, _c2, _d2, _e2;
-    if (v === void 0) {
-      this.delete(k);
-      return this;
-    }
-    const { ttl = this.ttl, start, noDisposeOnSet = this.noDisposeOnSet, sizeCalculation = this.sizeCalculation, status: status2 } = setOptions;
-    let { noUpdateTTL = this.noUpdateTTL } = setOptions;
-    const size = __privateGet(this, _requireSize).call(this, k, v, setOptions.size || 0, sizeCalculation);
-    if (this.maxEntrySize && size > this.maxEntrySize) {
-      if (status2) {
-        status2.set = "miss";
-        status2.maxEntrySizeExceeded = true;
-      }
-      __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "set");
-      return this;
-    }
-    let index = __privateGet(this, _size) === 0 ? void 0 : __privateGet(this, _keyMap).get(k);
-    if (index === void 0) {
-      index = __privateGet(this, _size) === 0 ? __privateGet(this, _tail) : __privateGet(this, _free).length !== 0 ? __privateGet(this, _free).pop() : __privateGet(this, _size) === __privateGet(this, _max) ? __privateMethod(this, _LRUCache_instances, evict_fn).call(this, false) : __privateGet(this, _size);
-      __privateGet(this, _keyList)[index] = k;
-      __privateGet(this, _valList)[index] = v;
-      __privateGet(this, _keyMap).set(k, index);
-      __privateGet(this, _next)[__privateGet(this, _tail)] = index;
-      __privateGet(this, _prev)[index] = __privateGet(this, _tail);
-      __privateSet(this, _tail, index);
-      __privateWrapper(this, _size)._++;
-      __privateGet(this, _addItemSize).call(this, index, size, status2);
-      if (status2)
-        status2.set = "add";
-      noUpdateTTL = false;
-    } else {
-      __privateMethod(this, _LRUCache_instances, moveToTail_fn).call(this, index);
-      const oldVal = __privateGet(this, _valList)[index];
-      if (v !== oldVal) {
-        if (__privateGet(this, _hasFetchMethod) && __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, oldVal)) {
-          oldVal.__abortController.abort(new Error("replaced"));
-          const { __staleWhileFetching: s } = oldVal;
-          if (s !== void 0 && !noDisposeOnSet) {
-            if (__privateGet(this, _hasDispose)) {
-              (_a4 = __privateGet(this, _dispose)) == null ? void 0 : _a4.call(this, s, k, "set");
-            }
-            if (__privateGet(this, _hasDisposeAfter)) {
-              (_b3 = __privateGet(this, _disposed)) == null ? void 0 : _b3.push([s, k, "set"]);
-            }
-          }
-        } else if (!noDisposeOnSet) {
-          if (__privateGet(this, _hasDispose)) {
-            (_c2 = __privateGet(this, _dispose)) == null ? void 0 : _c2.call(this, oldVal, k, "set");
-          }
-          if (__privateGet(this, _hasDisposeAfter)) {
-            (_d2 = __privateGet(this, _disposed)) == null ? void 0 : _d2.push([oldVal, k, "set"]);
-          }
-        }
-        __privateGet(this, _removeItemSize).call(this, index);
-        __privateGet(this, _addItemSize).call(this, index, size, status2);
-        __privateGet(this, _valList)[index] = v;
-        if (status2) {
-          status2.set = "replace";
-          const oldValue = oldVal && __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, oldVal) ? oldVal.__staleWhileFetching : oldVal;
-          if (oldValue !== void 0)
-            status2.oldValue = oldValue;
-        }
-      } else if (status2) {
-        status2.set = "update";
-      }
-    }
-    if (ttl !== 0 && !__privateGet(this, _ttls)) {
-      __privateMethod(this, _LRUCache_instances, initializeTTLTracking_fn).call(this);
-    }
-    if (__privateGet(this, _ttls)) {
-      if (!noUpdateTTL) {
-        __privateGet(this, _setItemTTL).call(this, index, ttl, start);
-      }
-      if (status2)
-        __privateGet(this, _statusTTL).call(this, status2, index);
-    }
-    if (!noDisposeOnSet && __privateGet(this, _hasDisposeAfter) && __privateGet(this, _disposed)) {
-      const dt = __privateGet(this, _disposed);
-      let task;
-      while (task = dt == null ? void 0 : dt.shift()) {
-        (_e2 = __privateGet(this, _disposeAfter)) == null ? void 0 : _e2.call(this, ...task);
-      }
-    }
-    return this;
-  }
-  /**
-   * Evict the least recently used item, returning its value or
-   * `undefined` if cache is empty.
-   */
-  pop() {
-    var _a4;
-    try {
-      while (__privateGet(this, _size)) {
-        const val = __privateGet(this, _valList)[__privateGet(this, _head)];
-        __privateMethod(this, _LRUCache_instances, evict_fn).call(this, true);
-        if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, val)) {
-          if (val.__staleWhileFetching) {
-            return val.__staleWhileFetching;
-          }
-        } else if (val !== void 0) {
-          return val;
-        }
-      }
-    } finally {
-      if (__privateGet(this, _hasDisposeAfter) && __privateGet(this, _disposed)) {
-        const dt = __privateGet(this, _disposed);
-        let task;
-        while (task = dt == null ? void 0 : dt.shift()) {
-          (_a4 = __privateGet(this, _disposeAfter)) == null ? void 0 : _a4.call(this, ...task);
-        }
-      }
-    }
-  }
-  /**
-   * Check if a key is in the cache, without updating the recency of use.
-   * Will return false if the item is stale, even though it is technically
-   * in the cache.
-   *
-   * Check if a key is in the cache, without updating the recency of
-   * use. Age is updated if {@link LRUCache.OptionsBase.updateAgeOnHas} is set
-   * to `true` in either the options or the constructor.
-   *
-   * Will return `false` if the item is stale, even though it is technically in
-   * the cache. The difference can be determined (if it matters) by using a
-   * `status` argument, and inspecting the `has` field.
-   *
-   * Will not update item age unless
-   * {@link LRUCache.OptionsBase.updateAgeOnHas} is set.
-   */
-  has(k, hasOptions = {}) {
-    const { updateAgeOnHas = this.updateAgeOnHas, status: status2 } = hasOptions;
-    const index = __privateGet(this, _keyMap).get(k);
-    if (index !== void 0) {
-      const v = __privateGet(this, _valList)[index];
-      if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) && v.__staleWhileFetching === void 0) {
-        return false;
-      }
-      if (!__privateGet(this, _isStale).call(this, index)) {
-        if (updateAgeOnHas) {
-          __privateGet(this, _updateItemAge).call(this, index);
-        }
-        if (status2) {
-          status2.has = "hit";
-          __privateGet(this, _statusTTL).call(this, status2, index);
-        }
-        return true;
-      } else if (status2) {
-        status2.has = "stale";
-        __privateGet(this, _statusTTL).call(this, status2, index);
-      }
-    } else if (status2) {
-      status2.has = "miss";
-    }
-    return false;
-  }
-  /**
-   * Like {@link LRUCache#get} but doesn't update recency or delete stale
-   * items.
-   *
-   * Returns `undefined` if the item is stale, unless
-   * {@link LRUCache.OptionsBase.allowStale} is set.
-   */
-  peek(k, peekOptions = {}) {
-    const { allowStale = this.allowStale } = peekOptions;
-    const index = __privateGet(this, _keyMap).get(k);
-    if (index === void 0 || !allowStale && __privateGet(this, _isStale).call(this, index)) {
-      return;
-    }
-    const v = __privateGet(this, _valList)[index];
-    return __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v) ? v.__staleWhileFetching : v;
-  }
-  async fetch(k, fetchOptions = {}) {
-    const {
-      // get options
-      allowStale = this.allowStale,
-      updateAgeOnGet = this.updateAgeOnGet,
-      noDeleteOnStaleGet = this.noDeleteOnStaleGet,
-      // set options
-      ttl = this.ttl,
-      noDisposeOnSet = this.noDisposeOnSet,
-      size = 0,
-      sizeCalculation = this.sizeCalculation,
-      noUpdateTTL = this.noUpdateTTL,
-      // fetch exclusive options
-      noDeleteOnFetchRejection = this.noDeleteOnFetchRejection,
-      allowStaleOnFetchRejection = this.allowStaleOnFetchRejection,
-      ignoreFetchAbort = this.ignoreFetchAbort,
-      allowStaleOnFetchAbort = this.allowStaleOnFetchAbort,
-      context,
-      forceRefresh = false,
-      status: status2,
-      signal
-    } = fetchOptions;
-    if (!__privateGet(this, _hasFetchMethod)) {
-      if (status2)
-        status2.fetch = "get";
-      return this.get(k, {
-        allowStale,
-        updateAgeOnGet,
-        noDeleteOnStaleGet,
-        status: status2
-      });
-    }
-    const options2 = {
-      allowStale,
-      updateAgeOnGet,
-      noDeleteOnStaleGet,
-      ttl,
-      noDisposeOnSet,
-      size,
-      sizeCalculation,
-      noUpdateTTL,
-      noDeleteOnFetchRejection,
-      allowStaleOnFetchRejection,
-      allowStaleOnFetchAbort,
-      ignoreFetchAbort,
-      status: status2,
-      signal
-    };
-    let index = __privateGet(this, _keyMap).get(k);
-    if (index === void 0) {
-      if (status2)
-        status2.fetch = "miss";
-      const p = __privateMethod(this, _LRUCache_instances, backgroundFetch_fn).call(this, k, index, options2, context);
-      return p.__returned = p;
-    } else {
-      const v = __privateGet(this, _valList)[index];
-      if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) {
-        const stale = allowStale && v.__staleWhileFetching !== void 0;
-        if (status2) {
-          status2.fetch = "inflight";
-          if (stale)
-            status2.returnedStale = true;
-        }
-        return stale ? v.__staleWhileFetching : v.__returned = v;
-      }
-      const isStale = __privateGet(this, _isStale).call(this, index);
-      if (!forceRefresh && !isStale) {
-        if (status2)
-          status2.fetch = "hit";
-        __privateMethod(this, _LRUCache_instances, moveToTail_fn).call(this, index);
-        if (updateAgeOnGet) {
-          __privateGet(this, _updateItemAge).call(this, index);
-        }
-        if (status2)
-          __privateGet(this, _statusTTL).call(this, status2, index);
-        return v;
-      }
-      const p = __privateMethod(this, _LRUCache_instances, backgroundFetch_fn).call(this, k, index, options2, context);
-      const hasStale = p.__staleWhileFetching !== void 0;
-      const staleVal = hasStale && allowStale;
-      if (status2) {
-        status2.fetch = isStale ? "stale" : "refresh";
-        if (staleVal && isStale)
-          status2.returnedStale = true;
-      }
-      return staleVal ? p.__staleWhileFetching : p.__returned = p;
-    }
-  }
-  async forceFetch(k, fetchOptions = {}) {
-    const v = await this.fetch(k, fetchOptions);
-    if (v === void 0)
-      throw new Error("fetch() returned undefined");
-    return v;
-  }
-  memo(k, memoOptions = {}) {
-    const memoMethod = __privateGet(this, _memoMethod);
-    if (!memoMethod) {
-      throw new Error("no memoMethod provided to constructor");
-    }
-    const { context, forceRefresh, ...options2 } = memoOptions;
-    const v = this.get(k, options2);
-    if (!forceRefresh && v !== void 0)
-      return v;
-    const vv = memoMethod(k, v, {
-      options: options2,
-      context
-    });
-    this.set(k, vv, options2);
-    return vv;
-  }
-  /**
-   * Return a value from the cache. Will update the recency of the cache
-   * entry found.
-   *
-   * If the key is not found, get() will return `undefined`.
-   */
-  get(k, getOptions2 = {}) {
-    const { allowStale = this.allowStale, updateAgeOnGet = this.updateAgeOnGet, noDeleteOnStaleGet = this.noDeleteOnStaleGet, status: status2 } = getOptions2;
-    const index = __privateGet(this, _keyMap).get(k);
-    if (index !== void 0) {
-      const value2 = __privateGet(this, _valList)[index];
-      const fetching = __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, value2);
-      if (status2)
-        __privateGet(this, _statusTTL).call(this, status2, index);
-      if (__privateGet(this, _isStale).call(this, index)) {
-        if (status2)
-          status2.get = "stale";
-        if (!fetching) {
-          if (!noDeleteOnStaleGet) {
-            __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "expire");
-          }
-          if (status2 && allowStale)
-            status2.returnedStale = true;
-          return allowStale ? value2 : void 0;
-        } else {
-          if (status2 && allowStale && value2.__staleWhileFetching !== void 0) {
-            status2.returnedStale = true;
-          }
-          return allowStale ? value2.__staleWhileFetching : void 0;
-        }
-      } else {
-        if (status2)
-          status2.get = "hit";
-        if (fetching) {
-          return value2.__staleWhileFetching;
-        }
-        __privateMethod(this, _LRUCache_instances, moveToTail_fn).call(this, index);
-        if (updateAgeOnGet) {
-          __privateGet(this, _updateItemAge).call(this, index);
-        }
-        return value2;
-      }
-    } else if (status2) {
-      status2.get = "miss";
-    }
-  }
-  /**
-   * Deletes a key out of the cache.
-   *
-   * Returns true if the key was deleted, false otherwise.
-   */
-  delete(k) {
-    return __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "delete");
-  }
-  /**
-   * Clear the cache entirely, throwing away all values.
-   */
-  clear() {
-    return __privateMethod(this, _LRUCache_instances, clear_fn).call(this, "delete");
-  }
-};
-_max = new WeakMap();
-_maxSize = new WeakMap();
-_dispose = new WeakMap();
-_disposeAfter = new WeakMap();
-_fetchMethod = new WeakMap();
-_memoMethod = new WeakMap();
-_size = new WeakMap();
-_calculatedSize = new WeakMap();
-_keyMap = new WeakMap();
-_keyList = new WeakMap();
-_valList = new WeakMap();
-_next = new WeakMap();
-_prev = new WeakMap();
-_head = new WeakMap();
-_tail = new WeakMap();
-_free = new WeakMap();
-_disposed = new WeakMap();
-_sizes = new WeakMap();
-_starts = new WeakMap();
-_ttls = new WeakMap();
-_hasDispose = new WeakMap();
-_hasFetchMethod = new WeakMap();
-_hasDisposeAfter = new WeakMap();
-_LRUCache_instances = new WeakSet();
-initializeTTLTracking_fn = function() {
-  const ttls = new ZeroArray(__privateGet(this, _max));
-  const starts = new ZeroArray(__privateGet(this, _max));
-  __privateSet(this, _ttls, ttls);
-  __privateSet(this, _starts, starts);
-  __privateSet(this, _setItemTTL, (index, ttl, start = perf.now()) => {
-    starts[index] = ttl !== 0 ? start : 0;
-    ttls[index] = ttl;
-    if (ttl !== 0 && this.ttlAutopurge) {
-      const t2 = setTimeout(() => {
-        if (__privateGet(this, _isStale).call(this, index)) {
-          __privateMethod(this, _LRUCache_instances, delete_fn).call(this, __privateGet(this, _keyList)[index], "expire");
-        }
-      }, ttl + 1);
-      if (t2.unref) {
-        t2.unref();
-      }
-    }
-  });
-  __privateSet(this, _updateItemAge, (index) => {
-    starts[index] = ttls[index] !== 0 ? perf.now() : 0;
-  });
-  __privateSet(this, _statusTTL, (status2, index) => {
-    if (ttls[index]) {
-      const ttl = ttls[index];
-      const start = starts[index];
-      if (!ttl || !start)
-        return;
-      status2.ttl = ttl;
-      status2.start = start;
-      status2.now = cachedNow || getNow();
-      const age = status2.now - start;
-      status2.remainingTTL = ttl - age;
-    }
-  });
-  let cachedNow = 0;
-  const getNow = () => {
-    const n2 = perf.now();
-    if (this.ttlResolution > 0) {
-      cachedNow = n2;
-      const t2 = setTimeout(() => cachedNow = 0, this.ttlResolution);
-      if (t2.unref) {
-        t2.unref();
-      }
-    }
-    return n2;
-  };
-  this.getRemainingTTL = (key) => {
-    const index = __privateGet(this, _keyMap).get(key);
-    if (index === void 0) {
-      return 0;
-    }
-    const ttl = ttls[index];
-    const start = starts[index];
-    if (!ttl || !start) {
-      return Infinity;
-    }
-    const age = (cachedNow || getNow()) - start;
-    return ttl - age;
-  };
-  __privateSet(this, _isStale, (index) => {
-    const s = starts[index];
-    const t2 = ttls[index];
-    return !!t2 && !!s && (cachedNow || getNow()) - s > t2;
-  });
-};
-_updateItemAge = new WeakMap();
-_statusTTL = new WeakMap();
-_setItemTTL = new WeakMap();
-_isStale = new WeakMap();
-initializeSizeTracking_fn = function() {
-  const sizes = new ZeroArray(__privateGet(this, _max));
-  __privateSet(this, _calculatedSize, 0);
-  __privateSet(this, _sizes, sizes);
-  __privateSet(this, _removeItemSize, (index) => {
-    __privateSet(this, _calculatedSize, __privateGet(this, _calculatedSize) - sizes[index]);
-    sizes[index] = 0;
-  });
-  __privateSet(this, _requireSize, (k, v, size, sizeCalculation) => {
-    if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) {
-      return 0;
-    }
-    if (!isPosInt(size)) {
-      if (sizeCalculation) {
-        if (typeof sizeCalculation !== "function") {
-          throw new TypeError("sizeCalculation must be a function");
-        }
-        size = sizeCalculation(v, k);
-        if (!isPosInt(size)) {
-          throw new TypeError("sizeCalculation return invalid (expect positive integer)");
-        }
-      } else {
-        throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");
-      }
-    }
-    return size;
-  });
-  __privateSet(this, _addItemSize, (index, size, status2) => {
-    sizes[index] = size;
-    if (__privateGet(this, _maxSize)) {
-      const maxSize = __privateGet(this, _maxSize) - sizes[index];
-      while (__privateGet(this, _calculatedSize) > maxSize) {
-        __privateMethod(this, _LRUCache_instances, evict_fn).call(this, true);
-      }
-    }
-    __privateSet(this, _calculatedSize, __privateGet(this, _calculatedSize) + sizes[index]);
-    if (status2) {
-      status2.entrySize = size;
-      status2.totalCalculatedSize = __privateGet(this, _calculatedSize);
-    }
-  });
-};
-_removeItemSize = new WeakMap();
-_addItemSize = new WeakMap();
-_requireSize = new WeakMap();
-indexes_fn = function* ({ allowStale = this.allowStale } = {}) {
-  if (__privateGet(this, _size)) {
-    for (let i = __privateGet(this, _tail); true; ) {
-      if (!__privateMethod(this, _LRUCache_instances, isValidIndex_fn).call(this, i)) {
-        break;
-      }
-      if (allowStale || !__privateGet(this, _isStale).call(this, i)) {
-        yield i;
-      }
-      if (i === __privateGet(this, _head)) {
-        break;
-      } else {
-        i = __privateGet(this, _prev)[i];
-      }
-    }
-  }
-};
-rindexes_fn = function* ({ allowStale = this.allowStale } = {}) {
-  if (__privateGet(this, _size)) {
-    for (let i = __privateGet(this, _head); true; ) {
-      if (!__privateMethod(this, _LRUCache_instances, isValidIndex_fn).call(this, i)) {
-        break;
-      }
-      if (allowStale || !__privateGet(this, _isStale).call(this, i)) {
-        yield i;
-      }
-      if (i === __privateGet(this, _tail)) {
-        break;
-      } else {
-        i = __privateGet(this, _next)[i];
-      }
-    }
-  }
-};
-isValidIndex_fn = function(index) {
-  return index !== void 0 && __privateGet(this, _keyMap).get(__privateGet(this, _keyList)[index]) === index;
-};
-evict_fn = function(free) {
-  var _a4, _b3;
-  const head = __privateGet(this, _head);
-  const k = __privateGet(this, _keyList)[head];
-  const v = __privateGet(this, _valList)[head];
-  if (__privateGet(this, _hasFetchMethod) && __privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) {
-    v.__abortController.abort(new Error("evicted"));
-  } else if (__privateGet(this, _hasDispose) || __privateGet(this, _hasDisposeAfter)) {
-    if (__privateGet(this, _hasDispose)) {
-      (_a4 = __privateGet(this, _dispose)) == null ? void 0 : _a4.call(this, v, k, "evict");
-    }
-    if (__privateGet(this, _hasDisposeAfter)) {
-      (_b3 = __privateGet(this, _disposed)) == null ? void 0 : _b3.push([v, k, "evict"]);
-    }
-  }
-  __privateGet(this, _removeItemSize).call(this, head);
-  if (free) {
-    __privateGet(this, _keyList)[head] = void 0;
-    __privateGet(this, _valList)[head] = void 0;
-    __privateGet(this, _free).push(head);
-  }
-  if (__privateGet(this, _size) === 1) {
-    __privateSet(this, _head, __privateSet(this, _tail, 0));
-    __privateGet(this, _free).length = 0;
-  } else {
-    __privateSet(this, _head, __privateGet(this, _next)[head]);
-  }
-  __privateGet(this, _keyMap).delete(k);
-  __privateWrapper(this, _size)._--;
-  return head;
-};
-backgroundFetch_fn = function(k, index, options2, context) {
-  const v = index === void 0 ? void 0 : __privateGet(this, _valList)[index];
-  if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) {
-    return v;
-  }
-  const ac = new AC();
-  const { signal } = options2;
-  signal == null ? void 0 : signal.addEventListener("abort", () => ac.abort(signal.reason), {
-    signal: ac.signal
-  });
-  const fetchOpts = {
-    signal: ac.signal,
-    options: options2,
-    context
-  };
-  const cb = (v2, updateCache = false) => {
-    const { aborted } = ac.signal;
-    const ignoreAbort = options2.ignoreFetchAbort && v2 !== void 0;
-    if (options2.status) {
-      if (aborted && !updateCache) {
-        options2.status.fetchAborted = true;
-        options2.status.fetchError = ac.signal.reason;
-        if (ignoreAbort)
-          options2.status.fetchAbortIgnored = true;
-      } else {
-        options2.status.fetchResolved = true;
-      }
-    }
-    if (aborted && !ignoreAbort && !updateCache) {
-      return fetchFail(ac.signal.reason);
-    }
-    const bf2 = p;
-    if (__privateGet(this, _valList)[index] === p) {
-      if (v2 === void 0) {
-        if (bf2.__staleWhileFetching) {
-          __privateGet(this, _valList)[index] = bf2.__staleWhileFetching;
-        } else {
-          __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "fetch");
-        }
-      } else {
-        if (options2.status)
-          options2.status.fetchUpdated = true;
-        this.set(k, v2, fetchOpts.options);
-      }
-    }
-    return v2;
-  };
-  const eb = (er) => {
-    if (options2.status) {
-      options2.status.fetchRejected = true;
-      options2.status.fetchError = er;
-    }
-    return fetchFail(er);
-  };
-  const fetchFail = (er) => {
-    const { aborted } = ac.signal;
-    const allowStaleAborted = aborted && options2.allowStaleOnFetchAbort;
-    const allowStale = allowStaleAborted || options2.allowStaleOnFetchRejection;
-    const noDelete = allowStale || options2.noDeleteOnFetchRejection;
-    const bf2 = p;
-    if (__privateGet(this, _valList)[index] === p) {
-      const del = !noDelete || bf2.__staleWhileFetching === void 0;
-      if (del) {
-        __privateMethod(this, _LRUCache_instances, delete_fn).call(this, k, "fetch");
-      } else if (!allowStaleAborted) {
-        __privateGet(this, _valList)[index] = bf2.__staleWhileFetching;
-      }
-    }
-    if (allowStale) {
-      if (options2.status && bf2.__staleWhileFetching !== void 0) {
-        options2.status.returnedStale = true;
-      }
-      return bf2.__staleWhileFetching;
-    } else if (bf2.__returned === bf2) {
-      throw er;
-    }
-  };
-  const pcall = (res, rej) => {
-    var _a4;
-    const fmp = (_a4 = __privateGet(this, _fetchMethod)) == null ? void 0 : _a4.call(this, k, v, fetchOpts);
-    if (fmp && fmp instanceof Promise) {
-      fmp.then((v2) => res(v2 === void 0 ? void 0 : v2), rej);
-    }
-    ac.signal.addEventListener("abort", () => {
-      if (!options2.ignoreFetchAbort || options2.allowStaleOnFetchAbort) {
-        res(void 0);
-        if (options2.allowStaleOnFetchAbort) {
-          res = (v2) => cb(v2, true);
-        }
-      }
-    });
-  };
-  if (options2.status)
-    options2.status.fetchDispatched = true;
-  const p = new Promise(pcall).then(cb, eb);
-  const bf = Object.assign(p, {
-    __abortController: ac,
-    __staleWhileFetching: v,
-    __returned: void 0
-  });
-  if (index === void 0) {
-    this.set(k, bf, { ...fetchOpts.options, status: void 0 });
-    index = __privateGet(this, _keyMap).get(k);
-  } else {
-    __privateGet(this, _valList)[index] = bf;
-  }
-  return bf;
-};
-isBackgroundFetch_fn = function(p) {
-  if (!__privateGet(this, _hasFetchMethod))
-    return false;
-  const b = p;
-  return !!b && b instanceof Promise && b.hasOwnProperty("__staleWhileFetching") && b.__abortController instanceof AC;
-};
-connect_fn = function(p, n2) {
-  __privateGet(this, _prev)[n2] = p;
-  __privateGet(this, _next)[p] = n2;
-};
-moveToTail_fn = function(index) {
-  if (index !== __privateGet(this, _tail)) {
-    if (index === __privateGet(this, _head)) {
-      __privateSet(this, _head, __privateGet(this, _next)[index]);
-    } else {
-      __privateMethod(this, _LRUCache_instances, connect_fn).call(this, __privateGet(this, _prev)[index], __privateGet(this, _next)[index]);
-    }
-    __privateMethod(this, _LRUCache_instances, connect_fn).call(this, __privateGet(this, _tail), index);
-    __privateSet(this, _tail, index);
-  }
-};
-delete_fn = function(k, reason) {
-  var _a4, _b3, _c2, _d2;
-  let deleted = false;
-  if (__privateGet(this, _size) !== 0) {
-    const index = __privateGet(this, _keyMap).get(k);
-    if (index !== void 0) {
-      deleted = true;
-      if (__privateGet(this, _size) === 1) {
-        __privateMethod(this, _LRUCache_instances, clear_fn).call(this, reason);
-      } else {
-        __privateGet(this, _removeItemSize).call(this, index);
-        const v = __privateGet(this, _valList)[index];
-        if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) {
-          v.__abortController.abort(new Error("deleted"));
-        } else if (__privateGet(this, _hasDispose) || __privateGet(this, _hasDisposeAfter)) {
-          if (__privateGet(this, _hasDispose)) {
-            (_a4 = __privateGet(this, _dispose)) == null ? void 0 : _a4.call(this, v, k, reason);
-          }
-          if (__privateGet(this, _hasDisposeAfter)) {
-            (_b3 = __privateGet(this, _disposed)) == null ? void 0 : _b3.push([v, k, reason]);
-          }
-        }
-        __privateGet(this, _keyMap).delete(k);
-        __privateGet(this, _keyList)[index] = void 0;
-        __privateGet(this, _valList)[index] = void 0;
-        if (index === __privateGet(this, _tail)) {
-          __privateSet(this, _tail, __privateGet(this, _prev)[index]);
-        } else if (index === __privateGet(this, _head)) {
-          __privateSet(this, _head, __privateGet(this, _next)[index]);
-        } else {
-          const pi = __privateGet(this, _prev)[index];
-          __privateGet(this, _next)[pi] = __privateGet(this, _next)[index];
-          const ni = __privateGet(this, _next)[index];
-          __privateGet(this, _prev)[ni] = __privateGet(this, _prev)[index];
-        }
-        __privateWrapper(this, _size)._--;
-        __privateGet(this, _free).push(index);
-      }
-    }
-  }
-  if (__privateGet(this, _hasDisposeAfter) && ((_c2 = __privateGet(this, _disposed)) == null ? void 0 : _c2.length)) {
-    const dt = __privateGet(this, _disposed);
-    let task;
-    while (task = dt == null ? void 0 : dt.shift()) {
-      (_d2 = __privateGet(this, _disposeAfter)) == null ? void 0 : _d2.call(this, ...task);
-    }
-  }
-  return deleted;
-};
-clear_fn = function(reason) {
-  var _a4, _b3, _c2;
-  for (const index of __privateMethod(this, _LRUCache_instances, rindexes_fn).call(this, { allowStale: true })) {
-    const v = __privateGet(this, _valList)[index];
-    if (__privateMethod(this, _LRUCache_instances, isBackgroundFetch_fn).call(this, v)) {
-      v.__abortController.abort(new Error("deleted"));
-    } else {
-      const k = __privateGet(this, _keyList)[index];
-      if (__privateGet(this, _hasDispose)) {
-        (_a4 = __privateGet(this, _dispose)) == null ? void 0 : _a4.call(this, v, k, reason);
-      }
-      if (__privateGet(this, _hasDisposeAfter)) {
-        (_b3 = __privateGet(this, _disposed)) == null ? void 0 : _b3.push([v, k, reason]);
-      }
-    }
-  }
-  __privateGet(this, _keyMap).clear();
-  __privateGet(this, _valList).fill(void 0);
-  __privateGet(this, _keyList).fill(void 0);
-  if (__privateGet(this, _ttls) && __privateGet(this, _starts)) {
-    __privateGet(this, _ttls).fill(0);
-    __privateGet(this, _starts).fill(0);
-  }
-  if (__privateGet(this, _sizes)) {
-    __privateGet(this, _sizes).fill(0);
-  }
-  __privateSet(this, _head, 0);
-  __privateSet(this, _tail, 0);
-  __privateGet(this, _free).length = 0;
-  __privateSet(this, _calculatedSize, 0);
-  __privateSet(this, _size, 0);
-  if (__privateGet(this, _hasDisposeAfter) && __privateGet(this, _disposed)) {
-    const dt = __privateGet(this, _disposed);
-    let task;
-    while (task = dt == null ? void 0 : dt.shift()) {
-      (_c2 = __privateGet(this, _disposeAfter)) == null ? void 0 : _c2.call(this, ...task);
-    }
-  }
-};
-var LRUCache = _LRUCache;
-var proc = typeof process === "object" && process ? process : {
-  stdout: null,
-  stderr: null
-};
-var isStream = (s) => !!s && typeof s === "object" && (s instanceof Minipass || s instanceof import_node_stream.default || isReadable(s) || isWritable(s));
-var isReadable = (s) => !!s && typeof s === "object" && s instanceof import_node_events.EventEmitter && typeof s.pipe === "function" && // node core Writable streams have a pipe() method, but it throws
-s.pipe !== import_node_stream.default.Writable.prototype.pipe;
-var isWritable = (s) => !!s && typeof s === "object" && s instanceof import_node_events.EventEmitter && typeof s.write === "function" && typeof s.end === "function";
-var EOF = Symbol("EOF");
-var MAYBE_EMIT_END = Symbol("maybeEmitEnd");
-var EMITTED_END = Symbol("emittedEnd");
-var EMITTING_END = Symbol("emittingEnd");
-var EMITTED_ERROR = Symbol("emittedError");
-var CLOSED$1 = Symbol("closed");
-var READ = Symbol("read");
-var FLUSH = Symbol("flush");
-var FLUSHCHUNK = Symbol("flushChunk");
-var ENCODING$1 = Symbol("encoding");
-var DECODER = Symbol("decoder");
-var FLOWING = Symbol("flowing");
-var PAUSED = Symbol("paused");
-var RESUME = Symbol("resume");
-var BUFFER = Symbol("buffer");
-var PIPES = Symbol("pipes");
-var BUFFERLENGTH = Symbol("bufferLength");
-var BUFFERPUSH = Symbol("bufferPush");
-var BUFFERSHIFT = Symbol("bufferShift");
-var OBJECTMODE = Symbol("objectMode");
-var DESTROYED = Symbol("destroyed");
-var ERROR = Symbol("error");
-var EMITDATA = Symbol("emitData");
-var EMITEND = Symbol("emitEnd");
-var EMITEND2 = Symbol("emitEnd2");
-var ASYNC = Symbol("async");
-var ABORT = Symbol("abort");
-var ABORTED = Symbol("aborted");
-var SIGNAL = Symbol("signal");
-var DATALISTENERS = Symbol("dataListeners");
-var DISCARDED = Symbol("discarded");
-var defer$3 = (fn) => Promise.resolve().then(fn);
-var nodefer = (fn) => fn();
-var isEndish = (ev) => ev === "end" || ev === "finish" || ev === "prefinish";
-var isArrayBufferLike = (b) => b instanceof ArrayBuffer || !!b && typeof b === "object" && b.constructor && b.constructor.name === "ArrayBuffer" && b.byteLength >= 0;
-var isArrayBufferView = (b) => !Buffer.isBuffer(b) && ArrayBuffer.isView(b);
-var Pipe = class {
-  constructor(src2, dest, opts) {
-    __publicField(this, "src");
-    __publicField(this, "dest");
-    __publicField(this, "opts");
-    __publicField(this, "ondrain");
-    this.src = src2;
-    this.dest = dest;
-    this.opts = opts;
-    this.ondrain = () => src2[RESUME]();
-    this.dest.on("drain", this.ondrain);
-  }
-  unpipe() {
-    this.dest.removeListener("drain", this.ondrain);
-  }
-  // only here for the prototype
-  /* c8 ignore start */
-  proxyErrors(_er) {
-  }
-  /* c8 ignore stop */
-  end() {
-    this.unpipe();
-    if (this.opts.end)
-      this.dest.end();
-  }
-};
-var PipeProxyErrors = class extends Pipe {
-  unpipe() {
-    this.src.removeListener("error", this.proxyErrors);
-    super.unpipe();
-  }
-  constructor(src2, dest, opts) {
-    super(src2, dest, opts);
-    this.proxyErrors = (er) => dest.emit("error", er);
-    src2.on("error", this.proxyErrors);
-  }
-};
-var isObjectModeOptions = (o2) => !!o2.objectMode;
-var isEncodingOptions = (o2) => !o2.objectMode && !!o2.encoding && o2.encoding !== "buffer";
-var _a3, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
-var Minipass = class extends import_node_events.EventEmitter {
-  /**
-   * If `RType` is Buffer, then options do not need to be provided.
-   * Otherwise, an options object must be provided to specify either
-   * {@link Minipass.SharedOptions.objectMode} or
-   * {@link Minipass.SharedOptions.encoding}, as appropriate.
-   */
-  constructor(...args) {
-    const options2 = args[0] || {};
-    super();
-    __publicField(this, _s, false);
-    __publicField(this, _r, false);
-    __publicField(this, _q, []);
-    __publicField(this, _p, []);
-    __publicField(this, _o);
-    __publicField(this, _n);
-    __publicField(this, _m);
-    __publicField(this, _l);
-    __publicField(this, _k, false);
-    __publicField(this, _j, false);
-    __publicField(this, _i, false);
-    __publicField(this, _h, false);
-    __publicField(this, _g, null);
-    __publicField(this, _f, 0);
-    __publicField(this, _e, false);
-    __publicField(this, _d);
-    __publicField(this, _c, false);
-    __publicField(this, _b2, 0);
-    __publicField(this, _a3, false);
-    /**
-     * true if the stream can be written
-     */
-    __publicField(this, "writable", true);
-    /**
-     * true if the stream can be read
-     */
-    __publicField(this, "readable", true);
-    if (options2.objectMode && typeof options2.encoding === "string") {
-      throw new TypeError("Encoding and objectMode may not be used together");
-    }
-    if (isObjectModeOptions(options2)) {
-      this[OBJECTMODE] = true;
-      this[ENCODING$1] = null;
-    } else if (isEncodingOptions(options2)) {
-      this[ENCODING$1] = options2.encoding;
-      this[OBJECTMODE] = false;
-    } else {
-      this[OBJECTMODE] = false;
-      this[ENCODING$1] = null;
-    }
-    this[ASYNC] = !!options2.async;
-    this[DECODER] = this[ENCODING$1] ? new import_node_string_decoder.StringDecoder(this[ENCODING$1]) : null;
-    if (options2 && options2.debugExposeBuffer === true) {
-      Object.defineProperty(this, "buffer", { get: () => this[BUFFER] });
-    }
-    if (options2 && options2.debugExposePipes === true) {
-      Object.defineProperty(this, "pipes", { get: () => this[PIPES] });
-    }
-    const { signal } = options2;
-    if (signal) {
-      this[SIGNAL] = signal;
-      if (signal.aborted) {
-        this[ABORT]();
-      } else {
-        signal.addEventListener("abort", () => this[ABORT]());
-      }
-    }
-  }
-  /**
-   * The amount of data stored in the buffer waiting to be read.
-   *
-   * For Buffer strings, this will be the total byte length.
-   * For string encoding streams, this will be the string character length,
-   * according to JavaScript's `string.length` logic.
-   * For objectMode streams, this is a count of the items waiting to be
-   * emitted.
-   */
-  get bufferLength() {
-    return this[BUFFERLENGTH];
-  }
-  /**
-   * The `BufferEncoding` currently in use, or `null`
-   */
-  get encoding() {
-    return this[ENCODING$1];
-  }
-  /**
-   * @deprecated - This is a read only property
-   */
-  set encoding(_enc) {
-    throw new Error("Encoding must be set at instantiation time");
-  }
-  /**
-   * @deprecated - Encoding may only be set at instantiation time
-   */
-  setEncoding(_enc) {
-    throw new Error("Encoding must be set at instantiation time");
-  }
-  /**
-   * True if this is an objectMode stream
-   */
-  get objectMode() {
-    return this[OBJECTMODE];
-  }
-  /**
-   * @deprecated - This is a read-only property
-   */
-  set objectMode(_om) {
-    throw new Error("objectMode must be set at instantiation time");
-  }
-  /**
-   * true if this is an async stream
-   */
-  get ["async"]() {
-    return this[ASYNC];
-  }
-  /**
-   * Set to true to make this stream async.
-   *
-   * Once set, it cannot be unset, as this would potentially cause incorrect
-   * behavior.  Ie, a sync stream can be made async, but an async stream
-   * cannot be safely made sync.
-   */
-  set ["async"](a) {
-    this[ASYNC] = this[ASYNC] || !!a;
-  }
-  // drop everything and get out of the flow completely
-  [(_s = FLOWING, _r = PAUSED, _q = PIPES, _p = BUFFER, _o = OBJECTMODE, _n = ENCODING$1, _m = ASYNC, _l = DECODER, _k = EOF, _j = EMITTED_END, _i = EMITTING_END, _h = CLOSED$1, _g = EMITTED_ERROR, _f = BUFFERLENGTH, _e = DESTROYED, _d = SIGNAL, _c = ABORTED, _b2 = DATALISTENERS, _a3 = DISCARDED, ABORT)]() {
-    var _a4, _b3;
-    this[ABORTED] = true;
-    this.emit("abort", (_a4 = this[SIGNAL]) == null ? void 0 : _a4.reason);
-    this.destroy((_b3 = this[SIGNAL]) == null ? void 0 : _b3.reason);
-  }
-  /**
-   * True if the stream has been aborted.
-   */
-  get aborted() {
-    return this[ABORTED];
-  }
-  /**
-   * No-op setter. Stream aborted status is set via the AbortSignal provided
-   * in the constructor options.
-   */
-  set aborted(_) {
-  }
-  write(chunk, encoding, cb) {
-    var _a4;
-    if (this[ABORTED])
-      return false;
-    if (this[EOF])
-      throw new Error("write after end");
-    if (this[DESTROYED]) {
-      this.emit("error", Object.assign(new Error("Cannot call write after a stream was destroyed"), { code: "ERR_STREAM_DESTROYED" }));
-      return true;
-    }
-    if (typeof encoding === "function") {
-      cb = encoding;
-      encoding = "utf8";
-    }
-    if (!encoding)
-      encoding = "utf8";
-    const fn = this[ASYNC] ? defer$3 : nodefer;
-    if (!this[OBJECTMODE] && !Buffer.isBuffer(chunk)) {
-      if (isArrayBufferView(chunk)) {
-        chunk = Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength);
-      } else if (isArrayBufferLike(chunk)) {
-        chunk = Buffer.from(chunk);
-      } else if (typeof chunk !== "string") {
-        throw new Error("Non-contiguous data written to non-objectMode stream");
-      }
-    }
-    if (this[OBJECTMODE]) {
-      if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
-        this[FLUSH](true);
-      if (this[FLOWING])
-        this.emit("data", chunk);
-      else
-        this[BUFFERPUSH](chunk);
-      if (this[BUFFERLENGTH] !== 0)
-        this.emit("readable");
-      if (cb)
-        fn(cb);
-      return this[FLOWING];
-    }
-    if (!chunk.length) {
-      if (this[BUFFERLENGTH] !== 0)
-        this.emit("readable");
-      if (cb)
-        fn(cb);
-      return this[FLOWING];
-    }
-    if (typeof chunk === "string" && // unless it is a string already ready for us to use
-    !(encoding === this[ENCODING$1] && !((_a4 = this[DECODER]) == null ? void 0 : _a4.lastNeed))) {
-      chunk = Buffer.from(chunk, encoding);
-    }
-    if (Buffer.isBuffer(chunk) && this[ENCODING$1]) {
-      chunk = this[DECODER].write(chunk);
-    }
-    if (this[FLOWING] && this[BUFFERLENGTH] !== 0)
-      this[FLUSH](true);
-    if (this[FLOWING])
-      this.emit("data", chunk);
-    else
-      this[BUFFERPUSH](chunk);
-    if (this[BUFFERLENGTH] !== 0)
-      this.emit("readable");
-    if (cb)
-      fn(cb);
-    return this[FLOWING];
-  }
-  /**
-   * Low-level explicit read method.
-   *
-   * In objectMode, the argument is ignored, and one item is returned if
-   * available.
-   *
-   * `n` is the number of bytes (or in the case of encoding streams,
-   * characters) to consume. If `n` is not provided, then the entire buffer
-   * is returned, or `null` is returned if no data is available.
-   *
-   * If `n` is greater that the amount of data in the internal buffer,
-   * then `null` is returned.
-   */
-  read(n2) {
-    if (this[DESTROYED])
-      return null;
-    this[DISCARDED] = false;
-    if (this[BUFFERLENGTH] === 0 || n2 === 0 || n2 && n2 > this[BUFFERLENGTH]) {
-      this[MAYBE_EMIT_END]();
-      return null;
-    }
-    if (this[OBJECTMODE])
-      n2 = null;
-    if (this[BUFFER].length > 1 && !this[OBJECTMODE]) {
-      this[BUFFER] = [
-        this[ENCODING$1] ? this[BUFFER].join("") : Buffer.concat(this[BUFFER], this[BUFFERLENGTH])
-      ];
-    }
-    const ret = this[READ](n2 || null, this[BUFFER][0]);
-    this[MAYBE_EMIT_END]();
-    return ret;
-  }
-  [READ](n2, chunk) {
-    if (this[OBJECTMODE])
-      this[BUFFERSHIFT]();
-    else {
-      const c = chunk;
-      if (n2 === c.length || n2 === null)
-        this[BUFFERSHIFT]();
-      else if (typeof c === "string") {
-        this[BUFFER][0] = c.slice(n2);
-        chunk = c.slice(0, n2);
-        this[BUFFERLENGTH] -= n2;
-      } else {
-        this[BUFFER][0] = c.subarray(n2);
-        chunk = c.subarray(0, n2);
-        this[BUFFERLENGTH] -= n2;
-      }
-    }
-    this.emit("data", chunk);
-    if (!this[BUFFER].length && !this[EOF])
-      this.emit("drain");
-    return chunk;
-  }
-  end(chunk, encoding, cb) {
-    if (typeof chunk === "function") {
-      cb = chunk;
-      chunk = void 0;
-    }
-    if (typeof encoding === "function") {
-      cb = encoding;
-      encoding = "utf8";
-    }
-    if (chunk !== void 0)
-      this.write(chunk, encoding);
-    if (cb)
-      this.once("end", cb);
-    this[EOF] = true;
-    this.writable = false;
-    if (this[FLOWING] || !this[PAUSED])
-      this[MAYBE_EMIT_END]();
-    return this;
-  }
-  // don't let the internal resume be overwritten
-  [RESUME]() {
-    if (this[DESTROYED])
-      return;
-    if (!this[DATALISTENERS] && !this[PIPES].length) {
-      this[DISCARDED] = true;
-    }
-    this[PAUSED] = false;
-    this[FLOWING] = true;
-    this.emit("resume");
-    if (this[BUFFER].length)
-      this[FLUSH]();
-    else if (this[EOF])
-      this[MAYBE_EMIT_END]();
-    else
-      this.emit("drain");
-  }
-  /**
-   * Resume the stream if it is currently in a paused state
-   *
-   * If called when there are no pipe destinations or `data` event listeners,
-   * this will place the stream in a "discarded" state, where all data will
-   * be thrown away. The discarded state is removed if a pipe destination or
-   * data handler is added, if pause() is called, or if any synchronous or
-   * asynchronous iteration is started.
-   */
-  resume() {
-    return this[RESUME]();
-  }
-  /**
-   * Pause the stream
-   */
-  pause() {
-    this[FLOWING] = false;
-    this[PAUSED] = true;
-    this[DISCARDED] = false;
-  }
-  /**
-   * true if the stream has been forcibly destroyed
-   */
-  get destroyed() {
-    return this[DESTROYED];
-  }
-  /**
-   * true if the stream is currently in a flowing state, meaning that
-   * any writes will be immediately emitted.
-   */
-  get flowing() {
-    return this[FLOWING];
-  }
-  /**
-   * true if the stream is currently in a paused state
-   */
-  get paused() {
-    return this[PAUSED];
-  }
-  [BUFFERPUSH](chunk) {
-    if (this[OBJECTMODE])
-      this[BUFFERLENGTH] += 1;
-    else
-      this[BUFFERLENGTH] += chunk.length;
-    this[BUFFER].push(chunk);
-  }
-  [BUFFERSHIFT]() {
-    if (this[OBJECTMODE])
-      this[BUFFERLENGTH] -= 1;
-    else
-      this[BUFFERLENGTH] -= this[BUFFER][0].length;
-    return this[BUFFER].shift();
-  }
-  [FLUSH](noDrain = false) {
-    do {
-    } while (this[FLUSHCHUNK](this[BUFFERSHIFT]()) && this[BUFFER].length);
-    if (!noDrain && !this[BUFFER].length && !this[EOF])
-      this.emit("drain");
-  }
-  [FLUSHCHUNK](chunk) {
-    this.emit("data", chunk);
-    return this[FLOWING];
-  }
-  /**
-   * Pipe all data emitted by this stream into the destination provided.
-   *
-   * Triggers the flow of data.
-   */
-  pipe(dest, opts) {
-    if (this[DESTROYED])
-      return dest;
-    this[DISCARDED] = false;
-    const ended = this[EMITTED_END];
-    opts = opts || {};
-    if (dest === proc.stdout || dest === proc.stderr)
-      opts.end = false;
-    else
-      opts.end = opts.end !== false;
-    opts.proxyErrors = !!opts.proxyErrors;
-    if (ended) {
-      if (opts.end)
-        dest.end();
-    } else {
-      this[PIPES].push(!opts.proxyErrors ? new Pipe(this, dest, opts) : new PipeProxyErrors(this, dest, opts));
-      if (this[ASYNC])
-        defer$3(() => this[RESUME]());
-      else
-        this[RESUME]();
-    }
-    return dest;
-  }
-  /**
-   * Fully unhook a piped destination stream.
-   *
-   * If the destination stream was the only consumer of this stream (ie,
-   * there are no other piped destinations or `'data'` event listeners)
-   * then the flow of data will stop until there is another consumer or
-   * {@link Minipass#resume} is explicitly called.
-   */
-  unpipe(dest) {
-    const p = this[PIPES].find((p2) => p2.dest === dest);
-    if (p) {
-      if (this[PIPES].length === 1) {
-        if (this[FLOWING] && this[DATALISTENERS] === 0) {
-          this[FLOWING] = false;
-        }
-        this[PIPES] = [];
-      } else
-        this[PIPES].splice(this[PIPES].indexOf(p), 1);
-      p.unpipe();
-    }
-  }
-  /**
-   * Alias for {@link Minipass#on}
-   */
-  addListener(ev, handler) {
-    return this.on(ev, handler);
-  }
-  /**
-   * Mostly identical to `EventEmitter.on`, with the following
-   * behavior differences to prevent data loss and unnecessary hangs:
-   *
-   * - Adding a 'data' event handler will trigger the flow of data
-   *
-   * - Adding a 'readable' event handler when there is data waiting to be read
-   *   will cause 'readable' to be emitted immediately.
-   *
-   * - Adding an 'endish' event handler ('end', 'finish', etc.) which has
-   *   already passed will cause the event to be emitted immediately and all
-   *   handlers removed.
-   *
-   * - Adding an 'error' event handler after an error has been emitted will
-   *   cause the event to be re-emitted immediately with the error previously
-   *   raised.
-   */
-  on(ev, handler) {
-    const ret = super.on(ev, handler);
-    if (ev === "data") {
-      this[DISCARDED] = false;
-      this[DATALISTENERS]++;
-      if (!this[PIPES].length && !this[FLOWING]) {
-        this[RESUME]();
-      }
-    } else if (ev === "readable" && this[BUFFERLENGTH] !== 0) {
-      super.emit("readable");
-    } else if (isEndish(ev) && this[EMITTED_END]) {
-      super.emit(ev);
-      this.removeAllListeners(ev);
-    } else if (ev === "error" && this[EMITTED_ERROR]) {
-      const h = handler;
-      if (this[ASYNC])
-        defer$3(() => h.call(this, this[EMITTED_ERROR]));
-      else
-        h.call(this, this[EMITTED_ERROR]);
-    }
-    return ret;
-  }
-  /**
-   * Alias for {@link Minipass#off}
-   */
-  removeListener(ev, handler) {
-    return this.off(ev, handler);
-  }
-  /**
-   * Mostly identical to `EventEmitter.off`
-   *
-   * If a 'data' event handler is removed, and it was the last consumer
-   * (ie, there are no pipe destinations or other 'data' event listeners),
-   * then the flow of data will stop until there is another consumer or
-   * {@link Minipass#resume} is explicitly called.
-   */
-  off(ev, handler) {
-    const ret = super.off(ev, handler);
-    if (ev === "data") {
-      this[DATALISTENERS] = this.listeners("data").length;
-      if (this[DATALISTENERS] === 0 && !this[DISCARDED] && !this[PIPES].length) {
-        this[FLOWING] = false;
-      }
-    }
-    return ret;
-  }
-  /**
-   * Mostly identical to `EventEmitter.removeAllListeners`
-   *
-   * If all 'data' event handlers are removed, and they were the last consumer
-   * (ie, there are no pipe destinations), then the flow of data will stop
-   * until there is another consumer or {@link Minipass#resume} is explicitly
-   * called.
-   */
-  removeAllListeners(ev) {
-    const ret = super.removeAllListeners(ev);
-    if (ev === "data" || ev === void 0) {
-      this[DATALISTENERS] = 0;
-      if (!this[DISCARDED] && !this[PIPES].length) {
-        this[FLOWING] = false;
-      }
-    }
-    return ret;
-  }
-  /**
-   * true if the 'end' event has been emitted
-   */
-  get emittedEnd() {
-    return this[EMITTED_END];
-  }
-  [MAYBE_EMIT_END]() {
-    if (!this[EMITTING_END] && !this[EMITTED_END] && !this[DESTROYED] && this[BUFFER].length === 0 && this[EOF]) {
-      this[EMITTING_END] = true;
-      this.emit("end");
-      this.emit("prefinish");
-      this.emit("finish");
-      if (this[CLOSED$1])
-        this.emit("close");
-      this[EMITTING_END] = false;
-    }
-  }
-  /**
-   * Mostly identical to `EventEmitter.emit`, with the following
-   * behavior differences to prevent data loss and unnecessary hangs:
-   *
-   * If the stream has been destroyed, and the event is something other
-   * than 'close' or 'error', then `false` is returned and no handlers
-   * are called.
-   *
-   * If the event is 'end', and has already been emitted, then the event
-   * is ignored. If the stream is in a paused or non-flowing state, then
-   * the event will be deferred until data flow resumes. If the stream is
-   * async, then handlers will be called on the next tick rather than
-   * immediately.
-   *
-   * If the event is 'close', and 'end' has not yet been emitted, then
-   * the event will be deferred until after 'end' is emitted.
-   *
-   * If the event is 'error', and an AbortSignal was provided for the stream,
-   * and there are no listeners, then the event is ignored, matching the
-   * behavior of node core streams in the presense of an AbortSignal.
-   *
-   * If the event is 'finish' or 'prefinish', then all listeners will be
-   * removed after emitting the event, to prevent double-firing.
-   */
-  emit(ev, ...args) {
-    const data = args[0];
-    if (ev !== "error" && ev !== "close" && ev !== DESTROYED && this[DESTROYED]) {
-      return false;
-    } else if (ev === "data") {
-      return !this[OBJECTMODE] && !data ? false : this[ASYNC] ? (defer$3(() => this[EMITDATA](data)), true) : this[EMITDATA](data);
-    } else if (ev === "end") {
-      return this[EMITEND]();
-    } else if (ev === "close") {
-      this[CLOSED$1] = true;
-      if (!this[EMITTED_END] && !this[DESTROYED])
-        return false;
-      const ret2 = super.emit("close");
-      this.removeAllListeners("close");
-      return ret2;
-    } else if (ev === "error") {
-      this[EMITTED_ERROR] = data;
-      super.emit(ERROR, data);
-      const ret2 = !this[SIGNAL] || this.listeners("error").length ? super.emit("error", data) : false;
-      this[MAYBE_EMIT_END]();
-      return ret2;
-    } else if (ev === "resume") {
-      const ret2 = super.emit("resume");
-      this[MAYBE_EMIT_END]();
-      return ret2;
-    } else if (ev === "finish" || ev === "prefinish") {
-      const ret2 = super.emit(ev);
-      this.removeAllListeners(ev);
-      return ret2;
-    }
-    const ret = super.emit(ev, ...args);
-    this[MAYBE_EMIT_END]();
-    return ret;
-  }
-  [EMITDATA](data) {
-    for (const p of this[PIPES]) {
-      if (p.dest.write(data) === false)
-        this.pause();
-    }
-    const ret = this[DISCARDED] ? false : super.emit("data", data);
-    this[MAYBE_EMIT_END]();
-    return ret;
-  }
-  [EMITEND]() {
-    if (this[EMITTED_END])
-      return false;
-    this[EMITTED_END] = true;
-    this.readable = false;
-    return this[ASYNC] ? (defer$3(() => this[EMITEND2]()), true) : this[EMITEND2]();
-  }
-  [EMITEND2]() {
-    if (this[DECODER]) {
-      const data = this[DECODER].end();
-      if (data) {
-        for (const p of this[PIPES]) {
-          p.dest.write(data);
-        }
-        if (!this[DISCARDED])
-          super.emit("data", data);
-      }
-    }
-    for (const p of this[PIPES]) {
-      p.end();
-    }
-    const ret = super.emit("end");
-    this.removeAllListeners("end");
-    return ret;
-  }
-  /**
-   * Return a Promise that resolves to an array of all emitted data once
-   * the stream ends.
-   */
-  async collect() {
-    const buf = Object.assign([], {
-      dataLength: 0
-    });
-    if (!this[OBJECTMODE])
-      buf.dataLength = 0;
-    const p = this.promise();
-    this.on("data", (c) => {
-      buf.push(c);
-      if (!this[OBJECTMODE])
-        buf.dataLength += c.length;
-    });
-    await p;
-    return buf;
-  }
-  /**
-   * Return a Promise that resolves to the concatenation of all emitted data
-   * once the stream ends.
-   *
-   * Not allowed on objectMode streams.
-   */
-  async concat() {
-    if (this[OBJECTMODE]) {
-      throw new Error("cannot concat in objectMode");
-    }
-    const buf = await this.collect();
-    return this[ENCODING$1] ? buf.join("") : Buffer.concat(buf, buf.dataLength);
-  }
-  /**
-   * Return a void Promise that resolves once the stream ends.
-   */
-  async promise() {
-    return new Promise((resolve3, reject) => {
-      this.on(DESTROYED, () => reject(new Error("stream destroyed")));
-      this.on("error", (er) => reject(er));
-      this.on("end", () => resolve3());
-    });
-  }
-  /**
-   * Asynchronous `for await of` iteration.
-   *
-   * This will continue emitting all chunks until the stream terminates.
-   */
-  [Symbol.asyncIterator]() {
-    this[DISCARDED] = false;
-    let stopped = false;
-    const stop = async () => {
-      this.pause();
-      stopped = true;
-      return { value: void 0, done: true };
-    };
-    const next = () => {
-      if (stopped)
-        return stop();
-      const res = this.read();
-      if (res !== null)
-        return Promise.resolve({ done: false, value: res });
-      if (this[EOF])
-        return stop();
-      let resolve3;
-      let reject;
-      const onerr = (er) => {
-        this.off("data", ondata);
-        this.off("end", onend);
-        this.off(DESTROYED, ondestroy);
-        stop();
-        reject(er);
-      };
-      const ondata = (value2) => {
-        this.off("error", onerr);
-        this.off("end", onend);
-        this.off(DESTROYED, ondestroy);
-        this.pause();
-        resolve3({ value: value2, done: !!this[EOF] });
-      };
-      const onend = () => {
-        this.off("error", onerr);
-        this.off("data", ondata);
-        this.off(DESTROYED, ondestroy);
-        stop();
-        resolve3({ done: true, value: void 0 });
-      };
-      const ondestroy = () => onerr(new Error("stream destroyed"));
-      return new Promise((res2, rej) => {
-        reject = rej;
-        resolve3 = res2;
-        this.once(DESTROYED, ondestroy);
-        this.once("error", onerr);
-        this.once("end", onend);
-        this.once("data", ondata);
-      });
-    };
-    return {
-      next,
-      throw: stop,
-      return: stop,
-      [Symbol.asyncIterator]() {
-        return this;
-      }
-    };
-  }
-  /**
-   * Synchronous `for of` iteration.
-   *
-   * The iteration will terminate when the internal buffer runs out, even
-   * if the stream has not yet terminated.
-   */
-  [Symbol.iterator]() {
-    this[DISCARDED] = false;
-    let stopped = false;
-    const stop = () => {
-      this.pause();
-      this.off(ERROR, stop);
-      this.off(DESTROYED, stop);
-      this.off("end", stop);
-      stopped = true;
-      return { done: true, value: void 0 };
-    };
-    const next = () => {
-      if (stopped)
-        return stop();
-      const value2 = this.read();
-      return value2 === null ? stop() : { done: false, value: value2 };
-    };
-    this.once("end", stop);
-    this.once(ERROR, stop);
-    this.once(DESTROYED, stop);
-    return {
-      next,
-      throw: stop,
-      return: stop,
-      [Symbol.iterator]() {
-        return this;
-      }
-    };
-  }
-  /**
-   * Destroy a stream, preventing it from being used for any further purpose.
-   *
-   * If the stream has a `close()` method, then it will be called on
-   * destruction.
-   *
-   * After destruction, any attempt to write data, read data, or emit most
-   * events will be ignored.
-   *
-   * If an error argument is provided, then it will be emitted in an
-   * 'error' event.
-   */
-  destroy(er) {
-    if (this[DESTROYED]) {
-      if (er)
-        this.emit("error", er);
-      else
-        this.emit(DESTROYED);
-      return this;
-    }
-    this[DESTROYED] = true;
-    this[DISCARDED] = true;
-    this[BUFFER].length = 0;
-    this[BUFFERLENGTH] = 0;
-    const wc = this;
-    if (typeof wc.close === "function" && !this[CLOSED$1])
-      wc.close();
-    if (er)
-      this.emit("error", er);
-    else
-      this.emit(DESTROYED);
-    return this;
-  }
-  /**
-   * Alias for {@link isStream}
-   *
-   * Former export location, maintained for backwards compatibility.
-   *
-   * @deprecated
-   */
-  static get isStream() {
-    return isStream;
-  }
-};
-var realpathSync = import_fs.realpathSync.native;
-var defaultFS = {
-  lstatSync: import_fs.lstatSync,
-  readdir: import_fs.readdir,
-  readdirSync: import_fs.readdirSync,
-  readlinkSync: import_fs.readlinkSync,
-  realpathSync,
-  promises: {
-    lstat: import_promises.lstat,
-    readdir: import_promises.readdir,
-    readlink: import_promises.readlink,
-    realpath: import_promises.realpath
-  }
-};
-var fsFromOption = (fsOption) => !fsOption || fsOption === defaultFS || fsOption === fs$j ? defaultFS : {
-  ...defaultFS,
-  ...fsOption,
-  promises: {
-    ...defaultFS.promises,
-    ...fsOption.promises || {}
-  }
-};
-var uncDriveRegexp = /^\\\\\?\\([a-z]:)\\?$/i;
-var uncToDrive = (rootPath) => rootPath.replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
-var eitherSep = /[\\\/]/;
-var UNKNOWN = 0;
-var IFIFO = 1;
-var IFCHR = 2;
-var IFDIR = 4;
-var IFBLK = 6;
-var IFREG = 8;
-var IFLNK = 10;
-var IFSOCK = 12;
-var IFMT = 15;
-var IFMT_UNKNOWN = ~IFMT;
-var READDIR_CALLED = 16;
-var LSTAT_CALLED = 32;
-var ENOTDIR = 64;
-var ENOENT = 128;
-var ENOREADLINK = 256;
-var ENOREALPATH = 512;
-var ENOCHILD = ENOTDIR | ENOENT | ENOREALPATH;
-var TYPEMASK = 1023;
-var entToType = (s) => s.isFile() ? IFREG : s.isDirectory() ? IFDIR : s.isSymbolicLink() ? IFLNK : s.isCharacterDevice() ? IFCHR : s.isBlockDevice() ? IFBLK : s.isSocket() ? IFSOCK : s.isFIFO() ? IFIFO : UNKNOWN;
-var normalizeCache = /* @__PURE__ */ new Map();
-var normalize = (s) => {
-  const c = normalizeCache.get(s);
-  if (c)
-    return c;
-  const n2 = s.normalize("NFKD");
-  normalizeCache.set(s, n2);
-  return n2;
-};
-var normalizeNocaseCache = /* @__PURE__ */ new Map();
-var normalizeNocase = (s) => {
-  const c = normalizeNocaseCache.get(s);
-  if (c)
-    return c;
-  const n2 = normalize(s.toLowerCase());
-  normalizeNocaseCache.set(s, n2);
-  return n2;
-};
-var ResolveCache = class extends LRUCache {
-  constructor() {
-    super({ max: 256 });
-  }
-};
-var ChildrenCache = class extends LRUCache {
-  constructor(maxSize = 16 * 1024) {
-    super({
-      maxSize,
-      // parent + children
-      sizeCalculation: (a) => a.length + 1
-    });
-  }
-};
-var setAsCwd = Symbol("PathScurry setAsCwd");
-var _fs, _dev, _mode, _nlink, _uid, _gid, _rdev, _blksize, _ino, _size2, _blocks, _atimeMs, _mtimeMs, _ctimeMs, _birthtimeMs, _atime, _mtime, _ctime, _birthtime, _matchName, _depth, _fullpath, _fullpathPosix, _relative, _relativePosix, _type, _children, _linkTarget, _realpath, _PathBase_instances, resolveParts_fn, readdirSuccess_fn, markENOENT_fn, markChildrenENOENT_fn, markENOREALPATH_fn, markENOTDIR_fn, readdirFail_fn, lstatFail_fn, readlinkFail_fn, readdirAddChild_fn, readdirAddNewChild_fn, readdirMaybePromoteChild_fn, readdirPromoteChild_fn, applyStat_fn, _onReaddirCB, _readdirCBInFlight, callOnReaddirCB_fn, _asyncReaddirInFlight;
-var PathBase = class {
-  /**
-   * Do not create new Path objects directly.  They should always be accessed
-   * via the PathScurry class or other methods on the Path class.
-   *
-   * @internal
-   */
-  constructor(name2, type = UNKNOWN, root, roots, nocase, children, opts) {
-    __privateAdd(this, _PathBase_instances);
-    /**
-     * the basename of this path
-     *
-     * **Important**: *always* test the path name against any test string
-     * usingthe {@link isNamed} method, and not by directly comparing this
-     * string. Otherwise, unicode path strings that the system sees as identical
-     * will not be properly treated as the same path, leading to incorrect
-     * behavior and possible security issues.
-     */
-    __publicField(this, "name");
-    /**
-     * the Path entry corresponding to the path root.
-     *
-     * @internal
-     */
-    __publicField(this, "root");
-    /**
-     * All roots found within the current PathScurry family
-     *
-     * @internal
-     */
-    __publicField(this, "roots");
-    /**
-     * a reference to the parent path, or undefined in the case of root entries
-     *
-     * @internal
-     */
-    __publicField(this, "parent");
-    /**
-     * boolean indicating whether paths are compared case-insensitively
-     * @internal
-     */
-    __publicField(this, "nocase");
-    /**
-     * boolean indicating that this path is the current working directory
-     * of the PathScurry collection that contains it.
-     */
-    __publicField(this, "isCWD", false);
-    // potential default fs override
-    __privateAdd(this, _fs);
-    // Stats fields
-    __privateAdd(this, _dev);
-    __privateAdd(this, _mode);
-    __privateAdd(this, _nlink);
-    __privateAdd(this, _uid);
-    __privateAdd(this, _gid);
-    __privateAdd(this, _rdev);
-    __privateAdd(this, _blksize);
-    __privateAdd(this, _ino);
-    __privateAdd(this, _size2);
-    __privateAdd(this, _blocks);
-    __privateAdd(this, _atimeMs);
-    __privateAdd(this, _mtimeMs);
-    __privateAdd(this, _ctimeMs);
-    __privateAdd(this, _birthtimeMs);
-    __privateAdd(this, _atime);
-    __privateAdd(this, _mtime);
-    __privateAdd(this, _ctime);
-    __privateAdd(this, _birthtime);
-    __privateAdd(this, _matchName);
-    __privateAdd(this, _depth);
-    __privateAdd(this, _fullpath);
-    __privateAdd(this, _fullpathPosix);
-    __privateAdd(this, _relative);
-    __privateAdd(this, _relativePosix);
-    __privateAdd(this, _type);
-    __privateAdd(this, _children);
-    __privateAdd(this, _linkTarget);
-    __privateAdd(this, _realpath);
-    __privateAdd(this, _onReaddirCB, []);
-    __privateAdd(this, _readdirCBInFlight, false);
-    __privateAdd(this, _asyncReaddirInFlight);
-    this.name = name2;
-    __privateSet(this, _matchName, nocase ? normalizeNocase(name2) : normalize(name2));
-    __privateSet(this, _type, type & TYPEMASK);
-    this.nocase = nocase;
-    this.roots = roots;
-    this.root = root || this;
-    __privateSet(this, _children, children);
-    __privateSet(this, _fullpath, opts.fullpath);
-    __privateSet(this, _relative, opts.relative);
-    __privateSet(this, _relativePosix, opts.relativePosix);
-    this.parent = opts.parent;
-    if (this.parent) {
-      __privateSet(this, _fs, __privateGet(this.parent, _fs));
-    } else {
-      __privateSet(this, _fs, fsFromOption(opts.fs));
-    }
-  }
-  get dev() {
-    return __privateGet(this, _dev);
-  }
-  get mode() {
-    return __privateGet(this, _mode);
-  }
-  get nlink() {
-    return __privateGet(this, _nlink);
-  }
-  get uid() {
-    return __privateGet(this, _uid);
-  }
-  get gid() {
-    return __privateGet(this, _gid);
-  }
-  get rdev() {
-    return __privateGet(this, _rdev);
-  }
-  get blksize() {
-    return __privateGet(this, _blksize);
-  }
-  get ino() {
-    return __privateGet(this, _ino);
-  }
-  get size() {
-    return __privateGet(this, _size2);
-  }
-  get blocks() {
-    return __privateGet(this, _blocks);
-  }
-  get atimeMs() {
-    return __privateGet(this, _atimeMs);
-  }
-  get mtimeMs() {
-    return __privateGet(this, _mtimeMs);
-  }
-  get ctimeMs() {
-    return __privateGet(this, _ctimeMs);
-  }
-  get birthtimeMs() {
-    return __privateGet(this, _birthtimeMs);
-  }
-  get atime() {
-    return __privateGet(this, _atime);
-  }
-  get mtime() {
-    return __privateGet(this, _mtime);
-  }
-  get ctime() {
-    return __privateGet(this, _ctime);
-  }
-  get birthtime() {
-    return __privateGet(this, _birthtime);
-  }
-  /**
-   * This property is for compatibility with the Dirent class as of
-   * Node v20, where Dirent['parentPath'] refers to the path of the
-   * directory that was passed to readdir. For root entries, it's the path
-   * to the entry itself.
-   */
-  get parentPath() {
-    return (this.parent || this).fullpath();
-  }
-  /**
-   * Deprecated alias for Dirent['parentPath'] Somewhat counterintuitively,
-   * this property refers to the *parent* path, not the path object itself.
-   */
-  get path() {
-    return this.parentPath;
-  }
-  /**
-   * Returns the depth of the Path object from its root.
-   *
-   * For example, a path at `/foo/bar` would have a depth of 2.
-   */
-  depth() {
-    if (__privateGet(this, _depth) !== void 0)
-      return __privateGet(this, _depth);
-    if (!this.parent)
-      return __privateSet(this, _depth, 0);
-    return __privateSet(this, _depth, this.parent.depth() + 1);
-  }
-  /**
-   * @internal
-   */
-  childrenCache() {
-    return __privateGet(this, _children);
-  }
-  /**
-   * Get the Path object referenced by the string path, resolved from this Path
-   */
-  resolve(path3) {
-    var _a4;
-    if (!path3) {
-      return this;
-    }
-    const rootPath = this.getRootString(path3);
-    const dir = path3.substring(rootPath.length);
-    const dirParts = dir.split(this.splitSep);
-    const result = rootPath ? __privateMethod(_a4 = this.getRoot(rootPath), _PathBase_instances, resolveParts_fn).call(_a4, dirParts) : __privateMethod(this, _PathBase_instances, resolveParts_fn).call(this, dirParts);
-    return result;
-  }
-  /**
-   * Returns the cached children Path objects, if still available.  If they
-   * have fallen out of the cache, then returns an empty array, and resets the
-   * READDIR_CALLED bit, so that future calls to readdir() will require an fs
-   * lookup.
-   *
-   * @internal
-   */
-  children() {
-    const cached = __privateGet(this, _children).get(this);
-    if (cached) {
-      return cached;
-    }
-    const children = Object.assign([], { provisional: 0 });
-    __privateGet(this, _children).set(this, children);
-    __privateSet(this, _type, __privateGet(this, _type) & ~READDIR_CALLED);
-    return children;
-  }
-  /**
-   * Resolves a path portion and returns or creates the child Path.
-   *
-   * Returns `this` if pathPart is `''` or `'.'`, or `parent` if pathPart is
-   * `'..'`.
-   *
-   * This should not be called directly.  If `pathPart` contains any path
-   * separators, it will lead to unsafe undefined behavior.
-   *
-   * Use `Path.resolve()` instead.
-   *
-   * @internal
-   */
-  child(pathPart, opts) {
-    if (pathPart === "" || pathPart === ".") {
-      return this;
-    }
-    if (pathPart === "..") {
-      return this.parent || this;
-    }
-    const children = this.children();
-    const name2 = this.nocase ? normalizeNocase(pathPart) : normalize(pathPart);
-    for (const p of children) {
-      if (__privateGet(p, _matchName) === name2) {
-        return p;
-      }
-    }
-    const s = this.parent ? this.sep : "";
-    const fullpath = __privateGet(this, _fullpath) ? __privateGet(this, _fullpath) + s + pathPart : void 0;
-    const pchild = this.newChild(pathPart, UNKNOWN, {
-      ...opts,
-      parent: this,
-      fullpath
-    });
-    if (!this.canReaddir()) {
-      __privateSet(pchild, _type, __privateGet(pchild, _type) | ENOENT);
-    }
-    children.push(pchild);
-    return pchild;
-  }
-  /**
-   * The relative path from the cwd. If it does not share an ancestor with
-   * the cwd, then this ends up being equivalent to the fullpath()
-   */
-  relative() {
-    if (this.isCWD)
-      return "";
-    if (__privateGet(this, _relative) !== void 0) {
-      return __privateGet(this, _relative);
-    }
-    const name2 = this.name;
-    const p = this.parent;
-    if (!p) {
-      return __privateSet(this, _relative, this.name);
-    }
-    const pv = p.relative();
-    return pv + (!pv || !p.parent ? "" : this.sep) + name2;
-  }
-  /**
-   * The relative path from the cwd, using / as the path separator.
-   * If it does not share an ancestor with
-   * the cwd, then this ends up being equivalent to the fullpathPosix()
-   * On posix systems, this is identical to relative().
-   */
-  relativePosix() {
-    if (this.sep === "/")
-      return this.relative();
-    if (this.isCWD)
-      return "";
-    if (__privateGet(this, _relativePosix) !== void 0)
-      return __privateGet(this, _relativePosix);
-    const name2 = this.name;
-    const p = this.parent;
-    if (!p) {
-      return __privateSet(this, _relativePosix, this.fullpathPosix());
-    }
-    const pv = p.relativePosix();
-    return pv + (!pv || !p.parent ? "" : "/") + name2;
-  }
-  /**
-   * The fully resolved path string for this Path entry
-   */
-  fullpath() {
-    if (__privateGet(this, _fullpath) !== void 0) {
-      return __privateGet(this, _fullpath);
-    }
-    const name2 = this.name;
-    const p = this.parent;
-    if (!p) {
-      return __privateSet(this, _fullpath, this.name);
-    }
-    const pv = p.fullpath();
-    const fp = pv + (!p.parent ? "" : this.sep) + name2;
-    return __privateSet(this, _fullpath, fp);
-  }
-  /**
-   * On platforms other than windows, this is identical to fullpath.
-   *
-   * On windows, this is overridden to return the forward-slash form of the
-   * full UNC path.
-   */
-  fullpathPosix() {
-    if (__privateGet(this, _fullpathPosix) !== void 0)
-      return __privateGet(this, _fullpathPosix);
-    if (this.sep === "/")
-      return __privateSet(this, _fullpathPosix, this.fullpath());
-    if (!this.parent) {
-      const p2 = this.fullpath().replace(/\\/g, "/");
-      if (/^[a-z]:\//i.test(p2)) {
-        return __privateSet(this, _fullpathPosix, `//?/${p2}`);
-      } else {
-        return __privateSet(this, _fullpathPosix, p2);
-      }
-    }
-    const p = this.parent;
-    const pfpp = p.fullpathPosix();
-    const fpp = pfpp + (!pfpp || !p.parent ? "" : "/") + this.name;
-    return __privateSet(this, _fullpathPosix, fpp);
-  }
-  /**
-   * Is the Path of an unknown type?
-   *
-   * Note that we might know *something* about it if there has been a previous
-   * filesystem operation, for example that it does not exist, or is not a
-   * link, or whether it has child entries.
-   */
-  isUnknown() {
-    return (__privateGet(this, _type) & IFMT) === UNKNOWN;
-  }
-  isType(type) {
-    return this[`is${type}`]();
-  }
-  getType() {
-    return this.isUnknown() ? "Unknown" : this.isDirectory() ? "Directory" : this.isFile() ? "File" : this.isSymbolicLink() ? "SymbolicLink" : this.isFIFO() ? "FIFO" : this.isCharacterDevice() ? "CharacterDevice" : this.isBlockDevice() ? "BlockDevice" : (
-      /* c8 ignore start */
-      this.isSocket() ? "Socket" : "Unknown"
-    );
-  }
-  /**
-   * Is the Path a regular file?
-   */
-  isFile() {
-    return (__privateGet(this, _type) & IFMT) === IFREG;
-  }
-  /**
-   * Is the Path a directory?
-   */
-  isDirectory() {
-    return (__privateGet(this, _type) & IFMT) === IFDIR;
-  }
-  /**
-   * Is the path a character device?
-   */
-  isCharacterDevice() {
-    return (__privateGet(this, _type) & IFMT) === IFCHR;
-  }
-  /**
-   * Is the path a block device?
-   */
-  isBlockDevice() {
-    return (__privateGet(this, _type) & IFMT) === IFBLK;
-  }
-  /**
-   * Is the path a FIFO pipe?
-   */
-  isFIFO() {
-    return (__privateGet(this, _type) & IFMT) === IFIFO;
-  }
-  /**
-   * Is the path a socket?
-   */
-  isSocket() {
-    return (__privateGet(this, _type) & IFMT) === IFSOCK;
-  }
-  /**
-   * Is the path a symbolic link?
-   */
-  isSymbolicLink() {
-    return (__privateGet(this, _type) & IFLNK) === IFLNK;
-  }
-  /**
-   * Return the entry if it has been subject of a successful lstat, or
-   * undefined otherwise.
-   *
-   * Does not read the filesystem, so an undefined result *could* simply
-   * mean that we haven't called lstat on it.
-   */
-  lstatCached() {
-    return __privateGet(this, _type) & LSTAT_CALLED ? this : void 0;
-  }
-  /**
-   * Return the cached link target if the entry has been the subject of a
-   * successful readlink, or undefined otherwise.
-   *
-   * Does not read the filesystem, so an undefined result *could* just mean we
-   * don't have any cached data. Only use it if you are very sure that a
-   * readlink() has been called at some point.
-   */
-  readlinkCached() {
-    return __privateGet(this, _linkTarget);
-  }
-  /**
-   * Returns the cached realpath target if the entry has been the subject
-   * of a successful realpath, or undefined otherwise.
-   *
-   * Does not read the filesystem, so an undefined result *could* just mean we
-   * don't have any cached data. Only use it if you are very sure that a
-   * realpath() has been called at some point.
-   */
-  realpathCached() {
-    return __privateGet(this, _realpath);
-  }
-  /**
-   * Returns the cached child Path entries array if the entry has been the
-   * subject of a successful readdir(), or [] otherwise.
-   *
-   * Does not read the filesystem, so an empty array *could* just mean we
-   * don't have any cached data. Only use it if you are very sure that a
-   * readdir() has been called recently enough to still be valid.
-   */
-  readdirCached() {
-    const children = this.children();
-    return children.slice(0, children.provisional);
-  }
-  /**
-   * Return true if it's worth trying to readlink.  Ie, we don't (yet) have
-   * any indication that readlink will definitely fail.
-   *
-   * Returns false if the path is known to not be a symlink, if a previous
-   * readlink failed, or if the entry does not exist.
-   */
-  canReadlink() {
-    if (__privateGet(this, _linkTarget))
-      return true;
-    if (!this.parent)
-      return false;
-    const ifmt = __privateGet(this, _type) & IFMT;
-    return !(ifmt !== UNKNOWN && ifmt !== IFLNK || __privateGet(this, _type) & ENOREADLINK || __privateGet(this, _type) & ENOENT);
-  }
-  /**
-   * Return true if readdir has previously been successfully called on this
-   * path, indicating that cachedReaddir() is likely valid.
-   */
-  calledReaddir() {
-    return !!(__privateGet(this, _type) & READDIR_CALLED);
-  }
-  /**
-   * Returns true if the path is known to not exist. That is, a previous lstat
-   * or readdir failed to verify its existence when that would have been
-   * expected, or a parent entry was marked either enoent or enotdir.
-   */
-  isENOENT() {
-    return !!(__privateGet(this, _type) & ENOENT);
-  }
-  /**
-   * Return true if the path is a match for the given path name.  This handles
-   * case sensitivity and unicode normalization.
-   *
-   * Note: even on case-sensitive systems, it is **not** safe to test the
-   * equality of the `.name` property to determine whether a given pathname
-   * matches, due to unicode normalization mismatches.
-   *
-   * Always use this method instead of testing the `path.name` property
-   * directly.
-   */
-  isNamed(n2) {
-    return !this.nocase ? __privateGet(this, _matchName) === normalize(n2) : __privateGet(this, _matchName) === normalizeNocase(n2);
-  }
-  /**
-   * Return the Path object corresponding to the target of a symbolic link.
-   *
-   * If the Path is not a symbolic link, or if the readlink call fails for any
-   * reason, `undefined` is returned.
-   *
-   * Result is cached, and thus may be outdated if the filesystem is mutated.
-   */
-  async readlink() {
-    var _a4;
-    const target = __privateGet(this, _linkTarget);
-    if (target) {
-      return target;
-    }
-    if (!this.canReadlink()) {
-      return void 0;
-    }
-    if (!this.parent) {
-      return void 0;
-    }
-    try {
-      const read2 = await __privateGet(this, _fs).promises.readlink(this.fullpath());
-      const linkTarget = (_a4 = await this.parent.realpath()) == null ? void 0 : _a4.resolve(read2);
-      if (linkTarget) {
-        return __privateSet(this, _linkTarget, linkTarget);
-      }
-    } catch (er) {
-      __privateMethod(this, _PathBase_instances, readlinkFail_fn).call(this, er.code);
-      return void 0;
-    }
-  }
-  /**
-   * Synchronous {@link PathBase.readlink}
-   */
-  readlinkSync() {
-    var _a4;
-    const target = __privateGet(this, _linkTarget);
-    if (target) {
-      return target;
-    }
-    if (!this.canReadlink()) {
-      return void 0;
-    }
-    if (!this.parent) {
-      return void 0;
-    }
-    try {
-      const read2 = __privateGet(this, _fs).readlinkSync(this.fullpath());
-      const linkTarget = (_a4 = this.parent.realpathSync()) == null ? void 0 : _a4.resolve(read2);
-      if (linkTarget) {
-        return __privateSet(this, _linkTarget, linkTarget);
-      }
-    } catch (er) {
-      __privateMethod(this, _PathBase_instances, readlinkFail_fn).call(this, er.code);
-      return void 0;
-    }
-  }
-  /**
-   * Call lstat() on this Path, and update all known information that can be
-   * determined.
-   *
-   * Note that unlike `fs.lstat()`, the returned value does not contain some
-   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
-   * information is required, you will need to call `fs.lstat` yourself.
-   *
-   * If the Path refers to a nonexistent file, or if the lstat call fails for
-   * any reason, `undefined` is returned.  Otherwise the updated Path object is
-   * returned.
-   *
-   * Results are cached, and thus may be out of date if the filesystem is
-   * mutated.
-   */
-  async lstat() {
-    if ((__privateGet(this, _type) & ENOENT) === 0) {
-      try {
-        __privateMethod(this, _PathBase_instances, applyStat_fn).call(this, await __privateGet(this, _fs).promises.lstat(this.fullpath()));
-        return this;
-      } catch (er) {
-        __privateMethod(this, _PathBase_instances, lstatFail_fn).call(this, er.code);
-      }
-    }
-  }
-  /**
-   * synchronous {@link PathBase.lstat}
-   */
-  lstatSync() {
-    if ((__privateGet(this, _type) & ENOENT) === 0) {
-      try {
-        __privateMethod(this, _PathBase_instances, applyStat_fn).call(this, __privateGet(this, _fs).lstatSync(this.fullpath()));
-        return this;
-      } catch (er) {
-        __privateMethod(this, _PathBase_instances, lstatFail_fn).call(this, er.code);
-      }
-    }
-  }
-  /**
-   * Standard node-style callback interface to get list of directory entries.
-   *
-   * If the Path cannot or does not contain any children, then an empty array
-   * is returned.
-   *
-   * Results are cached, and thus may be out of date if the filesystem is
-   * mutated.
-   *
-   * @param cb The callback called with (er, entries).  Note that the `er`
-   * param is somewhat extraneous, as all readdir() errors are handled and
-   * simply result in an empty set of entries being returned.
-   * @param allowZalgo Boolean indicating that immediately known results should
-   * *not* be deferred with `queueMicrotask`. Defaults to `false`. Release
-   * zalgo at your peril, the dark pony lord is devious and unforgiving.
-   */
-  readdirCB(cb, allowZalgo = false) {
-    if (!this.canReaddir()) {
-      if (allowZalgo)
-        cb(null, []);
-      else
-        queueMicrotask(() => cb(null, []));
-      return;
-    }
-    const children = this.children();
-    if (this.calledReaddir()) {
-      const c = children.slice(0, children.provisional);
-      if (allowZalgo)
-        cb(null, c);
-      else
-        queueMicrotask(() => cb(null, c));
-      return;
-    }
-    __privateGet(this, _onReaddirCB).push(cb);
-    if (__privateGet(this, _readdirCBInFlight)) {
-      return;
-    }
-    __privateSet(this, _readdirCBInFlight, true);
-    const fullpath = this.fullpath();
-    __privateGet(this, _fs).readdir(fullpath, { withFileTypes: true }, (er, entries) => {
-      if (er) {
-        __privateMethod(this, _PathBase_instances, readdirFail_fn).call(this, er.code);
-        children.provisional = 0;
-      } else {
-        for (const e2 of entries) {
-          __privateMethod(this, _PathBase_instances, readdirAddChild_fn).call(this, e2, children);
-        }
-        __privateMethod(this, _PathBase_instances, readdirSuccess_fn).call(this, children);
-      }
-      __privateMethod(this, _PathBase_instances, callOnReaddirCB_fn).call(this, children.slice(0, children.provisional));
-      return;
-    });
-  }
-  /**
-   * Return an array of known child entries.
-   *
-   * If the Path cannot or does not contain any children, then an empty array
-   * is returned.
-   *
-   * Results are cached, and thus may be out of date if the filesystem is
-   * mutated.
-   */
-  async readdir() {
-    if (!this.canReaddir()) {
-      return [];
-    }
-    const children = this.children();
-    if (this.calledReaddir()) {
-      return children.slice(0, children.provisional);
-    }
-    const fullpath = this.fullpath();
-    if (__privateGet(this, _asyncReaddirInFlight)) {
-      await __privateGet(this, _asyncReaddirInFlight);
-    } else {
-      let resolve3 = () => {
-      };
-      __privateSet(this, _asyncReaddirInFlight, new Promise((res) => resolve3 = res));
-      try {
-        for (const e2 of await __privateGet(this, _fs).promises.readdir(fullpath, {
-          withFileTypes: true
-        })) {
-          __privateMethod(this, _PathBase_instances, readdirAddChild_fn).call(this, e2, children);
-        }
-        __privateMethod(this, _PathBase_instances, readdirSuccess_fn).call(this, children);
-      } catch (er) {
-        __privateMethod(this, _PathBase_instances, readdirFail_fn).call(this, er.code);
-        children.provisional = 0;
-      }
-      __privateSet(this, _asyncReaddirInFlight, void 0);
-      resolve3();
-    }
-    return children.slice(0, children.provisional);
-  }
-  /**
-   * synchronous {@link PathBase.readdir}
-   */
-  readdirSync() {
-    if (!this.canReaddir()) {
-      return [];
-    }
-    const children = this.children();
-    if (this.calledReaddir()) {
-      return children.slice(0, children.provisional);
-    }
-    const fullpath = this.fullpath();
-    try {
-      for (const e2 of __privateGet(this, _fs).readdirSync(fullpath, {
-        withFileTypes: true
-      })) {
-        __privateMethod(this, _PathBase_instances, readdirAddChild_fn).call(this, e2, children);
-      }
-      __privateMethod(this, _PathBase_instances, readdirSuccess_fn).call(this, children);
-    } catch (er) {
-      __privateMethod(this, _PathBase_instances, readdirFail_fn).call(this, er.code);
-      children.provisional = 0;
-    }
-    return children.slice(0, children.provisional);
-  }
-  canReaddir() {
-    if (__privateGet(this, _type) & ENOCHILD)
-      return false;
-    const ifmt = IFMT & __privateGet(this, _type);
-    if (!(ifmt === UNKNOWN || ifmt === IFDIR || ifmt === IFLNK)) {
-      return false;
-    }
-    return true;
-  }
-  shouldWalk(dirs, walkFilter) {
-    return (__privateGet(this, _type) & IFDIR) === IFDIR && !(__privateGet(this, _type) & ENOCHILD) && !dirs.has(this) && (!walkFilter || walkFilter(this));
-  }
-  /**
-   * Return the Path object corresponding to path as resolved
-   * by realpath(3).
-   *
-   * If the realpath call fails for any reason, `undefined` is returned.
-   *
-   * Result is cached, and thus may be outdated if the filesystem is mutated.
-   * On success, returns a Path object.
-   */
-  async realpath() {
-    if (__privateGet(this, _realpath))
-      return __privateGet(this, _realpath);
-    if ((ENOREALPATH | ENOREADLINK | ENOENT) & __privateGet(this, _type))
-      return void 0;
-    try {
-      const rp = await __privateGet(this, _fs).promises.realpath(this.fullpath());
-      return __privateSet(this, _realpath, this.resolve(rp));
-    } catch (_) {
-      __privateMethod(this, _PathBase_instances, markENOREALPATH_fn).call(this);
-    }
-  }
-  /**
-   * Synchronous {@link realpath}
-   */
-  realpathSync() {
-    if (__privateGet(this, _realpath))
-      return __privateGet(this, _realpath);
-    if ((ENOREALPATH | ENOREADLINK | ENOENT) & __privateGet(this, _type))
-      return void 0;
-    try {
-      const rp = __privateGet(this, _fs).realpathSync(this.fullpath());
-      return __privateSet(this, _realpath, this.resolve(rp));
-    } catch (_) {
-      __privateMethod(this, _PathBase_instances, markENOREALPATH_fn).call(this);
-    }
-  }
-  /**
-   * Internal method to mark this Path object as the scurry cwd,
-   * called by {@link PathScurry#chdir}
-   *
-   * @internal
-   */
-  [setAsCwd](oldCwd) {
-    if (oldCwd === this)
-      return;
-    oldCwd.isCWD = false;
-    this.isCWD = true;
-    const changed = /* @__PURE__ */ new Set([]);
-    let rp = [];
-    let p = this;
-    while (p && p.parent) {
-      changed.add(p);
-      __privateSet(p, _relative, rp.join(this.sep));
-      __privateSet(p, _relativePosix, rp.join("/"));
-      p = p.parent;
-      rp.push("..");
-    }
-    p = oldCwd;
-    while (p && p.parent && !changed.has(p)) {
-      __privateSet(p, _relative, void 0);
-      __privateSet(p, _relativePosix, void 0);
-      p = p.parent;
-    }
-  }
-};
-_fs = new WeakMap();
-_dev = new WeakMap();
-_mode = new WeakMap();
-_nlink = new WeakMap();
-_uid = new WeakMap();
-_gid = new WeakMap();
-_rdev = new WeakMap();
-_blksize = new WeakMap();
-_ino = new WeakMap();
-_size2 = new WeakMap();
-_blocks = new WeakMap();
-_atimeMs = new WeakMap();
-_mtimeMs = new WeakMap();
-_ctimeMs = new WeakMap();
-_birthtimeMs = new WeakMap();
-_atime = new WeakMap();
-_mtime = new WeakMap();
-_ctime = new WeakMap();
-_birthtime = new WeakMap();
-_matchName = new WeakMap();
-_depth = new WeakMap();
-_fullpath = new WeakMap();
-_fullpathPosix = new WeakMap();
-_relative = new WeakMap();
-_relativePosix = new WeakMap();
-_type = new WeakMap();
-_children = new WeakMap();
-_linkTarget = new WeakMap();
-_realpath = new WeakMap();
-_PathBase_instances = new WeakSet();
-resolveParts_fn = function(dirParts) {
-  let p = this;
-  for (const part of dirParts) {
-    p = p.child(part);
-  }
-  return p;
-};
-readdirSuccess_fn = function(children) {
-  var _a4;
-  __privateSet(this, _type, __privateGet(this, _type) | READDIR_CALLED);
-  for (let p = children.provisional; p < children.length; p++) {
-    const c = children[p];
-    if (c)
-      __privateMethod(_a4 = c, _PathBase_instances, markENOENT_fn).call(_a4);
-  }
-};
-markENOENT_fn = function() {
-  if (__privateGet(this, _type) & ENOENT)
-    return;
-  __privateSet(this, _type, (__privateGet(this, _type) | ENOENT) & IFMT_UNKNOWN);
-  __privateMethod(this, _PathBase_instances, markChildrenENOENT_fn).call(this);
-};
-markChildrenENOENT_fn = function() {
-  var _a4;
-  const children = this.children();
-  children.provisional = 0;
-  for (const p of children) {
-    __privateMethod(_a4 = p, _PathBase_instances, markENOENT_fn).call(_a4);
-  }
-};
-markENOREALPATH_fn = function() {
-  __privateSet(this, _type, __privateGet(this, _type) | ENOREALPATH);
-  __privateMethod(this, _PathBase_instances, markENOTDIR_fn).call(this);
-};
-// save the information when we know the entry is not a dir
-markENOTDIR_fn = function() {
-  if (__privateGet(this, _type) & ENOTDIR)
-    return;
-  let t2 = __privateGet(this, _type);
-  if ((t2 & IFMT) === IFDIR)
-    t2 &= IFMT_UNKNOWN;
-  __privateSet(this, _type, t2 | ENOTDIR);
-  __privateMethod(this, _PathBase_instances, markChildrenENOENT_fn).call(this);
-};
-readdirFail_fn = function(code = "") {
-  if (code === "ENOTDIR" || code === "EPERM") {
-    __privateMethod(this, _PathBase_instances, markENOTDIR_fn).call(this);
-  } else if (code === "ENOENT") {
-    __privateMethod(this, _PathBase_instances, markENOENT_fn).call(this);
-  } else {
-    this.children().provisional = 0;
-  }
-};
-lstatFail_fn = function(code = "") {
-  var _a4;
-  if (code === "ENOTDIR") {
-    const p = this.parent;
-    __privateMethod(_a4 = p, _PathBase_instances, markENOTDIR_fn).call(_a4);
-  } else if (code === "ENOENT") {
-    __privateMethod(this, _PathBase_instances, markENOENT_fn).call(this);
-  }
-};
-readlinkFail_fn = function(code = "") {
-  var _a4;
-  let ter = __privateGet(this, _type);
-  ter |= ENOREADLINK;
-  if (code === "ENOENT")
-    ter |= ENOENT;
-  if (code === "EINVAL" || code === "UNKNOWN") {
-    ter &= IFMT_UNKNOWN;
-  }
-  __privateSet(this, _type, ter);
-  if (code === "ENOTDIR" && this.parent) {
-    __privateMethod(_a4 = this.parent, _PathBase_instances, markENOTDIR_fn).call(_a4);
-  }
-};
-readdirAddChild_fn = function(e2, c) {
-  return __privateMethod(this, _PathBase_instances, readdirMaybePromoteChild_fn).call(this, e2, c) || __privateMethod(this, _PathBase_instances, readdirAddNewChild_fn).call(this, e2, c);
-};
-readdirAddNewChild_fn = function(e2, c) {
-  const type = entToType(e2);
-  const child = this.newChild(e2.name, type, { parent: this });
-  const ifmt = __privateGet(child, _type) & IFMT;
-  if (ifmt !== IFDIR && ifmt !== IFLNK && ifmt !== UNKNOWN) {
-    __privateSet(child, _type, __privateGet(child, _type) | ENOTDIR);
-  }
-  c.unshift(child);
-  c.provisional++;
-  return child;
-};
-readdirMaybePromoteChild_fn = function(e2, c) {
-  for (let p = c.provisional; p < c.length; p++) {
-    const pchild = c[p];
-    const name2 = this.nocase ? normalizeNocase(e2.name) : normalize(e2.name);
-    if (name2 !== __privateGet(pchild, _matchName)) {
-      continue;
-    }
-    return __privateMethod(this, _PathBase_instances, readdirPromoteChild_fn).call(this, e2, pchild, p, c);
-  }
-};
-readdirPromoteChild_fn = function(e2, p, index, c) {
-  const v = p.name;
-  __privateSet(p, _type, __privateGet(p, _type) & IFMT_UNKNOWN | entToType(e2));
-  if (v !== e2.name)
-    p.name = e2.name;
-  if (index !== c.provisional) {
-    if (index === c.length - 1)
-      c.pop();
-    else
-      c.splice(index, 1);
-    c.unshift(p);
-  }
-  c.provisional++;
-  return p;
-};
-applyStat_fn = function(st) {
-  const { atime, atimeMs, birthtime, birthtimeMs, blksize, blocks, ctime, ctimeMs, dev, gid, ino, mode: mode2, mtime, mtimeMs, nlink, rdev, size, uid } = st;
-  __privateSet(this, _atime, atime);
-  __privateSet(this, _atimeMs, atimeMs);
-  __privateSet(this, _birthtime, birthtime);
-  __privateSet(this, _birthtimeMs, birthtimeMs);
-  __privateSet(this, _blksize, blksize);
-  __privateSet(this, _blocks, blocks);
-  __privateSet(this, _ctime, ctime);
-  __privateSet(this, _ctimeMs, ctimeMs);
-  __privateSet(this, _dev, dev);
-  __privateSet(this, _gid, gid);
-  __privateSet(this, _ino, ino);
-  __privateSet(this, _mode, mode2);
-  __privateSet(this, _mtime, mtime);
-  __privateSet(this, _mtimeMs, mtimeMs);
-  __privateSet(this, _nlink, nlink);
-  __privateSet(this, _rdev, rdev);
-  __privateSet(this, _size2, size);
-  __privateSet(this, _uid, uid);
-  const ifmt = entToType(st);
-  __privateSet(this, _type, __privateGet(this, _type) & IFMT_UNKNOWN | ifmt | LSTAT_CALLED);
-  if (ifmt !== UNKNOWN && ifmt !== IFDIR && ifmt !== IFLNK) {
-    __privateSet(this, _type, __privateGet(this, _type) | ENOTDIR);
-  }
-};
-_onReaddirCB = new WeakMap();
-_readdirCBInFlight = new WeakMap();
-callOnReaddirCB_fn = function(children) {
-  __privateSet(this, _readdirCBInFlight, false);
-  const cbs = __privateGet(this, _onReaddirCB).slice();
-  __privateGet(this, _onReaddirCB).length = 0;
-  cbs.forEach((cb) => cb(null, children));
-};
-_asyncReaddirInFlight = new WeakMap();
-var PathWin32 = class _PathWin32 extends PathBase {
-  /**
-   * Do not create new Path objects directly.  They should always be accessed
-   * via the PathScurry class or other methods on the Path class.
-   *
-   * @internal
-   */
-  constructor(name2, type = UNKNOWN, root, roots, nocase, children, opts) {
-    super(name2, type, root, roots, nocase, children, opts);
-    /**
-     * Separator for generating path strings.
-     */
-    __publicField(this, "sep", "\\");
-    /**
-     * Separator for parsing path strings.
-     */
-    __publicField(this, "splitSep", eitherSep);
-  }
-  /**
-   * @internal
-   */
-  newChild(name2, type = UNKNOWN, opts = {}) {
-    return new _PathWin32(name2, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);
-  }
-  /**
-   * @internal
-   */
-  getRootString(path3) {
-    return import_node_path3.win32.parse(path3).root;
-  }
-  /**
-   * @internal
-   */
-  getRoot(rootPath) {
-    rootPath = uncToDrive(rootPath.toUpperCase());
-    if (rootPath === this.root.name) {
-      return this.root;
-    }
-    for (const [compare2, root] of Object.entries(this.roots)) {
-      if (this.sameRoot(rootPath, compare2)) {
-        return this.roots[rootPath] = root;
-      }
-    }
-    return this.roots[rootPath] = new PathScurryWin32(rootPath, this).root;
-  }
-  /**
-   * @internal
-   */
-  sameRoot(rootPath, compare2 = this.root.name) {
-    rootPath = rootPath.toUpperCase().replace(/\//g, "\\").replace(uncDriveRegexp, "$1\\");
-    return rootPath === compare2;
-  }
-};
-var PathPosix = class _PathPosix extends PathBase {
-  /**
-   * Do not create new Path objects directly.  They should always be accessed
-   * via the PathScurry class or other methods on the Path class.
-   *
-   * @internal
-   */
-  constructor(name2, type = UNKNOWN, root, roots, nocase, children, opts) {
-    super(name2, type, root, roots, nocase, children, opts);
-    /**
-     * separator for parsing path strings
-     */
-    __publicField(this, "splitSep", "/");
-    /**
-     * separator for generating path strings
-     */
-    __publicField(this, "sep", "/");
-  }
-  /**
-   * @internal
-   */
-  getRootString(path3) {
-    return path3.startsWith("/") ? "/" : "";
-  }
-  /**
-   * @internal
-   */
-  getRoot(_rootPath) {
-    return this.root;
-  }
-  /**
-   * @internal
-   */
-  newChild(name2, type = UNKNOWN, opts = {}) {
-    return new _PathPosix(name2, type, this.root, this.roots, this.nocase, this.childrenCache(), opts);
-  }
-};
-var _resolveCache, _resolvePosixCache, _children2, _fs2;
-var PathScurryBase = class {
-  /**
-   * This class should not be instantiated directly.
-   *
-   * Use PathScurryWin32, PathScurryDarwin, PathScurryPosix, or PathScurry
-   *
-   * @internal
-   */
-  constructor(cwd = process.cwd(), pathImpl, sep2, { nocase, childrenCacheSize = 16 * 1024, fs: fs2 = defaultFS } = {}) {
-    /**
-     * The root Path entry for the current working directory of this Scurry
-     */
-    __publicField(this, "root");
-    /**
-     * The string path for the root of this Scurry's current working directory
-     */
-    __publicField(this, "rootPath");
-    /**
-     * A collection of all roots encountered, referenced by rootPath
-     */
-    __publicField(this, "roots");
-    /**
-     * The Path entry corresponding to this PathScurry's current working directory.
-     */
-    __publicField(this, "cwd");
-    __privateAdd(this, _resolveCache);
-    __privateAdd(this, _resolvePosixCache);
-    __privateAdd(this, _children2);
-    /**
-     * Perform path comparisons case-insensitively.
-     *
-     * Defaults true on Darwin and Windows systems, false elsewhere.
-     */
-    __publicField(this, "nocase");
-    __privateAdd(this, _fs2);
-    __privateSet(this, _fs2, fsFromOption(fs2));
-    if (cwd instanceof URL || cwd.startsWith("file://")) {
-      cwd = (0, import_node_url2.fileURLToPath)(cwd);
-    }
-    const cwdPath = pathImpl.resolve(cwd);
-    this.roots = /* @__PURE__ */ Object.create(null);
-    this.rootPath = this.parseRootPath(cwdPath);
-    __privateSet(this, _resolveCache, new ResolveCache());
-    __privateSet(this, _resolvePosixCache, new ResolveCache());
-    __privateSet(this, _children2, new ChildrenCache(childrenCacheSize));
-    const split = cwdPath.substring(this.rootPath.length).split(sep2);
-    if (split.length === 1 && !split[0]) {
-      split.pop();
-    }
-    if (nocase === void 0) {
-      throw new TypeError("must provide nocase setting to PathScurryBase ctor");
-    }
-    this.nocase = nocase;
-    this.root = this.newRoot(__privateGet(this, _fs2));
-    this.roots[this.rootPath] = this.root;
-    let prev = this.root;
-    let len = split.length - 1;
-    const joinSep = pathImpl.sep;
-    let abs = this.rootPath;
-    let sawFirst = false;
-    for (const part of split) {
-      const l = len--;
-      prev = prev.child(part, {
-        relative: new Array(l).fill("..").join(joinSep),
-        relativePosix: new Array(l).fill("..").join("/"),
-        fullpath: abs += (sawFirst ? "" : joinSep) + part
-      });
-      sawFirst = true;
-    }
-    this.cwd = prev;
-  }
-  /**
-   * Get the depth of a provided path, string, or the cwd
-   */
-  depth(path3 = this.cwd) {
-    if (typeof path3 === "string") {
-      path3 = this.cwd.resolve(path3);
-    }
-    return path3.depth();
-  }
-  /**
-   * Return the cache of child entries.  Exposed so subclasses can create
-   * child Path objects in a platform-specific way.
-   *
-   * @internal
-   */
-  childrenCache() {
-    return __privateGet(this, _children2);
-  }
-  /**
-   * Resolve one or more path strings to a resolved string
-   *
-   * Same interface as require('path').resolve.
-   *
-   * Much faster than path.resolve() when called multiple times for the same
-   * path, because the resolved Path objects are cached.  Much slower
-   * otherwise.
-   */
-  resolve(...paths) {
-    let r2 = "";
-    for (let i = paths.length - 1; i >= 0; i--) {
-      const p = paths[i];
-      if (!p || p === ".")
-        continue;
-      r2 = r2 ? `${p}/${r2}` : p;
-      if (this.isAbsolute(p)) {
-        break;
-      }
-    }
-    const cached = __privateGet(this, _resolveCache).get(r2);
-    if (cached !== void 0) {
-      return cached;
-    }
-    const result = this.cwd.resolve(r2).fullpath();
-    __privateGet(this, _resolveCache).set(r2, result);
-    return result;
-  }
-  /**
-   * Resolve one or more path strings to a resolved string, returning
-   * the posix path.  Identical to .resolve() on posix systems, but on
-   * windows will return a forward-slash separated UNC path.
-   *
-   * Same interface as require('path').resolve.
-   *
-   * Much faster than path.resolve() when called multiple times for the same
-   * path, because the resolved Path objects are cached.  Much slower
-   * otherwise.
-   */
-  resolvePosix(...paths) {
-    let r2 = "";
-    for (let i = paths.length - 1; i >= 0; i--) {
-      const p = paths[i];
-      if (!p || p === ".")
-        continue;
-      r2 = r2 ? `${p}/${r2}` : p;
-      if (this.isAbsolute(p)) {
-        break;
-      }
-    }
-    const cached = __privateGet(this, _resolvePosixCache).get(r2);
-    if (cached !== void 0) {
-      return cached;
-    }
-    const result = this.cwd.resolve(r2).fullpathPosix();
-    __privateGet(this, _resolvePosixCache).set(r2, result);
-    return result;
-  }
-  /**
-   * find the relative path from the cwd to the supplied path string or entry
-   */
-  relative(entry2 = this.cwd) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    }
-    return entry2.relative();
-  }
-  /**
-   * find the relative path from the cwd to the supplied path string or
-   * entry, using / as the path delimiter, even on Windows.
-   */
-  relativePosix(entry2 = this.cwd) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    }
-    return entry2.relativePosix();
-  }
-  /**
-   * Return the basename for the provided string or Path object
-   */
-  basename(entry2 = this.cwd) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    }
-    return entry2.name;
-  }
-  /**
-   * Return the dirname for the provided string or Path object
-   */
-  dirname(entry2 = this.cwd) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    }
-    return (entry2.parent || entry2).fullpath();
-  }
-  async readdir(entry2 = this.cwd, opts = {
-    withFileTypes: true
-  }) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      opts = entry2;
-      entry2 = this.cwd;
-    }
-    const { withFileTypes } = opts;
-    if (!entry2.canReaddir()) {
-      return [];
-    } else {
-      const p = await entry2.readdir();
-      return withFileTypes ? p : p.map((e2) => e2.name);
-    }
-  }
-  readdirSync(entry2 = this.cwd, opts = {
-    withFileTypes: true
-  }) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      opts = entry2;
-      entry2 = this.cwd;
-    }
-    const { withFileTypes = true } = opts;
-    if (!entry2.canReaddir()) {
-      return [];
-    } else if (withFileTypes) {
-      return entry2.readdirSync();
-    } else {
-      return entry2.readdirSync().map((e2) => e2.name);
-    }
-  }
-  /**
-   * Call lstat() on the string or Path object, and update all known
-   * information that can be determined.
-   *
-   * Note that unlike `fs.lstat()`, the returned value does not contain some
-   * information, such as `mode`, `dev`, `nlink`, and `ino`.  If that
-   * information is required, you will need to call `fs.lstat` yourself.
-   *
-   * If the Path refers to a nonexistent file, or if the lstat call fails for
-   * any reason, `undefined` is returned.  Otherwise the updated Path object is
-   * returned.
-   *
-   * Results are cached, and thus may be out of date if the filesystem is
-   * mutated.
-   */
-  async lstat(entry2 = this.cwd) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    }
-    return entry2.lstat();
-  }
-  /**
-   * synchronous {@link PathScurryBase.lstat}
-   */
-  lstatSync(entry2 = this.cwd) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    }
-    return entry2.lstatSync();
-  }
-  async readlink(entry2 = this.cwd, { withFileTypes } = {
-    withFileTypes: false
-  }) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      withFileTypes = entry2.withFileTypes;
-      entry2 = this.cwd;
-    }
-    const e2 = await entry2.readlink();
-    return withFileTypes ? e2 : e2 == null ? void 0 : e2.fullpath();
-  }
-  readlinkSync(entry2 = this.cwd, { withFileTypes } = {
-    withFileTypes: false
-  }) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      withFileTypes = entry2.withFileTypes;
-      entry2 = this.cwd;
-    }
-    const e2 = entry2.readlinkSync();
-    return withFileTypes ? e2 : e2 == null ? void 0 : e2.fullpath();
-  }
-  async realpath(entry2 = this.cwd, { withFileTypes } = {
-    withFileTypes: false
-  }) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      withFileTypes = entry2.withFileTypes;
-      entry2 = this.cwd;
-    }
-    const e2 = await entry2.realpath();
-    return withFileTypes ? e2 : e2 == null ? void 0 : e2.fullpath();
-  }
-  realpathSync(entry2 = this.cwd, { withFileTypes } = {
-    withFileTypes: false
-  }) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      withFileTypes = entry2.withFileTypes;
-      entry2 = this.cwd;
-    }
-    const e2 = entry2.realpathSync();
-    return withFileTypes ? e2 : e2 == null ? void 0 : e2.fullpath();
-  }
-  async walk(entry2 = this.cwd, opts = {}) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      opts = entry2;
-      entry2 = this.cwd;
-    }
-    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
-    const results = [];
-    if (!filter2 || filter2(entry2)) {
-      results.push(withFileTypes ? entry2 : entry2.fullpath());
-    }
-    const dirs = /* @__PURE__ */ new Set();
-    const walk2 = (dir, cb) => {
-      dirs.add(dir);
-      dir.readdirCB((er, entries) => {
-        if (er) {
-          return cb(er);
-        }
-        let len = entries.length;
-        if (!len)
-          return cb();
-        const next = () => {
-          if (--len === 0) {
-            cb();
-          }
-        };
-        for (const e2 of entries) {
-          if (!filter2 || filter2(e2)) {
-            results.push(withFileTypes ? e2 : e2.fullpath());
-          }
-          if (follow && e2.isSymbolicLink()) {
-            e2.realpath().then((r2) => (r2 == null ? void 0 : r2.isUnknown()) ? r2.lstat() : r2).then((r2) => (r2 == null ? void 0 : r2.shouldWalk(dirs, walkFilter)) ? walk2(r2, next) : next());
-          } else {
-            if (e2.shouldWalk(dirs, walkFilter)) {
-              walk2(e2, next);
-            } else {
-              next();
-            }
-          }
-        }
-      }, true);
-    };
-    const start = entry2;
-    return new Promise((res, rej) => {
-      walk2(start, (er) => {
-        if (er)
-          return rej(er);
-        res(results);
-      });
-    });
-  }
-  walkSync(entry2 = this.cwd, opts = {}) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      opts = entry2;
-      entry2 = this.cwd;
-    }
-    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
-    const results = [];
-    if (!filter2 || filter2(entry2)) {
-      results.push(withFileTypes ? entry2 : entry2.fullpath());
-    }
-    const dirs = /* @__PURE__ */ new Set([entry2]);
-    for (const dir of dirs) {
-      const entries = dir.readdirSync();
-      for (const e2 of entries) {
-        if (!filter2 || filter2(e2)) {
-          results.push(withFileTypes ? e2 : e2.fullpath());
-        }
-        let r2 = e2;
-        if (e2.isSymbolicLink()) {
-          if (!(follow && (r2 = e2.realpathSync())))
-            continue;
-          if (r2.isUnknown())
-            r2.lstatSync();
-        }
-        if (r2.shouldWalk(dirs, walkFilter)) {
-          dirs.add(r2);
-        }
-      }
-    }
-    return results;
-  }
-  /**
-   * Support for `for await`
-   *
-   * Alias for {@link PathScurryBase.iterate}
-   *
-   * Note: As of Node 19, this is very slow, compared to other methods of
-   * walking.  Consider using {@link PathScurryBase.stream} if memory overhead
-   * and backpressure are concerns, or {@link PathScurryBase.walk} if not.
-   */
-  [Symbol.asyncIterator]() {
-    return this.iterate();
-  }
-  iterate(entry2 = this.cwd, options2 = {}) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      options2 = entry2;
-      entry2 = this.cwd;
-    }
-    return this.stream(entry2, options2)[Symbol.asyncIterator]();
-  }
-  /**
-   * Iterating over a PathScurry performs a synchronous walk.
-   *
-   * Alias for {@link PathScurryBase.iterateSync}
-   */
-  [Symbol.iterator]() {
-    return this.iterateSync();
-  }
-  *iterateSync(entry2 = this.cwd, opts = {}) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      opts = entry2;
-      entry2 = this.cwd;
-    }
-    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
-    if (!filter2 || filter2(entry2)) {
-      yield withFileTypes ? entry2 : entry2.fullpath();
-    }
-    const dirs = /* @__PURE__ */ new Set([entry2]);
-    for (const dir of dirs) {
-      const entries = dir.readdirSync();
-      for (const e2 of entries) {
-        if (!filter2 || filter2(e2)) {
-          yield withFileTypes ? e2 : e2.fullpath();
-        }
-        let r2 = e2;
-        if (e2.isSymbolicLink()) {
-          if (!(follow && (r2 = e2.realpathSync())))
-            continue;
-          if (r2.isUnknown())
-            r2.lstatSync();
-        }
-        if (r2.shouldWalk(dirs, walkFilter)) {
-          dirs.add(r2);
-        }
-      }
-    }
-  }
-  stream(entry2 = this.cwd, opts = {}) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      opts = entry2;
-      entry2 = this.cwd;
-    }
-    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
-    const results = new Minipass({ objectMode: true });
-    if (!filter2 || filter2(entry2)) {
-      results.write(withFileTypes ? entry2 : entry2.fullpath());
-    }
-    const dirs = /* @__PURE__ */ new Set();
-    const queue2 = [entry2];
-    let processing = 0;
-    const process2 = () => {
-      let paused = false;
-      while (!paused) {
-        const dir = queue2.shift();
-        if (!dir) {
-          if (processing === 0)
-            results.end();
-          return;
-        }
-        processing++;
-        dirs.add(dir);
-        const onReaddir = (er, entries, didRealpaths = false) => {
-          if (er)
-            return results.emit("error", er);
-          if (follow && !didRealpaths) {
-            const promises2 = [];
-            for (const e2 of entries) {
-              if (e2.isSymbolicLink()) {
-                promises2.push(e2.realpath().then((r2) => (r2 == null ? void 0 : r2.isUnknown()) ? r2.lstat() : r2));
-              }
-            }
-            if (promises2.length) {
-              Promise.all(promises2).then(() => onReaddir(null, entries, true));
-              return;
-            }
-          }
-          for (const e2 of entries) {
-            if (e2 && (!filter2 || filter2(e2))) {
-              if (!results.write(withFileTypes ? e2 : e2.fullpath())) {
-                paused = true;
-              }
-            }
-          }
-          processing--;
-          for (const e2 of entries) {
-            const r2 = e2.realpathCached() || e2;
-            if (r2.shouldWalk(dirs, walkFilter)) {
-              queue2.push(r2);
-            }
-          }
-          if (paused && !results.flowing) {
-            results.once("drain", process2);
-          } else if (!sync2) {
-            process2();
-          }
-        };
-        let sync2 = true;
-        dir.readdirCB(onReaddir, true);
-        sync2 = false;
-      }
-    };
-    process2();
-    return results;
-  }
-  streamSync(entry2 = this.cwd, opts = {}) {
-    if (typeof entry2 === "string") {
-      entry2 = this.cwd.resolve(entry2);
-    } else if (!(entry2 instanceof PathBase)) {
-      opts = entry2;
-      entry2 = this.cwd;
-    }
-    const { withFileTypes = true, follow = false, filter: filter2, walkFilter } = opts;
-    const results = new Minipass({ objectMode: true });
-    const dirs = /* @__PURE__ */ new Set();
-    if (!filter2 || filter2(entry2)) {
-      results.write(withFileTypes ? entry2 : entry2.fullpath());
-    }
-    const queue2 = [entry2];
-    let processing = 0;
-    const process2 = () => {
-      let paused = false;
-      while (!paused) {
-        const dir = queue2.shift();
-        if (!dir) {
-          if (processing === 0)
-            results.end();
-          return;
-        }
-        processing++;
-        dirs.add(dir);
-        const entries = dir.readdirSync();
-        for (const e2 of entries) {
-          if (!filter2 || filter2(e2)) {
-            if (!results.write(withFileTypes ? e2 : e2.fullpath())) {
-              paused = true;
-            }
-          }
-        }
-        processing--;
-        for (const e2 of entries) {
-          let r2 = e2;
-          if (e2.isSymbolicLink()) {
-            if (!(follow && (r2 = e2.realpathSync())))
-              continue;
-            if (r2.isUnknown())
-              r2.lstatSync();
-          }
-          if (r2.shouldWalk(dirs, walkFilter)) {
-            queue2.push(r2);
-          }
-        }
-      }
-      if (paused && !results.flowing)
-        results.once("drain", process2);
-    };
-    process2();
-    return results;
-  }
-  chdir(path3 = this.cwd) {
-    const oldCwd = this.cwd;
-    this.cwd = typeof path3 === "string" ? this.cwd.resolve(path3) : path3;
-    this.cwd[setAsCwd](oldCwd);
-  }
-};
-_resolveCache = new WeakMap();
-_resolvePosixCache = new WeakMap();
-_children2 = new WeakMap();
-_fs2 = new WeakMap();
-var PathScurryWin32 = class extends PathScurryBase {
-  constructor(cwd = process.cwd(), opts = {}) {
-    const { nocase = true } = opts;
-    super(cwd, import_node_path3.win32, "\\", { ...opts, nocase });
-    /**
-     * separator for generating path strings
-     */
-    __publicField(this, "sep", "\\");
-    this.nocase = nocase;
-    for (let p = this.cwd; p; p = p.parent) {
-      p.nocase = this.nocase;
-    }
-  }
-  /**
-   * @internal
-   */
-  parseRootPath(dir) {
-    return import_node_path3.win32.parse(dir).root.toUpperCase();
-  }
-  /**
-   * @internal
-   */
-  newRoot(fs2) {
-    return new PathWin32(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
-  }
-  /**
-   * Return true if the provided path string is an absolute path
-   */
-  isAbsolute(p) {
-    return p.startsWith("/") || p.startsWith("\\") || /^[a-z]:(\/|\\)/i.test(p);
-  }
-};
-var PathScurryPosix = class extends PathScurryBase {
-  constructor(cwd = process.cwd(), opts = {}) {
-    const { nocase = false } = opts;
-    super(cwd, import_node_path3.posix, "/", { ...opts, nocase });
-    /**
-     * separator for generating path strings
-     */
-    __publicField(this, "sep", "/");
-    this.nocase = nocase;
-  }
-  /**
-   * @internal
-   */
-  parseRootPath(_dir) {
-    return "/";
-  }
-  /**
-   * @internal
-   */
-  newRoot(fs2) {
-    return new PathPosix(this.rootPath, IFDIR, void 0, this.roots, this.nocase, this.childrenCache(), { fs: fs2 });
-  }
-  /**
-   * Return true if the provided path string is an absolute path
-   */
-  isAbsolute(p) {
-    return p.startsWith("/");
-  }
-};
-var PathScurryDarwin = class extends PathScurryPosix {
-  constructor(cwd = process.cwd(), opts = {}) {
-    const { nocase = true } = opts;
-    super(cwd, { ...opts, nocase });
-  }
-};
-process.platform === "win32" ? PathWin32 : PathPosix;
-var PathScurry = process.platform === "win32" ? PathScurryWin32 : process.platform === "darwin" ? PathScurryDarwin : PathScurryPosix;
-var isPatternList = (pl) => pl.length >= 1;
-var isGlobList = (gl) => gl.length >= 1;
-var _patternList, _globList, _index, _platform, _rest, _globString, _isDrive, _isUNC, _isAbsolute, _followGlobstar;
-var _Pattern = class _Pattern {
-  constructor(patternList, globList, index, platform2) {
-    __privateAdd(this, _patternList);
-    __privateAdd(this, _globList);
-    __privateAdd(this, _index);
-    __publicField(this, "length");
-    __privateAdd(this, _platform);
-    __privateAdd(this, _rest);
-    __privateAdd(this, _globString);
-    __privateAdd(this, _isDrive);
-    __privateAdd(this, _isUNC);
-    __privateAdd(this, _isAbsolute);
-    __privateAdd(this, _followGlobstar, true);
-    if (!isPatternList(patternList)) {
-      throw new TypeError("empty pattern list");
-    }
-    if (!isGlobList(globList)) {
-      throw new TypeError("empty glob list");
-    }
-    if (globList.length !== patternList.length) {
-      throw new TypeError("mismatched pattern list and glob list lengths");
-    }
-    this.length = patternList.length;
-    if (index < 0 || index >= this.length) {
-      throw new TypeError("index out of range");
-    }
-    __privateSet(this, _patternList, patternList);
-    __privateSet(this, _globList, globList);
-    __privateSet(this, _index, index);
-    __privateSet(this, _platform, platform2);
-    if (__privateGet(this, _index) === 0) {
-      if (this.isUNC()) {
-        const [p0, p1, p2, p3, ...prest] = __privateGet(this, _patternList);
-        const [g0, g1, g2, g3, ...grest] = __privateGet(this, _globList);
-        if (prest[0] === "") {
-          prest.shift();
-          grest.shift();
-        }
-        const p = [p0, p1, p2, p3, ""].join("/");
-        const g = [g0, g1, g2, g3, ""].join("/");
-        __privateSet(this, _patternList, [p, ...prest]);
-        __privateSet(this, _globList, [g, ...grest]);
-        this.length = __privateGet(this, _patternList).length;
-      } else if (this.isDrive() || this.isAbsolute()) {
-        const [p1, ...prest] = __privateGet(this, _patternList);
-        const [g1, ...grest] = __privateGet(this, _globList);
-        if (prest[0] === "") {
-          prest.shift();
-          grest.shift();
-        }
-        const p = p1 + "/";
-        const g = g1 + "/";
-        __privateSet(this, _patternList, [p, ...prest]);
-        __privateSet(this, _globList, [g, ...grest]);
-        this.length = __privateGet(this, _patternList).length;
-      }
-    }
-  }
-  /**
-   * The first entry in the parsed list of patterns
-   */
-  pattern() {
-    return __privateGet(this, _patternList)[__privateGet(this, _index)];
-  }
-  /**
-   * true of if pattern() returns a string
-   */
-  isString() {
-    return typeof __privateGet(this, _patternList)[__privateGet(this, _index)] === "string";
-  }
-  /**
-   * true of if pattern() returns GLOBSTAR
-   */
-  isGlobstar() {
-    return __privateGet(this, _patternList)[__privateGet(this, _index)] === GLOBSTAR$2;
-  }
-  /**
-   * true if pattern() returns a regexp
-   */
-  isRegExp() {
-    return __privateGet(this, _patternList)[__privateGet(this, _index)] instanceof RegExp;
-  }
-  /**
-   * The /-joined set of glob parts that make up this pattern
-   */
-  globString() {
-    return __privateSet(this, _globString, __privateGet(this, _globString) || (__privateGet(this, _index) === 0 ? this.isAbsolute() ? __privateGet(this, _globList)[0] + __privateGet(this, _globList).slice(1).join("/") : __privateGet(this, _globList).join("/") : __privateGet(this, _globList).slice(__privateGet(this, _index)).join("/")));
-  }
-  /**
-   * true if there are more pattern parts after this one
-   */
-  hasMore() {
-    return this.length > __privateGet(this, _index) + 1;
-  }
-  /**
-   * The rest of the pattern after this part, or null if this is the end
-   */
-  rest() {
-    if (__privateGet(this, _rest) !== void 0)
-      return __privateGet(this, _rest);
-    if (!this.hasMore())
-      return __privateSet(this, _rest, null);
-    __privateSet(this, _rest, new _Pattern(__privateGet(this, _patternList), __privateGet(this, _globList), __privateGet(this, _index) + 1, __privateGet(this, _platform)));
-    __privateSet(__privateGet(this, _rest), _isAbsolute, __privateGet(this, _isAbsolute));
-    __privateSet(__privateGet(this, _rest), _isUNC, __privateGet(this, _isUNC));
-    __privateSet(__privateGet(this, _rest), _isDrive, __privateGet(this, _isDrive));
-    return __privateGet(this, _rest);
-  }
-  /**
-   * true if the pattern represents a //unc/path/ on windows
-   */
-  isUNC() {
-    const pl = __privateGet(this, _patternList);
-    return __privateGet(this, _isUNC) !== void 0 ? __privateGet(this, _isUNC) : __privateSet(this, _isUNC, __privateGet(this, _platform) === "win32" && __privateGet(this, _index) === 0 && pl[0] === "" && pl[1] === "" && typeof pl[2] === "string" && !!pl[2] && typeof pl[3] === "string" && !!pl[3]);
-  }
-  // pattern like C:/...
-  // split = ['C:', ...]
-  // XXX: would be nice to handle patterns like `c:*` to test the cwd
-  // in c: for *, but I don't know of a way to even figure out what that
-  // cwd is without actually chdir'ing into it?
-  /**
-   * True if the pattern starts with a drive letter on Windows
-   */
-  isDrive() {
-    const pl = __privateGet(this, _patternList);
-    return __privateGet(this, _isDrive) !== void 0 ? __privateGet(this, _isDrive) : __privateSet(this, _isDrive, __privateGet(this, _platform) === "win32" && __privateGet(this, _index) === 0 && this.length > 1 && typeof pl[0] === "string" && /^[a-z]:$/i.test(pl[0]));
-  }
-  // pattern = '/' or '/...' or '/x/...'
-  // split = ['', ''] or ['', ...] or ['', 'x', ...]
-  // Drive and UNC both considered absolute on windows
-  /**
-   * True if the pattern is rooted on an absolute path
-   */
-  isAbsolute() {
-    const pl = __privateGet(this, _patternList);
-    return __privateGet(this, _isAbsolute) !== void 0 ? __privateGet(this, _isAbsolute) : __privateSet(this, _isAbsolute, pl[0] === "" && pl.length > 1 || this.isDrive() || this.isUNC());
-  }
-  /**
-   * consume the root of the pattern, and return it
-   */
-  root() {
-    const p = __privateGet(this, _patternList)[0];
-    return typeof p === "string" && this.isAbsolute() && __privateGet(this, _index) === 0 ? p : "";
-  }
-  /**
-   * Check to see if the current globstar pattern is allowed to follow
-   * a symbolic link.
-   */
-  checkFollowGlobstar() {
-    return !(__privateGet(this, _index) === 0 || !this.isGlobstar() || !__privateGet(this, _followGlobstar));
-  }
-  /**
-   * Mark that the current globstar pattern is following a symbolic link
-   */
-  markFollowGlobstar() {
-    if (__privateGet(this, _index) === 0 || !this.isGlobstar() || !__privateGet(this, _followGlobstar))
-      return false;
-    __privateSet(this, _followGlobstar, false);
-    return true;
-  }
-};
-_patternList = new WeakMap();
-_globList = new WeakMap();
-_index = new WeakMap();
-_platform = new WeakMap();
-_rest = new WeakMap();
-_globString = new WeakMap();
-_isDrive = new WeakMap();
-_isUNC = new WeakMap();
-_isAbsolute = new WeakMap();
-_followGlobstar = new WeakMap();
-var Pattern = _Pattern;
-var defaultPlatform$1 = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
-var Ignore = class {
-  constructor(ignored, { nobrace, nocase, noext, noglobstar, platform: platform2 = defaultPlatform$1 }) {
-    __publicField(this, "relative");
-    __publicField(this, "relativeChildren");
-    __publicField(this, "absolute");
-    __publicField(this, "absoluteChildren");
-    __publicField(this, "platform");
-    __publicField(this, "mmopts");
-    this.relative = [];
-    this.absolute = [];
-    this.relativeChildren = [];
-    this.absoluteChildren = [];
-    this.platform = platform2;
-    this.mmopts = {
-      dot: true,
-      nobrace,
-      nocase,
-      noext,
-      noglobstar,
-      optimizationLevel: 2,
-      platform: platform2,
-      nocomment: true,
-      nonegate: true
-    };
-    for (const ign of ignored)
-      this.add(ign);
-  }
-  add(ign) {
-    const mm = new Minimatch(ign, this.mmopts);
-    for (let i = 0; i < mm.set.length; i++) {
-      const parsed = mm.set[i];
-      const globParts = mm.globParts[i];
-      if (!parsed || !globParts) {
-        throw new Error("invalid pattern object");
-      }
-      while (parsed[0] === "." && globParts[0] === ".") {
-        parsed.shift();
-        globParts.shift();
-      }
-      const p = new Pattern(parsed, globParts, 0, this.platform);
-      const m = new Minimatch(p.globString(), this.mmopts);
-      const children = globParts[globParts.length - 1] === "**";
-      const absolute = p.isAbsolute();
-      if (absolute)
-        this.absolute.push(m);
-      else
-        this.relative.push(m);
-      if (children) {
-        if (absolute)
-          this.absoluteChildren.push(m);
-        else
-          this.relativeChildren.push(m);
-      }
-    }
-  }
-  ignored(p) {
-    const fullpath = p.fullpath();
-    const fullpaths = `${fullpath}/`;
-    const relative2 = p.relative() || ".";
-    const relatives = `${relative2}/`;
-    for (const m of this.relative) {
-      if (m.match(relative2) || m.match(relatives))
-        return true;
-    }
-    for (const m of this.absolute) {
-      if (m.match(fullpath) || m.match(fullpaths))
-        return true;
-    }
-    return false;
-  }
-  childrenIgnored(p) {
-    const fullpath = p.fullpath() + "/";
-    const relative2 = (p.relative() || ".") + "/";
-    for (const m of this.relativeChildren) {
-      if (m.match(relative2))
-        return true;
-    }
-    for (const m of this.absoluteChildren) {
-      if (m.match(fullpath))
-        return true;
-    }
-    return false;
-  }
-};
-var HasWalkedCache = class _HasWalkedCache {
-  constructor(store = /* @__PURE__ */ new Map()) {
-    __publicField(this, "store");
-    this.store = store;
-  }
-  copy() {
-    return new _HasWalkedCache(new Map(this.store));
-  }
-  hasWalked(target, pattern2) {
-    var _a4;
-    return (_a4 = this.store.get(target.fullpath())) == null ? void 0 : _a4.has(pattern2.globString());
-  }
-  storeWalked(target, pattern2) {
-    const fullpath = target.fullpath();
-    const cached = this.store.get(fullpath);
-    if (cached)
-      cached.add(pattern2.globString());
-    else
-      this.store.set(fullpath, /* @__PURE__ */ new Set([pattern2.globString()]));
-  }
-};
-var MatchRecord = class {
-  constructor() {
-    __publicField(this, "store", /* @__PURE__ */ new Map());
-  }
-  add(target, absolute, ifDir) {
-    const n2 = (absolute ? 2 : 0) | (ifDir ? 1 : 0);
-    const current = this.store.get(target);
-    this.store.set(target, current === void 0 ? n2 : n2 & current);
-  }
-  // match, absolute, ifdir
-  entries() {
-    return [...this.store.entries()].map(([path3, n2]) => [
-      path3,
-      !!(n2 & 2),
-      !!(n2 & 1)
-    ]);
-  }
-};
-var SubWalks = class {
-  constructor() {
-    __publicField(this, "store", /* @__PURE__ */ new Map());
-  }
-  add(target, pattern2) {
-    if (!target.canReaddir()) {
-      return;
-    }
-    const subs = this.store.get(target);
-    if (subs) {
-      if (!subs.find((p) => p.globString() === pattern2.globString())) {
-        subs.push(pattern2);
-      }
-    } else
-      this.store.set(target, [pattern2]);
-  }
-  get(target) {
-    const subs = this.store.get(target);
-    if (!subs) {
-      throw new Error("attempting to walk unknown path");
-    }
-    return subs;
-  }
-  entries() {
-    return this.keys().map((k) => [k, this.store.get(k)]);
-  }
-  keys() {
-    return [...this.store.keys()].filter((t2) => t2.canReaddir());
-  }
-};
-var Processor = class _Processor {
-  constructor(opts, hasWalkedCache) {
-    __publicField(this, "hasWalkedCache");
-    __publicField(this, "matches", new MatchRecord());
-    __publicField(this, "subwalks", new SubWalks());
-    __publicField(this, "patterns");
-    __publicField(this, "follow");
-    __publicField(this, "dot");
-    __publicField(this, "opts");
-    this.opts = opts;
-    this.follow = !!opts.follow;
-    this.dot = !!opts.dot;
-    this.hasWalkedCache = hasWalkedCache ? hasWalkedCache.copy() : new HasWalkedCache();
-  }
-  processPatterns(target, patterns) {
-    this.patterns = patterns;
-    const processingSet = patterns.map((p) => [target, p]);
-    for (let [t2, pattern2] of processingSet) {
-      this.hasWalkedCache.storeWalked(t2, pattern2);
-      const root = pattern2.root();
-      const absolute = pattern2.isAbsolute() && this.opts.absolute !== false;
-      if (root) {
-        t2 = t2.resolve(root === "/" && this.opts.root !== void 0 ? this.opts.root : root);
-        const rest2 = pattern2.rest();
-        if (!rest2) {
-          this.matches.add(t2, true, false);
-          continue;
-        } else {
-          pattern2 = rest2;
-        }
-      }
-      if (t2.isENOENT())
-        continue;
-      let p;
-      let rest;
-      let changed = false;
-      while (typeof (p = pattern2.pattern()) === "string" && (rest = pattern2.rest())) {
-        const c = t2.resolve(p);
-        t2 = c;
-        pattern2 = rest;
-        changed = true;
-      }
-      p = pattern2.pattern();
-      rest = pattern2.rest();
-      if (changed) {
-        if (this.hasWalkedCache.hasWalked(t2, pattern2))
-          continue;
-        this.hasWalkedCache.storeWalked(t2, pattern2);
-      }
-      if (typeof p === "string") {
-        const ifDir = p === ".." || p === "" || p === ".";
-        this.matches.add(t2.resolve(p), absolute, ifDir);
-        continue;
-      } else if (p === GLOBSTAR$2) {
-        if (!t2.isSymbolicLink() || this.follow || pattern2.checkFollowGlobstar()) {
-          this.subwalks.add(t2, pattern2);
-        }
-        const rp = rest == null ? void 0 : rest.pattern();
-        const rrest = rest == null ? void 0 : rest.rest();
-        if (!rest || (rp === "" || rp === ".") && !rrest) {
-          this.matches.add(t2, absolute, rp === "" || rp === ".");
-        } else {
-          if (rp === "..") {
-            const tp = t2.parent || t2;
-            if (!rrest)
-              this.matches.add(tp, absolute, true);
-            else if (!this.hasWalkedCache.hasWalked(tp, rrest)) {
-              this.subwalks.add(tp, rrest);
-            }
-          }
-        }
-      } else if (p instanceof RegExp) {
-        this.subwalks.add(t2, pattern2);
-      }
-    }
-    return this;
-  }
-  subwalkTargets() {
-    return this.subwalks.keys();
-  }
-  child() {
-    return new _Processor(this.opts, this.hasWalkedCache);
-  }
-  // return a new Processor containing the subwalks for each
-  // child entry, and a set of matches, and
-  // a hasWalkedCache that's a copy of this one
-  // then we're going to call
-  filterEntries(parent, entries) {
-    const patterns = this.subwalks.get(parent);
-    const results = this.child();
-    for (const e2 of entries) {
-      for (const pattern2 of patterns) {
-        const absolute = pattern2.isAbsolute();
-        const p = pattern2.pattern();
-        const rest = pattern2.rest();
-        if (p === GLOBSTAR$2) {
-          results.testGlobstar(e2, pattern2, rest, absolute);
-        } else if (p instanceof RegExp) {
-          results.testRegExp(e2, p, rest, absolute);
-        } else {
-          results.testString(e2, p, rest, absolute);
-        }
-      }
-    }
-    return results;
-  }
-  testGlobstar(e2, pattern2, rest, absolute) {
-    if (this.dot || !e2.name.startsWith(".")) {
-      if (!pattern2.hasMore()) {
-        this.matches.add(e2, absolute, false);
-      }
-      if (e2.canReaddir()) {
-        if (this.follow || !e2.isSymbolicLink()) {
-          this.subwalks.add(e2, pattern2);
-        } else if (e2.isSymbolicLink()) {
-          if (rest && pattern2.checkFollowGlobstar()) {
-            this.subwalks.add(e2, rest);
-          } else if (pattern2.markFollowGlobstar()) {
-            this.subwalks.add(e2, pattern2);
-          }
-        }
-      }
-    }
-    if (rest) {
-      const rp = rest.pattern();
-      if (typeof rp === "string" && // dots and empty were handled already
-      rp !== ".." && rp !== "" && rp !== ".") {
-        this.testString(e2, rp, rest.rest(), absolute);
-      } else if (rp === "..") {
-        const ep = e2.parent || e2;
-        this.subwalks.add(ep, rest);
-      } else if (rp instanceof RegExp) {
-        this.testRegExp(e2, rp, rest.rest(), absolute);
-      }
-    }
-  }
-  testRegExp(e2, p, rest, absolute) {
-    if (!p.test(e2.name))
-      return;
-    if (!rest) {
-      this.matches.add(e2, absolute, false);
-    } else {
-      this.subwalks.add(e2, rest);
-    }
-  }
-  testString(e2, p, rest, absolute) {
-    if (!e2.isNamed(p))
-      return;
-    if (!rest) {
-      this.matches.add(e2, absolute, false);
-    } else {
-      this.subwalks.add(e2, rest);
-    }
-  }
-};
-var makeIgnore = (ignore, opts) => typeof ignore === "string" ? new Ignore([ignore], opts) : Array.isArray(ignore) ? new Ignore(ignore, opts) : ignore;
-var _onResume, _ignore, _sep, _GlobUtil_instances, ignored_fn, childrenIgnored_fn;
-var GlobUtil = class {
-  constructor(patterns, path3, opts) {
-    __privateAdd(this, _GlobUtil_instances);
-    __publicField(this, "path");
-    __publicField(this, "patterns");
-    __publicField(this, "opts");
-    __publicField(this, "seen", /* @__PURE__ */ new Set());
-    __publicField(this, "paused", false);
-    __publicField(this, "aborted", false);
-    __privateAdd(this, _onResume, []);
-    __privateAdd(this, _ignore);
-    __privateAdd(this, _sep);
-    __publicField(this, "signal");
-    __publicField(this, "maxDepth");
-    __publicField(this, "includeChildMatches");
-    this.patterns = patterns;
-    this.path = path3;
-    this.opts = opts;
-    __privateSet(this, _sep, !opts.posix && opts.platform === "win32" ? "\\" : "/");
-    this.includeChildMatches = opts.includeChildMatches !== false;
-    if (opts.ignore || !this.includeChildMatches) {
-      __privateSet(this, _ignore, makeIgnore(opts.ignore ?? [], opts));
-      if (!this.includeChildMatches && typeof __privateGet(this, _ignore).add !== "function") {
-        const m = "cannot ignore child matches, ignore lacks add() method.";
-        throw new Error(m);
-      }
-    }
-    this.maxDepth = opts.maxDepth || Infinity;
-    if (opts.signal) {
-      this.signal = opts.signal;
-      this.signal.addEventListener("abort", () => {
-        __privateGet(this, _onResume).length = 0;
-      });
-    }
-  }
-  // backpressure mechanism
-  pause() {
-    this.paused = true;
-  }
-  resume() {
-    var _a4;
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      return;
-    this.paused = false;
-    let fn = void 0;
-    while (!this.paused && (fn = __privateGet(this, _onResume).shift())) {
-      fn();
-    }
-  }
-  onResume(fn) {
-    var _a4;
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      return;
-    if (!this.paused) {
-      fn();
-    } else {
-      __privateGet(this, _onResume).push(fn);
-    }
-  }
-  // do the requisite realpath/stat checking, and return the path
-  // to add or undefined to filter it out.
-  async matchCheck(e2, ifDir) {
-    if (ifDir && this.opts.nodir)
-      return void 0;
-    let rpc;
-    if (this.opts.realpath) {
-      rpc = e2.realpathCached() || await e2.realpath();
-      if (!rpc)
-        return void 0;
-      e2 = rpc;
-    }
-    const needStat = e2.isUnknown() || this.opts.stat;
-    const s = needStat ? await e2.lstat() : e2;
-    if (this.opts.follow && this.opts.nodir && (s == null ? void 0 : s.isSymbolicLink())) {
-      const target = await s.realpath();
-      if (target && (target.isUnknown() || this.opts.stat)) {
-        await target.lstat();
-      }
-    }
-    return this.matchCheckTest(s, ifDir);
-  }
-  matchCheckTest(e2, ifDir) {
-    var _a4;
-    return e2 && (this.maxDepth === Infinity || e2.depth() <= this.maxDepth) && (!ifDir || e2.canReaddir()) && (!this.opts.nodir || !e2.isDirectory()) && (!this.opts.nodir || !this.opts.follow || !e2.isSymbolicLink() || !((_a4 = e2.realpathCached()) == null ? void 0 : _a4.isDirectory())) && !__privateMethod(this, _GlobUtil_instances, ignored_fn).call(this, e2) ? e2 : void 0;
-  }
-  matchCheckSync(e2, ifDir) {
-    if (ifDir && this.opts.nodir)
-      return void 0;
-    let rpc;
-    if (this.opts.realpath) {
-      rpc = e2.realpathCached() || e2.realpathSync();
-      if (!rpc)
-        return void 0;
-      e2 = rpc;
-    }
-    const needStat = e2.isUnknown() || this.opts.stat;
-    const s = needStat ? e2.lstatSync() : e2;
-    if (this.opts.follow && this.opts.nodir && (s == null ? void 0 : s.isSymbolicLink())) {
-      const target = s.realpathSync();
-      if (target && ((target == null ? void 0 : target.isUnknown()) || this.opts.stat)) {
-        target.lstatSync();
-      }
-    }
-    return this.matchCheckTest(s, ifDir);
-  }
-  matchFinish(e2, absolute) {
-    var _a4;
-    if (__privateMethod(this, _GlobUtil_instances, ignored_fn).call(this, e2))
-      return;
-    if (!this.includeChildMatches && ((_a4 = __privateGet(this, _ignore)) == null ? void 0 : _a4.add)) {
-      const ign = `${e2.relativePosix()}/**`;
-      __privateGet(this, _ignore).add(ign);
-    }
-    const abs = this.opts.absolute === void 0 ? absolute : this.opts.absolute;
-    this.seen.add(e2);
-    const mark = this.opts.mark && e2.isDirectory() ? __privateGet(this, _sep) : "";
-    if (this.opts.withFileTypes) {
-      this.matchEmit(e2);
-    } else if (abs) {
-      const abs2 = this.opts.posix ? e2.fullpathPosix() : e2.fullpath();
-      this.matchEmit(abs2 + mark);
-    } else {
-      const rel = this.opts.posix ? e2.relativePosix() : e2.relative();
-      const pre = this.opts.dotRelative && !rel.startsWith(".." + __privateGet(this, _sep)) ? "." + __privateGet(this, _sep) : "";
-      this.matchEmit(!rel ? "." + mark : pre + rel + mark);
-    }
-  }
-  async match(e2, absolute, ifDir) {
-    const p = await this.matchCheck(e2, ifDir);
-    if (p)
-      this.matchFinish(p, absolute);
-  }
-  matchSync(e2, absolute, ifDir) {
-    const p = this.matchCheckSync(e2, ifDir);
-    if (p)
-      this.matchFinish(p, absolute);
-  }
-  walkCB(target, patterns, cb) {
-    var _a4;
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      cb();
-    this.walkCB2(target, patterns, new Processor(this.opts), cb);
-  }
-  walkCB2(target, patterns, processor, cb) {
-    var _a4;
-    if (__privateMethod(this, _GlobUtil_instances, childrenIgnored_fn).call(this, target))
-      return cb();
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      cb();
-    if (this.paused) {
-      this.onResume(() => this.walkCB2(target, patterns, processor, cb));
-      return;
-    }
-    processor.processPatterns(target, patterns);
-    let tasks2 = 1;
-    const next = () => {
-      if (--tasks2 === 0)
-        cb();
-    };
-    for (const [m, absolute, ifDir] of processor.matches.entries()) {
-      if (__privateMethod(this, _GlobUtil_instances, ignored_fn).call(this, m))
-        continue;
-      tasks2++;
-      this.match(m, absolute, ifDir).then(() => next());
-    }
-    for (const t2 of processor.subwalkTargets()) {
-      if (this.maxDepth !== Infinity && t2.depth() >= this.maxDepth) {
-        continue;
-      }
-      tasks2++;
-      const childrenCached = t2.readdirCached();
-      if (t2.calledReaddir())
-        this.walkCB3(t2, childrenCached, processor, next);
-      else {
-        t2.readdirCB((_, entries) => this.walkCB3(t2, entries, processor, next), true);
-      }
-    }
-    next();
-  }
-  walkCB3(target, entries, processor, cb) {
-    processor = processor.filterEntries(target, entries);
-    let tasks2 = 1;
-    const next = () => {
-      if (--tasks2 === 0)
-        cb();
-    };
-    for (const [m, absolute, ifDir] of processor.matches.entries()) {
-      if (__privateMethod(this, _GlobUtil_instances, ignored_fn).call(this, m))
-        continue;
-      tasks2++;
-      this.match(m, absolute, ifDir).then(() => next());
-    }
-    for (const [target2, patterns] of processor.subwalks.entries()) {
-      tasks2++;
-      this.walkCB2(target2, patterns, processor.child(), next);
-    }
-    next();
-  }
-  walkCBSync(target, patterns, cb) {
-    var _a4;
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      cb();
-    this.walkCB2Sync(target, patterns, new Processor(this.opts), cb);
-  }
-  walkCB2Sync(target, patterns, processor, cb) {
-    var _a4;
-    if (__privateMethod(this, _GlobUtil_instances, childrenIgnored_fn).call(this, target))
-      return cb();
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      cb();
-    if (this.paused) {
-      this.onResume(() => this.walkCB2Sync(target, patterns, processor, cb));
-      return;
-    }
-    processor.processPatterns(target, patterns);
-    let tasks2 = 1;
-    const next = () => {
-      if (--tasks2 === 0)
-        cb();
-    };
-    for (const [m, absolute, ifDir] of processor.matches.entries()) {
-      if (__privateMethod(this, _GlobUtil_instances, ignored_fn).call(this, m))
-        continue;
-      this.matchSync(m, absolute, ifDir);
-    }
-    for (const t2 of processor.subwalkTargets()) {
-      if (this.maxDepth !== Infinity && t2.depth() >= this.maxDepth) {
-        continue;
-      }
-      tasks2++;
-      const children = t2.readdirSync();
-      this.walkCB3Sync(t2, children, processor, next);
-    }
-    next();
-  }
-  walkCB3Sync(target, entries, processor, cb) {
-    processor = processor.filterEntries(target, entries);
-    let tasks2 = 1;
-    const next = () => {
-      if (--tasks2 === 0)
-        cb();
-    };
-    for (const [m, absolute, ifDir] of processor.matches.entries()) {
-      if (__privateMethod(this, _GlobUtil_instances, ignored_fn).call(this, m))
-        continue;
-      this.matchSync(m, absolute, ifDir);
-    }
-    for (const [target2, patterns] of processor.subwalks.entries()) {
-      tasks2++;
-      this.walkCB2Sync(target2, patterns, processor.child(), next);
-    }
-    next();
-  }
-};
-_onResume = new WeakMap();
-_ignore = new WeakMap();
-_sep = new WeakMap();
-_GlobUtil_instances = new WeakSet();
-ignored_fn = function(path3) {
-  var _a4, _b3;
-  return this.seen.has(path3) || !!((_b3 = (_a4 = __privateGet(this, _ignore)) == null ? void 0 : _a4.ignored) == null ? void 0 : _b3.call(_a4, path3));
-};
-childrenIgnored_fn = function(path3) {
-  var _a4, _b3;
-  return !!((_b3 = (_a4 = __privateGet(this, _ignore)) == null ? void 0 : _a4.childrenIgnored) == null ? void 0 : _b3.call(_a4, path3));
-};
-var GlobWalker = class extends GlobUtil {
-  constructor(patterns, path3, opts) {
-    super(patterns, path3, opts);
-    __publicField(this, "matches", /* @__PURE__ */ new Set());
-  }
-  matchEmit(e2) {
-    this.matches.add(e2);
-  }
-  async walk() {
-    var _a4;
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      throw this.signal.reason;
-    if (this.path.isUnknown()) {
-      await this.path.lstat();
-    }
-    await new Promise((res, rej) => {
-      this.walkCB(this.path, this.patterns, () => {
-        var _a5;
-        if ((_a5 = this.signal) == null ? void 0 : _a5.aborted) {
-          rej(this.signal.reason);
-        } else {
-          res(this.matches);
-        }
-      });
-    });
-    return this.matches;
-  }
-  walkSync() {
-    var _a4;
-    if ((_a4 = this.signal) == null ? void 0 : _a4.aborted)
-      throw this.signal.reason;
-    if (this.path.isUnknown()) {
-      this.path.lstatSync();
-    }
-    this.walkCBSync(this.path, this.patterns, () => {
-      var _a5;
-      if ((_a5 = this.signal) == null ? void 0 : _a5.aborted)
-        throw this.signal.reason;
-    });
-    return this.matches;
-  }
-};
-var GlobStream = class extends GlobUtil {
-  constructor(patterns, path3, opts) {
-    super(patterns, path3, opts);
-    __publicField(this, "results");
-    this.results = new Minipass({
-      signal: this.signal,
-      objectMode: true
-    });
-    this.results.on("drain", () => this.resume());
-    this.results.on("resume", () => this.resume());
-  }
-  matchEmit(e2) {
-    this.results.write(e2);
-    if (!this.results.flowing)
-      this.pause();
-  }
-  stream() {
-    const target = this.path;
-    if (target.isUnknown()) {
-      target.lstat().then(() => {
-        this.walkCB(target, this.patterns, () => this.results.end());
-      });
-    } else {
-      this.walkCB(target, this.patterns, () => this.results.end());
-    }
-    return this.results;
-  }
-  streamSync() {
-    if (this.path.isUnknown()) {
-      this.path.lstatSync();
-    }
-    this.walkCBSync(this.path, this.patterns, () => this.results.end());
-    return this.results;
-  }
-};
-var defaultPlatform = typeof process === "object" && process && typeof process.platform === "string" ? process.platform : "linux";
-var Glob = class {
-  /**
-   * All options are stored as properties on the `Glob` object.
-   *
-   * See {@link GlobOptions} for full options descriptions.
-   *
-   * Note that a previous `Glob` object can be passed as the
-   * `GlobOptions` to another `Glob` instantiation to re-use settings
-   * and caches with a new pattern.
-   *
-   * Traversal functions can be called multiple times to run the walk
-   * again.
-   */
-  constructor(pattern2, opts) {
-    __publicField(this, "absolute");
-    __publicField(this, "cwd");
-    __publicField(this, "root");
-    __publicField(this, "dot");
-    __publicField(this, "dotRelative");
-    __publicField(this, "follow");
-    __publicField(this, "ignore");
-    __publicField(this, "magicalBraces");
-    __publicField(this, "mark");
-    __publicField(this, "matchBase");
-    __publicField(this, "maxDepth");
-    __publicField(this, "nobrace");
-    __publicField(this, "nocase");
-    __publicField(this, "nodir");
-    __publicField(this, "noext");
-    __publicField(this, "noglobstar");
-    __publicField(this, "pattern");
-    __publicField(this, "platform");
-    __publicField(this, "realpath");
-    __publicField(this, "scurry");
-    __publicField(this, "stat");
-    __publicField(this, "signal");
-    __publicField(this, "windowsPathsNoEscape");
-    __publicField(this, "withFileTypes");
-    __publicField(this, "includeChildMatches");
-    /**
-     * The options provided to the constructor.
-     */
-    __publicField(this, "opts");
-    /**
-     * An array of parsed immutable {@link Pattern} objects.
-     */
-    __publicField(this, "patterns");
-    if (!opts)
-      throw new TypeError("glob options required");
-    this.withFileTypes = !!opts.withFileTypes;
-    this.signal = opts.signal;
-    this.follow = !!opts.follow;
-    this.dot = !!opts.dot;
-    this.dotRelative = !!opts.dotRelative;
-    this.nodir = !!opts.nodir;
-    this.mark = !!opts.mark;
-    if (!opts.cwd) {
-      this.cwd = "";
-    } else if (opts.cwd instanceof URL || opts.cwd.startsWith("file://")) {
-      opts.cwd = (0, import_node_url2.fileURLToPath)(opts.cwd);
-    }
-    this.cwd = opts.cwd || "";
-    this.root = opts.root;
-    this.magicalBraces = !!opts.magicalBraces;
-    this.nobrace = !!opts.nobrace;
-    this.noext = !!opts.noext;
-    this.realpath = !!opts.realpath;
-    this.absolute = opts.absolute;
-    this.includeChildMatches = opts.includeChildMatches !== false;
-    this.noglobstar = !!opts.noglobstar;
-    this.matchBase = !!opts.matchBase;
-    this.maxDepth = typeof opts.maxDepth === "number" ? opts.maxDepth : Infinity;
-    this.stat = !!opts.stat;
-    this.ignore = opts.ignore;
-    if (this.withFileTypes && this.absolute !== void 0) {
-      throw new Error("cannot set absolute and withFileTypes:true");
-    }
-    if (typeof pattern2 === "string") {
-      pattern2 = [pattern2];
-    }
-    this.windowsPathsNoEscape = !!opts.windowsPathsNoEscape || opts.allowWindowsEscape === false;
-    if (this.windowsPathsNoEscape) {
-      pattern2 = pattern2.map((p) => p.replace(/\\/g, "/"));
-    }
-    if (this.matchBase) {
-      if (opts.noglobstar) {
-        throw new TypeError("base matching requires globstar");
-      }
-      pattern2 = pattern2.map((p) => p.includes("/") ? p : `./**/${p}`);
-    }
-    this.pattern = pattern2;
-    this.platform = opts.platform || defaultPlatform;
-    this.opts = { ...opts, platform: this.platform };
-    if (opts.scurry) {
-      this.scurry = opts.scurry;
-      if (opts.nocase !== void 0 && opts.nocase !== opts.scurry.nocase) {
-        throw new Error("nocase option contradicts provided scurry option");
-      }
-    } else {
-      const Scurry = opts.platform === "win32" ? PathScurryWin32 : opts.platform === "darwin" ? PathScurryDarwin : opts.platform ? PathScurryPosix : PathScurry;
-      this.scurry = new Scurry(this.cwd, {
-        nocase: opts.nocase,
-        fs: opts.fs
-      });
-    }
-    this.nocase = this.scurry.nocase;
-    const nocaseMagicOnly = this.platform === "darwin" || this.platform === "win32";
-    const mmo = {
-      // default nocase based on platform
-      ...opts,
-      dot: this.dot,
-      matchBase: this.matchBase,
-      nobrace: this.nobrace,
-      nocase: this.nocase,
-      nocaseMagicOnly,
-      nocomment: true,
-      noext: this.noext,
-      nonegate: true,
-      optimizationLevel: 2,
-      platform: this.platform,
-      windowsPathsNoEscape: this.windowsPathsNoEscape,
-      debug: !!this.opts.debug
-    };
-    const mms = this.pattern.map((p) => new Minimatch(p, mmo));
-    const [matchSet, globParts] = mms.reduce((set2, m) => {
-      set2[0].push(...m.set);
-      set2[1].push(...m.globParts);
-      return set2;
-    }, [[], []]);
-    this.patterns = matchSet.map((set2, i) => {
-      const g = globParts[i];
-      if (!g)
-        throw new Error("invalid pattern object");
-      return new Pattern(set2, g, 0, this.platform);
-    });
-  }
-  async walk() {
-    return [
-      ...await new GlobWalker(this.patterns, this.scurry.cwd, {
-        ...this.opts,
-        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
-        platform: this.platform,
-        nocase: this.nocase,
-        includeChildMatches: this.includeChildMatches
-      }).walk()
-    ];
-  }
-  walkSync() {
-    return [
-      ...new GlobWalker(this.patterns, this.scurry.cwd, {
-        ...this.opts,
-        maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
-        platform: this.platform,
-        nocase: this.nocase,
-        includeChildMatches: this.includeChildMatches
-      }).walkSync()
-    ];
-  }
-  stream() {
-    return new GlobStream(this.patterns, this.scurry.cwd, {
-      ...this.opts,
-      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
-      platform: this.platform,
-      nocase: this.nocase,
-      includeChildMatches: this.includeChildMatches
-    }).stream();
-  }
-  streamSync() {
-    return new GlobStream(this.patterns, this.scurry.cwd, {
-      ...this.opts,
-      maxDepth: this.maxDepth !== Infinity ? this.maxDepth + this.scurry.cwd.depth() : Infinity,
-      platform: this.platform,
-      nocase: this.nocase,
-      includeChildMatches: this.includeChildMatches
-    }).streamSync();
-  }
-  /**
-   * Default sync iteration function. Returns a Generator that
-   * iterates over the results.
-   */
-  iterateSync() {
-    return this.streamSync()[Symbol.iterator]();
-  }
-  [Symbol.iterator]() {
-    return this.iterateSync();
-  }
-  /**
-   * Default async iteration function. Returns an AsyncGenerator that
-   * iterates over the results.
-   */
-  iterate() {
-    return this.stream()[Symbol.asyncIterator]();
-  }
-  [Symbol.asyncIterator]() {
-    return this.iterate();
-  }
-};
-var hasMagic = (pattern2, options2 = {}) => {
-  if (!Array.isArray(pattern2)) {
-    pattern2 = [pattern2];
-  }
-  for (const p of pattern2) {
-    if (new Minimatch(p, options2).hasMagic())
-      return true;
-  }
-  return false;
-};
-function globStreamSync(pattern2, options2 = {}) {
-  return new Glob(pattern2, options2).streamSync();
-}
-function globStream(pattern2, options2 = {}) {
-  return new Glob(pattern2, options2).stream();
-}
-function globSync(pattern2, options2 = {}) {
-  return new Glob(pattern2, options2).walkSync();
-}
-async function glob_(pattern2, options2 = {}) {
-  return new Glob(pattern2, options2).walk();
-}
-function globIterateSync(pattern2, options2 = {}) {
-  return new Glob(pattern2, options2).iterateSync();
-}
-function globIterate(pattern2, options2 = {}) {
-  return new Glob(pattern2, options2).iterate();
-}
-var streamSync = globStreamSync;
-var stream$5 = Object.assign(globStream, { sync: globStreamSync });
-var iterateSync = globIterateSync;
-var iterate = Object.assign(globIterate, {
-  sync: globIterateSync
-});
-var sync$9 = Object.assign(globSync, {
-  stream: globStreamSync,
-  iterate: globIterateSync
-});
-var glob$1 = Object.assign(glob_, {
-  glob: glob_,
-  globSync,
-  sync: sync$9,
-  globStream,
-  stream: stream$5,
-  globStreamSync,
-  streamSync,
-  globIterate,
-  iterate,
-  globIterateSync,
-  iterateSync,
-  Glob,
-  hasMagic,
-  escape: escape$2,
-  unescape: unescape$1
-});
-glob$1.glob = glob$1;
-var comma = ",".charCodeAt(0);
-var semicolon = ";".charCodeAt(0);
-var chars$1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-var intToChar = new Uint8Array(64);
-var charToInt = new Uint8Array(128);
-for (let i = 0; i < chars$1.length; i++) {
-  const c = chars$1.charCodeAt(i);
-  intToChar[i] = c;
-  charToInt[c] = i;
-}
-var td = typeof TextDecoder !== "undefined" ? new TextDecoder() : typeof Buffer !== "undefined" ? {
-  decode(buf) {
-    const out2 = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);
-    return out2.toString();
-  }
-} : {
-  decode(buf) {
-    let out2 = "";
-    for (let i = 0; i < buf.length; i++) {
-      out2 += String.fromCharCode(buf[i]);
-    }
-    return out2;
-  }
-};
-function decode(mappings) {
-  const state = new Int32Array(5);
-  const decoded = [];
-  let index = 0;
-  do {
-    const semi = indexOf(mappings, index);
-    const line = [];
-    let sorted = true;
-    let lastCol = 0;
-    state[0] = 0;
-    for (let i = index; i < semi; i++) {
-      let seg;
-      i = decodeInteger(mappings, i, state, 0);
-      const col = state[0];
-      if (col < lastCol)
-        sorted = false;
-      lastCol = col;
-      if (hasMoreVlq(mappings, i, semi)) {
-        i = decodeInteger(mappings, i, state, 1);
-        i = decodeInteger(mappings, i, state, 2);
-        i = decodeInteger(mappings, i, state, 3);
-        if (hasMoreVlq(mappings, i, semi)) {
-          i = decodeInteger(mappings, i, state, 4);
-          seg = [col, state[1], state[2], state[3], state[4]];
-        } else {
-          seg = [col, state[1], state[2], state[3]];
-        }
-      } else {
-        seg = [col];
-      }
-      line.push(seg);
-    }
-    if (!sorted)
-      sort(line);
-    decoded.push(line);
-    index = semi + 1;
-  } while (index <= mappings.length);
-  return decoded;
-}
-function indexOf(mappings, index) {
-  const idx = mappings.indexOf(";", index);
-  return idx === -1 ? mappings.length : idx;
-}
-function decodeInteger(mappings, pos, state, j) {
-  let value2 = 0;
-  let shift = 0;
-  let integer = 0;
-  do {
-    const c = mappings.charCodeAt(pos++);
-    integer = charToInt[c];
-    value2 |= (integer & 31) << shift;
-    shift += 5;
-  } while (integer & 32);
-  const shouldNegate = value2 & 1;
-  value2 >>>= 1;
-  if (shouldNegate) {
-    value2 = -2147483648 | -value2;
-  }
-  state[j] += value2;
-  return pos;
-}
-function hasMoreVlq(mappings, i, length) {
-  if (i >= length)
-    return false;
-  return mappings.charCodeAt(i) !== comma;
-}
-function sort(line) {
-  line.sort(sortComparator$1);
-}
-function sortComparator$1(a, b) {
-  return a[0] - b[0];
-}
-function encode$1(decoded) {
-  const state = new Int32Array(5);
-  const bufLength = 1024 * 16;
-  const subLength = bufLength - 36;
-  const buf = new Uint8Array(bufLength);
-  const sub = buf.subarray(0, subLength);
-  let pos = 0;
-  let out2 = "";
-  for (let i = 0; i < decoded.length; i++) {
-    const line = decoded[i];
-    if (i > 0) {
-      if (pos === bufLength) {
-        out2 += td.decode(buf);
-        pos = 0;
-      }
-      buf[pos++] = semicolon;
-    }
-    if (line.length === 0)
-      continue;
-    state[0] = 0;
-    for (let j = 0; j < line.length; j++) {
-      const segment = line[j];
-      if (pos > subLength) {
-        out2 += td.decode(sub);
-        buf.copyWithin(0, subLength, pos);
-        pos -= subLength;
-      }
-      if (j > 0)
-        buf[pos++] = comma;
-      pos = encodeInteger(buf, pos, state, segment, 0);
-      if (segment.length === 1)
-        continue;
-      pos = encodeInteger(buf, pos, state, segment, 1);
-      pos = encodeInteger(buf, pos, state, segment, 2);
-      pos = encodeInteger(buf, pos, state, segment, 3);
-      if (segment.length === 4)
-        continue;
-      pos = encodeInteger(buf, pos, state, segment, 4);
-    }
-  }
-  return out2 + td.decode(buf.subarray(0, pos));
-}
-function encodeInteger(buf, pos, state, segment, j) {
-  const next = segment[j];
-  let num = next - state[j];
-  state[j] = next;
-  num = num < 0 ? -num << 1 | 1 : num << 1;
-  do {
-    let clamped = num & 31;
-    num >>>= 5;
-    if (num > 0)
-      clamped |= 32;
-    buf[pos++] = intToChar[clamped];
-  } while (num > 0);
-  return pos;
-}
-var BitSet = class _BitSet {
-  constructor(arg) {
-    this.bits = arg instanceof _BitSet ? arg.bits.slice() : [];
-  }
-  add(n2) {
-    this.bits[n2 >> 5] |= 1 << (n2 & 31);
-  }
-  has(n2) {
-    return !!(this.bits[n2 >> 5] & 1 << (n2 & 31));
-  }
-};
-var Chunk = class _Chunk {
-  constructor(start, end, content) {
-    this.start = start;
-    this.end = end;
-    this.original = content;
-    this.intro = "";
-    this.outro = "";
-    this.content = content;
-    this.storeName = false;
-    this.edited = false;
-    {
-      this.previous = null;
-      this.next = null;
-    }
-  }
-  appendLeft(content) {
-    this.outro += content;
-  }
-  appendRight(content) {
-    this.intro = this.intro + content;
-  }
-  clone() {
-    const chunk = new _Chunk(this.start, this.end, this.original);
-    chunk.intro = this.intro;
-    chunk.outro = this.outro;
-    chunk.content = this.content;
-    chunk.storeName = this.storeName;
-    chunk.edited = this.edited;
-    return chunk;
-  }
-  contains(index) {
-    return this.start < index && index < this.end;
-  }
-  eachNext(fn) {
-    let chunk = this;
-    while (chunk) {
-      fn(chunk);
-      chunk = chunk.next;
-    }
-  }
-  eachPrevious(fn) {
-    let chunk = this;
-    while (chunk) {
-      fn(chunk);
-      chunk = chunk.previous;
-    }
-  }
-  edit(content, storeName, contentOnly) {
-    this.content = content;
-    if (!contentOnly) {
-      this.intro = "";
-      this.outro = "";
-    }
-    this.storeName = storeName;
-    this.edited = true;
-    return this;
-  }
-  prependLeft(content) {
-    this.outro = content + this.outro;
-  }
-  prependRight(content) {
-    this.intro = content + this.intro;
-  }
-  reset() {
-    this.intro = "";
-    this.outro = "";
-    if (this.edited) {
-      this.content = this.original;
-      this.storeName = false;
-      this.edited = false;
-    }
-  }
-  split(index) {
-    const sliceIndex = index - this.start;
-    const originalBefore = this.original.slice(0, sliceIndex);
-    const originalAfter = this.original.slice(sliceIndex);
-    this.original = originalBefore;
-    const newChunk = new _Chunk(index, this.end, originalAfter);
-    newChunk.outro = this.outro;
-    this.outro = "";
-    this.end = index;
-    if (this.edited) {
-      newChunk.edit("", false);
-      this.content = "";
-    } else {
-      this.content = originalBefore;
-    }
-    newChunk.next = this.next;
-    if (newChunk.next) newChunk.next.previous = newChunk;
-    newChunk.previous = this;
-    this.next = newChunk;
-    return newChunk;
-  }
-  toString() {
-    return this.intro + this.content + this.outro;
-  }
-  trimEnd(rx) {
-    this.outro = this.outro.replace(rx, "");
-    if (this.outro.length) return true;
-    const trimmed = this.content.replace(rx, "");
-    if (trimmed.length) {
-      if (trimmed !== this.content) {
-        this.split(this.start + trimmed.length).edit("", void 0, true);
-        if (this.edited) {
-          this.edit(trimmed, this.storeName, true);
-        }
-      }
-      return true;
-    } else {
-      this.edit("", void 0, true);
-      this.intro = this.intro.replace(rx, "");
-      if (this.intro.length) return true;
-    }
-  }
-  trimStart(rx) {
-    this.intro = this.intro.replace(rx, "");
-    if (this.intro.length) return true;
-    const trimmed = this.content.replace(rx, "");
-    if (trimmed.length) {
-      if (trimmed !== this.content) {
-        const newChunk = this.split(this.end - trimmed.length);
-        if (this.edited) {
-          newChunk.edit(trimmed, this.storeName, true);
-        }
-        this.edit("", void 0, true);
-      }
-      return true;
-    } else {
-      this.edit("", void 0, true);
-      this.outro = this.outro.replace(rx, "");
-      if (this.outro.length) return true;
-    }
-  }
-};
-function getBtoa() {
-  if (typeof globalThis !== "undefined" && typeof globalThis.btoa === "function") {
-    return (str) => globalThis.btoa(unescape(encodeURIComponent(str)));
-  } else if (typeof Buffer === "function") {
-    return (str) => Buffer.from(str, "utf-8").toString("base64");
-  } else {
-    return () => {
-      throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.");
-    };
-  }
-}
-var btoa$1 = getBtoa();
-var SourceMap$1 = class SourceMap {
-  constructor(properties) {
-    this.version = 3;
-    this.file = properties.file;
-    this.sources = properties.sources;
-    this.sourcesContent = properties.sourcesContent;
-    this.names = properties.names;
-    this.mappings = encode$1(properties.mappings);
-    if (typeof properties.x_google_ignoreList !== "undefined") {
-      this.x_google_ignoreList = properties.x_google_ignoreList;
-    }
-  }
-  toString() {
-    return JSON.stringify(this);
-  }
-  toUrl() {
-    return "data:application/json;charset=utf-8;base64," + btoa$1(this.toString());
-  }
-};
-function guessIndent(code) {
-  const lines = code.split("\n");
-  const tabbed = lines.filter((line) => /^\t+/.test(line));
-  const spaced = lines.filter((line) => /^ {2,}/.test(line));
-  if (tabbed.length === 0 && spaced.length === 0) {
-    return null;
-  }
-  if (tabbed.length >= spaced.length) {
-    return "	";
-  }
-  const min2 = spaced.reduce((previous, current) => {
-    const numSpaces = /^ +/.exec(current)[0].length;
-    return Math.min(numSpaces, previous);
-  }, Infinity);
-  return new Array(min2 + 1).join(" ");
-}
-function getRelativePath(from, to) {
-  const fromParts = from.split(/[/\\]/);
-  const toParts = to.split(/[/\\]/);
-  fromParts.pop();
-  while (fromParts[0] === toParts[0]) {
-    fromParts.shift();
-    toParts.shift();
-  }
-  if (fromParts.length) {
-    let i = fromParts.length;
-    while (i--) fromParts[i] = "..";
-  }
-  return fromParts.concat(toParts).join("/");
-}
-var toString$1 = Object.prototype.toString;
-function isObject$2(thing) {
-  return toString$1.call(thing) === "[object Object]";
-}
-function getLocator(source) {
-  const originalLines = source.split("\n");
-  const lineOffsets = [];
-  for (let i = 0, pos = 0; i < originalLines.length; i++) {
-    lineOffsets.push(pos);
-    pos += originalLines[i].length + 1;
-  }
-  return function locate(index) {
-    let i = 0;
-    let j = lineOffsets.length;
-    while (i < j) {
-      const m = i + j >> 1;
-      if (index < lineOffsets[m]) {
-        j = m;
-      } else {
-        i = m + 1;
-      }
-    }
-    const line = i - 1;
-    const column = index - lineOffsets[line];
-    return { line, column };
-  };
-}
-var wordRegex = /\w/;
-var Mappings = class {
-  constructor(hires) {
-    this.hires = hires;
-    this.generatedCodeLine = 0;
-    this.generatedCodeColumn = 0;
-    this.raw = [];
-    this.rawSegments = this.raw[this.generatedCodeLine] = [];
-    this.pending = null;
-  }
-  addEdit(sourceIndex, content, loc, nameIndex) {
-    if (content.length) {
-      const contentLengthMinusOne = content.length - 1;
-      let contentLineEnd = content.indexOf("\n", 0);
-      let previousContentLineEnd = -1;
-      while (contentLineEnd >= 0 && contentLengthMinusOne > contentLineEnd) {
-        const segment2 = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];
-        if (nameIndex >= 0) {
-          segment2.push(nameIndex);
-        }
-        this.rawSegments.push(segment2);
-        this.generatedCodeLine += 1;
-        this.raw[this.generatedCodeLine] = this.rawSegments = [];
-        this.generatedCodeColumn = 0;
-        previousContentLineEnd = contentLineEnd;
-        contentLineEnd = content.indexOf("\n", contentLineEnd + 1);
-      }
-      const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];
-      if (nameIndex >= 0) {
-        segment.push(nameIndex);
-      }
-      this.rawSegments.push(segment);
-      this.advance(content.slice(previousContentLineEnd + 1));
-    } else if (this.pending) {
-      this.rawSegments.push(this.pending);
-      this.advance(content);
-    }
-    this.pending = null;
-  }
-  addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {
-    let originalCharIndex = chunk.start;
-    let first2 = true;
-    let charInHiresBoundary = false;
-    while (originalCharIndex < chunk.end) {
-      if (this.hires || first2 || sourcemapLocations.has(originalCharIndex)) {
-        const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];
-        if (this.hires === "boundary") {
-          if (wordRegex.test(original[originalCharIndex])) {
-            if (!charInHiresBoundary) {
-              this.rawSegments.push(segment);
-              charInHiresBoundary = true;
-            }
-          } else {
-            this.rawSegments.push(segment);
-            charInHiresBoundary = false;
-          }
-        } else {
-          this.rawSegments.push(segment);
-        }
-      }
-      if (original[originalCharIndex] === "\n") {
-        loc.line += 1;
-        loc.column = 0;
-        this.generatedCodeLine += 1;
-        this.raw[this.generatedCodeLine] = this.rawSegments = [];
-        this.generatedCodeColumn = 0;
-        first2 = true;
-      } else {
-        loc.column += 1;
-        this.generatedCodeColumn += 1;
-        first2 = false;
-      }
-      originalCharIndex += 1;
-    }
-    this.pending = null;
-  }
-  advance(str) {
-    if (!str) return;
-    const lines = str.split("\n");
-    if (lines.length > 1) {
-      for (let i = 0; i < lines.length - 1; i++) {
-        this.generatedCodeLine++;
-        this.raw[this.generatedCodeLine] = this.rawSegments = [];
-      }
-      this.generatedCodeColumn = 0;
-    }
-    this.generatedCodeColumn += lines[lines.length - 1].length;
-  }
-};
-var n$1 = "\n";
-var warned = {
-  insertLeft: false,
-  insertRight: false,
-  storeName: false
-};
-var MagicString = class _MagicString {
-  constructor(string2, options2 = {}) {
-    const chunk = new Chunk(0, string2.length, string2);
-    Object.defineProperties(this, {
-      original: { writable: true, value: string2 },
-      outro: { writable: true, value: "" },
-      intro: { writable: true, value: "" },
-      firstChunk: { writable: true, value: chunk },
-      lastChunk: { writable: true, value: chunk },
-      lastSearchedChunk: { writable: true, value: chunk },
-      byStart: { writable: true, value: {} },
-      byEnd: { writable: true, value: {} },
-      filename: { writable: true, value: options2.filename },
-      indentExclusionRanges: { writable: true, value: options2.indentExclusionRanges },
-      sourcemapLocations: { writable: true, value: new BitSet() },
-      storedNames: { writable: true, value: {} },
-      indentStr: { writable: true, value: void 0 },
-      ignoreList: { writable: true, value: options2.ignoreList }
-    });
-    this.byStart[0] = chunk;
-    this.byEnd[string2.length] = chunk;
-  }
-  addSourcemapLocation(char) {
-    this.sourcemapLocations.add(char);
-  }
-  append(content) {
-    if (typeof content !== "string") throw new TypeError("outro content must be a string");
-    this.outro += content;
-    return this;
-  }
-  appendLeft(index, content) {
-    if (typeof content !== "string") throw new TypeError("inserted content must be a string");
-    this._split(index);
-    const chunk = this.byEnd[index];
-    if (chunk) {
-      chunk.appendLeft(content);
-    } else {
-      this.intro += content;
-    }
-    return this;
-  }
-  appendRight(index, content) {
-    if (typeof content !== "string") throw new TypeError("inserted content must be a string");
-    this._split(index);
-    const chunk = this.byStart[index];
-    if (chunk) {
-      chunk.appendRight(content);
-    } else {
-      this.outro += content;
-    }
-    return this;
-  }
-  clone() {
-    const cloned = new _MagicString(this.original, { filename: this.filename });
-    let originalChunk = this.firstChunk;
-    let clonedChunk = cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone();
-    while (originalChunk) {
-      cloned.byStart[clonedChunk.start] = clonedChunk;
-      cloned.byEnd[clonedChunk.end] = clonedChunk;
-      const nextOriginalChunk = originalChunk.next;
-      const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();
-      if (nextClonedChunk) {
-        clonedChunk.next = nextClonedChunk;
-        nextClonedChunk.previous = clonedChunk;
-        clonedChunk = nextClonedChunk;
-      }
-      originalChunk = nextOriginalChunk;
-    }
-    cloned.lastChunk = clonedChunk;
-    if (this.indentExclusionRanges) {
-      cloned.indentExclusionRanges = this.indentExclusionRanges.slice();
-    }
-    cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);
-    cloned.intro = this.intro;
-    cloned.outro = this.outro;
-    return cloned;
-  }
-  generateDecodedMap(options2) {
-    options2 = options2 || {};
-    const sourceIndex = 0;
-    const names = Object.keys(this.storedNames);
-    const mappings = new Mappings(options2.hires);
-    const locate = getLocator(this.original);
-    if (this.intro) {
-      mappings.advance(this.intro);
-    }
-    this.firstChunk.eachNext((chunk) => {
-      const loc = locate(chunk.start);
-      if (chunk.intro.length) mappings.advance(chunk.intro);
-      if (chunk.edited) {
-        mappings.addEdit(
-          sourceIndex,
-          chunk.content,
-          loc,
-          chunk.storeName ? names.indexOf(chunk.original) : -1
-        );
-      } else {
-        mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);
-      }
-      if (chunk.outro.length) mappings.advance(chunk.outro);
-    });
-    return {
-      file: options2.file ? options2.file.split(/[/\\]/).pop() : void 0,
-      sources: [
-        options2.source ? getRelativePath(options2.file || "", options2.source) : options2.file || ""
-      ],
-      sourcesContent: options2.includeContent ? [this.original] : void 0,
-      names,
-      mappings: mappings.raw,
-      x_google_ignoreList: this.ignoreList ? [sourceIndex] : void 0
-    };
-  }
-  generateMap(options2) {
-    return new SourceMap$1(this.generateDecodedMap(options2));
-  }
-  _ensureindentStr() {
-    if (this.indentStr === void 0) {
-      this.indentStr = guessIndent(this.original);
-    }
-  }
-  _getRawIndentString() {
-    this._ensureindentStr();
-    return this.indentStr;
-  }
-  getIndentString() {
-    this._ensureindentStr();
-    return this.indentStr === null ? "	" : this.indentStr;
-  }
-  indent(indentStr, options2) {
-    const pattern2 = /^[^\r\n]/gm;
-    if (isObject$2(indentStr)) {
-      options2 = indentStr;
-      indentStr = void 0;
-    }
-    if (indentStr === void 0) {
-      this._ensureindentStr();
-      indentStr = this.indentStr || "	";
-    }
-    if (indentStr === "") return this;
-    options2 = options2 || {};
-    const isExcluded = {};
-    if (options2.exclude) {
-      const exclusions = typeof options2.exclude[0] === "number" ? [options2.exclude] : options2.exclude;
-      exclusions.forEach((exclusion) => {
-        for (let i = exclusion[0]; i < exclusion[1]; i += 1) {
-          isExcluded[i] = true;
-        }
-      });
-    }
-    let shouldIndentNextCharacter = options2.indentStart !== false;
-    const replacer = (match2) => {
-      if (shouldIndentNextCharacter) return `${indentStr}${match2}`;
-      shouldIndentNextCharacter = true;
-      return match2;
-    };
-    this.intro = this.intro.replace(pattern2, replacer);
-    let charIndex = 0;
-    let chunk = this.firstChunk;
-    while (chunk) {
-      const end = chunk.end;
-      if (chunk.edited) {
-        if (!isExcluded[charIndex]) {
-          chunk.content = chunk.content.replace(pattern2, replacer);
-          if (chunk.content.length) {
-            shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === "\n";
-          }
-        }
-      } else {
-        charIndex = chunk.start;
-        while (charIndex < end) {
-          if (!isExcluded[charIndex]) {
-            const char = this.original[charIndex];
-            if (char === "\n") {
-              shouldIndentNextCharacter = true;
-            } else if (char !== "\r" && shouldIndentNextCharacter) {
-              shouldIndentNextCharacter = false;
-              if (charIndex === chunk.start) {
-                chunk.prependRight(indentStr);
-              } else {
-                this._splitChunk(chunk, charIndex);
-                chunk = chunk.next;
-                chunk.prependRight(indentStr);
-              }
-            }
-          }
-          charIndex += 1;
-        }
-      }
-      charIndex = chunk.end;
-      chunk = chunk.next;
-    }
-    this.outro = this.outro.replace(pattern2, replacer);
-    return this;
-  }
-  insert() {
-    throw new Error(
-      "magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)"
-    );
-  }
-  insertLeft(index, content) {
-    if (!warned.insertLeft) {
-      console.warn(
-        "magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead"
-      );
-      warned.insertLeft = true;
-    }
-    return this.appendLeft(index, content);
-  }
-  insertRight(index, content) {
-    if (!warned.insertRight) {
-      console.warn(
-        "magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead"
-      );
-      warned.insertRight = true;
-    }
-    return this.prependRight(index, content);
-  }
-  move(start, end, index) {
-    if (index >= start && index <= end) throw new Error("Cannot move a selection inside itself");
-    this._split(start);
-    this._split(end);
-    this._split(index);
-    const first2 = this.byStart[start];
-    const last = this.byEnd[end];
-    const oldLeft = first2.previous;
-    const oldRight = last.next;
-    const newRight = this.byStart[index];
-    if (!newRight && last === this.lastChunk) return this;
-    const newLeft = newRight ? newRight.previous : this.lastChunk;
-    if (oldLeft) oldLeft.next = oldRight;
-    if (oldRight) oldRight.previous = oldLeft;
-    if (newLeft) newLeft.next = first2;
-    if (newRight) newRight.previous = last;
-    if (!first2.previous) this.firstChunk = last.next;
-    if (!last.next) {
-      this.lastChunk = first2.previous;
-      this.lastChunk.next = null;
-    }
-    first2.previous = newLeft;
-    last.next = newRight || null;
-    if (!newLeft) this.firstChunk = first2;
-    if (!newRight) this.lastChunk = last;
-    return this;
-  }
-  overwrite(start, end, content, options2) {
-    options2 = options2 || {};
-    return this.update(start, end, content, { ...options2, overwrite: !options2.contentOnly });
-  }
-  update(start, end, content, options2) {
-    if (typeof content !== "string") throw new TypeError("replacement content must be a string");
-    while (start < 0) start += this.original.length;
-    while (end < 0) end += this.original.length;
-    if (end > this.original.length) throw new Error("end is out of bounds");
-    if (start === end)
-      throw new Error(
-        "Cannot overwrite a zero-length range – use appendLeft or prependRight instead"
-      );
-    this._split(start);
-    this._split(end);
-    if (options2 === true) {
-      if (!warned.storeName) {
-        console.warn(
-          "The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string"
-        );
-        warned.storeName = true;
-      }
-      options2 = { storeName: true };
-    }
-    const storeName = options2 !== void 0 ? options2.storeName : false;
-    const overwrite = options2 !== void 0 ? options2.overwrite : false;
-    if (storeName) {
-      const original = this.original.slice(start, end);
-      Object.defineProperty(this.storedNames, original, {
-        writable: true,
-        value: true,
-        enumerable: true
-      });
-    }
-    const first2 = this.byStart[start];
-    const last = this.byEnd[end];
-    if (first2) {
-      let chunk = first2;
-      while (chunk !== last) {
-        if (chunk.next !== this.byStart[chunk.end]) {
-          throw new Error("Cannot overwrite across a split point");
-        }
-        chunk = chunk.next;
-        chunk.edit("", false);
-      }
-      first2.edit(content, storeName, !overwrite);
-    } else {
-      const newChunk = new Chunk(start, end, "").edit(content, storeName);
-      last.next = newChunk;
-      newChunk.previous = last;
-    }
-    return this;
-  }
-  prepend(content) {
-    if (typeof content !== "string") throw new TypeError("outro content must be a string");
-    this.intro = content + this.intro;
-    return this;
-  }
-  prependLeft(index, content) {
-    if (typeof content !== "string") throw new TypeError("inserted content must be a string");
-    this._split(index);
-    const chunk = this.byEnd[index];
-    if (chunk) {
-      chunk.prependLeft(content);
-    } else {
-      this.intro = content + this.intro;
-    }
-    return this;
-  }
-  prependRight(index, content) {
-    if (typeof content !== "string") throw new TypeError("inserted content must be a string");
-    this._split(index);
-    const chunk = this.byStart[index];
-    if (chunk) {
-      chunk.prependRight(content);
-    } else {
-      this.outro = content + this.outro;
-    }
-    return this;
-  }
-  remove(start, end) {
-    while (start < 0) start += this.original.length;
-    while (end < 0) end += this.original.length;
-    if (start === end) return this;
-    if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds");
-    if (start > end) throw new Error("end must be greater than start");
-    this._split(start);
-    this._split(end);
-    let chunk = this.byStart[start];
-    while (chunk) {
-      chunk.intro = "";
-      chunk.outro = "";
-      chunk.edit("");
-      chunk = end > chunk.end ? this.byStart[chunk.end] : null;
-    }
-    return this;
-  }
-  reset(start, end) {
-    while (start < 0) start += this.original.length;
-    while (end < 0) end += this.original.length;
-    if (start === end) return this;
-    if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds");
-    if (start > end) throw new Error("end must be greater than start");
-    this._split(start);
-    this._split(end);
-    let chunk = this.byStart[start];
-    while (chunk) {
-      chunk.reset();
-      chunk = end > chunk.end ? this.byStart[chunk.end] : null;
-    }
-    return this;
-  }
-  lastChar() {
-    if (this.outro.length) return this.outro[this.outro.length - 1];
-    let chunk = this.lastChunk;
-    do {
-      if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];
-      if (chunk.content.length) return chunk.content[chunk.content.length - 1];
-      if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];
-    } while (chunk = chunk.previous);
-    if (this.intro.length) return this.intro[this.intro.length - 1];
-    return "";
-  }
-  lastLine() {
-    let lineIndex = this.outro.lastIndexOf(n$1);
-    if (lineIndex !== -1) return this.outro.substr(lineIndex + 1);
-    let lineStr = this.outro;
-    let chunk = this.lastChunk;
-    do {
-      if (chunk.outro.length > 0) {
-        lineIndex = chunk.outro.lastIndexOf(n$1);
-        if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;
-        lineStr = chunk.outro + lineStr;
-      }
-      if (chunk.content.length > 0) {
-        lineIndex = chunk.content.lastIndexOf(n$1);
-        if (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;
-        lineStr = chunk.content + lineStr;
-      }
-      if (chunk.intro.length > 0) {
-        lineIndex = chunk.intro.lastIndexOf(n$1);
-        if (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;
-        lineStr = chunk.intro + lineStr;
-      }
-    } while (chunk = chunk.previous);
-    lineIndex = this.intro.lastIndexOf(n$1);
-    if (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;
-    return this.intro + lineStr;
-  }
-  slice(start = 0, end = this.original.length) {
-    while (start < 0) start += this.original.length;
-    while (end < 0) end += this.original.length;
-    let result = "";
-    let chunk = this.firstChunk;
-    while (chunk && (chunk.start > start || chunk.end <= start)) {
-      if (chunk.start < end && chunk.end >= end) {
-        return result;
-      }
-      chunk = chunk.next;
-    }
-    if (chunk && chunk.edited && chunk.start !== start)
-      throw new Error(`Cannot use replaced character ${start} as slice start anchor.`);
-    const startChunk = chunk;
-    while (chunk) {
-      if (chunk.intro && (startChunk !== chunk || chunk.start === start)) {
-        result += chunk.intro;
-      }
-      const containsEnd = chunk.start < end && chunk.end >= end;
-      if (containsEnd && chunk.edited && chunk.end !== end)
-        throw new Error(`Cannot use replaced character ${end} as slice end anchor.`);
-      const sliceStart = startChunk === chunk ? start - chunk.start : 0;
-      const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;
-      result += chunk.content.slice(sliceStart, sliceEnd);
-      if (chunk.outro && (!containsEnd || chunk.end === end)) {
-        result += chunk.outro;
-      }
-      if (containsEnd) {
-        break;
-      }
-      chunk = chunk.next;
-    }
-    return result;
-  }
-  // TODO deprecate this? not really very useful
-  snip(start, end) {
-    const clone2 = this.clone();
-    clone2.remove(0, start);
-    clone2.remove(end, clone2.original.length);
-    return clone2;
-  }
-  _split(index) {
-    if (this.byStart[index] || this.byEnd[index]) return;
-    let chunk = this.lastSearchedChunk;
-    const searchForward = index > chunk.end;
-    while (chunk) {
-      if (chunk.contains(index)) return this._splitChunk(chunk, index);
-      chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];
-    }
-  }
-  _splitChunk(chunk, index) {
-    if (chunk.edited && chunk.content.length) {
-      const loc = getLocator(this.original)(index);
-      throw new Error(
-        `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`
-      );
-    }
-    const newChunk = chunk.split(index);
-    this.byEnd[index] = chunk;
-    this.byStart[index] = newChunk;
-    this.byEnd[newChunk.end] = newChunk;
-    if (chunk === this.lastChunk) this.lastChunk = newChunk;
-    this.lastSearchedChunk = chunk;
-    return true;
-  }
-  toString() {
-    let str = this.intro;
-    let chunk = this.firstChunk;
-    while (chunk) {
-      str += chunk.toString();
-      chunk = chunk.next;
-    }
-    return str + this.outro;
-  }
-  isEmpty() {
-    let chunk = this.firstChunk;
-    do {
-      if (chunk.intro.length && chunk.intro.trim() || chunk.content.length && chunk.content.trim() || chunk.outro.length && chunk.outro.trim())
-        return false;
-    } while (chunk = chunk.next);
-    return true;
-  }
-  length() {
-    let chunk = this.firstChunk;
-    let length = 0;
-    do {
-      length += chunk.intro.length + chunk.content.length + chunk.outro.length;
-    } while (chunk = chunk.next);
-    return length;
-  }
-  trimLines() {
-    return this.trim("[\\r\\n]");
-  }
-  trim(charType) {
-    return this.trimStart(charType).trimEnd(charType);
-  }
-  trimEndAborted(charType) {
-    const rx = new RegExp((charType || "\\s") + "+$");
-    this.outro = this.outro.replace(rx, "");
-    if (this.outro.length) return true;
-    let chunk = this.lastChunk;
-    do {
-      const end = chunk.end;
-      const aborted = chunk.trimEnd(rx);
-      if (chunk.end !== end) {
-        if (this.lastChunk === chunk) {
-          this.lastChunk = chunk.next;
-        }
-        this.byEnd[chunk.end] = chunk;
-        this.byStart[chunk.next.start] = chunk.next;
-        this.byEnd[chunk.next.end] = chunk.next;
-      }
-      if (aborted) return true;
-      chunk = chunk.previous;
-    } while (chunk);
-    return false;
-  }
-  trimEnd(charType) {
-    this.trimEndAborted(charType);
-    return this;
-  }
-  trimStartAborted(charType) {
-    const rx = new RegExp("^" + (charType || "\\s") + "+");
-    this.intro = this.intro.replace(rx, "");
-    if (this.intro.length) return true;
-    let chunk = this.firstChunk;
-    do {
-      const end = chunk.end;
-      const aborted = chunk.trimStart(rx);
-      if (chunk.end !== end) {
-        if (chunk === this.lastChunk) this.lastChunk = chunk.next;
-        this.byEnd[chunk.end] = chunk;
-        this.byStart[chunk.next.start] = chunk.next;
-        this.byEnd[chunk.next.end] = chunk.next;
-      }
-      if (aborted) return true;
-      chunk = chunk.next;
-    } while (chunk);
-    return false;
-  }
-  trimStart(charType) {
-    this.trimStartAborted(charType);
-    return this;
-  }
-  hasChanged() {
-    return this.original !== this.toString();
-  }
-  _replaceRegexp(searchValue, replacement) {
-    function getReplacement(match2, str) {
-      if (typeof replacement === "string") {
-        return replacement.replace(/\$(\$|&|\d+)/g, (_, i) => {
-          if (i === "$") return "$";
-          if (i === "&") return match2[0];
-          const num = +i;
-          if (num < match2.length) return match2[+i];
-          return `$${i}`;
-        });
-      } else {
-        return replacement(...match2, match2.index, str, match2.groups);
-      }
-    }
-    function matchAll2(re, str) {
-      let match2;
-      const matches2 = [];
-      while (match2 = re.exec(str)) {
-        matches2.push(match2);
-      }
-      return matches2;
-    }
-    if (searchValue.global) {
-      const matches2 = matchAll2(searchValue, this.original);
-      matches2.forEach((match2) => {
-        if (match2.index != null) {
-          const replacement2 = getReplacement(match2, this.original);
-          if (replacement2 !== match2[0]) {
-            this.overwrite(
-              match2.index,
-              match2.index + match2[0].length,
-              replacement2
-            );
-          }
-        }
-      });
-    } else {
-      const match2 = this.original.match(searchValue);
-      if (match2 && match2.index != null) {
-        const replacement2 = getReplacement(match2, this.original);
-        if (replacement2 !== match2[0]) {
-          this.overwrite(
-            match2.index,
-            match2.index + match2[0].length,
-            replacement2
-          );
-        }
-      }
-    }
-    return this;
-  }
-  _replaceString(string2, replacement) {
-    const { original } = this;
-    const index = original.indexOf(string2);
-    if (index !== -1) {
-      this.overwrite(index, index + string2.length, replacement);
-    }
-    return this;
-  }
-  replace(searchValue, replacement) {
-    if (typeof searchValue === "string") {
-      return this._replaceString(searchValue, replacement);
-    }
-    return this._replaceRegexp(searchValue, replacement);
-  }
-  _replaceAllString(string2, replacement) {
-    const { original } = this;
-    const stringLength = string2.length;
-    for (let index = original.indexOf(string2); index !== -1; index = original.indexOf(string2, index + stringLength)) {
-      const previous = original.slice(index, index + stringLength);
-      if (previous !== replacement)
-        this.overwrite(index, index + stringLength, replacement);
-    }
-    return this;
-  }
-  replaceAll(searchValue, replacement) {
-    if (typeof searchValue === "string") {
-      return this._replaceAllString(searchValue, replacement);
-    }
-    if (!searchValue.global) {
-      throw new TypeError(
-        "MagicString.prototype.replaceAll called with a non-global RegExp argument"
-      );
-    }
-    return this._replaceRegexp(searchValue, replacement);
-  }
-};
-function isReference(node2, parent) {
-  if (node2.type === "MemberExpression") {
-    return !node2.computed && isReference(node2.object, node2);
-  }
-  if (node2.type === "Identifier") {
-    if (!parent)
-      return true;
-    switch (parent.type) {
-      case "MemberExpression":
-        return parent.computed || node2 === parent.object;
-      case "MethodDefinition":
-        return parent.computed;
-      case "FieldDefinition":
-        return parent.computed || node2 === parent.value;
-      case "Property":
-        return parent.computed || node2 === parent.value;
-      case "ExportSpecifier":
-      case "ImportSpecifier":
-        return node2 === parent.local;
-      case "LabeledStatement":
-      case "BreakStatement":
-      case "ContinueStatement":
-        return false;
-      default:
-        return true;
-    }
-  }
-  return false;
-}
-var version$2 = "26.0.1";
-var peerDependencies = {
-  rollup: "^2.68.0||^3.0.0||^4.0.0"
-};
-function tryParse(parse4, code, id) {
-  try {
-    return parse4(code, { allowReturnOutsideFunction: true });
-  } catch (err2) {
-    err2.message += ` in ${id}`;
-    throw err2;
-  }
-}
-var firstpassGlobal = /\b(?:require|module|exports|global)\b/;
-var firstpassNoGlobal = /\b(?:require|module|exports)\b/;
-function hasCjsKeywords(code, ignoreGlobal) {
-  const firstpass = ignoreGlobal ? firstpassNoGlobal : firstpassGlobal;
-  return firstpass.test(code);
-}
-function analyzeTopLevelStatements(parse4, code, id) {
-  const ast = tryParse(parse4, code, id);
-  let isEsModule = false;
-  let hasDefaultExport = false;
-  let hasNamedExports = false;
-  for (const node2 of ast.body) {
-    switch (node2.type) {
-      case "ExportDefaultDeclaration":
-        isEsModule = true;
-        hasDefaultExport = true;
-        break;
-      case "ExportNamedDeclaration":
-        isEsModule = true;
-        if (node2.declaration) {
-          hasNamedExports = true;
-        } else {
-          for (const specifier of node2.specifiers) {
-            if (specifier.exported.name === "default") {
-              hasDefaultExport = true;
-            } else {
-              hasNamedExports = true;
-            }
-          }
-        }
-        break;
-      case "ExportAllDeclaration":
-        isEsModule = true;
-        if (node2.exported && node2.exported.name === "default") {
-          hasDefaultExport = true;
-        } else {
-          hasNamedExports = true;
-        }
-        break;
-      case "ImportDeclaration":
-        isEsModule = true;
-        break;
-    }
-  }
-  return { isEsModule, hasDefaultExport, hasNamedExports, ast };
-}
-function deconflict(scopes, globals, identifier) {
-  let i = 1;
-  let deconflicted = makeLegalIdentifier(identifier);
-  const hasConflicts = () => scopes.some((scope) => scope.contains(deconflicted)) || globals.has(deconflicted);
-  while (hasConflicts()) {
-    deconflicted = makeLegalIdentifier(`${identifier}_${i}`);
-    i += 1;
-  }
-  for (const scope of scopes) {
-    scope.declarations[deconflicted] = true;
-  }
-  return deconflicted;
-}
-function getName(id) {
-  const name2 = makeLegalIdentifier((0, import_path.basename)(id, (0, import_path.extname)(id)));
-  if (name2 !== "index") {
-    return name2;
-  }
-  return makeLegalIdentifier((0, import_path.basename)((0, import_path.dirname)(id)));
-}
-function normalizePathSlashes(path3) {
-  return path3.replace(/\\/g, "/");
-}
-var getVirtualPathForDynamicRequirePath = (path3, commonDir) => `/${normalizePathSlashes((0, import_path.relative)(commonDir, path3))}`;
-function capitalize(name2) {
-  return name2[0].toUpperCase() + name2.slice(1);
-}
-function getStrictRequiresFilter({ strictRequires }) {
-  switch (strictRequires) {
-    case true:
-      return { strictRequiresFilter: () => true, detectCyclesAndConditional: false };
-    case void 0:
-    case "auto":
-    case "debug":
-    case null:
-      return { strictRequiresFilter: () => false, detectCyclesAndConditional: true };
-    case false:
-      return { strictRequiresFilter: () => false, detectCyclesAndConditional: false };
-    default:
-      if (typeof strictRequires === "string" || Array.isArray(strictRequires)) {
-        return {
-          strictRequiresFilter: createFilter$1(strictRequires),
-          detectCyclesAndConditional: false
-        };
-      }
-      throw new Error('Unexpected value for "strictRequires" option.');
-  }
-}
-function getPackageEntryPoint(dirPath) {
-  let entryPoint = "index.js";
-  try {
-    if ((0, import_fs.existsSync)((0, import_path.join)(dirPath, "package.json"))) {
-      entryPoint = JSON.parse((0, import_fs.readFileSync)((0, import_path.join)(dirPath, "package.json"), { encoding: "utf8" })).main || entryPoint;
-    }
-  } catch (ignored) {
-  }
-  return entryPoint;
-}
-function isDirectory$1(path3) {
-  try {
-    if ((0, import_fs.statSync)(path3).isDirectory()) return true;
-  } catch (ignored) {
-  }
-  return false;
-}
-function getDynamicRequireModules(patterns, dynamicRequireRoot) {
-  const dynamicRequireModules = /* @__PURE__ */ new Map();
-  const dirNames = /* @__PURE__ */ new Set();
-  for (const pattern2 of !patterns || Array.isArray(patterns) ? patterns || [] : [patterns]) {
-    const isNegated = pattern2.startsWith("!");
-    const modifyMap = (targetPath, resolvedPath) => isNegated ? dynamicRequireModules.delete(targetPath) : dynamicRequireModules.set(targetPath, resolvedPath);
-    for (const path3 of glob$1.sync(isNegated ? pattern2.substr(1) : pattern2).sort((a, b) => a.localeCompare(b, "en"))) {
-      const resolvedPath = (0, import_path.resolve)(path3);
-      const requirePath = normalizePathSlashes(resolvedPath);
-      if (isDirectory$1(resolvedPath)) {
-        dirNames.add(resolvedPath);
-        const modulePath = (0, import_path.resolve)((0, import_path.join)(resolvedPath, getPackageEntryPoint(path3)));
-        modifyMap(requirePath, modulePath);
-        modifyMap(normalizePathSlashes(modulePath), modulePath);
-      } else {
-        dirNames.add((0, import_path.dirname)(resolvedPath));
-        modifyMap(requirePath, resolvedPath);
-      }
-    }
-  }
-  return {
-    commonDir: dirNames.size ? getCommonDir([...dirNames, dynamicRequireRoot]) : null,
-    dynamicRequireModules
-  };
-}
-var FAILED_REQUIRE_ERROR = `throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');`;
-var COMMONJS_REQUIRE_EXPORT = "commonjsRequire";
-var CREATE_COMMONJS_REQUIRE_EXPORT = "createCommonjsRequire";
-function getDynamicModuleRegistry(isDynamicRequireModulesEnabled, dynamicRequireModules, commonDir, ignoreDynamicRequires) {
-  if (!isDynamicRequireModulesEnabled) {
-    return `export function ${COMMONJS_REQUIRE_EXPORT}(path) {
-	${FAILED_REQUIRE_ERROR}
-}`;
-  }
-  const dynamicModuleImports = [...dynamicRequireModules.values()].map(
-    (id, index) => `import ${id.endsWith(".json") ? `json${index}` : `{ __require as require${index} }`} from ${JSON.stringify(id)};`
-  ).join("\n");
-  const dynamicModuleProps = [...dynamicRequireModules.keys()].map(
-    (id, index) => `		${JSON.stringify(getVirtualPathForDynamicRequirePath(id, commonDir))}: ${id.endsWith(".json") ? `function () { return json${index}; }` : `require${index}`}`
-  ).join(",\n");
-  return `${dynamicModuleImports}
-
-var dynamicModules;
-
-function getDynamicModules() {
-	return dynamicModules || (dynamicModules = {
-${dynamicModuleProps}
-	});
-}
-
-export function ${CREATE_COMMONJS_REQUIRE_EXPORT}(originalModuleDir) {
-	function handleRequire(path) {
-		var resolvedPath = commonjsResolve(path, originalModuleDir);
-		if (resolvedPath !== null) {
-			return getDynamicModules()[resolvedPath]();
-		}
-		${ignoreDynamicRequires ? "return require(path);" : FAILED_REQUIRE_ERROR}
-	}
-	handleRequire.resolve = function (path) {
-		var resolvedPath = commonjsResolve(path, originalModuleDir);
-		if (resolvedPath !== null) {
-			return resolvedPath;
-		}
-		return require.resolve(path);
-	}
-	return handleRequire;
-}
-
-function commonjsResolve (path, originalModuleDir) {
-	var shouldTryNodeModules = isPossibleNodeModulesPath(path);
-	path = normalize(path);
-	var relPath;
-	if (path[0] === '/') {
-		originalModuleDir = '';
-	}
-	var modules = getDynamicModules();
-	var checkedExtensions = ['', '.js', '.json'];
-	while (true) {
-		if (!shouldTryNodeModules) {
-			relPath = normalize(originalModuleDir + '/' + path);
-		} else {
-			relPath = normalize(originalModuleDir + '/node_modules/' + path);
-		}
-
-		if (relPath.endsWith('/..')) {
-			break; // Travelled too far up, avoid infinite loop
-		}
-
-		for (var extensionIndex = 0; extensionIndex < checkedExtensions.length; extensionIndex++) {
-			var resolvedPath = relPath + checkedExtensions[extensionIndex];
-			if (modules[resolvedPath]) {
-				return resolvedPath;
-			}
-		}
-		if (!shouldTryNodeModules) break;
-		var nextDir = normalize(originalModuleDir + '/..');
-		if (nextDir === originalModuleDir) break;
-		originalModuleDir = nextDir;
-	}
-	return null;
-}
-
-function isPossibleNodeModulesPath (modulePath) {
-	var c0 = modulePath[0];
-	if (c0 === '/' || c0 === '\\\\') return false;
-	var c1 = modulePath[1], c2 = modulePath[2];
-	if ((c0 === '.' && (!c1 || c1 === '/' || c1 === '\\\\')) ||
-		(c0 === '.' && c1 === '.' && (!c2 || c2 === '/' || c2 === '\\\\'))) return false;
-	if (c1 === ':' && (c2 === '/' || c2 === '\\\\')) return false;
-	return true;
-}
-
-function normalize (path) {
-	path = path.replace(/\\\\/g, '/');
-	var parts = path.split('/');
-	var slashed = parts[0] === '';
-	for (var i = 1; i < parts.length; i++) {
-		if (parts[i] === '.' || parts[i] === '') {
-			parts.splice(i--, 1);
-		}
-	}
-	for (var i = 1; i < parts.length; i++) {
-		if (parts[i] !== '..') continue;
-		if (i > 0 && parts[i - 1] !== '..' && parts[i - 1] !== '.') {
-			parts.splice(--i, 2);
-			i--;
-		}
-	}
-	path = parts.join('/');
-	if (slashed && path[0] !== '/') path = '/' + path;
-	else if (path.length === 0) path = '.';
-	return path;
-}`;
-}
-var isWrappedId = (id, suffix) => id.endsWith(suffix);
-var wrapId = (id, suffix) => `\0${id}${suffix}`;
-var unwrapId = (wrappedId, suffix) => wrappedId.slice(1, -suffix.length);
-var PROXY_SUFFIX = "?commonjs-proxy";
-var WRAPPED_SUFFIX = "?commonjs-wrapped";
-var EXTERNAL_SUFFIX = "?commonjs-external";
-var EXPORTS_SUFFIX = "?commonjs-exports";
-var MODULE_SUFFIX = "?commonjs-module";
-var ENTRY_SUFFIX = "?commonjs-entry";
-var ES_IMPORT_SUFFIX = "?commonjs-es-import";
-var DYNAMIC_MODULES_ID = "\0commonjs-dynamic-modules";
-var HELPERS_ID = "\0commonjsHelpers.js";
-var IS_WRAPPED_COMMONJS = "withRequireFunction";
-var HELPERS = `
-export var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
-
-export function getDefaultExportFromCjs (x) {
-	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
-}
-
-export function getDefaultExportFromNamespaceIfPresent (n) {
-	return n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;
-}
-
-export function getDefaultExportFromNamespaceIfNotNamed (n) {
-	return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;
-}
-
-export function getAugmentedNamespace(n) {
-  if (n.__esModule) return n;
-  var f = n.default;
-	if (typeof f == "function") {
-		var a = function a () {
-			if (this instanceof a) {
-        return Reflect.construct(f, arguments, this.constructor);
-			}
-			return f.apply(this, arguments);
-		};
-		a.prototype = f.prototype;
-  } else a = {};
-  Object.defineProperty(a, '__esModule', {value: true});
-	Object.keys(n).forEach(function (k) {
-		var d = Object.getOwnPropertyDescriptor(n, k);
-		Object.defineProperty(a, k, d.get ? d : {
-			enumerable: true,
-			get: function () {
-				return n[k];
-			}
-		});
-	});
-	return a;
-}
-`;
-function getHelpersModule() {
-  return HELPERS;
-}
-function getUnknownRequireProxy(id, requireReturnsDefault) {
-  if (requireReturnsDefault === true || id.endsWith(".json")) {
-    return `export { default } from ${JSON.stringify(id)};`;
-  }
-  const name2 = getName(id);
-  const exported = requireReturnsDefault === "auto" ? `import { getDefaultExportFromNamespaceIfNotNamed } from "${HELPERS_ID}"; export default /*@__PURE__*/getDefaultExportFromNamespaceIfNotNamed(${name2});` : requireReturnsDefault === "preferred" ? `import { getDefaultExportFromNamespaceIfPresent } from "${HELPERS_ID}"; export default /*@__PURE__*/getDefaultExportFromNamespaceIfPresent(${name2});` : !requireReturnsDefault ? `import { getAugmentedNamespace } from "${HELPERS_ID}"; export default /*@__PURE__*/getAugmentedNamespace(${name2});` : `export default ${name2};`;
-  return `import * as ${name2} from ${JSON.stringify(id)}; ${exported}`;
-}
-async function getStaticRequireProxy(id, requireReturnsDefault, loadModule) {
-  const name2 = getName(id);
-  const {
-    meta: { commonjs: commonjsMeta }
-  } = await loadModule({ id });
-  if (!commonjsMeta) {
-    return getUnknownRequireProxy(id, requireReturnsDefault);
-  }
-  if (commonjsMeta.isCommonJS) {
-    return `export { __moduleExports as default } from ${JSON.stringify(id)};`;
-  }
-  if (!requireReturnsDefault) {
-    return `import { getAugmentedNamespace } from "${HELPERS_ID}"; import * as ${name2} from ${JSON.stringify(
-      id
-    )}; export default /*@__PURE__*/getAugmentedNamespace(${name2});`;
-  }
-  if (requireReturnsDefault !== true && (requireReturnsDefault === "namespace" || !commonjsMeta.hasDefaultExport || requireReturnsDefault === "auto" && commonjsMeta.hasNamedExports)) {
-    return `import * as ${name2} from ${JSON.stringify(id)}; export default ${name2};`;
-  }
-  return `export { default } from ${JSON.stringify(id)};`;
-}
-function getEntryProxy(id, defaultIsModuleExports, getModuleInfo, shebang) {
-  const {
-    meta: { commonjs: commonjsMeta },
-    hasDefaultExport
-  } = getModuleInfo(id);
-  if (!commonjsMeta || commonjsMeta.isCommonJS !== IS_WRAPPED_COMMONJS) {
-    const stringifiedId = JSON.stringify(id);
-    let code = `export * from ${stringifiedId};`;
-    if (hasDefaultExport) {
-      code += `export { default } from ${stringifiedId};`;
-    }
-    return shebang + code;
-  }
-  const result = getEsImportProxy(id, defaultIsModuleExports);
-  return {
-    ...result,
-    code: shebang + result.code
-  };
-}
-function getEsImportProxy(id, defaultIsModuleExports) {
-  const name2 = getName(id);
-  const exportsName = `${name2}Exports`;
-  const requireModule = `require${capitalize(name2)}`;
-  let code = `import { getDefaultExportFromCjs } from "${HELPERS_ID}";
-import { __require as ${requireModule} } from ${JSON.stringify(id)};
-var ${exportsName} = ${requireModule}();
-export { ${exportsName} as __moduleExports };`;
-  if (defaultIsModuleExports === true) {
-    code += `
-export { ${exportsName} as default };`;
-  } else {
-    code += `export default /*@__PURE__*/getDefaultExportFromCjs(${exportsName});`;
-  }
-  return {
-    code,
-    syntheticNamedExports: "__moduleExports"
-  };
-}
-function getCandidatesForExtension(resolved, extension2) {
-  return [resolved + extension2, `${resolved}${import_path.sep}index${extension2}`];
-}
-function getCandidates(resolved, extensions2) {
-  return extensions2.reduce(
-    (paths, extension2) => paths.concat(getCandidatesForExtension(resolved, extension2)),
-    [resolved]
-  );
-}
-function resolveExtensions(importee, importer, extensions2) {
-  if (importee[0] !== "." || !importer) return void 0;
-  const resolved = (0, import_path.resolve)((0, import_path.dirname)(importer), importee);
-  const candidates = getCandidates(resolved, extensions2);
-  for (let i = 0; i < candidates.length; i += 1) {
-    try {
-      const stats = (0, import_fs.statSync)(candidates[i]);
-      if (stats.isFile()) return { id: candidates[i] };
-    } catch (err2) {
-    }
-  }
-  return void 0;
-}
-function getResolveId(extensions2, isPossibleCjsId) {
-  const currentlyResolving = /* @__PURE__ */ new Map();
-  return {
-    /**
-     * This is a Maps of importers to Sets of require sources being resolved at
-     * the moment by resolveRequireSourcesAndUpdateMeta
-     */
-    currentlyResolving,
-    async resolveId(importee, importer, resolveOptions) {
-      const customOptions = resolveOptions.custom;
-      if (customOptions && customOptions["node-resolve"] && customOptions["node-resolve"].isRequire) {
-        return null;
-      }
-      const currentlyResolvingForParent = currentlyResolving.get(importer);
-      if (currentlyResolvingForParent && currentlyResolvingForParent.has(importee)) {
-        this.warn({
-          code: "THIS_RESOLVE_WITHOUT_OPTIONS",
-          message: 'It appears a plugin has implemented a "resolveId" hook that uses "this.resolve" without forwarding the third "options" parameter of "resolveId". This is problematic as it can lead to wrong module resolutions especially for the node-resolve plugin and in certain cases cause early exit errors for the commonjs plugin.\nIn rare cases, this warning can appear if the same file is both imported and required from the same mixed ES/CommonJS module, in which case it can be ignored.',
-          url: "https://rollupjs.org/guide/en/#resolveid"
-        });
-        return null;
-      }
-      if (isWrappedId(importee, WRAPPED_SUFFIX)) {
-        return unwrapId(importee, WRAPPED_SUFFIX);
-      }
-      if (importee.endsWith(ENTRY_SUFFIX) || isWrappedId(importee, MODULE_SUFFIX) || isWrappedId(importee, EXPORTS_SUFFIX) || isWrappedId(importee, PROXY_SUFFIX) || isWrappedId(importee, ES_IMPORT_SUFFIX) || isWrappedId(importee, EXTERNAL_SUFFIX) || importee.startsWith(HELPERS_ID) || importee === DYNAMIC_MODULES_ID) {
-        return importee;
-      }
-      if (importer) {
-        if (importer === DYNAMIC_MODULES_ID || // Proxies are only importing resolved ids, no need to resolve again
-        isWrappedId(importer, PROXY_SUFFIX) || isWrappedId(importer, ES_IMPORT_SUFFIX) || importer.endsWith(ENTRY_SUFFIX)) {
-          return importee;
-        }
-        if (isWrappedId(importer, EXTERNAL_SUFFIX)) {
-          if (!await this.resolve(
-            importee,
-            importer,
-            Object.assign({ skipSelf: true }, resolveOptions)
-          )) {
-            return null;
-          }
-          return { id: importee, external: true };
-        }
-      }
-      if (importee.startsWith("\0")) {
-        return null;
-      }
-      const resolved = await this.resolve(
-        importee,
-        importer,
-        Object.assign({ skipSelf: true }, resolveOptions)
-      ) || resolveExtensions(importee, importer, extensions2);
-      if (!resolved || resolved.external || resolved.id.endsWith(ENTRY_SUFFIX) || isWrappedId(resolved.id, ES_IMPORT_SUFFIX) || !isPossibleCjsId(resolved.id)) {
-        return resolved;
-      }
-      const moduleInfo = await this.load(resolved);
-      const {
-        meta: { commonjs: commonjsMeta }
-      } = moduleInfo;
-      if (commonjsMeta) {
-        const { isCommonJS } = commonjsMeta;
-        if (isCommonJS) {
-          if (resolveOptions.isEntry) {
-            moduleInfo.moduleSideEffects = true;
-            return resolved.id + ENTRY_SUFFIX;
-          }
-          if (isCommonJS === IS_WRAPPED_COMMONJS) {
-            return { id: wrapId(resolved.id, ES_IMPORT_SUFFIX), meta: { commonjs: { resolved } } };
-          }
-        }
-      }
-      return resolved;
-    }
-  };
-}
-function getRequireResolver(extensions2, detectCyclesAndConditional, currentlyResolving) {
-  const knownCjsModuleTypes = /* @__PURE__ */ Object.create(null);
-  const requiredIds = /* @__PURE__ */ Object.create(null);
-  const unconditionallyRequiredIds = /* @__PURE__ */ Object.create(null);
-  const dependencies = /* @__PURE__ */ Object.create(null);
-  const getDependencies = (id) => dependencies[id] || (dependencies[id] = /* @__PURE__ */ new Set());
-  const isCyclic = (id) => {
-    const dependenciesToCheck = new Set(getDependencies(id));
-    for (const dependency of dependenciesToCheck) {
-      if (dependency === id) {
-        return true;
-      }
-      for (const childDependency of getDependencies(dependency)) {
-        dependenciesToCheck.add(childDependency);
-      }
-    }
-    return false;
-  };
-  const fullyAnalyzedModules = /* @__PURE__ */ Object.create(null);
-  const getTypeForFullyAnalyzedModule = (id) => {
-    const knownType = knownCjsModuleTypes[id];
-    if (knownType !== true || !detectCyclesAndConditional || fullyAnalyzedModules[id]) {
-      return knownType;
-    }
-    if (isCyclic(id)) {
-      return knownCjsModuleTypes[id] = IS_WRAPPED_COMMONJS;
-    }
-    return knownType;
-  };
-  const setInitialParentType = (id, initialCommonJSType) => {
-    if (fullyAnalyzedModules[id]) {
-      return;
-    }
-    knownCjsModuleTypes[id] = initialCommonJSType;
-    if (detectCyclesAndConditional && knownCjsModuleTypes[id] === true && requiredIds[id] && !unconditionallyRequiredIds[id]) {
-      knownCjsModuleTypes[id] = IS_WRAPPED_COMMONJS;
-    }
-  };
-  const analyzeRequiredModule = async (parentId, resolved, isConditional, loadModule) => {
-    const childId = resolved.id;
-    requiredIds[childId] = true;
-    if (!(isConditional || knownCjsModuleTypes[parentId] === IS_WRAPPED_COMMONJS)) {
-      unconditionallyRequiredIds[childId] = true;
-    }
-    getDependencies(parentId).add(childId);
-    if (!isCyclic(childId)) {
-      await loadModule(resolved);
-    }
-  };
-  const getTypeForImportedModule = async (resolved, loadModule) => {
-    if (resolved.id in knownCjsModuleTypes) {
-      return knownCjsModuleTypes[resolved.id];
-    }
-    const {
-      meta: { commonjs: commonjs2 }
-    } = await loadModule(resolved);
-    return commonjs2 && commonjs2.isCommonJS || false;
-  };
-  return {
-    getWrappedIds: () => Object.keys(knownCjsModuleTypes).filter(
-      (id) => knownCjsModuleTypes[id] === IS_WRAPPED_COMMONJS
-    ),
-    isRequiredId: (id) => requiredIds[id],
-    async shouldTransformCachedModule({
-      id: parentId,
-      resolvedSources,
-      meta: { commonjs: parentMeta }
-    }) {
-      if (!(parentMeta && parentMeta.isCommonJS)) knownCjsModuleTypes[parentId] = false;
-      if (isWrappedId(parentId, ES_IMPORT_SUFFIX)) return false;
-      const parentRequires = parentMeta && parentMeta.requires;
-      if (parentRequires) {
-        setInitialParentType(parentId, parentMeta.initialCommonJSType);
-        await Promise.all(
-          parentRequires.map(
-            ({ resolved, isConditional }) => analyzeRequiredModule(parentId, resolved, isConditional, this.load)
-          )
-        );
-        if (getTypeForFullyAnalyzedModule(parentId) !== parentMeta.isCommonJS) {
-          return true;
-        }
-        for (const {
-          resolved: { id }
-        } of parentRequires) {
-          if (getTypeForFullyAnalyzedModule(id) !== parentMeta.isRequiredCommonJS[id]) {
-            return true;
-          }
-        }
-        fullyAnalyzedModules[parentId] = true;
-        for (const {
-          resolved: { id }
-        } of parentRequires) {
-          fullyAnalyzedModules[id] = true;
-        }
-      }
-      const parentRequireSet = new Set((parentRequires || []).map(({ resolved: { id } }) => id));
-      return (await Promise.all(
-        Object.keys(resolvedSources).map((source) => resolvedSources[source]).filter(({ id, external }) => !(external || parentRequireSet.has(id))).map(async (resolved) => {
-          if (isWrappedId(resolved.id, ES_IMPORT_SUFFIX)) {
-            return await getTypeForImportedModule(
-              (await this.load({ id: resolved.id })).meta.commonjs.resolved,
-              this.load
-            ) !== IS_WRAPPED_COMMONJS;
-          }
-          return await getTypeForImportedModule(resolved, this.load) === IS_WRAPPED_COMMONJS;
-        })
-      )).some((shouldTransform) => shouldTransform);
-    },
-    /* eslint-disable no-param-reassign */
-    resolveRequireSourcesAndUpdateMeta: (rollupContext) => async (parentId, isParentCommonJS, parentMeta, sources) => {
-      parentMeta.initialCommonJSType = isParentCommonJS;
-      parentMeta.requires = [];
-      parentMeta.isRequiredCommonJS = /* @__PURE__ */ Object.create(null);
-      setInitialParentType(parentId, isParentCommonJS);
-      const currentlyResolvingForParent = currentlyResolving.get(parentId) || /* @__PURE__ */ new Set();
-      currentlyResolving.set(parentId, currentlyResolvingForParent);
-      const requireTargets = await Promise.all(
-        sources.map(async ({ source, isConditional }) => {
-          if (source.startsWith("\0")) {
-            return { id: source, allowProxy: false };
-          }
-          currentlyResolvingForParent.add(source);
-          const resolved = await rollupContext.resolve(source, parentId, {
-            skipSelf: false,
-            custom: { "node-resolve": { isRequire: true } }
-          }) || resolveExtensions(source, parentId, extensions2);
-          currentlyResolvingForParent.delete(source);
-          if (!resolved) {
-            return { id: wrapId(source, EXTERNAL_SUFFIX), allowProxy: false };
-          }
-          const childId = resolved.id;
-          if (resolved.external) {
-            return { id: wrapId(childId, EXTERNAL_SUFFIX), allowProxy: false };
-          }
-          parentMeta.requires.push({ resolved, isConditional });
-          await analyzeRequiredModule(parentId, resolved, isConditional, rollupContext.load);
-          return { id: childId, allowProxy: true };
-        })
-      );
-      parentMeta.isCommonJS = getTypeForFullyAnalyzedModule(parentId);
-      fullyAnalyzedModules[parentId] = true;
-      return requireTargets.map(({ id: dependencyId, allowProxy }, index) => {
-        const isCommonJS = parentMeta.isRequiredCommonJS[dependencyId] = getTypeForFullyAnalyzedModule(dependencyId);
-        fullyAnalyzedModules[dependencyId] = true;
-        return {
-          source: sources[index].source,
-          id: allowProxy ? isCommonJS === IS_WRAPPED_COMMONJS ? wrapId(dependencyId, WRAPPED_SUFFIX) : wrapId(dependencyId, PROXY_SUFFIX) : dependencyId,
-          isCommonJS
-        };
-      });
-    },
-    isCurrentlyResolving(source, parentId) {
-      const currentlyResolvingForParent = currentlyResolving.get(parentId);
-      return currentlyResolvingForParent && currentlyResolvingForParent.has(source);
-    }
-  };
-}
-function validateVersion(actualVersion, peerDependencyVersion, name2) {
-  const versionRegexp = /\^(\d+\.\d+\.\d+)/g;
-  let minMajor = Infinity;
-  let minMinor = Infinity;
-  let minPatch = Infinity;
-  let foundVersion;
-  while (foundVersion = versionRegexp.exec(peerDependencyVersion)) {
-    const [foundMajor, foundMinor, foundPatch] = foundVersion[1].split(".").map(Number);
-    if (foundMajor < minMajor) {
-      minMajor = foundMajor;
-      minMinor = foundMinor;
-      minPatch = foundPatch;
-    }
-  }
-  if (!actualVersion) {
-    throw new Error(
-      `Insufficient ${name2} version: "@rollup/plugin-commonjs" requires at least ${name2}@${minMajor}.${minMinor}.${minPatch}.`
-    );
-  }
-  const [major, minor, patch] = actualVersion.split(".").map(Number);
-  if (major < minMajor || major === minMajor && (minor < minMinor || minor === minMinor && patch < minPatch)) {
-    throw new Error(
-      `Insufficient ${name2} version: "@rollup/plugin-commonjs" requires at least ${name2}@${minMajor}.${minMinor}.${minPatch} but found ${name2}@${actualVersion}.`
-    );
-  }
-}
-var operators = {
-  "==": (x) => equals(x.left, x.right, false),
-  "!=": (x) => not(operators["=="](x)),
-  "===": (x) => equals(x.left, x.right, true),
-  "!==": (x) => not(operators["==="](x)),
-  "!": (x) => isFalsy(x.argument),
-  "&&": (x) => isTruthy(x.left) && isTruthy(x.right),
-  "||": (x) => isTruthy(x.left) || isTruthy(x.right)
-};
-function not(value2) {
-  return value2 === null ? value2 : !value2;
-}
-function equals(a, b, strict) {
-  if (a.type !== b.type) return null;
-  if (a.type === "Literal") return strict ? a.value === b.value : a.value == b.value;
-  return null;
-}
-function isTruthy(node2) {
-  if (!node2) return false;
-  if (node2.type === "Literal") return !!node2.value;
-  if (node2.type === "ParenthesizedExpression") return isTruthy(node2.expression);
-  if (node2.operator in operators) return operators[node2.operator](node2);
-  return null;
-}
-function isFalsy(node2) {
-  return not(isTruthy(node2));
-}
-function getKeypath(node2) {
-  const parts = [];
-  while (node2.type === "MemberExpression") {
-    if (node2.computed) return null;
-    parts.unshift(node2.property.name);
-    node2 = node2.object;
-  }
-  if (node2.type !== "Identifier") return null;
-  const { name: name2 } = node2;
-  parts.unshift(name2);
-  return { name: name2, keypath: parts.join(".") };
-}
-var KEY_COMPILED_ESM = "__esModule";
-function getDefineCompiledEsmType(node2) {
-  const definedPropertyWithExports = getDefinePropertyCallName(node2, "exports");
-  const definedProperty = definedPropertyWithExports || getDefinePropertyCallName(node2, "module.exports");
-  if (definedProperty && definedProperty.key === KEY_COMPILED_ESM) {
-    return isTruthy(definedProperty.value) ? definedPropertyWithExports ? "exports" : "module" : false;
-  }
-  return false;
-}
-function getDefinePropertyCallName(node2, targetName) {
-  const {
-    callee: { object, property }
-  } = node2;
-  if (!object || object.type !== "Identifier" || object.name !== "Object") return;
-  if (!property || property.type !== "Identifier" || property.name !== "defineProperty") return;
-  if (node2.arguments.length !== 3) return;
-  const targetNames = targetName.split(".");
-  const [target, key, value2] = node2.arguments;
-  if (targetNames.length === 1) {
-    if (target.type !== "Identifier" || target.name !== targetNames[0]) {
-      return;
-    }
-  }
-  if (targetNames.length === 2) {
-    if (target.type !== "MemberExpression" || target.object.name !== targetNames[0] || target.property.name !== targetNames[1]) {
-      return;
-    }
-  }
-  if (value2.type !== "ObjectExpression" || !value2.properties) return;
-  const valueProperty = value2.properties.find((p) => p.key && p.key.name === "value");
-  if (!valueProperty || !valueProperty.value) return;
-  return { key: key.value, value: valueProperty.value };
-}
-function isShorthandProperty(parent) {
-  return parent && parent.type === "Property" && parent.shorthand;
-}
-function wrapCode(magicString, uses, moduleName, exportsName, indentExclusionRanges) {
-  const args = [];
-  const passedArgs = [];
-  if (uses.module) {
-    args.push("module");
-    passedArgs.push(moduleName);
-  }
-  if (uses.exports) {
-    args.push("exports");
-    passedArgs.push(uses.module ? `${moduleName}.exports` : exportsName);
-  }
-  magicString.trim().indent("	", { exclude: indentExclusionRanges }).prepend(`(function (${args.join(", ")}) {
-`).append(` 
-} (${passedArgs.join(", ")}));`);
-}
-function rewriteExportsAndGetExportsBlock(magicString, moduleName, exportsName, exportedExportsName, wrapped, moduleExportsAssignments, firstTopLevelModuleExportsAssignment, exportsAssignmentsByName, topLevelAssignments, defineCompiledEsmExpressions, deconflictedExportNames, code, HELPERS_NAME, exportMode, defaultIsModuleExports, usesRequireWrapper, requireName) {
-  const exports2 = [];
-  const exportDeclarations = [];
-  if (usesRequireWrapper) {
-    getExportsWhenUsingRequireWrapper(
-      magicString,
-      wrapped,
-      exportMode,
-      exports2,
-      moduleExportsAssignments,
-      exportsAssignmentsByName,
-      moduleName,
-      exportsName,
-      requireName,
-      defineCompiledEsmExpressions
-    );
-  } else if (exportMode === "replace") {
-    getExportsForReplacedModuleExports(
-      magicString,
-      exports2,
-      exportDeclarations,
-      moduleExportsAssignments,
-      firstTopLevelModuleExportsAssignment,
-      exportsName,
-      defaultIsModuleExports,
-      HELPERS_NAME
-    );
-  } else {
-    if (exportMode === "module") {
-      exportDeclarations.push(`var ${exportedExportsName} = ${moduleName}.exports`);
-      exports2.push(`${exportedExportsName} as __moduleExports`);
-    } else {
-      exports2.push(`${exportsName} as __moduleExports`);
-    }
-    if (wrapped) {
-      exportDeclarations.push(
-        getDefaultExportDeclaration(exportedExportsName, defaultIsModuleExports, HELPERS_NAME)
-      );
-    } else {
-      getExports(
-        magicString,
-        exports2,
-        exportDeclarations,
-        moduleExportsAssignments,
-        exportsAssignmentsByName,
-        deconflictedExportNames,
-        topLevelAssignments,
-        moduleName,
-        exportsName,
-        exportedExportsName,
-        defineCompiledEsmExpressions,
-        HELPERS_NAME,
-        defaultIsModuleExports,
-        exportMode
-      );
-    }
-  }
-  if (exports2.length) {
-    exportDeclarations.push(`export { ${exports2.join(", ")} }`);
-  }
-  return `
-
-${exportDeclarations.join(";\n")};`;
-}
-function getExportsWhenUsingRequireWrapper(magicString, wrapped, exportMode, exports2, moduleExportsAssignments, exportsAssignmentsByName, moduleName, exportsName, requireName, defineCompiledEsmExpressions) {
-  exports2.push(`${requireName} as __require`);
-  if (wrapped) return;
-  if (exportMode === "replace") {
-    rewriteModuleExportsAssignments(magicString, moduleExportsAssignments, exportsName);
-  } else {
-    rewriteModuleExportsAssignments(magicString, moduleExportsAssignments, `${moduleName}.exports`);
-    for (const [exportName, { nodes }] of exportsAssignmentsByName) {
-      for (const { node: node2, type } of nodes) {
-        magicString.overwrite(
-          node2.start,
-          node2.left.end,
-          `${exportMode === "module" && type === "module" ? `${moduleName}.exports` : exportsName}.${exportName}`
-        );
-      }
-    }
-    replaceDefineCompiledEsmExpressionsAndGetIfRestorable(
-      defineCompiledEsmExpressions,
-      magicString,
-      exportMode,
-      moduleName,
-      exportsName
-    );
-  }
-}
-function getExportsForReplacedModuleExports(magicString, exports2, exportDeclarations, moduleExportsAssignments, firstTopLevelModuleExportsAssignment, exportsName, defaultIsModuleExports, HELPERS_NAME) {
-  for (const { left } of moduleExportsAssignments) {
-    magicString.overwrite(left.start, left.end, exportsName);
-  }
-  magicString.prependRight(firstTopLevelModuleExportsAssignment.left.start, "var ");
-  exports2.push(`${exportsName} as __moduleExports`);
-  exportDeclarations.push(
-    getDefaultExportDeclaration(exportsName, defaultIsModuleExports, HELPERS_NAME)
-  );
-}
-function getDefaultExportDeclaration(exportedExportsName, defaultIsModuleExports, HELPERS_NAME) {
-  return `export default ${defaultIsModuleExports === true ? exportedExportsName : defaultIsModuleExports === false ? `${exportedExportsName}.default` : `/*@__PURE__*/${HELPERS_NAME}.getDefaultExportFromCjs(${exportedExportsName})`}`;
-}
-function getExports(magicString, exports2, exportDeclarations, moduleExportsAssignments, exportsAssignmentsByName, deconflictedExportNames, topLevelAssignments, moduleName, exportsName, exportedExportsName, defineCompiledEsmExpressions, HELPERS_NAME, defaultIsModuleExports, exportMode) {
-  let deconflictedDefaultExportName;
-  for (const { left } of moduleExportsAssignments) {
-    magicString.overwrite(left.start, left.end, `${moduleName}.exports`);
-  }
-  for (const [exportName, { nodes }] of exportsAssignmentsByName) {
-    const deconflicted = deconflictedExportNames[exportName];
-    let needsDeclaration = true;
-    for (const { node: node2, type } of nodes) {
-      let replacement = `${deconflicted} = ${exportMode === "module" && type === "module" ? `${moduleName}.exports` : exportsName}.${exportName}`;
-      if (needsDeclaration && topLevelAssignments.has(node2)) {
-        replacement = `var ${replacement}`;
-        needsDeclaration = false;
-      }
-      magicString.overwrite(node2.start, node2.left.end, replacement);
-    }
-    if (needsDeclaration) {
-      magicString.prepend(`var ${deconflicted};
-`);
-    }
-    if (exportName === "default") {
-      deconflictedDefaultExportName = deconflicted;
-    } else {
-      exports2.push(exportName === deconflicted ? exportName : `${deconflicted} as ${exportName}`);
-    }
-  }
-  const isRestorableCompiledEsm = replaceDefineCompiledEsmExpressionsAndGetIfRestorable(
-    defineCompiledEsmExpressions,
-    magicString,
-    exportMode,
-    moduleName,
-    exportsName
-  );
-  if (defaultIsModuleExports === false || defaultIsModuleExports === "auto" && isRestorableCompiledEsm && moduleExportsAssignments.length === 0) {
-    exports2.push(`${deconflictedDefaultExportName || exportedExportsName} as default`);
-  } else if (defaultIsModuleExports === true || !isRestorableCompiledEsm && moduleExportsAssignments.length === 0) {
-    exports2.push(`${exportedExportsName} as default`);
-  } else {
-    exportDeclarations.push(
-      getDefaultExportDeclaration(exportedExportsName, defaultIsModuleExports, HELPERS_NAME)
-    );
-  }
-}
-function rewriteModuleExportsAssignments(magicString, moduleExportsAssignments, exportsName) {
-  for (const { left } of moduleExportsAssignments) {
-    magicString.overwrite(left.start, left.end, exportsName);
-  }
-}
-function replaceDefineCompiledEsmExpressionsAndGetIfRestorable(defineCompiledEsmExpressions, magicString, exportMode, moduleName, exportsName) {
-  let isRestorableCompiledEsm = false;
-  for (const { node: node2, type } of defineCompiledEsmExpressions) {
-    isRestorableCompiledEsm = true;
-    const moduleExportsExpression = node2.type === "CallExpression" ? node2.arguments[0] : node2.left.object;
-    magicString.overwrite(
-      moduleExportsExpression.start,
-      moduleExportsExpression.end,
-      exportMode === "module" && type === "module" ? `${moduleName}.exports` : exportsName
-    );
-  }
-  return isRestorableCompiledEsm;
-}
-function isRequireExpression(node2, scope) {
-  if (!node2) return false;
-  if (node2.type !== "CallExpression") return false;
-  if (node2.arguments.length === 0) return false;
-  return isRequire(node2.callee, scope);
-}
-function isRequire(node2, scope) {
-  return node2.type === "Identifier" && node2.name === "require" && !scope.contains("require") || node2.type === "MemberExpression" && isModuleRequire(node2, scope);
-}
-function isModuleRequire({ object, property }, scope) {
-  return object.type === "Identifier" && object.name === "module" && property.type === "Identifier" && property.name === "require" && !scope.contains("module");
-}
-function hasDynamicArguments(node2) {
-  return node2.arguments.length > 1 || node2.arguments[0].type !== "Literal" && (node2.arguments[0].type !== "TemplateLiteral" || node2.arguments[0].expressions.length > 0);
-}
-var reservedMethod = { resolve: true, cache: true, main: true };
-function isNodeRequirePropertyAccess(parent) {
-  return parent && parent.property && reservedMethod[parent.property.name];
-}
-function getRequireStringArg(node2) {
-  return node2.arguments[0].type === "Literal" ? node2.arguments[0].value : node2.arguments[0].quasis[0].value.cooked;
-}
-function getRequireHandlers() {
-  const requireExpressions = [];
-  function addRequireExpression(sourceId, node2, scope, usesReturnValue, isInsideTryBlock, isInsideConditional, toBeRemoved) {
-    requireExpressions.push({
-      sourceId,
-      node: node2,
-      scope,
-      usesReturnValue,
-      isInsideTryBlock,
-      isInsideConditional,
-      toBeRemoved
-    });
-  }
-  async function rewriteRequireExpressionsAndGetImportBlock(magicString, topLevelDeclarations, reassignedNames, helpersName, dynamicRequireName, moduleName, exportsName, id, exportMode, resolveRequireSourcesAndUpdateMeta, needsRequireWrapper, isEsModule, isDynamicRequireModulesEnabled, getIgnoreTryCatchRequireStatementMode, commonjsMeta) {
-    const imports = [];
-    imports.push(`import * as ${helpersName} from "${HELPERS_ID}"`);
-    if (dynamicRequireName) {
-      imports.push(
-        `import { ${isDynamicRequireModulesEnabled ? CREATE_COMMONJS_REQUIRE_EXPORT : COMMONJS_REQUIRE_EXPORT} as ${dynamicRequireName} } from "${DYNAMIC_MODULES_ID}"`
-      );
-    }
-    if (exportMode === "module") {
-      imports.push(
-        `import { __module as ${moduleName} } from ${JSON.stringify(wrapId(id, MODULE_SUFFIX))}`,
-        `var ${exportsName} = ${moduleName}.exports`
-      );
-    } else if (exportMode === "exports") {
-      imports.push(
-        `import { __exports as ${exportsName} } from ${JSON.stringify(wrapId(id, EXPORTS_SUFFIX))}`
-      );
-    }
-    const requiresBySource = collectSources(requireExpressions);
-    const requireTargets = await resolveRequireSourcesAndUpdateMeta(
-      id,
-      needsRequireWrapper ? IS_WRAPPED_COMMONJS : !isEsModule,
-      commonjsMeta,
-      Object.keys(requiresBySource).map((source) => {
-        return {
-          source,
-          isConditional: requiresBySource[source].every((require3) => require3.isInsideConditional)
-        };
-      })
-    );
-    processRequireExpressions(
-      imports,
-      requireTargets,
-      requiresBySource,
-      getIgnoreTryCatchRequireStatementMode,
-      magicString
-    );
-    return imports.length ? `${imports.join(";\n")};
-
-` : "";
-  }
-  return {
-    addRequireExpression,
-    rewriteRequireExpressionsAndGetImportBlock
-  };
-}
-function collectSources(requireExpressions) {
-  const requiresBySource = /* @__PURE__ */ Object.create(null);
-  for (const requireExpression of requireExpressions) {
-    const { sourceId } = requireExpression;
-    if (!requiresBySource[sourceId]) {
-      requiresBySource[sourceId] = [];
-    }
-    const requires = requiresBySource[sourceId];
-    requires.push(requireExpression);
-  }
-  return requiresBySource;
-}
-function processRequireExpressions(imports, requireTargets, requiresBySource, getIgnoreTryCatchRequireStatementMode, magicString) {
-  const generateRequireName = getGenerateRequireName();
-  for (const { source, id: resolvedId, isCommonJS } of requireTargets) {
-    const requires = requiresBySource[source];
-    const name2 = generateRequireName(requires);
-    let usesRequired = false;
-    let needsImport = false;
-    for (const { node: node2, usesReturnValue, toBeRemoved, isInsideTryBlock } of requires) {
-      const { canConvertRequire, shouldRemoveRequire } = isInsideTryBlock && isWrappedId(resolvedId, EXTERNAL_SUFFIX) ? getIgnoreTryCatchRequireStatementMode(source) : { canConvertRequire: true, shouldRemoveRequire: false };
-      if (shouldRemoveRequire) {
-        if (usesReturnValue) {
-          magicString.overwrite(node2.start, node2.end, "undefined");
-        } else {
-          magicString.remove(toBeRemoved.start, toBeRemoved.end);
-        }
-      } else if (canConvertRequire) {
-        needsImport = true;
-        if (isCommonJS === IS_WRAPPED_COMMONJS) {
-          magicString.overwrite(node2.start, node2.end, `${name2}()`);
-        } else if (usesReturnValue) {
-          usesRequired = true;
-          magicString.overwrite(node2.start, node2.end, name2);
-        } else {
-          magicString.remove(toBeRemoved.start, toBeRemoved.end);
-        }
-      }
-    }
-    if (needsImport) {
-      if (isCommonJS === IS_WRAPPED_COMMONJS) {
-        imports.push(`import { __require as ${name2} } from ${JSON.stringify(resolvedId)}`);
-      } else {
-        imports.push(`import ${usesRequired ? `${name2} from ` : ""}${JSON.stringify(resolvedId)}`);
-      }
-    }
-  }
-}
-function getGenerateRequireName() {
-  let uid = 0;
-  return (requires) => {
-    let name2;
-    const hasNameConflict = ({ scope }) => scope.contains(name2);
-    do {
-      name2 = `require$$${uid}`;
-      uid += 1;
-    } while (requires.some(hasNameConflict));
-    return name2;
-  };
-}
-var exportsPattern = /^(?:module\.)?exports(?:\.([a-zA-Z_$][a-zA-Z_$0-9]*))?$/;
-var functionType = /^(?:FunctionDeclaration|FunctionExpression|ArrowFunctionExpression)$/;
-async function transformCommonjs(parse4, code, id, isEsModule, ignoreGlobal, ignoreRequire, ignoreDynamicRequires, getIgnoreTryCatchRequireStatementMode, sourceMap, isDynamicRequireModulesEnabled, dynamicRequireModules, commonDir, astCache, defaultIsModuleExports, needsRequireWrapper, resolveRequireSourcesAndUpdateMeta, isRequired, checkDynamicRequire, commonjsMeta) {
-  const ast = astCache || tryParse(parse4, code, id);
-  const magicString = new MagicString(code);
-  const uses = {
-    module: false,
-    exports: false,
-    global: false,
-    require: false
-  };
-  const virtualDynamicRequirePath = isDynamicRequireModulesEnabled && getVirtualPathForDynamicRequirePath((0, import_path.dirname)(id), commonDir);
-  let scope = attachScopes(ast, "scope");
-  let lexicalDepth = 0;
-  let programDepth = 0;
-  let classBodyDepth = 0;
-  let currentTryBlockEnd = null;
-  let shouldWrap = false;
-  const globals = /* @__PURE__ */ new Set();
-  let currentConditionalNodeEnd = null;
-  const conditionalNodes = /* @__PURE__ */ new Set();
-  const { addRequireExpression, rewriteRequireExpressionsAndGetImportBlock } = getRequireHandlers();
-  const reassignedNames = /* @__PURE__ */ new Set();
-  const topLevelDeclarations = [];
-  const skippedNodes = /* @__PURE__ */ new Set();
-  const moduleAccessScopes = /* @__PURE__ */ new Set([scope]);
-  const exportsAccessScopes = /* @__PURE__ */ new Set([scope]);
-  const moduleExportsAssignments = [];
-  let firstTopLevelModuleExportsAssignment = null;
-  const exportsAssignmentsByName = /* @__PURE__ */ new Map();
-  const topLevelAssignments = /* @__PURE__ */ new Set();
-  const topLevelDefineCompiledEsmExpressions = [];
-  const replacedGlobal = [];
-  const replacedDynamicRequires = [];
-  const importedVariables = /* @__PURE__ */ new Set();
-  const indentExclusionRanges = [];
-  walk$3(ast, {
-    enter(node2, parent) {
-      if (skippedNodes.has(node2)) {
-        this.skip();
-        return;
-      }
-      if (currentTryBlockEnd !== null && node2.start > currentTryBlockEnd) {
-        currentTryBlockEnd = null;
-      }
-      if (currentConditionalNodeEnd !== null && node2.start > currentConditionalNodeEnd) {
-        currentConditionalNodeEnd = null;
-      }
-      if (currentConditionalNodeEnd === null && conditionalNodes.has(node2)) {
-        currentConditionalNodeEnd = node2.end;
-      }
-      programDepth += 1;
-      if (node2.scope) ({ scope } = node2);
-      if (functionType.test(node2.type)) lexicalDepth += 1;
-      if (sourceMap) {
-        magicString.addSourcemapLocation(node2.start);
-        magicString.addSourcemapLocation(node2.end);
-      }
-      switch (node2.type) {
-        case "AssignmentExpression":
-          if (node2.left.type === "MemberExpression") {
-            const flattened = getKeypath(node2.left);
-            if (!flattened || scope.contains(flattened.name)) return;
-            const exportsPatternMatch = exportsPattern.exec(flattened.keypath);
-            if (!exportsPatternMatch || flattened.keypath === "exports") return;
-            const [, exportName] = exportsPatternMatch;
-            uses[flattened.name] = true;
-            if (flattened.keypath === "module.exports") {
-              moduleExportsAssignments.push(node2);
-              if (programDepth > 3) {
-                moduleAccessScopes.add(scope);
-              } else if (!firstTopLevelModuleExportsAssignment) {
-                firstTopLevelModuleExportsAssignment = node2;
-              }
-            } else if (exportName === KEY_COMPILED_ESM) {
-              if (programDepth > 3) {
-                shouldWrap = true;
-              } else {
-                topLevelDefineCompiledEsmExpressions.push({ node: node2, type: flattened.name });
-              }
-            } else {
-              const exportsAssignments = exportsAssignmentsByName.get(exportName) || {
-                nodes: [],
-                scopes: /* @__PURE__ */ new Set()
-              };
-              exportsAssignments.nodes.push({ node: node2, type: flattened.name });
-              exportsAssignments.scopes.add(scope);
-              exportsAccessScopes.add(scope);
-              exportsAssignmentsByName.set(exportName, exportsAssignments);
-              if (programDepth <= 3) {
-                topLevelAssignments.add(node2);
-              }
-            }
-            skippedNodes.add(node2.left);
-          } else {
-            for (const name2 of extractAssignedNames(node2.left)) {
-              reassignedNames.add(name2);
-            }
-          }
-          return;
-        case "CallExpression": {
-          const defineCompiledEsmType = getDefineCompiledEsmType(node2);
-          if (defineCompiledEsmType) {
-            if (programDepth === 3 && parent.type === "ExpressionStatement") {
-              skippedNodes.add(node2.arguments[0]);
-              topLevelDefineCompiledEsmExpressions.push({ node: node2, type: defineCompiledEsmType });
-            } else {
-              shouldWrap = true;
-            }
-            return;
-          }
-          if (isDynamicRequireModulesEnabled && node2.callee.object && isRequire(node2.callee.object, scope) && node2.callee.property.name === "resolve") {
-            checkDynamicRequire(node2.start);
-            uses.require = true;
-            const requireNode2 = node2.callee.object;
-            replacedDynamicRequires.push(requireNode2);
-            skippedNodes.add(node2.callee);
-            return;
-          }
-          if (!isRequireExpression(node2, scope)) {
-            const keypath = getKeypath(node2.callee);
-            if (keypath && importedVariables.has(keypath.name)) {
-              currentConditionalNodeEnd = Infinity;
-            }
-            return;
-          }
-          skippedNodes.add(node2.callee);
-          uses.require = true;
-          if (hasDynamicArguments(node2)) {
-            if (isDynamicRequireModulesEnabled) {
-              checkDynamicRequire(node2.start);
-            }
-            if (!ignoreDynamicRequires) {
-              replacedDynamicRequires.push(node2.callee);
-            }
-            return;
-          }
-          const requireStringArg = getRequireStringArg(node2);
-          if (!ignoreRequire(requireStringArg)) {
-            const usesReturnValue = parent.type !== "ExpressionStatement";
-            const toBeRemoved = parent.type === "ExpressionStatement" && (!currentConditionalNodeEnd || // We should completely remove requires directly in a try-catch
-            // so that Rollup can remove up the try-catch
-            currentTryBlockEnd !== null && currentTryBlockEnd < currentConditionalNodeEnd) ? parent : node2;
-            addRequireExpression(
-              requireStringArg,
-              node2,
-              scope,
-              usesReturnValue,
-              currentTryBlockEnd !== null,
-              currentConditionalNodeEnd !== null,
-              toBeRemoved
-            );
-            if (parent.type === "VariableDeclarator" && parent.id.type === "Identifier") {
-              for (const name2 of extractAssignedNames(parent.id)) {
-                importedVariables.add(name2);
-              }
-            }
-          }
-          return;
-        }
-        case "ClassBody":
-          classBodyDepth += 1;
-          return;
-        case "ConditionalExpression":
-        case "IfStatement":
-          if (isFalsy(node2.test)) {
-            skippedNodes.add(node2.consequent);
-          } else if (isTruthy(node2.test)) {
-            if (node2.alternate) {
-              skippedNodes.add(node2.alternate);
-            }
-          } else {
-            conditionalNodes.add(node2.consequent);
-            if (node2.alternate) {
-              conditionalNodes.add(node2.alternate);
-            }
-          }
-          return;
-        case "ArrowFunctionExpression":
-        case "FunctionDeclaration":
-        case "FunctionExpression":
-          if (currentConditionalNodeEnd === null && !(parent.type === "CallExpression" && parent.callee === node2)) {
-            currentConditionalNodeEnd = node2.end;
-          }
-          return;
-        case "Identifier": {
-          const { name: name2 } = node2;
-          if (!isReference(node2, parent) || scope.contains(name2) || parent.type === "PropertyDefinition" && parent.key === node2)
-            return;
-          switch (name2) {
-            case "require":
-              uses.require = true;
-              if (isNodeRequirePropertyAccess(parent)) {
-                return;
-              }
-              if (!ignoreDynamicRequires) {
-                if (isShorthandProperty(parent)) {
-                  skippedNodes.add(parent.value);
-                  magicString.prependRight(node2.start, "require: ");
-                }
-                replacedDynamicRequires.push(node2);
-              }
-              return;
-            case "module":
-            case "exports":
-              shouldWrap = true;
-              uses[name2] = true;
-              return;
-            case "global":
-              uses.global = true;
-              if (!ignoreGlobal) {
-                replacedGlobal.push(node2);
-              }
-              return;
-            case "define":
-              magicString.overwrite(node2.start, node2.end, "undefined", {
-                storeName: true
-              });
-              return;
-            default:
-              globals.add(name2);
-              return;
-          }
-        }
-        case "LogicalExpression":
-          if (node2.operator === "&&") {
-            if (isFalsy(node2.left)) {
-              skippedNodes.add(node2.right);
-            } else if (!isTruthy(node2.left)) {
-              conditionalNodes.add(node2.right);
-            }
-          } else if (node2.operator === "||") {
-            if (isTruthy(node2.left)) {
-              skippedNodes.add(node2.right);
-            } else if (!isFalsy(node2.left)) {
-              conditionalNodes.add(node2.right);
-            }
-          }
-          return;
-        case "MemberExpression":
-          if (!isDynamicRequireModulesEnabled && isModuleRequire(node2, scope)) {
-            uses.require = true;
-            replacedDynamicRequires.push(node2);
-            skippedNodes.add(node2.object);
-            skippedNodes.add(node2.property);
-          }
-          return;
-        case "ReturnStatement":
-          if (lexicalDepth === 0) {
-            shouldWrap = true;
-          }
-          return;
-        case "ThisExpression":
-          if (lexicalDepth === 0 && !classBodyDepth) {
-            uses.global = true;
-            if (!ignoreGlobal) {
-              replacedGlobal.push(node2);
-            }
-          }
-          return;
-        case "TryStatement":
-          if (currentTryBlockEnd === null) {
-            currentTryBlockEnd = node2.block.end;
-          }
-          if (currentConditionalNodeEnd === null) {
-            currentConditionalNodeEnd = node2.end;
-          }
-          return;
-        case "UnaryExpression":
-          if (node2.operator === "typeof") {
-            const flattened = getKeypath(node2.argument);
-            if (!flattened) return;
-            if (scope.contains(flattened.name)) return;
-            if (!isEsModule && (flattened.keypath === "module.exports" || flattened.keypath === "module" || flattened.keypath === "exports")) {
-              magicString.overwrite(node2.start, node2.end, `'object'`, {
-                storeName: false
-              });
-            }
-          }
-          return;
-        case "VariableDeclaration":
-          if (!scope.parent) {
-            topLevelDeclarations.push(node2);
-          }
-          return;
-        case "TemplateElement":
-          if (node2.value.raw.includes("\n")) {
-            indentExclusionRanges.push([node2.start, node2.end]);
-          }
-      }
-    },
-    leave(node2) {
-      programDepth -= 1;
-      if (node2.scope) scope = scope.parent;
-      if (functionType.test(node2.type)) lexicalDepth -= 1;
-      if (node2.type === "ClassBody") classBodyDepth -= 1;
-    }
-  });
-  const nameBase = getName(id);
-  const exportsName = deconflict([...exportsAccessScopes], globals, nameBase);
-  const moduleName = deconflict([...moduleAccessScopes], globals, `${nameBase}Module`);
-  const requireName = deconflict([scope], globals, `require${capitalize(nameBase)}`);
-  const isRequiredName = deconflict([scope], globals, `hasRequired${capitalize(nameBase)}`);
-  const helpersName = deconflict([scope], globals, "commonjsHelpers");
-  const dynamicRequireName = replacedDynamicRequires.length > 0 && deconflict(
-    [scope],
-    globals,
-    isDynamicRequireModulesEnabled ? CREATE_COMMONJS_REQUIRE_EXPORT : COMMONJS_REQUIRE_EXPORT
-  );
-  const deconflictedExportNames = /* @__PURE__ */ Object.create(null);
-  for (const [exportName, { scopes }] of exportsAssignmentsByName) {
-    deconflictedExportNames[exportName] = deconflict([...scopes], globals, exportName);
-  }
-  for (const node2 of replacedGlobal) {
-    magicString.overwrite(node2.start, node2.end, `${helpersName}.commonjsGlobal`, {
-      storeName: true
-    });
-  }
-  for (const node2 of replacedDynamicRequires) {
-    magicString.overwrite(
-      node2.start,
-      node2.end,
-      isDynamicRequireModulesEnabled ? `${dynamicRequireName}(${JSON.stringify(virtualDynamicRequirePath)})` : dynamicRequireName,
-      {
-        contentOnly: true,
-        storeName: true
-      }
-    );
-  }
-  shouldWrap = !isEsModule && (shouldWrap || uses.exports && moduleExportsAssignments.length > 0);
-  if (!(shouldWrap || isRequired || needsRequireWrapper || uses.module || uses.exports || uses.require || topLevelDefineCompiledEsmExpressions.length > 0) && (ignoreGlobal || !uses.global)) {
-    return { meta: { commonjs: { isCommonJS: false } } };
-  }
-  let leadingComment = "";
-  if (code.startsWith("/*")) {
-    const commentEnd = code.indexOf("*/", 2) + 2;
-    leadingComment = `${code.slice(0, commentEnd)}
-`;
-    magicString.remove(0, commentEnd).trim();
-  }
-  let shebang = "";
-  if (code.startsWith("#!")) {
-    const shebangEndPosition = code.indexOf("\n") + 1;
-    shebang = code.slice(0, shebangEndPosition);
-    magicString.remove(0, shebangEndPosition).trim();
-  }
-  const exportMode = isEsModule ? "none" : shouldWrap ? uses.module ? "module" : "exports" : firstTopLevelModuleExportsAssignment ? exportsAssignmentsByName.size === 0 && topLevelDefineCompiledEsmExpressions.length === 0 ? "replace" : "module" : moduleExportsAssignments.length === 0 ? "exports" : "module";
-  const exportedExportsName = exportMode === "module" ? deconflict([], globals, `${nameBase}Exports`) : exportsName;
-  const importBlock = await rewriteRequireExpressionsAndGetImportBlock(
-    magicString,
-    topLevelDeclarations,
-    reassignedNames,
-    helpersName,
-    dynamicRequireName,
-    moduleName,
-    exportsName,
-    id,
-    exportMode,
-    resolveRequireSourcesAndUpdateMeta,
-    needsRequireWrapper,
-    isEsModule,
-    isDynamicRequireModulesEnabled,
-    getIgnoreTryCatchRequireStatementMode,
-    commonjsMeta
-  );
-  const usesRequireWrapper = commonjsMeta.isCommonJS === IS_WRAPPED_COMMONJS;
-  const exportBlock = isEsModule ? "" : rewriteExportsAndGetExportsBlock(
-    magicString,
-    moduleName,
-    exportsName,
-    exportedExportsName,
-    shouldWrap,
-    moduleExportsAssignments,
-    firstTopLevelModuleExportsAssignment,
-    exportsAssignmentsByName,
-    topLevelAssignments,
-    topLevelDefineCompiledEsmExpressions,
-    deconflictedExportNames,
-    code,
-    helpersName,
-    exportMode,
-    defaultIsModuleExports,
-    usesRequireWrapper,
-    requireName
-  );
-  if (shouldWrap) {
-    wrapCode(magicString, uses, moduleName, exportsName, indentExclusionRanges);
-  }
-  if (usesRequireWrapper) {
-    magicString.trim().indent("	", {
-      exclude: indentExclusionRanges
-    });
-    const exported = exportMode === "module" ? `${moduleName}.exports` : exportsName;
-    magicString.prepend(
-      `var ${isRequiredName};
-
-function ${requireName} () {
-	if (${isRequiredName}) return ${exported};
-	${isRequiredName} = 1;
-`
-    ).append(`
-	return ${exported};
-}`);
-    if (exportMode === "replace") {
-      magicString.prepend(`var ${exportsName};
-`);
-    }
-  }
-  magicString.trim().prepend(shebang + leadingComment + importBlock).append(exportBlock);
-  return {
-    code: magicString.toString(),
-    map: sourceMap ? magicString.generateMap() : null,
-    syntheticNamedExports: isEsModule || usesRequireWrapper ? false : "__moduleExports",
-    meta: { commonjs: { ...commonjsMeta, shebang } }
-  };
-}
-var PLUGIN_NAME = "commonjs";
-function commonjs(options2 = {}) {
-  const {
-    ignoreGlobal,
-    ignoreDynamicRequires,
-    requireReturnsDefault: requireReturnsDefaultOption,
-    defaultIsModuleExports: defaultIsModuleExportsOption,
-    esmExternals
-  } = options2;
-  const extensions2 = options2.extensions || [".js"];
-  const filter2 = createFilter$1(options2.include, options2.exclude);
-  const isPossibleCjsId = (id) => {
-    const extName = (0, import_path.extname)(id);
-    return extName === ".cjs" || extensions2.includes(extName) && filter2(id);
-  };
-  const { strictRequiresFilter, detectCyclesAndConditional } = getStrictRequiresFilter(options2);
-  const getRequireReturnsDefault = typeof requireReturnsDefaultOption === "function" ? requireReturnsDefaultOption : () => requireReturnsDefaultOption;
-  let esmExternalIds;
-  const isEsmExternal = typeof esmExternals === "function" ? esmExternals : Array.isArray(esmExternals) ? (esmExternalIds = new Set(esmExternals), (id) => esmExternalIds.has(id)) : () => esmExternals;
-  const getDefaultIsModuleExports = typeof defaultIsModuleExportsOption === "function" ? defaultIsModuleExportsOption : () => typeof defaultIsModuleExportsOption === "boolean" ? defaultIsModuleExportsOption : "auto";
-  const dynamicRequireRoot = typeof options2.dynamicRequireRoot === "string" ? (0, import_path.resolve)(options2.dynamicRequireRoot) : process.cwd();
-  const { commonDir, dynamicRequireModules } = getDynamicRequireModules(
-    options2.dynamicRequireTargets,
-    dynamicRequireRoot
-  );
-  const isDynamicRequireModulesEnabled = dynamicRequireModules.size > 0;
-  const ignoreRequire = typeof options2.ignore === "function" ? options2.ignore : Array.isArray(options2.ignore) ? (id) => options2.ignore.includes(id) : () => false;
-  const getIgnoreTryCatchRequireStatementMode = (id) => {
-    const mode2 = typeof options2.ignoreTryCatch === "function" ? options2.ignoreTryCatch(id) : Array.isArray(options2.ignoreTryCatch) ? options2.ignoreTryCatch.includes(id) : typeof options2.ignoreTryCatch !== "undefined" ? options2.ignoreTryCatch : true;
-    return {
-      canConvertRequire: mode2 !== "remove" && mode2 !== true,
-      shouldRemoveRequire: mode2 === "remove"
-    };
-  };
-  const { currentlyResolving, resolveId } = getResolveId(extensions2, isPossibleCjsId);
-  const sourceMap = options2.sourceMap !== false;
-  let requireResolver;
-  function transformAndCheckExports(code, id) {
-    const normalizedId = normalizePathSlashes(id);
-    const { isEsModule, hasDefaultExport, hasNamedExports, ast } = analyzeTopLevelStatements(
-      this.parse,
-      code,
-      id
-    );
-    const commonjsMeta = this.getModuleInfo(id).meta.commonjs || {};
-    if (hasDefaultExport) {
-      commonjsMeta.hasDefaultExport = true;
-    }
-    if (hasNamedExports) {
-      commonjsMeta.hasNamedExports = true;
-    }
-    if (!dynamicRequireModules.has(normalizedId) && (!(hasCjsKeywords(code, ignoreGlobal) || requireResolver.isRequiredId(id)) || isEsModule && !options2.transformMixedEsModules)) {
-      commonjsMeta.isCommonJS = false;
-      return { meta: { commonjs: commonjsMeta } };
-    }
-    const needsRequireWrapper = !isEsModule && (dynamicRequireModules.has(normalizedId) || strictRequiresFilter(id));
-    const checkDynamicRequire = (position) => {
-      const normalizedDynamicRequireRoot = normalizePathSlashes(dynamicRequireRoot);
-      if (normalizedId.indexOf(normalizedDynamicRequireRoot) !== 0) {
-        this.error(
-          {
-            code: "DYNAMIC_REQUIRE_OUTSIDE_ROOT",
-            normalizedId,
-            normalizedDynamicRequireRoot,
-            message: `"${normalizedId}" contains dynamic require statements but it is not within the current dynamicRequireRoot "${normalizedDynamicRequireRoot}". You should set dynamicRequireRoot to "${(0, import_path.dirname)(
-              normalizedId
-            )}" or one of its parent directories.`
-          },
-          position
-        );
-      }
-    };
-    return transformCommonjs(
-      this.parse,
-      code,
-      id,
-      isEsModule,
-      ignoreGlobal || isEsModule,
-      ignoreRequire,
-      ignoreDynamicRequires && !isDynamicRequireModulesEnabled,
-      getIgnoreTryCatchRequireStatementMode,
-      sourceMap,
-      isDynamicRequireModulesEnabled,
-      dynamicRequireModules,
-      commonDir,
-      ast,
-      getDefaultIsModuleExports(id),
-      needsRequireWrapper,
-      requireResolver.resolveRequireSourcesAndUpdateMeta(this),
-      requireResolver.isRequiredId(id),
-      checkDynamicRequire,
-      commonjsMeta
-    );
-  }
-  return {
-    name: PLUGIN_NAME,
-    version: version$2,
-    options(rawOptions) {
-      const plugins2 = Array.isArray(rawOptions.plugins) ? [...rawOptions.plugins] : rawOptions.plugins ? [rawOptions.plugins] : [];
-      plugins2.unshift({
-        name: "commonjs--resolver",
-        resolveId
-      });
-      return { ...rawOptions, plugins: plugins2 };
-    },
-    buildStart({ plugins: plugins2 }) {
-      validateVersion(this.meta.rollupVersion, peerDependencies.rollup, "rollup");
-      const nodeResolve = plugins2.find(({ name: name2 }) => name2 === "node-resolve");
-      if (nodeResolve) {
-        validateVersion(nodeResolve.version, "^13.0.6", "@rollup/plugin-node-resolve");
-      }
-      if (options2.namedExports != null) {
-        this.warn(
-          'The namedExports option from "@rollup/plugin-commonjs" is deprecated. Named exports are now handled automatically.'
-        );
-      }
-      requireResolver = getRequireResolver(
-        extensions2,
-        detectCyclesAndConditional,
-        currentlyResolving
-      );
-    },
-    buildEnd() {
-      if (options2.strictRequires === "debug") {
-        const wrappedIds = requireResolver.getWrappedIds();
-        if (wrappedIds.length) {
-          this.warn({
-            code: "WRAPPED_IDS",
-            ids: wrappedIds,
-            message: `The commonjs plugin automatically wrapped the following files:
-[
-${wrappedIds.map((id) => `	${JSON.stringify((0, import_path.relative)(process.cwd(), id))}`).join(",\n")}
-]`
-          });
-        } else {
-          this.warn({
-            code: "WRAPPED_IDS",
-            ids: wrappedIds,
-            message: "The commonjs plugin did not wrap any files."
-          });
-        }
-      }
-    },
-    load(id) {
-      if (id === HELPERS_ID) {
-        return getHelpersModule();
-      }
-      if (isWrappedId(id, MODULE_SUFFIX)) {
-        const name2 = getName(unwrapId(id, MODULE_SUFFIX));
-        return {
-          code: `var ${name2} = {exports: {}}; export {${name2} as __module}`,
-          meta: { commonjs: { isCommonJS: false } }
-        };
-      }
-      if (isWrappedId(id, EXPORTS_SUFFIX)) {
-        const name2 = getName(unwrapId(id, EXPORTS_SUFFIX));
-        return {
-          code: `var ${name2} = {}; export {${name2} as __exports}`,
-          meta: { commonjs: { isCommonJS: false } }
-        };
-      }
-      if (isWrappedId(id, EXTERNAL_SUFFIX)) {
-        const actualId = unwrapId(id, EXTERNAL_SUFFIX);
-        return getUnknownRequireProxy(
-          actualId,
-          isEsmExternal(actualId) ? getRequireReturnsDefault(actualId) : true
-        );
-      }
-      if (id.endsWith(ENTRY_SUFFIX)) {
-        const acutalId = id.slice(0, -ENTRY_SUFFIX.length);
-        const {
-          meta: { commonjs: commonjsMeta }
-        } = this.getModuleInfo(acutalId);
-        const shebang = (commonjsMeta == null ? void 0 : commonjsMeta.shebang) ?? "";
-        return getEntryProxy(
-          acutalId,
-          getDefaultIsModuleExports(acutalId),
-          this.getModuleInfo,
-          shebang
-        );
-      }
-      if (isWrappedId(id, ES_IMPORT_SUFFIX)) {
-        const actualId = unwrapId(id, ES_IMPORT_SUFFIX);
-        return getEsImportProxy(actualId, getDefaultIsModuleExports(actualId));
-      }
-      if (id === DYNAMIC_MODULES_ID) {
-        return getDynamicModuleRegistry(
-          isDynamicRequireModulesEnabled,
-          dynamicRequireModules,
-          commonDir,
-          ignoreDynamicRequires
-        );
-      }
-      if (isWrappedId(id, PROXY_SUFFIX)) {
-        const actualId = unwrapId(id, PROXY_SUFFIX);
-        return getStaticRequireProxy(actualId, getRequireReturnsDefault(actualId), this.load);
-      }
-      return null;
-    },
-    shouldTransformCachedModule(...args) {
-      return requireResolver.shouldTransformCachedModule.call(this, ...args);
-    },
-    transform(code, id) {
-      if (!isPossibleCjsId(id)) return null;
-      try {
-        return transformAndCheckExports.call(this, code, id);
-      } catch (err2) {
-        return this.error(err2, err2.pos);
-      }
-    }
-  };
-}
-var schemeRegex = /^[\w+.-]+:\/\//;
-var urlRegex = /^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/;
-var fileRegex = /^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;
-function isAbsoluteUrl(input) {
-  return schemeRegex.test(input);
-}
-function isSchemeRelativeUrl(input) {
-  return input.startsWith("//");
-}
-function isAbsolutePath(input) {
-  return input.startsWith("/");
-}
-function isFileUrl(input) {
-  return input.startsWith("file:");
-}
-function isRelative(input) {
-  return /^[.?#]/.test(input);
-}
-function parseAbsoluteUrl(input) {
-  const match2 = urlRegex.exec(input);
-  return makeUrl(match2[1], match2[2] || "", match2[3], match2[4] || "", match2[5] || "/", match2[6] || "", match2[7] || "");
-}
-function parseFileUrl(input) {
-  const match2 = fileRegex.exec(input);
-  const path3 = match2[2];
-  return makeUrl("file:", "", match2[1] || "", "", isAbsolutePath(path3) ? path3 : "/" + path3, match2[3] || "", match2[4] || "");
-}
-function makeUrl(scheme, user, host, port, path3, query, hash2) {
-  return {
-    scheme,
-    user,
-    host,
-    port,
-    path: path3,
-    query,
-    hash: hash2,
-    type: 7
-  };
-}
-function parseUrl$3(input) {
-  if (isSchemeRelativeUrl(input)) {
-    const url3 = parseAbsoluteUrl("http:" + input);
-    url3.scheme = "";
-    url3.type = 6;
-    return url3;
-  }
-  if (isAbsolutePath(input)) {
-    const url3 = parseAbsoluteUrl("http://foo.com" + input);
-    url3.scheme = "";
-    url3.host = "";
-    url3.type = 5;
-    return url3;
-  }
-  if (isFileUrl(input))
-    return parseFileUrl(input);
-  if (isAbsoluteUrl(input))
-    return parseAbsoluteUrl(input);
-  const url2 = parseAbsoluteUrl("http://foo.com/" + input);
-  url2.scheme = "";
-  url2.host = "";
-  url2.type = input ? input.startsWith("?") ? 3 : input.startsWith("#") ? 2 : 4 : 1;
-  return url2;
-}
-function stripPathFilename(path3) {
-  if (path3.endsWith("/.."))
-    return path3;
-  const index = path3.lastIndexOf("/");
-  return path3.slice(0, index + 1);
-}
-function mergePaths(url2, base) {
-  normalizePath$4(base, base.type);
-  if (url2.path === "/") {
-    url2.path = base.path;
-  } else {
-    url2.path = stripPathFilename(base.path) + url2.path;
-  }
-}
-function normalizePath$4(url2, type) {
-  const rel = type <= 4;
-  const pieces = url2.path.split("/");
-  let pointer = 1;
-  let positive = 0;
-  let addTrailingSlash = false;
-  for (let i = 1; i < pieces.length; i++) {
-    const piece = pieces[i];
-    if (!piece) {
-      addTrailingSlash = true;
-      continue;
-    }
-    addTrailingSlash = false;
-    if (piece === ".")
-      continue;
-    if (piece === "..") {
-      if (positive) {
-        addTrailingSlash = true;
-        positive--;
-        pointer--;
-      } else if (rel) {
-        pieces[pointer++] = piece;
-      }
-      continue;
-    }
-    pieces[pointer++] = piece;
-    positive++;
-  }
-  let path3 = "";
-  for (let i = 1; i < pointer; i++) {
-    path3 += "/" + pieces[i];
-  }
-  if (!path3 || addTrailingSlash && !path3.endsWith("/..")) {
-    path3 += "/";
-  }
-  url2.path = path3;
-}
-function resolve$2(input, base) {
-  if (!input && !base)
-    return "";
-  const url2 = parseUrl$3(input);
-  let inputType = url2.type;
-  if (base && inputType !== 7) {
-    const baseUrl = parseUrl$3(base);
-    const baseType = baseUrl.type;
-    switch (inputType) {
-      case 1:
-        url2.hash = baseUrl.hash;
-      case 2:
-        url2.query = baseUrl.query;
-      case 3:
-      case 4:
-        mergePaths(url2, baseUrl);
-      case 5:
-        url2.user = baseUrl.user;
-        url2.host = baseUrl.host;
-        url2.port = baseUrl.port;
-      case 6:
-        url2.scheme = baseUrl.scheme;
-    }
-    if (baseType > inputType)
-      inputType = baseType;
-  }
-  normalizePath$4(url2, inputType);
-  const queryHash = url2.query + url2.hash;
-  switch (inputType) {
-    case 2:
-    case 3:
-      return queryHash;
-    case 4: {
-      const path3 = url2.path.slice(1);
-      if (!path3)
-        return queryHash || ".";
-      if (isRelative(base || input) && !isRelative(path3)) {
-        return "./" + path3 + queryHash;
-      }
-      return path3 + queryHash;
-    }
-    case 5:
-      return url2.path + queryHash;
-    default:
-      return url2.scheme + "//" + url2.user + url2.host + url2.port + url2.path + queryHash;
-  }
-}
-function resolve$1(input, base) {
-  if (base && !base.endsWith("/"))
-    base += "/";
-  return resolve$2(input, base);
-}
-function stripFilename(path3) {
-  if (!path3)
-    return "";
-  const index = path3.lastIndexOf("/");
-  return path3.slice(0, index + 1);
-}
-var COLUMN$1 = 0;
-var SOURCES_INDEX$1 = 1;
-var SOURCE_LINE$1 = 2;
-var SOURCE_COLUMN$1 = 3;
-var NAMES_INDEX$1 = 4;
-function maybeSort(mappings, owned) {
-  const unsortedIndex = nextUnsortedSegmentLine(mappings, 0);
-  if (unsortedIndex === mappings.length)
-    return mappings;
-  if (!owned)
-    mappings = mappings.slice();
-  for (let i = unsortedIndex; i < mappings.length; i = nextUnsortedSegmentLine(mappings, i + 1)) {
-    mappings[i] = sortSegments(mappings[i], owned);
-  }
-  return mappings;
-}
-function nextUnsortedSegmentLine(mappings, start) {
-  for (let i = start; i < mappings.length; i++) {
-    if (!isSorted(mappings[i]))
-      return i;
-  }
-  return mappings.length;
-}
-function isSorted(line) {
-  for (let j = 1; j < line.length; j++) {
-    if (line[j][COLUMN$1] < line[j - 1][COLUMN$1]) {
-      return false;
-    }
-  }
-  return true;
-}
-function sortSegments(line, owned) {
-  if (!owned)
-    line = line.slice();
-  return line.sort(sortComparator);
-}
-function sortComparator(a, b) {
-  return a[COLUMN$1] - b[COLUMN$1];
-}
-var found = false;
-function binarySearch(haystack, needle, low, high) {
-  while (low <= high) {
-    const mid = low + (high - low >> 1);
-    const cmp = haystack[mid][COLUMN$1] - needle;
-    if (cmp === 0) {
-      found = true;
-      return mid;
-    }
-    if (cmp < 0) {
-      low = mid + 1;
-    } else {
-      high = mid - 1;
-    }
-  }
-  found = false;
-  return low - 1;
-}
-function upperBound(haystack, needle, index) {
-  for (let i = index + 1; i < haystack.length; index = i++) {
-    if (haystack[i][COLUMN$1] !== needle)
-      break;
-  }
-  return index;
-}
-function lowerBound(haystack, needle, index) {
-  for (let i = index - 1; i >= 0; index = i--) {
-    if (haystack[i][COLUMN$1] !== needle)
-      break;
-  }
-  return index;
-}
-function memoizedState() {
-  return {
-    lastKey: -1,
-    lastNeedle: -1,
-    lastIndex: -1
-  };
-}
-function memoizedBinarySearch(haystack, needle, state, key) {
-  const { lastKey, lastNeedle, lastIndex } = state;
-  let low = 0;
-  let high = haystack.length - 1;
-  if (key === lastKey) {
-    if (needle === lastNeedle) {
-      found = lastIndex !== -1 && haystack[lastIndex][COLUMN$1] === needle;
-      return lastIndex;
-    }
-    if (needle >= lastNeedle) {
-      low = lastIndex === -1 ? 0 : lastIndex;
-    } else {
-      high = lastIndex;
-    }
-  }
-  state.lastKey = key;
-  state.lastNeedle = needle;
-  return state.lastIndex = binarySearch(haystack, needle, low, high);
-}
-var LINE_GTR_ZERO = "`line` must be greater than 0 (lines start at line 1)";
-var COL_GTR_EQ_ZERO = "`column` must be greater than or equal to 0 (columns start at column 0)";
-var LEAST_UPPER_BOUND = -1;
-var GREATEST_LOWER_BOUND = 1;
-var TraceMap = class {
-  constructor(map2, mapUrl) {
-    const isString2 = typeof map2 === "string";
-    if (!isString2 && map2._decodedMemo)
-      return map2;
-    const parsed = isString2 ? JSON.parse(map2) : map2;
-    const { version: version3, file, names, sourceRoot, sources, sourcesContent } = parsed;
-    this.version = version3;
-    this.file = file;
-    this.names = names || [];
-    this.sourceRoot = sourceRoot;
-    this.sources = sources;
-    this.sourcesContent = sourcesContent;
-    this.ignoreList = parsed.ignoreList || parsed.x_google_ignoreList || void 0;
-    const from = resolve$1(sourceRoot || "", stripFilename(mapUrl));
-    this.resolvedSources = sources.map((s) => resolve$1(s || "", from));
-    const { mappings } = parsed;
-    if (typeof mappings === "string") {
-      this._encoded = mappings;
-      this._decoded = void 0;
-    } else {
-      this._encoded = void 0;
-      this._decoded = maybeSort(mappings, isString2);
-    }
-    this._decodedMemo = memoizedState();
-    this._bySources = void 0;
-    this._bySourceMemos = void 0;
-  }
-};
-function cast$2(map2) {
-  return map2;
-}
-function encodedMappings(map2) {
-  var _a4;
-  var _b3;
-  return (_a4 = (_b3 = cast$2(map2))._encoded) !== null && _a4 !== void 0 ? _a4 : _b3._encoded = encode$1(cast$2(map2)._decoded);
-}
-function decodedMappings(map2) {
-  var _a4;
-  return (_a4 = cast$2(map2))._decoded || (_a4._decoded = decode(cast$2(map2)._encoded));
-}
-function traceSegment(map2, line, column) {
-  const decoded = decodedMappings(map2);
-  if (line >= decoded.length)
-    return null;
-  const segments = decoded[line];
-  const index = traceSegmentInternal(segments, cast$2(map2)._decodedMemo, line, column, GREATEST_LOWER_BOUND);
-  return index === -1 ? null : segments[index];
-}
-function originalPositionFor$1(map2, needle) {
-  let { line, column, bias } = needle;
-  line--;
-  if (line < 0)
-    throw new Error(LINE_GTR_ZERO);
-  if (column < 0)
-    throw new Error(COL_GTR_EQ_ZERO);
-  const decoded = decodedMappings(map2);
-  if (line >= decoded.length)
-    return OMapping(null, null, null, null);
-  const segments = decoded[line];
-  const index = traceSegmentInternal(segments, cast$2(map2)._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);
-  if (index === -1)
-    return OMapping(null, null, null, null);
-  const segment = segments[index];
-  if (segment.length === 1)
-    return OMapping(null, null, null, null);
-  const { names, resolvedSources } = map2;
-  return OMapping(resolvedSources[segment[SOURCES_INDEX$1]], segment[SOURCE_LINE$1] + 1, segment[SOURCE_COLUMN$1], segment.length === 5 ? names[segment[NAMES_INDEX$1]] : null);
-}
-function decodedMap(map2) {
-  return clone(map2, decodedMappings(map2));
-}
-function encodedMap(map2) {
-  return clone(map2, encodedMappings(map2));
-}
-function clone(map2, mappings) {
-  return {
-    version: map2.version,
-    file: map2.file,
-    names: map2.names,
-    sourceRoot: map2.sourceRoot,
-    sources: map2.sources,
-    sourcesContent: map2.sourcesContent,
-    mappings,
-    ignoreList: map2.ignoreList || map2.x_google_ignoreList
-  };
-}
-function OMapping(source, line, column, name2) {
-  return { source, line, column, name: name2 };
-}
-function traceSegmentInternal(segments, memo, line, column, bias) {
-  let index = memoizedBinarySearch(segments, column, memo, line);
-  if (found) {
-    index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index);
-  } else if (bias === LEAST_UPPER_BOUND)
-    index++;
-  if (index === -1 || index === segments.length)
-    return -1;
-  return index;
-}
-var SetArray = class {
-  constructor() {
-    this._indexes = { __proto__: null };
-    this.array = [];
-  }
-};
-function cast$1(set2) {
-  return set2;
-}
-function get(setarr, key) {
-  return cast$1(setarr)._indexes[key];
-}
-function put(setarr, key) {
-  const index = get(setarr, key);
-  if (index !== void 0)
-    return index;
-  const { array: array2, _indexes: indexes } = cast$1(setarr);
-  const length = array2.push(key);
-  return indexes[key] = length - 1;
-}
-function remove(setarr, key) {
-  const index = get(setarr, key);
-  if (index === void 0)
-    return;
-  const { array: array2, _indexes: indexes } = cast$1(setarr);
-  for (let i = index + 1; i < array2.length; i++) {
-    const k = array2[i];
-    array2[i - 1] = k;
-    indexes[k]--;
-  }
-  indexes[key] = void 0;
-  array2.pop();
-}
-var COLUMN = 0;
-var SOURCES_INDEX = 1;
-var SOURCE_LINE = 2;
-var SOURCE_COLUMN = 3;
-var NAMES_INDEX = 4;
-var NO_NAME = -1;
-var GenMapping = class {
-  constructor({ file, sourceRoot } = {}) {
-    this._names = new SetArray();
-    this._sources = new SetArray();
-    this._sourcesContent = [];
-    this._mappings = [];
-    this.file = file;
-    this.sourceRoot = sourceRoot;
-    this._ignoreList = new SetArray();
-  }
-};
-function cast(map2) {
-  return map2;
-}
-var maybeAddSegment = (map2, genLine, genColumn, source, sourceLine, sourceColumn, name2, content) => {
-  return addSegmentInternal(true, map2, genLine, genColumn, source, sourceLine, sourceColumn, name2);
-};
-function setSourceContent(map2, source, content) {
-  const { _sources: sources, _sourcesContent: sourcesContent } = cast(map2);
-  const index = put(sources, source);
-  sourcesContent[index] = content;
-}
-function setIgnore(map2, source, ignore = true) {
-  const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map2);
-  const index = put(sources, source);
-  if (index === sourcesContent.length)
-    sourcesContent[index] = null;
-  if (ignore)
-    put(ignoreList, index);
-  else
-    remove(ignoreList, index);
-}
-function toDecodedMap(map2) {
-  const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList } = cast(map2);
-  removeEmptyFinalLines(mappings);
-  return {
-    version: 3,
-    file: map2.file || void 0,
-    names: names.array,
-    sourceRoot: map2.sourceRoot || void 0,
-    sources: sources.array,
-    sourcesContent,
-    mappings,
-    ignoreList: ignoreList.array
-  };
-}
-function toEncodedMap(map2) {
-  const decoded = toDecodedMap(map2);
-  return Object.assign(Object.assign({}, decoded), { mappings: encode$1(decoded.mappings) });
-}
-function addSegmentInternal(skipable, map2, genLine, genColumn, source, sourceLine, sourceColumn, name2, content) {
-  const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names } = cast(map2);
-  const line = getLine(mappings, genLine);
-  const index = getColumnIndex(line, genColumn);
-  if (!source) {
-    if (skipSourceless(line, index))
-      return;
-    return insert(line, index, [genColumn]);
-  }
-  const sourcesIndex = put(sources, source);
-  const namesIndex = name2 ? put(names, name2) : NO_NAME;
-  if (sourcesIndex === sourcesContent.length)
-    sourcesContent[sourcesIndex] = null;
-  if (skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {
-    return;
-  }
-  return insert(line, index, name2 ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex] : [genColumn, sourcesIndex, sourceLine, sourceColumn]);
-}
-function getLine(mappings, index) {
-  for (let i = mappings.length; i <= index; i++) {
-    mappings[i] = [];
-  }
-  return mappings[index];
-}
-function getColumnIndex(line, genColumn) {
-  let index = line.length;
-  for (let i = index - 1; i >= 0; index = i--) {
-    const current = line[i];
-    if (genColumn >= current[COLUMN])
-      break;
-  }
-  return index;
-}
-function insert(array2, index, value2) {
-  for (let i = array2.length; i > index; i--) {
-    array2[i] = array2[i - 1];
-  }
-  array2[index] = value2;
-}
-function removeEmptyFinalLines(mappings) {
-  const { length } = mappings;
-  let len = length;
-  for (let i = len - 1; i >= 0; len = i, i--) {
-    if (mappings[i].length > 0)
-      break;
-  }
-  if (len < length)
-    mappings.length = len;
-}
-function skipSourceless(line, index) {
-  if (index === 0)
-    return true;
-  const prev = line[index - 1];
-  return prev.length === 1;
-}
-function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {
-  if (index === 0)
-    return false;
-  const prev = line[index - 1];
-  if (prev.length === 1)
-    return false;
-  return sourcesIndex === prev[SOURCES_INDEX] && sourceLine === prev[SOURCE_LINE] && sourceColumn === prev[SOURCE_COLUMN] && namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME);
-}
-var SOURCELESS_MAPPING = SegmentObject("", -1, -1, "", null, false);
-var EMPTY_SOURCES = [];
-function SegmentObject(source, line, column, name2, content, ignore) {
-  return { source, line, column, name: name2, content, ignore };
-}
-function Source(map2, sources, source, content, ignore) {
-  return {
-    map: map2,
-    sources,
-    source,
-    content,
-    ignore
-  };
-}
-function MapSource(map2, sources) {
-  return Source(map2, sources, "", null, false);
-}
-function OriginalSource(source, content, ignore) {
-  return Source(null, EMPTY_SOURCES, source, content, ignore);
-}
-function traceMappings(tree) {
-  const gen = new GenMapping({ file: tree.map.file });
-  const { sources: rootSources, map: map2 } = tree;
-  const rootNames = map2.names;
-  const rootMappings = decodedMappings(map2);
-  for (let i = 0; i < rootMappings.length; i++) {
-    const segments = rootMappings[i];
-    for (let j = 0; j < segments.length; j++) {
-      const segment = segments[j];
-      const genCol = segment[0];
-      let traced = SOURCELESS_MAPPING;
-      if (segment.length !== 1) {
-        const source2 = rootSources[segment[1]];
-        traced = originalPositionFor(source2, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : "");
-        if (traced == null)
-          continue;
-      }
-      const { column, line, name: name2, content, source, ignore } = traced;
-      maybeAddSegment(gen, i, genCol, source, line, column, name2);
-      if (source && content != null)
-        setSourceContent(gen, source, content);
-      if (ignore)
-        setIgnore(gen, source, true);
-    }
-  }
-  return gen;
-}
-function originalPositionFor(source, line, column, name2) {
-  if (!source.map) {
-    return SegmentObject(source.source, line, column, name2, source.content, source.ignore);
-  }
-  const segment = traceSegment(source.map, line, column);
-  if (segment == null)
-    return null;
-  if (segment.length === 1)
-    return SOURCELESS_MAPPING;
-  return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name2);
-}
-function asArray(value2) {
-  if (Array.isArray(value2))
-    return value2;
-  return [value2];
-}
-function buildSourceMapTree(input, loader) {
-  const maps = asArray(input).map((m) => new TraceMap(m, ""));
-  const map2 = maps.pop();
-  for (let i = 0; i < maps.length; i++) {
-    if (maps[i].sources.length > 1) {
-      throw new Error(`Transformation map ${i} must have exactly one source file.
-Did you specify these with the most recent transformation maps first?`);
-    }
-  }
-  let tree = build$2(map2, loader, "", 0);
-  for (let i = maps.length - 1; i >= 0; i--) {
-    tree = MapSource(maps[i], [tree]);
-  }
-  return tree;
-}
-function build$2(map2, loader, importer, importerDepth) {
-  const { resolvedSources, sourcesContent, ignoreList } = map2;
-  const depth2 = importerDepth + 1;
-  const children = resolvedSources.map((sourceFile, i) => {
-    const ctx = {
-      importer,
-      depth: depth2,
-      source: sourceFile || "",
-      content: void 0,
-      ignore: void 0
-    };
-    const sourceMap = loader(ctx.source, ctx);
-    const { source, content, ignore } = ctx;
-    if (sourceMap)
-      return build$2(new TraceMap(sourceMap, source), loader, source, depth2);
-    const sourceContent = content !== void 0 ? content : sourcesContent ? sourcesContent[i] : null;
-    const ignored = ignore !== void 0 ? ignore : ignoreList ? ignoreList.includes(i) : false;
-    return OriginalSource(source, sourceContent, ignored);
-  });
-  return MapSource(map2, children);
-}
-var SourceMap2 = class {
-  constructor(map2, options2) {
-    const out2 = options2.decodedMappings ? toDecodedMap(map2) : toEncodedMap(map2);
-    this.version = out2.version;
-    this.file = out2.file;
-    this.mappings = out2.mappings;
-    this.names = out2.names;
-    this.ignoreList = out2.ignoreList;
-    this.sourceRoot = out2.sourceRoot;
-    this.sources = out2.sources;
-    if (!options2.excludeContent) {
-      this.sourcesContent = out2.sourcesContent;
-    }
-  }
-  toString() {
-    return JSON.stringify(this);
-  }
-};
-function remapping(input, loader, options2) {
-  const opts = { excludeContent: !!options2, decodedMappings: false };
-  const tree = buildSourceMapTree(input, loader);
-  return new SourceMap2(traceMappings(tree), opts);
-}
-var src$3 = { exports: {} };
-var browser$3 = { exports: {} };
-var ms$1;
-var hasRequiredMs$1;
-function requireMs$1() {
-  if (hasRequiredMs$1) return ms$1;
-  hasRequiredMs$1 = 1;
-  var s = 1e3;
-  var m = s * 60;
-  var h = m * 60;
-  var d = h * 24;
-  var w = d * 7;
-  var y = d * 365.25;
-  ms$1 = function(val, options2) {
-    options2 = options2 || {};
-    var type = typeof val;
-    if (type === "string" && val.length > 0) {
-      return parse4(val);
-    } else if (type === "number" && isFinite(val)) {
-      return options2.long ? fmtLong(val) : fmtShort(val);
-    }
-    throw new Error(
-      "val is not a non-empty string or a valid number. val=" + JSON.stringify(val)
-    );
-  };
-  function parse4(str) {
-    str = String(str);
-    if (str.length > 100) {
-      return;
-    }
-    var match2 = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
-      str
-    );
-    if (!match2) {
-      return;
-    }
-    var n2 = parseFloat(match2[1]);
-    var type = (match2[2] || "ms").toLowerCase();
-    switch (type) {
-      case "years":
-      case "year":
-      case "yrs":
-      case "yr":
-      case "y":
-        return n2 * y;
-      case "weeks":
-      case "week":
-      case "w":
-        return n2 * w;
-      case "days":
-      case "day":
-      case "d":
-        return n2 * d;
-      case "hours":
-      case "hour":
-      case "hrs":
-      case "hr":
-      case "h":
-        return n2 * h;
-      case "minutes":
-      case "minute":
-      case "mins":
-      case "min":
-      case "m":
-        return n2 * m;
-      case "seconds":
-      case "second":
-      case "secs":
-      case "sec":
-      case "s":
-        return n2 * s;
-      case "milliseconds":
-      case "millisecond":
-      case "msecs":
-      case "msec":
-      case "ms":
-        return n2;
-      default:
-        return void 0;
-    }
-  }
-  function fmtShort(ms2) {
-    var msAbs = Math.abs(ms2);
-    if (msAbs >= d) {
-      return Math.round(ms2 / d) + "d";
-    }
-    if (msAbs >= h) {
-      return Math.round(ms2 / h) + "h";
-    }
-    if (msAbs >= m) {
-      return Math.round(ms2 / m) + "m";
-    }
-    if (msAbs >= s) {
-      return Math.round(ms2 / s) + "s";
-    }
-    return ms2 + "ms";
-  }
-  function fmtLong(ms2) {
-    var msAbs = Math.abs(ms2);
-    if (msAbs >= d) {
-      return plural(ms2, msAbs, d, "day");
-    }
-    if (msAbs >= h) {
-      return plural(ms2, msAbs, h, "hour");
-    }
-    if (msAbs >= m) {
-      return plural(ms2, msAbs, m, "minute");
-    }
-    if (msAbs >= s) {
-      return plural(ms2, msAbs, s, "second");
-    }
-    return ms2 + " ms";
-  }
-  function plural(ms2, msAbs, n2, name2) {
-    var isPlural = msAbs >= n2 * 1.5;
-    return Math.round(ms2 / n2) + " " + name2 + (isPlural ? "s" : "");
-  }
-  return ms$1;
-}
-var common$b;
-var hasRequiredCommon;
-function requireCommon() {
-  if (hasRequiredCommon) return common$b;
-  hasRequiredCommon = 1;
-  function setup(env2) {
-    createDebug.debug = createDebug;
-    createDebug.default = createDebug;
-    createDebug.coerce = coerce;
-    createDebug.disable = disable;
-    createDebug.enable = enable;
-    createDebug.enabled = enabled;
-    createDebug.humanize = requireMs$1();
-    createDebug.destroy = destroy2;
-    Object.keys(env2).forEach((key) => {
-      createDebug[key] = env2[key];
-    });
-    createDebug.names = [];
-    createDebug.skips = [];
-    createDebug.formatters = {};
-    function selectColor(namespace) {
-      let hash2 = 0;
-      for (let i = 0; i < namespace.length; i++) {
-        hash2 = (hash2 << 5) - hash2 + namespace.charCodeAt(i);
-        hash2 |= 0;
-      }
-      return createDebug.colors[Math.abs(hash2) % createDebug.colors.length];
-    }
-    createDebug.selectColor = selectColor;
-    function createDebug(namespace) {
-      let prevTime;
-      let enableOverride = null;
-      let namespacesCache;
-      let enabledCache;
-      function debug2(...args) {
-        if (!debug2.enabled) {
-          return;
-        }
-        const self2 = debug2;
-        const curr = Number(/* @__PURE__ */ new Date());
-        const ms2 = curr - (prevTime || curr);
-        self2.diff = ms2;
-        self2.prev = prevTime;
-        self2.curr = curr;
-        prevTime = curr;
-        args[0] = createDebug.coerce(args[0]);
-        if (typeof args[0] !== "string") {
-          args.unshift("%O");
-        }
-        let index = 0;
-        args[0] = args[0].replace(/%([a-zA-Z%])/g, (match2, format2) => {
-          if (match2 === "%%") {
-            return "%";
-          }
-          index++;
-          const formatter2 = createDebug.formatters[format2];
-          if (typeof formatter2 === "function") {
-            const val = args[index];
-            match2 = formatter2.call(self2, val);
-            args.splice(index, 1);
-            index--;
-          }
-          return match2;
-        });
-        createDebug.formatArgs.call(self2, args);
-        const logFn = self2.log || createDebug.log;
-        logFn.apply(self2, args);
-      }
-      debug2.namespace = namespace;
-      debug2.useColors = createDebug.useColors();
-      debug2.color = createDebug.selectColor(namespace);
-      debug2.extend = extend;
-      debug2.destroy = createDebug.destroy;
-      Object.defineProperty(debug2, "enabled", {
-        enumerable: true,
-        configurable: false,
-        get: () => {
-          if (enableOverride !== null) {
-            return enableOverride;
-          }
-          if (namespacesCache !== createDebug.namespaces) {
-            namespacesCache = createDebug.namespaces;
-            enabledCache = createDebug.enabled(namespace);
-          }
-          return enabledCache;
-        },
-        set: (v) => {
-          enableOverride = v;
-        }
-      });
-      if (typeof createDebug.init === "function") {
-        createDebug.init(debug2);
-      }
-      return debug2;
-    }
-    function extend(namespace, delimiter) {
-      const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace);
-      newDebug.log = this.log;
-      return newDebug;
-    }
-    function enable(namespaces) {
-      createDebug.save(namespaces);
-      createDebug.namespaces = namespaces;
-      createDebug.names = [];
-      createDebug.skips = [];
-      let i;
-      const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/);
-      const len = split.length;
-      for (i = 0; i < len; i++) {
-        if (!split[i]) {
-          continue;
-        }
-        namespaces = split[i].replace(/\*/g, ".*?");
-        if (namespaces[0] === "-") {
-          createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$"));
-        } else {
-          createDebug.names.push(new RegExp("^" + namespaces + "$"));
-        }
-      }
-    }
-    function disable() {
-      const namespaces = [
-        ...createDebug.names.map(toNamespace),
-        ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace)
-      ].join(",");
-      createDebug.enable("");
-      return namespaces;
-    }
-    function enabled(name2) {
-      if (name2[name2.length - 1] === "*") {
-        return true;
-      }
-      let i;
-      let len;
-      for (i = 0, len = createDebug.skips.length; i < len; i++) {
-        if (createDebug.skips[i].test(name2)) {
-          return false;
-        }
-      }
-      for (i = 0, len = createDebug.names.length; i < len; i++) {
-        if (createDebug.names[i].test(name2)) {
-          return true;
-        }
-      }
-      return false;
-    }
-    function toNamespace(regexp) {
-      return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*");
-    }
-    function coerce(val) {
-      if (val instanceof Error) {
-        return val.stack || val.message;
-      }
-      return val;
-    }
-    function destroy2() {
-      console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
-    }
-    createDebug.enable(createDebug.load());
-    return createDebug;
-  }
-  common$b = setup;
-  return common$b;
-}
-var hasRequiredBrowser$1;
-function requireBrowser$1() {
-  if (hasRequiredBrowser$1) return browser$3.exports;
-  hasRequiredBrowser$1 = 1;
-  (function(module, exports2) {
-    exports2.formatArgs = formatArgs;
-    exports2.save = save;
-    exports2.load = load2;
-    exports2.useColors = useColors;
-    exports2.storage = localstorage();
-    exports2.destroy = /* @__PURE__ */ (() => {
-      let warned2 = false;
-      return () => {
-        if (!warned2) {
-          warned2 = true;
-          console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
-        }
-      };
-    })();
-    exports2.colors = [
-      "#0000CC",
-      "#0000FF",
-      "#0033CC",
-      "#0033FF",
-      "#0066CC",
-      "#0066FF",
-      "#0099CC",
-      "#0099FF",
-      "#00CC00",
-      "#00CC33",
-      "#00CC66",
-      "#00CC99",
-      "#00CCCC",
-      "#00CCFF",
-      "#3300CC",
-      "#3300FF",
-      "#3333CC",
-      "#3333FF",
-      "#3366CC",
-      "#3366FF",
-      "#3399CC",
-      "#3399FF",
-      "#33CC00",
-      "#33CC33",
-      "#33CC66",
-      "#33CC99",
-      "#33CCCC",
-      "#33CCFF",
-      "#6600CC",
-      "#6600FF",
-      "#6633CC",
-      "#6633FF",
-      "#66CC00",
-      "#66CC33",
-      "#9900CC",
-      "#9900FF",
-      "#9933CC",
-      "#9933FF",
-      "#99CC00",
-      "#99CC33",
-      "#CC0000",
-      "#CC0033",
-      "#CC0066",
-      "#CC0099",
-      "#CC00CC",
-      "#CC00FF",
-      "#CC3300",
-      "#CC3333",
-      "#CC3366",
-      "#CC3399",
-      "#CC33CC",
-      "#CC33FF",
-      "#CC6600",
-      "#CC6633",
-      "#CC9900",
-      "#CC9933",
-      "#CCCC00",
-      "#CCCC33",
-      "#FF0000",
-      "#FF0033",
-      "#FF0066",
-      "#FF0099",
-      "#FF00CC",
-      "#FF00FF",
-      "#FF3300",
-      "#FF3333",
-      "#FF3366",
-      "#FF3399",
-      "#FF33CC",
-      "#FF33FF",
-      "#FF6600",
-      "#FF6633",
-      "#FF9900",
-      "#FF9933",
-      "#FFCC00",
-      "#FFCC33"
-    ];
-    function useColors() {
-      if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
-        return true;
-      }
-      if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
-        return false;
-      }
-      return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773
-      typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31?
-      // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
-      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker
-      typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
-    }
-    function formatArgs(args) {
-      args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
-      if (!this.useColors) {
-        return;
-      }
-      const c = "color: " + this.color;
-      args.splice(1, 0, c, "color: inherit");
-      let index = 0;
-      let lastC = 0;
-      args[0].replace(/%[a-zA-Z%]/g, (match2) => {
-        if (match2 === "%%") {
-          return;
-        }
-        index++;
-        if (match2 === "%c") {
-          lastC = index;
-        }
-      });
-      args.splice(lastC, 0, c);
-    }
-    exports2.log = console.debug || console.log || (() => {
-    });
-    function save(namespaces) {
-      try {
-        if (namespaces) {
-          exports2.storage.setItem("debug", namespaces);
-        } else {
-          exports2.storage.removeItem("debug");
-        }
-      } catch (error2) {
-      }
-    }
-    function load2() {
-      let r2;
-      try {
-        r2 = exports2.storage.getItem("debug");
-      } catch (error2) {
-      }
-      if (!r2 && typeof process !== "undefined" && "env" in process) {
-        r2 = process.env.DEBUG;
-      }
-      return r2;
-    }
-    function localstorage() {
-      try {
-        return localStorage;
-      } catch (error2) {
-      }
-    }
-    module.exports = requireCommon()(exports2);
-    const { formatters } = module.exports;
-    formatters.j = function(v) {
-      try {
-        return JSON.stringify(v);
-      } catch (error2) {
-        return "[UnexpectedJSONParseError]: " + error2.message;
-      }
-    };
-  })(browser$3, browser$3.exports);
-  return browser$3.exports;
-}
-var node$1 = { exports: {} };
-var hasRequiredNode$1;
-function requireNode$1() {
-  if (hasRequiredNode$1) return node$1.exports;
-  hasRequiredNode$1 = 1;
-  (function(module, exports2) {
-    const tty = import_tty.default;
-    const util2 = import_util.default;
-    exports2.init = init2;
-    exports2.log = log;
-    exports2.formatArgs = formatArgs;
-    exports2.save = save;
-    exports2.load = load2;
-    exports2.useColors = useColors;
-    exports2.destroy = util2.deprecate(
-      () => {
-      },
-      "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."
-    );
-    exports2.colors = [6, 2, 3, 4, 5, 1];
-    try {
-      const supportsColor = require2("supports-color");
-      if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
-        exports2.colors = [
-          20,
-          21,
-          26,
-          27,
-          32,
-          33,
-          38,
-          39,
-          40,
-          41,
-          42,
-          43,
-          44,
-          45,
-          56,
-          57,
-          62,
-          63,
-          68,
-          69,
-          74,
-          75,
-          76,
-          77,
-          78,
-          79,
-          80,
-          81,
-          92,
-          93,
-          98,
-          99,
-          112,
-          113,
-          128,
-          129,
-          134,
-          135,
-          148,
-          149,
-          160,
-          161,
-          162,
-          163,
-          164,
-          165,
-          166,
-          167,
-          168,
-          169,
-          170,
-          171,
-          172,
-          173,
-          178,
-          179,
-          184,
-          185,
-          196,
-          197,
-          198,
-          199,
-          200,
-          201,
-          202,
-          203,
-          204,
-          205,
-          206,
-          207,
-          208,
-          209,
-          214,
-          215,
-          220,
-          221
-        ];
-      }
-    } catch (error2) {
-    }
-    exports2.inspectOpts = Object.keys(process.env).filter((key) => {
-      return /^debug_/i.test(key);
-    }).reduce((obj, key) => {
-      const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => {
-        return k.toUpperCase();
-      });
-      let val = process.env[key];
-      if (/^(yes|on|true|enabled)$/i.test(val)) {
-        val = true;
-      } else if (/^(no|off|false|disabled)$/i.test(val)) {
-        val = false;
-      } else if (val === "null") {
-        val = null;
-      } else {
-        val = Number(val);
-      }
-      obj[prop] = val;
-      return obj;
-    }, {});
-    function useColors() {
-      return "colors" in exports2.inspectOpts ? Boolean(exports2.inspectOpts.colors) : tty.isatty(process.stderr.fd);
-    }
-    function formatArgs(args) {
-      const { namespace: name2, useColors: useColors2 } = this;
-      if (useColors2) {
-        const c = this.color;
-        const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
-        const prefix = `  ${colorCode};1m${name2} \x1B[0m`;
-        args[0] = prefix + args[0].split("\n").join("\n" + prefix);
-        args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m");
-      } else {
-        args[0] = getDate() + name2 + " " + args[0];
-      }
-    }
-    function getDate() {
-      if (exports2.inspectOpts.hideDate) {
-        return "";
-      }
-      return (/* @__PURE__ */ new Date()).toISOString() + " ";
-    }
-    function log(...args) {
-      return process.stderr.write(util2.formatWithOptions(exports2.inspectOpts, ...args) + "\n");
-    }
-    function save(namespaces) {
-      if (namespaces) {
-        process.env.DEBUG = namespaces;
-      } else {
-        delete process.env.DEBUG;
-      }
-    }
-    function load2() {
-      return process.env.DEBUG;
-    }
-    function init2(debug2) {
-      debug2.inspectOpts = {};
-      const keys = Object.keys(exports2.inspectOpts);
-      for (let i = 0; i < keys.length; i++) {
-        debug2.inspectOpts[keys[i]] = exports2.inspectOpts[keys[i]];
-      }
-    }
-    module.exports = requireCommon()(exports2);
-    const { formatters } = module.exports;
-    formatters.o = function(v) {
-      this.inspectOpts.colors = this.useColors;
-      return util2.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" ");
-    };
-    formatters.O = function(v) {
-      this.inspectOpts.colors = this.useColors;
-      return util2.inspect(v, this.inspectOpts);
-    };
-  })(node$1, node$1.exports);
-  return node$1.exports;
-}
-if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) {
-  src$3.exports = requireBrowser$1();
-} else {
-  src$3.exports = requireNode$1();
-}
-var srcExports$1 = src$3.exports;
-var debug$i = getDefaultExportFromCjs(srcExports$1);
-var pnp;
-if (process.versions.pnp) {
-  try {
-    pnp = (0, import_node_module.createRequire)(import.meta.url)("pnpapi");
-  } catch {
-  }
-}
-function invalidatePackageData(packageCache, pkgPath) {
-  const pkgDir = normalizePath$3(import_node_path3.default.dirname(pkgPath));
-  packageCache.forEach((pkg, cacheKey) => {
-    if (pkg.dir === pkgDir) {
-      packageCache.delete(cacheKey);
-    }
-  });
-}
-function resolvePackageData(pkgName, basedir, preserveSymlinks = false, packageCache) {
-  if (pnp) {
-    const cacheKey = getRpdCacheKey(pkgName, basedir, preserveSymlinks);
-    if (packageCache == null ? void 0 : packageCache.has(cacheKey)) return packageCache.get(cacheKey);
-    try {
-      const pkg = pnp.resolveToUnqualified(pkgName, basedir, {
-        considerBuiltins: false
-      });
-      if (!pkg) return null;
-      const pkgData = loadPackageData(import_node_path3.default.join(pkg, "package.json"));
-      packageCache == null ? void 0 : packageCache.set(cacheKey, pkgData);
-      return pkgData;
-    } catch {
-      return null;
-    }
-  }
-  const originalBasedir = basedir;
-  while (basedir) {
-    if (packageCache) {
-      const cached = getRpdCache(
-        packageCache,
-        pkgName,
-        basedir,
-        originalBasedir,
-        preserveSymlinks
-      );
-      if (cached) return cached;
-    }
-    const pkg = import_node_path3.default.join(basedir, "node_modules", pkgName, "package.json");
-    try {
-      if (import_node_fs2.default.existsSync(pkg)) {
-        const pkgPath = preserveSymlinks ? pkg : safeRealpathSync(pkg);
-        const pkgData = loadPackageData(pkgPath);
-        if (packageCache) {
-          setRpdCache(
-            packageCache,
-            pkgData,
-            pkgName,
-            basedir,
-            originalBasedir,
-            preserveSymlinks
-          );
-        }
-        return pkgData;
-      }
-    } catch {
-    }
-    const nextBasedir = import_node_path3.default.dirname(basedir);
-    if (nextBasedir === basedir) break;
-    basedir = nextBasedir;
-  }
-  return null;
-}
-function findNearestPackageData(basedir, packageCache) {
-  var _a4;
-  const originalBasedir = basedir;
-  while (basedir) {
-    if (packageCache) {
-      const cached = getFnpdCache(packageCache, basedir, originalBasedir);
-      if (cached) return cached;
-    }
-    const pkgPath = import_node_path3.default.join(basedir, "package.json");
-    if ((_a4 = tryStatSync(pkgPath)) == null ? void 0 : _a4.isFile()) {
-      try {
-        const pkgData = loadPackageData(pkgPath);
-        if (packageCache) {
-          setFnpdCache(packageCache, pkgData, basedir, originalBasedir);
-        }
-        return pkgData;
-      } catch {
-      }
-    }
-    const nextBasedir = import_node_path3.default.dirname(basedir);
-    if (nextBasedir === basedir) break;
-    basedir = nextBasedir;
-  }
-  return null;
-}
-function findNearestMainPackageData(basedir, packageCache) {
-  const nearestPackage = findNearestPackageData(basedir, packageCache);
-  return nearestPackage && (nearestPackage.data.name ? nearestPackage : findNearestMainPackageData(
-    import_node_path3.default.dirname(nearestPackage.dir),
-    packageCache
-  ));
-}
-function loadPackageData(pkgPath) {
-  const data = JSON.parse(import_node_fs2.default.readFileSync(pkgPath, "utf-8"));
-  const pkgDir = normalizePath$3(import_node_path3.default.dirname(pkgPath));
-  const { sideEffects } = data;
-  let hasSideEffects;
-  if (typeof sideEffects === "boolean") {
-    hasSideEffects = () => sideEffects;
-  } else if (Array.isArray(sideEffects)) {
-    if (sideEffects.length <= 0) {
-      hasSideEffects = () => false;
-    } else {
-      const finalPackageSideEffects = sideEffects.map((sideEffect) => {
-        if (sideEffect.includes("/")) {
-          return sideEffect;
-        }
-        return `**/${sideEffect}`;
-      });
-      hasSideEffects = createFilter2(finalPackageSideEffects, null, {
-        resolve: pkgDir
-      });
-    }
-  } else {
-    hasSideEffects = () => null;
-  }
-  const pkg = {
-    dir: pkgDir,
-    data,
-    hasSideEffects,
-    webResolvedImports: {},
-    nodeResolvedImports: {},
-    setResolvedCache(key, entry2, targetWeb) {
-      if (targetWeb) {
-        pkg.webResolvedImports[key] = entry2;
-      } else {
-        pkg.nodeResolvedImports[key] = entry2;
-      }
-    },
-    getResolvedCache(key, targetWeb) {
-      if (targetWeb) {
-        return pkg.webResolvedImports[key];
-      } else {
-        return pkg.nodeResolvedImports[key];
-      }
-    }
-  };
-  return pkg;
-}
-function watchPackageDataPlugin(packageCache) {
-  const watchQueue = /* @__PURE__ */ new Set();
-  const watchedDirs = /* @__PURE__ */ new Set();
-  const watchFileStub = (id) => {
-    watchQueue.add(id);
-  };
-  let watchFile = watchFileStub;
-  const setPackageData = packageCache.set.bind(packageCache);
-  packageCache.set = (id, pkg) => {
-    if (!isInNodeModules$1(pkg.dir) && !watchedDirs.has(pkg.dir)) {
-      watchedDirs.add(pkg.dir);
-      watchFile(import_node_path3.default.join(pkg.dir, "package.json"));
-    }
-    return setPackageData(id, pkg);
-  };
-  return {
-    name: "vite:watch-package-data",
-    buildStart() {
-      watchFile = this.addWatchFile.bind(this);
-      watchQueue.forEach(watchFile);
-      watchQueue.clear();
-    },
-    buildEnd() {
-      watchFile = watchFileStub;
-    },
-    watchChange(id) {
-      if (id.endsWith("/package.json")) {
-        invalidatePackageData(packageCache, import_node_path3.default.normalize(id));
-      }
-    },
-    handleHotUpdate({ file }) {
-      if (file.endsWith("/package.json")) {
-        invalidatePackageData(packageCache, import_node_path3.default.normalize(file));
-      }
-    }
-  };
-}
-function getRpdCache(packageCache, pkgName, basedir, originalBasedir, preserveSymlinks) {
-  const cacheKey = getRpdCacheKey(pkgName, basedir, preserveSymlinks);
-  const pkgData = packageCache.get(cacheKey);
-  if (pkgData) {
-    traverseBetweenDirs(originalBasedir, basedir, (dir) => {
-      packageCache.set(getRpdCacheKey(pkgName, dir, preserveSymlinks), pkgData);
-    });
-    return pkgData;
-  }
-}
-function setRpdCache(packageCache, pkgData, pkgName, basedir, originalBasedir, preserveSymlinks) {
-  packageCache.set(getRpdCacheKey(pkgName, basedir, preserveSymlinks), pkgData);
-  traverseBetweenDirs(originalBasedir, basedir, (dir) => {
-    packageCache.set(getRpdCacheKey(pkgName, dir, preserveSymlinks), pkgData);
-  });
-}
-function getRpdCacheKey(pkgName, basedir, preserveSymlinks) {
-  return `rpd_${pkgName}_${basedir}_${preserveSymlinks}`;
-}
-function getFnpdCache(packageCache, basedir, originalBasedir) {
-  const cacheKey = getFnpdCacheKey(basedir);
-  const pkgData = packageCache.get(cacheKey);
-  if (pkgData) {
-    traverseBetweenDirs(originalBasedir, basedir, (dir) => {
-      packageCache.set(getFnpdCacheKey(dir), pkgData);
-    });
-    return pkgData;
-  }
-}
-function setFnpdCache(packageCache, pkgData, basedir, originalBasedir) {
-  packageCache.set(getFnpdCacheKey(basedir), pkgData);
-  traverseBetweenDirs(originalBasedir, basedir, (dir) => {
-    packageCache.set(getFnpdCacheKey(dir), pkgData);
-  });
-}
-function getFnpdCacheKey(basedir) {
-  return `fnpd_${basedir}`;
-}
-function traverseBetweenDirs(longerDir, shorterDir, cb) {
-  while (longerDir !== shorterDir) {
-    cb(longerDir);
-    longerDir = import_node_path3.default.dirname(longerDir);
-  }
-}
-var createFilter2 = createFilter$1;
-var replaceSlashOrColonRE = /[/:]/g;
-var replaceDotRE = /\./g;
-var replaceNestedIdRE = /(\s*>\s*)/g;
-var replaceHashRE = /#/g;
-var flattenId = (id) => {
-  const flatId = limitFlattenIdLength(
-    id.replace(replaceSlashOrColonRE, "_").replace(replaceDotRE, "__").replace(replaceNestedIdRE, "___").replace(replaceHashRE, "____")
-  );
-  return flatId;
-};
-var FLATTEN_ID_HASH_LENGTH = 8;
-var FLATTEN_ID_MAX_FILE_LENGTH = 170;
-var limitFlattenIdLength = (id, limit = FLATTEN_ID_MAX_FILE_LENGTH) => {
-  if (id.length <= limit) {
-    return id;
-  }
-  return id.slice(0, limit - (FLATTEN_ID_HASH_LENGTH + 1)) + "_" + getHash(id);
-};
-var normalizeId = (id) => id.replace(replaceNestedIdRE, " > ");
-var NODE_BUILTIN_NAMESPACE = "node:";
-var NPM_BUILTIN_NAMESPACE = "npm:";
-var BUN_BUILTIN_NAMESPACE = "bun:";
-var nodeBuiltins = import_node_module.builtinModules.filter((id) => !id.includes(":"));
-function isBuiltin(id) {
-  if (process.versions.deno && id.startsWith(NPM_BUILTIN_NAMESPACE)) return true;
-  if (process.versions.bun && id.startsWith(BUN_BUILTIN_NAMESPACE)) return true;
-  return isNodeBuiltin(id);
-}
-function isNodeBuiltin(id) {
-  if (id.startsWith(NODE_BUILTIN_NAMESPACE)) return true;
-  return nodeBuiltins.includes(id);
-}
-function isInNodeModules$1(id) {
-  return id.includes("node_modules");
-}
-function moduleListContains(moduleList, id) {
-  return moduleList == null ? void 0 : moduleList.some(
-    (m) => m === id || id.startsWith(withTrailingSlash(m))
-  );
-}
-function isOptimizable(id, optimizeDeps2) {
-  const { extensions: extensions2 } = optimizeDeps2;
-  return OPTIMIZABLE_ENTRY_RE.test(id) || ((extensions2 == null ? void 0 : extensions2.some((ext2) => id.endsWith(ext2))) ?? false);
-}
-var bareImportRE = /^(?![a-zA-Z]:)[\w@](?!.*:\/\/)/;
-var deepImportRE = /^([^@][^/]*)\/|^(@[^/]+\/[^/]+)\//;
-var _require$1 = (0, import_node_module.createRequire)(import.meta.url);
-function resolveDependencyVersion(dep, pkgRelativePath = "../../package.json") {
-  const pkgPath = import_node_path3.default.resolve(_require$1.resolve(dep), pkgRelativePath);
-  return JSON.parse(import_node_fs2.default.readFileSync(pkgPath, "utf-8")).version;
-}
-var rollupVersion = resolveDependencyVersion("rollup");
-var filter = process.env.VITE_DEBUG_FILTER;
-var DEBUG = process.env.DEBUG;
-function createDebugger(namespace, options2 = {}) {
-  const log = debug$i(namespace);
-  const { onlyWhenFocused } = options2;
-  let enabled = log.enabled;
-  if (enabled && onlyWhenFocused) {
-    const ns = typeof onlyWhenFocused === "string" ? onlyWhenFocused : namespace;
-    enabled = !!(DEBUG == null ? void 0 : DEBUG.includes(ns));
-  }
-  if (enabled) {
-    return (...args) => {
-      if (!filter || args.some((a) => {
-        var _a4;
-        return (_a4 = a == null ? void 0 : a.includes) == null ? void 0 : _a4.call(a, filter);
-      })) {
-        log(...args);
-      }
-    };
-  }
-}
-function testCaseInsensitiveFS() {
-  if (!CLIENT_ENTRY.endsWith("client.mjs")) {
-    throw new Error(
-      `cannot test case insensitive FS, CLIENT_ENTRY const doesn't contain client.mjs`
-    );
-  }
-  if (!import_node_fs2.default.existsSync(CLIENT_ENTRY)) {
-    throw new Error(
-      "cannot test case insensitive FS, CLIENT_ENTRY does not point to an existing file: " + CLIENT_ENTRY
-    );
-  }
-  return import_node_fs2.default.existsSync(CLIENT_ENTRY.replace("client.mjs", "cLiEnT.mjs"));
-}
-var urlCanParse = (
-  // eslint-disable-next-line n/no-unsupported-features/node-builtins
-  import_node_url2.URL.canParse ?? // URL.canParse is supported from Node.js 18.17.0+, 20.0.0+
-  ((path22, base) => {
-    try {
-      new import_node_url2.URL(path22, base);
-      return true;
-    } catch {
-      return false;
-    }
-  })
-);
-var isCaseInsensitiveFS = testCaseInsensitiveFS();
-var VOLUME_RE = /^[A-Z]:/i;
-function normalizePath$3(id) {
-  return import_node_path3.default.posix.normalize(isWindows$3 ? slash$1(id) : id);
-}
-function fsPathFromId(id) {
-  const fsPath = normalizePath$3(
-    id.startsWith(FS_PREFIX) ? id.slice(FS_PREFIX.length) : id
-  );
-  return fsPath[0] === "/" || VOLUME_RE.test(fsPath) ? fsPath : `/${fsPath}`;
-}
-function fsPathFromUrl(url2) {
-  return fsPathFromId(cleanUrl(url2));
-}
-function isParentDirectory(dir, file) {
-  dir = withTrailingSlash(dir);
-  return file.startsWith(dir) || isCaseInsensitiveFS && file.toLowerCase().startsWith(dir.toLowerCase());
-}
-function isSameFileUri(file1, file2) {
-  return file1 === file2 || isCaseInsensitiveFS && file1.toLowerCase() === file2.toLowerCase();
-}
-var externalRE = /^(https?:)?\/\//;
-var isExternalUrl = (url2) => externalRE.test(url2);
-var dataUrlRE = /^\s*data:/i;
-var isDataUrl = (url2) => dataUrlRE.test(url2);
-var virtualModuleRE = /^virtual-module:.*/;
-var virtualModulePrefix = "virtual-module:";
-var knownJsSrcRE = /\.(?:[jt]sx?|m[jt]s|vue|marko|svelte|astro|imba|mdx)(?:$|\?)/;
-var isJSRequest = (url2) => {
-  url2 = cleanUrl(url2);
-  if (knownJsSrcRE.test(url2)) {
-    return true;
-  }
-  if (!import_node_path3.default.extname(url2) && url2[url2.length - 1] !== "/") {
-    return true;
-  }
-  return false;
-};
-var knownTsRE = /\.(?:ts|mts|cts|tsx)(?:$|\?)/;
-var isTsRequest = (url2) => knownTsRE.test(url2);
-var importQueryRE = /(\?|&)import=?(?:&|$)/;
-var directRequestRE$1 = /(\?|&)direct=?(?:&|$)/;
-var internalPrefixes = [
-  FS_PREFIX,
-  VALID_ID_PREFIX,
-  CLIENT_PUBLIC_PATH,
-  ENV_PUBLIC_PATH
-];
-var InternalPrefixRE = new RegExp(`^(?:${internalPrefixes.join("|")})`);
-var trailingSeparatorRE = /[?&]$/;
-var isImportRequest = (url2) => importQueryRE.test(url2);
-var isInternalRequest = (url2) => InternalPrefixRE.test(url2);
-function removeImportQuery(url2) {
-  return url2.replace(importQueryRE, "$1").replace(trailingSeparatorRE, "");
-}
-function removeDirectQuery(url2) {
-  return url2.replace(directRequestRE$1, "$1").replace(trailingSeparatorRE, "");
-}
-var urlRE = /(\?|&)url(?:&|$)/;
-var rawRE = /(\?|&)raw(?:&|$)/;
-function removeUrlQuery(url2) {
-  return url2.replace(urlRE, "$1").replace(trailingSeparatorRE, "");
-}
-var replacePercentageRE = /%/g;
-function injectQuery(url2, queryToInject) {
-  const resolvedUrl = new import_node_url2.URL(
-    url2.replace(replacePercentageRE, "%25"),
-    "relative:///"
-  );
-  const { search, hash: hash2 } = resolvedUrl;
-  let pathname = cleanUrl(url2);
-  pathname = isWindows$3 ? slash$1(pathname) : pathname;
-  return `${pathname}?${queryToInject}${search ? `&` + search.slice(1) : ""}${hash2 ?? ""}`;
-}
-var timestampRE = /\bt=\d{13}&?\b/;
-function removeTimestampQuery(url2) {
-  return url2.replace(timestampRE, "").replace(trailingSeparatorRE, "");
-}
-async function asyncReplace(input, re, replacer) {
-  let match2;
-  let remaining = input;
-  let rewritten = "";
-  while (match2 = re.exec(remaining)) {
-    rewritten += remaining.slice(0, match2.index);
-    rewritten += await replacer(match2);
-    remaining = remaining.slice(match2.index + match2[0].length);
-  }
-  rewritten += remaining;
-  return rewritten;
-}
-function timeFrom(start, subtract = 0) {
-  const time = import_node_perf_hooks.performance.now() - start - subtract;
-  const timeString = (time.toFixed(2) + `ms`).padEnd(5, " ");
-  if (time < 10) {
-    return colors$1.green(timeString);
-  } else if (time < 50) {
-    return colors$1.yellow(timeString);
-  } else {
-    return colors$1.red(timeString);
-  }
-}
-function prettifyUrl(url2, root) {
-  url2 = removeTimestampQuery(url2);
-  const isAbsoluteFile = url2.startsWith(root);
-  if (isAbsoluteFile || url2.startsWith(FS_PREFIX)) {
-    const file = import_node_path3.default.posix.relative(
-      root,
-      isAbsoluteFile ? url2 : fsPathFromId(url2)
-    );
-    return colors$1.dim(file);
-  } else {
-    return colors$1.dim(url2);
-  }
-}
-function isObject$1(value2) {
-  return Object.prototype.toString.call(value2) === "[object Object]";
-}
-function isDefined(value2) {
-  return value2 != null;
-}
-function tryStatSync(file) {
-  try {
-    return import_node_fs2.default.statSync(file, { throwIfNoEntry: false });
-  } catch {
-  }
-}
-function lookupFile(dir, fileNames) {
-  var _a4;
-  while (dir) {
-    for (const fileName of fileNames) {
-      const fullPath = import_node_path3.default.join(dir, fileName);
-      if ((_a4 = tryStatSync(fullPath)) == null ? void 0 : _a4.isFile()) return fullPath;
-    }
-    const parentDir2 = import_node_path3.default.dirname(dir);
-    if (parentDir2 === dir) return;
-    dir = parentDir2;
-  }
-}
-function isFilePathESM(filePath, packageCache) {
-  if (/\.m[jt]s$/.test(filePath)) {
-    return true;
-  } else if (/\.c[jt]s$/.test(filePath)) {
-    return false;
-  } else {
-    try {
-      const pkg = findNearestPackageData(import_node_path3.default.dirname(filePath), packageCache);
-      return (pkg == null ? void 0 : pkg.data.type) === "module";
-    } catch {
-      return false;
-    }
-  }
-}
-var splitRE = /\r?\n/g;
-var range = 2;
-function pad$1(source, n2 = 2) {
-  const lines = source.split(splitRE);
-  return lines.map((l) => ` `.repeat(n2) + l).join(`
-`);
-}
-function posToNumber(source, pos) {
-  if (typeof pos === "number") return pos;
-  const lines = source.split(splitRE);
-  const { line, column } = pos;
-  let start = 0;
-  for (let i = 0; i < line - 1 && i < lines.length; i++) {
-    start += lines[i].length + 1;
-  }
-  return start + column;
-}
-function numberToPos(source, offset2) {
-  if (typeof offset2 !== "number") return offset2;
-  if (offset2 > source.length) {
-    throw new Error(
-      `offset is longer than source length! offset ${offset2} > length ${source.length}`
-    );
-  }
-  const lines = source.split(splitRE);
-  let counted = 0;
-  let line = 0;
-  let column = 0;
-  for (; line < lines.length; line++) {
-    const lineLength = lines[line].length + 1;
-    if (counted + lineLength >= offset2) {
-      column = offset2 - counted + 1;
-      break;
-    }
-    counted += lineLength;
-  }
-  return { line: line + 1, column };
-}
-function generateCodeFrame(source, start = 0, end) {
-  start = Math.max(posToNumber(source, start), 0);
-  end = Math.min(
-    end !== void 0 ? posToNumber(source, end) : start,
-    source.length
-  );
-  const lines = source.split(splitRE);
-  let count = 0;
-  const res = [];
-  for (let i = 0; i < lines.length; i++) {
-    count += lines[i].length;
-    if (count >= start) {
-      for (let j = i - range; j <= i + range || end > count; j++) {
-        if (j < 0 || j >= lines.length) continue;
-        const line = j + 1;
-        res.push(
-          `${line}${" ".repeat(Math.max(3 - String(line).length, 0))}|  ${lines[j]}`
-        );
-        const lineLength = lines[j].length;
-        if (j === i) {
-          const pad2 = Math.max(start - (count - lineLength), 0);
-          const length = Math.max(
-            1,
-            end > count ? lineLength - pad2 : end - start
-          );
-          res.push(`   |  ` + " ".repeat(pad2) + "^".repeat(length));
-        } else if (j > i) {
-          if (end > count) {
-            const length = Math.max(Math.min(end - count, lineLength), 1);
-            res.push(`   |  ` + "^".repeat(length));
-          }
-          count += lineLength + 1;
-        }
-      }
-      break;
-    }
-    count++;
-  }
-  return res.join("\n");
-}
-function isFileReadable(filename) {
-  if (!tryStatSync(filename)) {
-    return false;
-  }
-  try {
-    import_node_fs2.default.accessSync(filename, import_node_fs2.default.constants.R_OK);
-    return true;
-  } catch {
-    return false;
-  }
-}
-var splitFirstDirRE = /(.+?)[\\/](.+)/;
-function emptyDir(dir, skip) {
-  const skipInDir = [];
-  let nested = null;
-  if (skip == null ? void 0 : skip.length) {
-    for (const file of skip) {
-      if (import_node_path3.default.dirname(file) !== ".") {
-        const matched = file.match(splitFirstDirRE);
-        if (matched) {
-          nested ?? (nested = /* @__PURE__ */ new Map());
-          const [, nestedDir, skipPath] = matched;
-          let nestedSkip = nested.get(nestedDir);
-          if (!nestedSkip) {
-            nestedSkip = [];
-            nested.set(nestedDir, nestedSkip);
-          }
-          if (!nestedSkip.includes(skipPath)) {
-            nestedSkip.push(skipPath);
-          }
-        }
-      } else {
-        skipInDir.push(file);
-      }
-    }
-  }
-  for (const file of import_node_fs2.default.readdirSync(dir)) {
-    if (skipInDir.includes(file)) {
-      continue;
-    }
-    if (nested == null ? void 0 : nested.has(file)) {
-      emptyDir(import_node_path3.default.resolve(dir, file), nested.get(file));
-    } else {
-      import_node_fs2.default.rmSync(import_node_path3.default.resolve(dir, file), { recursive: true, force: true });
-    }
-  }
-}
-function copyDir(srcDir, destDir) {
-  import_node_fs2.default.mkdirSync(destDir, { recursive: true });
-  for (const file of import_node_fs2.default.readdirSync(srcDir)) {
-    const srcFile = import_node_path3.default.resolve(srcDir, file);
-    if (srcFile === destDir) {
-      continue;
-    }
-    const destFile = import_node_path3.default.resolve(destDir, file);
-    const stat2 = import_node_fs2.default.statSync(srcFile);
-    if (stat2.isDirectory()) {
-      copyDir(srcFile, destFile);
-    } else {
-      import_node_fs2.default.copyFileSync(srcFile, destFile);
-    }
-  }
-}
-var ERR_SYMLINK_IN_RECURSIVE_READDIR = "ERR_SYMLINK_IN_RECURSIVE_READDIR";
-async function recursiveReaddir(dir) {
-  if (!import_node_fs2.default.existsSync(dir)) {
-    return [];
-  }
-  let dirents;
-  try {
-    dirents = await import_promises.default.readdir(dir, { withFileTypes: true });
-  } catch (e2) {
-    if (e2.code === "EACCES") {
-      return [];
-    }
-    throw e2;
-  }
-  if (dirents.some((dirent) => dirent.isSymbolicLink())) {
-    const err2 = new Error(
-      "Symbolic links are not supported in recursiveReaddir"
-    );
-    err2.code = ERR_SYMLINK_IN_RECURSIVE_READDIR;
-    throw err2;
-  }
-  const files = await Promise.all(
-    dirents.map((dirent) => {
-      const res = import_node_path3.default.resolve(dir, dirent.name);
-      return dirent.isDirectory() ? recursiveReaddir(res) : normalizePath$3(res);
-    })
-  );
-  return files.flat(1);
-}
-var safeRealpathSync = isWindows$3 ? windowsSafeRealPathSync : import_node_fs2.default.realpathSync.native;
-var windowsNetworkMap = /* @__PURE__ */ new Map();
-function windowsMappedRealpathSync(path22) {
-  const realPath = import_node_fs2.default.realpathSync.native(path22);
-  if (realPath.startsWith("\\\\")) {
-    for (const [network, volume] of windowsNetworkMap) {
-      if (realPath.startsWith(network)) return realPath.replace(network, volume);
-    }
-  }
-  return realPath;
-}
-var parseNetUseRE = /^(\w+)? +(\w:) +([^ ]+)\s/;
-var firstSafeRealPathSyncRun = false;
-function windowsSafeRealPathSync(path22) {
-  if (!firstSafeRealPathSyncRun) {
-    optimizeSafeRealPathSync();
-    firstSafeRealPathSyncRun = true;
-  }
-  return import_node_fs2.default.realpathSync(path22);
-}
-function optimizeSafeRealPathSync() {
-  const nodeVersion = process.versions.node.split(".").map(Number);
-  if (nodeVersion[0] < 18 || nodeVersion[0] === 18 && nodeVersion[1] < 10) {
-    safeRealpathSync = import_node_fs2.default.realpathSync;
-    return;
-  }
-  try {
-    import_node_fs2.default.realpathSync.native(import_node_path3.default.resolve("./"));
-  } catch (error2) {
-    if (error2.message.includes("EISDIR: illegal operation on a directory")) {
-      safeRealpathSync = import_node_fs2.default.realpathSync;
-      return;
-    }
-  }
-  (0, import_node_child_process.exec)("net use", (error2, stdout) => {
-    if (error2) return;
-    const lines = stdout.split("\n");
-    for (const line of lines) {
-      const m = line.match(parseNetUseRE);
-      if (m) windowsNetworkMap.set(m[3], m[2]);
-    }
-    if (windowsNetworkMap.size === 0) {
-      safeRealpathSync = import_node_fs2.default.realpathSync.native;
-    } else {
-      safeRealpathSync = windowsMappedRealpathSync;
-    }
-  });
-}
-function ensureWatchedFile(watcher, file, root) {
-  if (file && // only need to watch if out of root
-  !file.startsWith(withTrailingSlash(root)) && // some rollup plugins use null bytes for private resolved Ids
-  !file.includes("\0") && import_node_fs2.default.existsSync(file)) {
-    watcher.add(import_node_path3.default.resolve(file));
-  }
-}
-var escapedSpaceCharacters = /( |\\t|\\n|\\f|\\r)+/g;
-var imageSetUrlRE = /^(?:[\w\-]+\(.*?\)|'.*?'|".*?"|\S*)/;
-function joinSrcset(ret) {
-  return ret.map(({ url: url2, descriptor }) => url2 + (descriptor ? ` ${descriptor}` : "")).join(", ");
-}
-function splitSrcSetDescriptor(srcs) {
-  return splitSrcSet(srcs).map((s) => {
-    var _a4;
-    const src2 = s.replace(escapedSpaceCharacters, " ").trim();
-    const url2 = ((_a4 = imageSetUrlRE.exec(src2)) == null ? void 0 : _a4[0]) ?? "";
-    return {
-      url: url2,
-      descriptor: src2.slice(url2.length).trim()
-    };
-  }).filter(({ url: url2 }) => !!url2);
-}
-function processSrcSet(srcs, replacer) {
-  return Promise.all(
-    splitSrcSetDescriptor(srcs).map(async ({ url: url2, descriptor }) => ({
-      url: await replacer({ url: url2, descriptor }),
-      descriptor
-    }))
-  ).then(joinSrcset);
-}
-function processSrcSetSync(srcs, replacer) {
-  return joinSrcset(
-    splitSrcSetDescriptor(srcs).map(({ url: url2, descriptor }) => ({
-      url: replacer({ url: url2, descriptor }),
-      descriptor
-    }))
-  );
-}
-var cleanSrcSetRE = new RegExp(`(?:url|image|gradient|cross-fade)\\([^)]*\\)|"([^"]|(?<=\\\\)")*"|'([^']|(?<=\\\\)')*'|data:\\w+\\/[\\w.+\\-]+;base64,[\\w+/=]+|\\?\\S+,`, "g");
-function splitSrcSet(srcs) {
-  const parts = [];
-  const cleanedSrcs = srcs.replace(cleanSrcSetRE, blankReplacer);
-  let startIndex = 0;
-  let splitIndex;
-  do {
-    splitIndex = cleanedSrcs.indexOf(",", startIndex);
-    parts.push(
-      srcs.slice(startIndex, splitIndex !== -1 ? splitIndex : void 0)
-    );
-    startIndex = splitIndex + 1;
-  } while (splitIndex !== -1);
-  return parts;
-}
-var windowsDriveRE = /^[A-Z]:/;
-var replaceWindowsDriveRE = /^([A-Z]):\//;
-var linuxAbsolutePathRE = /^\/[^/]/;
-function escapeToLinuxLikePath(path22) {
-  if (windowsDriveRE.test(path22)) {
-    return path22.replace(replaceWindowsDriveRE, "/windows/$1/");
-  }
-  if (linuxAbsolutePathRE.test(path22)) {
-    return `/linux${path22}`;
-  }
-  return path22;
-}
-var revertWindowsDriveRE = /^\/windows\/([A-Z])\//;
-function unescapeToLinuxLikePath(path22) {
-  if (path22.startsWith("/linux/")) {
-    return path22.slice("/linux".length);
-  }
-  if (path22.startsWith("/windows/")) {
-    return path22.replace(revertWindowsDriveRE, "$1:/");
-  }
-  return path22;
-}
-var nullSourceMap = {
-  names: [],
-  sources: [],
-  mappings: "",
-  version: 3
-};
-function combineSourcemaps(filename, sourcemapList) {
-  if (sourcemapList.length === 0 || sourcemapList.every((m) => m.sources.length === 0)) {
-    return { ...nullSourceMap };
-  }
-  sourcemapList = sourcemapList.map((sourcemap) => {
-    const newSourcemaps = { ...sourcemap };
-    newSourcemaps.sources = sourcemap.sources.map(
-      (source) => source ? escapeToLinuxLikePath(source) : null
-    );
-    if (sourcemap.sourceRoot) {
-      newSourcemaps.sourceRoot = escapeToLinuxLikePath(sourcemap.sourceRoot);
-    }
-    return newSourcemaps;
-  });
-  let map2;
-  let mapIndex = 1;
-  const useArrayInterface = sourcemapList.slice(0, -1).find((m) => m.sources.length !== 1) === void 0;
-  if (useArrayInterface) {
-    map2 = remapping(sourcemapList, () => null);
-  } else {
-    map2 = remapping(sourcemapList[0], function loader(sourcefile) {
-      const mapForSources = sourcemapList.slice(mapIndex).find((s) => s.sources.includes(sourcefile));
-      if (mapForSources) {
-        mapIndex++;
-        return mapForSources;
-      }
-      return null;
-    });
-  }
-  if (!map2.file) {
-    delete map2.file;
-  }
-  map2.sources = map2.sources.map(
-    (source) => source ? unescapeToLinuxLikePath(source) : source
-  );
-  map2.file = filename;
-  return map2;
-}
-function unique(arr) {
-  return Array.from(new Set(arr));
-}
-async function getLocalhostAddressIfDiffersFromDNS() {
-  const [nodeResult, dnsResult] = await Promise.all([
-    import_node_dns.promises.lookup("localhost"),
-    import_node_dns.promises.lookup("localhost", { verbatim: true })
-  ]);
-  const isSame = nodeResult.family === dnsResult.family && nodeResult.address === dnsResult.address;
-  return isSame ? void 0 : nodeResult.address;
-}
-function diffDnsOrderChange(oldUrls, newUrls) {
-  return !(oldUrls === newUrls || oldUrls && newUrls && arrayEqual(oldUrls.local, newUrls.local) && arrayEqual(oldUrls.network, newUrls.network));
-}
-async function resolveHostname(optionsHost) {
-  let host;
-  if (optionsHost === void 0 || optionsHost === false) {
-    host = "localhost";
-  } else if (optionsHost === true) {
-    host = void 0;
-  } else {
-    host = optionsHost;
-  }
-  let name2 = host === void 0 || wildcardHosts.has(host) ? "localhost" : host;
-  if (host === "localhost") {
-    const localhostAddr = await getLocalhostAddressIfDiffersFromDNS();
-    if (localhostAddr) {
-      name2 = localhostAddr;
-    }
-  }
-  return { host, name: name2 };
-}
-async function resolveServerUrls(server2, options2, config2) {
-  const address = server2.address();
-  const isAddressInfo = (x) => x == null ? void 0 : x.address;
-  if (!isAddressInfo(address)) {
-    return { local: [], network: [] };
-  }
-  const local = [];
-  const network = [];
-  const hostname = await resolveHostname(options2.host);
-  const protocol = options2.https ? "https" : "http";
-  const port = address.port;
-  const base = config2.rawBase === "./" || config2.rawBase === "" ? "/" : config2.rawBase;
-  if (hostname.host !== void 0 && !wildcardHosts.has(hostname.host)) {
-    let hostnameName = hostname.name;
-    if (hostnameName.includes(":")) {
-      hostnameName = `[${hostnameName}]`;
-    }
-    const address2 = `${protocol}://${hostnameName}:${port}${base}`;
-    if (loopbackHosts.has(hostname.host)) {
-      local.push(address2);
-    } else {
-      network.push(address2);
-    }
-  } else {
-    Object.values(import_node_os.default.networkInterfaces()).flatMap((nInterface) => nInterface ?? []).filter(
-      (detail) => detail && detail.address && (detail.family === "IPv4" || // @ts-expect-error Node 18.0 - 18.3 returns number
-      detail.family === 4)
-    ).forEach((detail) => {
-      let host = detail.address.replace("127.0.0.1", hostname.name);
-      if (host.includes(":")) {
-        host = `[${host}]`;
-      }
-      const url2 = `${protocol}://${host}:${port}${base}`;
-      if (detail.address.includes("127.0.0.1")) {
-        local.push(url2);
-      } else {
-        network.push(url2);
-      }
-    });
-  }
-  return { local, network };
-}
-function arraify(target) {
-  return Array.isArray(target) ? target : [target];
-}
-var multilineCommentsRE = /\/\*[^*]*\*+(?:[^/*][^*]*\*+)*\//g;
-var singlelineCommentsRE = /\/\/.*/g;
-var requestQuerySplitRE = /\?(?!.*[/|}])/;
-var requestQueryMaybeEscapedSplitRE = /\\?\?(?!.*[/|}])/;
-var blankReplacer = (match2) => " ".repeat(match2.length);
-function getHash(text, length = 8) {
-  const h = (0, import_node_crypto.createHash)("sha256").update(text).digest("hex").substring(0, length);
-  if (length <= 64) return h;
-  return h.padEnd(length, "_");
-}
-var _dirname = import_node_path3.default.dirname((0, import_node_url2.fileURLToPath)(import.meta.url));
-var requireResolveFromRootWithFallback = (root, id) => {
-  const found2 = resolvePackageData(id, root) || resolvePackageData(id, _dirname);
-  if (!found2) {
-    const error2 = new Error(`${JSON.stringify(id)} not found.`);
-    error2.code = "MODULE_NOT_FOUND";
-    throw error2;
-  }
-  return _require$1.resolve(id, { paths: [root, _dirname] });
-};
-function emptyCssComments(raw) {
-  return raw.replace(multilineCommentsRE, blankReplacer);
-}
-function backwardCompatibleWorkerPlugins(plugins2) {
-  if (Array.isArray(plugins2)) {
-    return plugins2;
-  }
-  if (typeof plugins2 === "function") {
-    return plugins2();
-  }
-  return [];
-}
-function mergeConfigRecursively(defaults2, overrides, rootPath) {
-  const merged = { ...defaults2 };
-  for (const key in overrides) {
-    const value2 = overrides[key];
-    if (value2 == null) {
-      continue;
-    }
-    const existing = merged[key];
-    if (existing == null) {
-      merged[key] = value2;
-      continue;
-    }
-    if (key === "alias" && (rootPath === "resolve" || rootPath === "")) {
-      merged[key] = mergeAlias(existing, value2);
-      continue;
-    } else if (key === "assetsInclude" && rootPath === "") {
-      merged[key] = [].concat(existing, value2);
-      continue;
-    } else if (key === "noExternal" && rootPath === "ssr" && (existing === true || value2 === true)) {
-      merged[key] = true;
-      continue;
-    } else if (key === "plugins" && rootPath === "worker") {
-      merged[key] = () => [
-        ...backwardCompatibleWorkerPlugins(existing),
-        ...backwardCompatibleWorkerPlugins(value2)
-      ];
-      continue;
-    }
-    if (Array.isArray(existing) || Array.isArray(value2)) {
-      merged[key] = [...arraify(existing), ...arraify(value2)];
-      continue;
-    }
-    if (isObject$1(existing) && isObject$1(value2)) {
-      merged[key] = mergeConfigRecursively(
-        existing,
-        value2,
-        rootPath ? `${rootPath}.${key}` : key
-      );
-      continue;
-    }
-    merged[key] = value2;
-  }
-  return merged;
-}
-function mergeConfig(defaults2, overrides, isRoot = true) {
-  if (typeof defaults2 === "function" || typeof overrides === "function") {
-    throw new Error(`Cannot merge config in form of callback`);
-  }
-  return mergeConfigRecursively(defaults2, overrides, isRoot ? "" : ".");
-}
-function mergeAlias(a, b) {
-  if (!a) return b;
-  if (!b) return a;
-  if (isObject$1(a) && isObject$1(b)) {
-    return { ...a, ...b };
-  }
-  return [...normalizeAlias(b), ...normalizeAlias(a)];
-}
-function normalizeAlias(o2 = []) {
-  return Array.isArray(o2) ? o2.map(normalizeSingleAlias) : Object.keys(o2).map(
-    (find2) => normalizeSingleAlias({
-      find: find2,
-      replacement: o2[find2]
-    })
-  );
-}
-function normalizeSingleAlias({
-  find: find2,
-  replacement,
-  customResolver
-}) {
-  if (typeof find2 === "string" && find2[find2.length - 1] === "/" && replacement[replacement.length - 1] === "/") {
-    find2 = find2.slice(0, find2.length - 1);
-    replacement = replacement.slice(0, replacement.length - 1);
-  }
-  const alias2 = {
-    find: find2,
-    replacement
-  };
-  if (customResolver) {
-    alias2.customResolver = customResolver;
-  }
-  return alias2;
-}
-function transformStableResult(s, id, config2) {
-  return {
-    code: s.toString(),
-    map: config2.command === "build" && config2.build.sourcemap ? s.generateMap({ hires: "boundary", source: id }) : null
-  };
-}
-async function asyncFlatten(arr) {
-  do {
-    arr = (await Promise.all(arr)).flat(Infinity);
-  } while (arr.some((v) => v == null ? void 0 : v.then));
-  return arr;
-}
-function stripBomTag(content) {
-  if (content.charCodeAt(0) === 65279) {
-    return content.slice(1);
-  }
-  return content;
-}
-var windowsDrivePathPrefixRE = /^[A-Za-z]:[/\\]/;
-var isNonDriveRelativeAbsolutePath = (p) => {
-  if (!isWindows$3) return p[0] === "/";
-  return windowsDrivePathPrefixRE.test(p);
-};
-function shouldServeFile(filePath, root) {
-  if (!isCaseInsensitiveFS) return true;
-  return hasCorrectCase(filePath, root);
-}
-function hasCorrectCase(file, assets) {
-  if (file === assets) return true;
-  const parent = import_node_path3.default.dirname(file);
-  if (import_node_fs2.default.readdirSync(parent).includes(import_node_path3.default.basename(file))) {
-    return hasCorrectCase(parent, assets);
-  }
-  return false;
-}
-function joinUrlSegments(a, b) {
-  if (!a || !b) {
-    return a || b || "";
-  }
-  if (a[a.length - 1] === "/") {
-    a = a.substring(0, a.length - 1);
-  }
-  if (b[0] !== "/") {
-    b = "/" + b;
-  }
-  return a + b;
-}
-function removeLeadingSlash(str) {
-  return str[0] === "/" ? str.slice(1) : str;
-}
-function stripBase(path22, base) {
-  if (path22 === base) {
-    return "/";
-  }
-  const devBase = withTrailingSlash(base);
-  return path22.startsWith(devBase) ? path22.slice(devBase.length - 1) : path22;
-}
-function arrayEqual(a, b) {
-  if (a === b) return true;
-  if (a.length !== b.length) return false;
-  for (let i = 0; i < a.length; i++) {
-    if (a[i] !== b[i]) return false;
-  }
-  return true;
-}
-function evalValue(rawValue) {
-  const fn = new Function(`
-    var console, exports, global, module, process, require
-    return (
-${rawValue}
-)
-  `);
-  return fn();
-}
-function getNpmPackageName(importPath) {
-  const parts = importPath.split("/");
-  if (parts[0][0] === "@") {
-    if (!parts[1]) return null;
-    return `${parts[0]}/${parts[1]}`;
-  } else {
-    return parts[0];
-  }
-}
-var escapeRegexRE = /[-/\\^$*+?.()|[\]{}]/g;
-function escapeRegex(str) {
-  return str.replace(escapeRegexRE, "\\$&");
-}
-function getPackageManagerCommand(type = "install") {
-  var _a4;
-  const packageManager = ((_a4 = process.env.npm_config_user_agent) == null ? void 0 : _a4.split(" ")[0].split("/")[0]) || "npm";
-  switch (type) {
-    case "install":
-      return packageManager === "npm" ? "npm install" : `${packageManager} add`;
-    case "uninstall":
-      return packageManager === "npm" ? "npm uninstall" : `${packageManager} remove`;
-    case "update":
-      return packageManager === "yarn" ? "yarn upgrade" : `${packageManager} update`;
-    default:
-      throw new TypeError(`Unknown command type: ${type}`);
-  }
-}
-function isDevServer(server2) {
-  return "pluginContainer" in server2;
-}
-function promiseWithResolvers() {
-  let resolve3;
-  let reject;
-  const promise2 = new Promise((_resolve, _reject) => {
-    resolve3 = _resolve;
-    reject = _reject;
-  });
-  return { promise: promise2, resolve: resolve3, reject };
-}
-function createSerialPromiseQueue() {
-  let previousTask;
-  return {
-    async run(f2) {
-      const thisTask = f2();
-      const depTasks = Promise.all([previousTask, thisTask]);
-      previousTask = depTasks;
-      const [, result] = await depTasks;
-      if (previousTask === depTasks) {
-        previousTask = void 0;
-      }
-      return result;
-    }
-  };
-}
-function sortObjectKeys(obj) {
-  const sorted = {};
-  for (const key of Object.keys(obj).sort()) {
-    sorted[key] = obj[key];
-  }
-  return sorted;
-}
-function displayTime(time) {
-  if (time < 1e3) {
-    return `${time}ms`;
-  }
-  time = time / 1e3;
-  if (time < 60) {
-    return `${time.toFixed(2)}s`;
-  }
-  const mins = parseInt((time / 60).toString());
-  const seconds = time % 60;
-  return `${mins}m${seconds < 1 ? "" : ` ${seconds.toFixed(0)}s`}`;
-}
-function encodeURIPath(uri) {
-  if (uri.startsWith("data:")) return uri;
-  const filePath = cleanUrl(uri);
-  const postfix = filePath !== uri ? uri.slice(filePath.length) : "";
-  return encodeURI(filePath) + postfix;
-}
-function partialEncodeURIPath(uri) {
-  if (uri.startsWith("data:")) return uri;
-  const filePath = cleanUrl(uri);
-  const postfix = filePath !== uri ? uri.slice(filePath.length) : "";
-  return filePath.replaceAll("%", "%25") + postfix;
-}
-var setupSIGTERMListener = (callback) => {
-  process.once("SIGTERM", callback);
-  if (process.env.CI !== "true") {
-    process.stdin.on("end", callback);
-  }
-};
-var teardownSIGTERMListener = (callback) => {
-  process.off("SIGTERM", callback);
-  if (process.env.CI !== "true") {
-    process.stdin.off("end", callback);
-  }
-};
-var LogLevels = {
-  silent: 0,
-  error: 1,
-  warn: 2,
-  info: 3
-};
-var lastType;
-var lastMsg;
-var sameCount = 0;
-function clearScreen() {
-  const repeatCount = process.stdout.rows - 2;
-  const blank = repeatCount > 0 ? "\n".repeat(repeatCount) : "";
-  console.log(blank);
-  import_node_readline.default.cursorTo(process.stdout, 0, 0);
-  import_node_readline.default.clearScreenDown(process.stdout);
-}
-var timeFormatter;
-function getTimeFormatter() {
-  timeFormatter ?? (timeFormatter = new Intl.DateTimeFormat(void 0, {
-    hour: "numeric",
-    minute: "numeric",
-    second: "numeric"
-  }));
-  return timeFormatter;
-}
-function createLogger(level = "info", options2 = {}) {
-  if (options2.customLogger) {
-    return options2.customLogger;
-  }
-  const loggedErrors = /* @__PURE__ */ new WeakSet();
-  const { prefix = "[vite]", allowClearScreen = true } = options2;
-  const thresh = LogLevels[level];
-  const canClearScreen = allowClearScreen && process.stdout.isTTY && !process.env.CI;
-  const clear = canClearScreen ? clearScreen : () => {
-  };
-  function format2(type, msg, options22 = {}) {
-    if (options22.timestamp) {
-      let tag = "";
-      if (type === "info") {
-        tag = colors$1.cyan(colors$1.bold(prefix));
-      } else if (type === "warn") {
-        tag = colors$1.yellow(colors$1.bold(prefix));
-      } else {
-        tag = colors$1.red(colors$1.bold(prefix));
-      }
-      return `${colors$1.dim(getTimeFormatter().format(/* @__PURE__ */ new Date()))} ${tag} ${msg}`;
-    } else {
-      return msg;
-    }
-  }
-  function output(type, msg, options22 = {}) {
-    if (thresh >= LogLevels[type]) {
-      const method = type === "info" ? "log" : type;
-      if (options22.error) {
-        loggedErrors.add(options22.error);
-      }
-      if (canClearScreen) {
-        if (type === lastType && msg === lastMsg) {
-          sameCount++;
-          clear();
-          console[method](
-            format2(type, msg, options22),
-            colors$1.yellow(`(x${sameCount + 1})`)
-          );
-        } else {
-          sameCount = 0;
-          lastMsg = msg;
-          lastType = type;
-          if (options22.clear) {
-            clear();
-          }
-          console[method](format2(type, msg, options22));
-        }
-      } else {
-        console[method](format2(type, msg, options22));
-      }
-    }
-  }
-  const warnedMessages = /* @__PURE__ */ new Set();
-  const logger = {
-    hasWarned: false,
-    info(msg, opts) {
-      output("info", msg, opts);
-    },
-    warn(msg, opts) {
-      logger.hasWarned = true;
-      output("warn", msg, opts);
-    },
-    warnOnce(msg, opts) {
-      if (warnedMessages.has(msg)) return;
-      logger.hasWarned = true;
-      output("warn", msg, opts);
-      warnedMessages.add(msg);
-    },
-    error(msg, opts) {
-      logger.hasWarned = true;
-      output("error", msg, opts);
-    },
-    clearScreen(type) {
-      if (thresh >= LogLevels[type]) {
-        clear();
-      }
-    },
-    hasErrorLogged(error2) {
-      return loggedErrors.has(error2);
-    }
-  };
-  return logger;
-}
-function printServerUrls(urls, optionsHost, info) {
-  const colorUrl = (url2) => colors$1.cyan(url2.replace(/:(\d+)\//, (_, port) => `:${colors$1.bold(port)}/`));
-  for (const url2 of urls.local) {
-    info(`  ${colors$1.green("➜")}  ${colors$1.bold("Local")}:   ${colorUrl(url2)}`);
-  }
-  for (const url2 of urls.network) {
-    info(`  ${colors$1.green("➜")}  ${colors$1.bold("Network")}: ${colorUrl(url2)}`);
-  }
-  if (urls.network.length === 0 && optionsHost === void 0) {
-    info(
-      colors$1.dim(`  ${colors$1.green("➜")}  ${colors$1.bold("Network")}: use `) + colors$1.bold("--host") + colors$1.dim(" to expose")
-    );
-  }
-}
-var groups = [
-  { name: "Assets", color: colors$1.green },
-  { name: "CSS", color: colors$1.magenta },
-  { name: "JS", color: colors$1.cyan }
-];
-var COMPRESSIBLE_ASSETS_RE = /\.(?:html|json|svg|txt|xml|xhtml)$/;
-function buildReporterPlugin(config2) {
-  const compress = (0, import_node_util.promisify)(import_node_zlib.gzip);
-  const chunkLimit = config2.build.chunkSizeWarningLimit;
-  const numberFormatter = new Intl.NumberFormat("en", {
-    maximumFractionDigits: 2,
-    minimumFractionDigits: 2
-  });
-  const displaySize = (bytes) => {
-    return `${numberFormatter.format(bytes / 1e3)} kB`;
-  };
-  const tty = process.stdout.isTTY && !process.env.CI;
-  const shouldLogInfo = LogLevels[config2.logLevel || "info"] >= LogLevels.info;
-  let hasTransformed = false;
-  let hasRenderedChunk = false;
-  let hasCompressChunk = false;
-  let transformedCount = 0;
-  let chunkCount = 0;
-  let compressedCount = 0;
-  async function getCompressedSize(code) {
-    if (config2.build.ssr || !config2.build.reportCompressedSize) {
-      return null;
-    }
-    if (shouldLogInfo && !hasCompressChunk) {
-      if (!tty) {
-        config2.logger.info("computing gzip size...");
-      } else {
-        writeLine("computing gzip size (0)...");
-      }
-      hasCompressChunk = true;
-    }
-    const compressed = await compress(
-      typeof code === "string" ? code : Buffer.from(code)
-    );
-    compressedCount++;
-    if (shouldLogInfo && tty) {
-      writeLine(`computing gzip size (${compressedCount})...`);
-    }
-    return compressed.length;
-  }
-  const logTransform = throttle((id) => {
-    writeLine(
-      `transforming (${transformedCount}) ${colors$1.dim(
-        import_node_path3.default.relative(config2.root, id)
-      )}`
-    );
-  });
-  return {
-    name: "vite:reporter",
-    transform(_, id) {
-      transformedCount++;
-      if (shouldLogInfo) {
-        if (!tty) {
-          if (!hasTransformed) {
-            config2.logger.info(`transforming...`);
-          }
-        } else {
-          if (id.includes(`?`)) return;
-          logTransform(id);
-        }
-        hasTransformed = true;
-      }
-      return null;
-    },
-    buildStart() {
-      transformedCount = 0;
-    },
-    buildEnd() {
-      if (shouldLogInfo) {
-        if (tty) {
-          clearLine$1();
-        }
-        config2.logger.info(
-          `${colors$1.green(`✓`)} ${transformedCount} modules transformed.`
-        );
-      }
-    },
-    renderStart() {
-      chunkCount = 0;
-      compressedCount = 0;
-    },
-    renderChunk(code, chunk, options2) {
-      if (!options2.inlineDynamicImports) {
-        for (const id of chunk.moduleIds) {
-          const module = this.getModuleInfo(id);
-          if (!module) continue;
-          if (module.importers.length && module.dynamicImporters.length) {
-            const detectedIneffectiveDynamicImport = module.dynamicImporters.some(
-              (id2) => !isInNodeModules$1(id2) && chunk.moduleIds.includes(id2)
-            );
-            if (detectedIneffectiveDynamicImport) {
-              this.warn(
-                `
-(!) ${module.id} is dynamically imported by ${module.dynamicImporters.join(
-                  ", "
-                )} but also statically imported by ${module.importers.join(
-                  ", "
-                )}, dynamic import will not move module into another chunk.
-`
-              );
-            }
-          }
-        }
-      }
-      chunkCount++;
-      if (shouldLogInfo) {
-        if (!tty) {
-          if (!hasRenderedChunk) {
-            config2.logger.info("rendering chunks...");
-          }
-        } else {
-          writeLine(`rendering chunks (${chunkCount})...`);
-        }
-        hasRenderedChunk = true;
-      }
-      return null;
-    },
-    generateBundle() {
-      if (shouldLogInfo && tty) clearLine$1();
-    },
-    async writeBundle({ dir: outDir }, output) {
-      let hasLargeChunks = false;
-      if (shouldLogInfo) {
-        const entries = (await Promise.all(
-          Object.values(output).map(
-            async (chunk) => {
-              if (chunk.type === "chunk") {
-                return {
-                  name: chunk.fileName,
-                  group: "JS",
-                  size: chunk.code.length,
-                  compressedSize: await getCompressedSize(chunk.code),
-                  mapSize: chunk.map ? chunk.map.toString().length : null
-                };
-              } else {
-                if (chunk.fileName.endsWith(".map")) return null;
-                const isCSS = chunk.fileName.endsWith(".css");
-                const isCompressible = isCSS || COMPRESSIBLE_ASSETS_RE.test(chunk.fileName);
-                return {
-                  name: chunk.fileName,
-                  group: isCSS ? "CSS" : "Assets",
-                  size: chunk.source.length,
-                  mapSize: null,
-                  // Rollup doesn't support CSS maps?
-                  compressedSize: isCompressible ? await getCompressedSize(chunk.source) : null
-                };
-              }
-            }
-          )
-        )).filter(isDefined);
-        if (tty) clearLine$1();
-        let longest = 0;
-        let biggestSize = 0;
-        let biggestMap = 0;
-        let biggestCompressSize = 0;
-        for (const entry2 of entries) {
-          if (entry2.name.length > longest) longest = entry2.name.length;
-          if (entry2.size > biggestSize) biggestSize = entry2.size;
-          if (entry2.mapSize && entry2.mapSize > biggestMap) {
-            biggestMap = entry2.mapSize;
-          }
-          if (entry2.compressedSize && entry2.compressedSize > biggestCompressSize) {
-            biggestCompressSize = entry2.compressedSize;
-          }
-        }
-        const sizePad = displaySize(biggestSize).length;
-        const mapPad = displaySize(biggestMap).length;
-        const compressPad = displaySize(biggestCompressSize).length;
-        const relativeOutDir = normalizePath$3(
-          import_node_path3.default.relative(
-            config2.root,
-            import_node_path3.default.resolve(config2.root, outDir ?? config2.build.outDir)
-          )
-        );
-        const assetsDir = import_node_path3.default.join(config2.build.assetsDir, "/");
-        for (const group of groups) {
-          const filtered = entries.filter((e2) => e2.group === group.name);
-          if (!filtered.length) continue;
-          for (const entry2 of filtered.sort((a, z) => a.size - z.size)) {
-            const isLarge = group.name === "JS" && entry2.size / 1e3 > chunkLimit;
-            if (isLarge) hasLargeChunks = true;
-            const sizeColor = isLarge ? colors$1.yellow : colors$1.dim;
-            let log = colors$1.dim(withTrailingSlash(relativeOutDir));
-            log += !config2.build.lib && entry2.name.startsWith(withTrailingSlash(assetsDir)) ? colors$1.dim(assetsDir) + group.color(
-              entry2.name.slice(assetsDir.length).padEnd(longest + 2 - assetsDir.length)
-            ) : group.color(entry2.name.padEnd(longest + 2));
-            log += colors$1.bold(
-              sizeColor(displaySize(entry2.size).padStart(sizePad))
-            );
-            if (entry2.compressedSize) {
-              log += colors$1.dim(
-                ` │ gzip: ${displaySize(entry2.compressedSize).padStart(
-                  compressPad
-                )}`
-              );
-            }
-            if (entry2.mapSize) {
-              log += colors$1.dim(
-                ` │ map: ${displaySize(entry2.mapSize).padStart(mapPad)}`
-              );
-            }
-            config2.logger.info(log);
-          }
-        }
-      } else {
-        hasLargeChunks = Object.values(output).some((chunk) => {
-          return chunk.type === "chunk" && chunk.code.length / 1e3 > chunkLimit;
-        });
-      }
-      if (hasLargeChunks && config2.build.minify && !config2.build.lib && !config2.build.ssr) {
-        config2.logger.warn(
-          colors$1.yellow(
-            `
-(!) Some chunks are larger than ${chunkLimit} kB after minification. Consider:
-- Using dynamic import() to code-split the application
-- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
-- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.`
-          )
-        );
-      }
-    }
-  };
-}
-function writeLine(output) {
-  clearLine$1();
-  if (output.length < process.stdout.columns) {
-    process.stdout.write(output);
-  } else {
-    process.stdout.write(output.substring(0, process.stdout.columns - 1));
-  }
-}
-function clearLine$1() {
-  process.stdout.clearLine(0);
-  process.stdout.cursorTo(0);
-}
-function throttle(fn) {
-  let timerHandle = null;
-  return (...args) => {
-    if (timerHandle) return;
-    fn(...args);
-    timerHandle = setTimeout(() => {
-      timerHandle = null;
-    }, 100);
-  };
-}
-var POSIX_SEP_RE = new RegExp("\\" + import_node_path3.default.posix.sep, "g");
-var NATIVE_SEP_RE = new RegExp("\\" + import_node_path3.default.sep, "g");
-var PATTERN_REGEX_CACHE = /* @__PURE__ */ new Map();
-var GLOB_ALL_PATTERN = `**/*`;
-var TS_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts"];
-var JS_EXTENSIONS = [".js", ".jsx", ".mjs", ".cjs"];
-var TSJS_EXTENSIONS = TS_EXTENSIONS.concat(JS_EXTENSIONS);
-var TS_EXTENSIONS_RE_GROUP = `\\.(?:${TS_EXTENSIONS.map((ext2) => ext2.substring(1)).join("|")})`;
-var TSJS_EXTENSIONS_RE_GROUP = `\\.(?:${TSJS_EXTENSIONS.map((ext2) => ext2.substring(1)).join(
-  "|"
-)})`;
-var IS_POSIX = import_node_path3.default.posix.sep === import_node_path3.default.sep;
-function makePromise() {
-  let resolve3, reject;
-  const promise2 = new Promise((res, rej) => {
-    resolve3 = res;
-    reject = rej;
-  });
-  return { promise: promise2, resolve: resolve3, reject };
-}
-async function resolveTSConfigJson(filename, cache) {
-  if (import_node_path3.default.extname(filename) !== ".json") {
-    return;
-  }
-  const tsconfig = import_node_path3.default.resolve(filename);
-  if (cache && (cache.hasParseResult(tsconfig) || cache.hasParseResult(filename))) {
-    return tsconfig;
-  }
-  return import_node_fs2.promises.stat(tsconfig).then((stat2) => {
-    if (stat2.isFile() || stat2.isFIFO()) {
-      return tsconfig;
-    } else {
-      throw new Error(`${filename} exists but is not a regular file.`);
-    }
-  });
-}
-var isInNodeModules = IS_POSIX ? (dir) => dir.includes("/node_modules/") : (dir) => dir.match(/[/\\]node_modules[/\\]/);
-var posix2native = IS_POSIX ? (filename) => filename : (filename) => filename.replace(POSIX_SEP_RE, import_node_path3.default.sep);
-var native2posix = IS_POSIX ? (filename) => filename : (filename) => filename.replace(NATIVE_SEP_RE, import_node_path3.default.posix.sep);
-var resolve2posix = IS_POSIX ? (dir, filename) => dir ? import_node_path3.default.resolve(dir, filename) : import_node_path3.default.resolve(filename) : (dir, filename) => native2posix(
-  dir ? import_node_path3.default.resolve(posix2native(dir), posix2native(filename)) : import_node_path3.default.resolve(posix2native(filename))
-);
-function resolveReferencedTSConfigFiles(result, options2) {
-  const dir = import_node_path3.default.dirname(result.tsconfigFile);
-  return result.tsconfig.references.map((ref) => {
-    const refPath = ref.path.endsWith(".json") ? ref.path : import_node_path3.default.join(ref.path, (options2 == null ? void 0 : options2.configName) ?? "tsconfig.json");
-    return resolve2posix(dir, refPath);
-  });
-}
-function resolveSolutionTSConfig(filename, result) {
-  var _a4;
-  const allowJs = (_a4 = result.tsconfig.compilerOptions) == null ? void 0 : _a4.allowJs;
-  const extensions2 = allowJs ? TSJS_EXTENSIONS : TS_EXTENSIONS;
-  if (result.referenced && extensions2.some((ext2) => filename.endsWith(ext2)) && !isIncluded(filename, result)) {
-    const solutionTSConfig = result.referenced.find(
-      (referenced) => isIncluded(filename, referenced)
-    );
-    if (solutionTSConfig) {
-      return solutionTSConfig;
-    }
-  }
-  return result;
-}
-function isIncluded(filename, result) {
-  var _a4;
-  const dir = native2posix(import_node_path3.default.dirname(result.tsconfigFile));
-  const files = (result.tsconfig.files || []).map((file) => resolve2posix(dir, file));
-  const absoluteFilename = resolve2posix(null, filename);
-  if (files.includes(filename)) {
-    return true;
-  }
-  const allowJs = (_a4 = result.tsconfig.compilerOptions) == null ? void 0 : _a4.allowJs;
-  const isIncluded2 = isGlobMatch(
-    absoluteFilename,
-    dir,
-    result.tsconfig.include || (result.tsconfig.files ? [] : [GLOB_ALL_PATTERN]),
-    allowJs
-  );
-  if (isIncluded2) {
-    const isExcluded = isGlobMatch(absoluteFilename, dir, result.tsconfig.exclude || [], allowJs);
-    return !isExcluded;
-  }
-  return false;
-}
-function isGlobMatch(filename, dir, patterns, allowJs) {
-  const extensions2 = allowJs ? TSJS_EXTENSIONS : TS_EXTENSIONS;
-  return patterns.some((pattern2) => {
-    let lastWildcardIndex = pattern2.length;
-    let hasWildcard = false;
-    for (let i = pattern2.length - 1; i > -1; i--) {
-      if (pattern2[i] === "*" || pattern2[i] === "?") {
-        lastWildcardIndex = i;
-        hasWildcard = true;
-        break;
-      }
-    }
-    if (lastWildcardIndex < pattern2.length - 1 && !filename.endsWith(pattern2.slice(lastWildcardIndex + 1))) {
-      return false;
-    }
-    if (pattern2.endsWith("*") && !extensions2.some((ext2) => filename.endsWith(ext2))) {
-      return false;
-    }
-    if (pattern2 === GLOB_ALL_PATTERN) {
-      return filename.startsWith(`${dir}/`);
-    }
-    const resolvedPattern = resolve2posix(dir, pattern2);
-    let firstWildcardIndex = -1;
-    for (let i = 0; i < resolvedPattern.length; i++) {
-      if (resolvedPattern[i] === "*" || resolvedPattern[i] === "?") {
-        firstWildcardIndex = i;
-        hasWildcard = true;
-        break;
-      }
-    }
-    if (firstWildcardIndex > 1 && !filename.startsWith(resolvedPattern.slice(0, firstWildcardIndex - 1))) {
-      return false;
-    }
-    if (!hasWildcard) {
-      return filename === resolvedPattern;
-    }
-    if (PATTERN_REGEX_CACHE.has(resolvedPattern)) {
-      return PATTERN_REGEX_CACHE.get(resolvedPattern).test(filename);
-    }
-    const regex2 = pattern2regex(resolvedPattern, allowJs);
-    PATTERN_REGEX_CACHE.set(resolvedPattern, regex2);
-    return regex2.test(filename);
-  });
-}
-function pattern2regex(resolvedPattern, allowJs) {
-  let regexStr = "^";
-  for (let i = 0; i < resolvedPattern.length; i++) {
-    const char = resolvedPattern[i];
-    if (char === "?") {
-      regexStr += "[^\\/]";
-      continue;
-    }
-    if (char === "*") {
-      if (resolvedPattern[i + 1] === "*" && resolvedPattern[i + 2] === "/") {
-        i += 2;
-        regexStr += "(?:[^\\/]*\\/)*";
-        continue;
-      }
-      regexStr += "[^\\/]*";
-      continue;
-    }
-    if ("/.+^${}()|[]\\".includes(char)) {
-      regexStr += `\\`;
-    }
-    regexStr += char;
-  }
-  if (resolvedPattern.endsWith("*")) {
-    regexStr += allowJs ? TSJS_EXTENSIONS_RE_GROUP : TS_EXTENSIONS_RE_GROUP;
-  }
-  regexStr += "$";
-  return new RegExp(regexStr);
-}
-function replaceTokens(tsconfig, configDir) {
-  return JSON.parse(
-    JSON.stringify(tsconfig).replaceAll(/"(?:\.\.\/)*\${configDir}/g, `"${native2posix(configDir)}`)
-  );
-}
-async function find(filename, options2) {
-  let dir = import_node_path3.default.dirname(import_node_path3.default.resolve(filename));
-  if ((options2 == null ? void 0 : options2.ignoreNodeModules) && isInNodeModules(dir)) {
-    return null;
-  }
-  const cache = options2 == null ? void 0 : options2.cache;
-  const configName = (options2 == null ? void 0 : options2.configName) ?? "tsconfig.json";
-  if (cache == null ? void 0 : cache.hasConfigPath(dir, configName)) {
-    return cache.getConfigPath(dir, configName);
-  }
-  const {
-    /** @type {Promise} */
-    promise: promise2,
-    resolve: resolve3,
-    reject
-  } = makePromise();
-  if ((options2 == null ? void 0 : options2.root) && !import_node_path3.default.isAbsolute(options2.root)) {
-    options2.root = import_node_path3.default.resolve(options2.root);
-  }
-  findUp(dir, { promise: promise2, resolve: resolve3, reject }, options2);
-  return promise2;
-}
-function findUp(dir, { resolve: resolve3, reject, promise: promise2 }, options2) {
-  const { cache, root, configName } = options2 ?? {};
-  if (cache) {
-    if (cache.hasConfigPath(dir, configName)) {
-      let cached;
-      try {
-        cached = cache.getConfigPath(dir, configName);
-      } catch (e2) {
-        reject(e2);
-        return;
-      }
-      if (cached == null ? void 0 : cached.then) {
-        cached.then(resolve3).catch(reject);
-      } else {
-        resolve3(cached);
-      }
-    } else {
-      cache.setConfigPath(dir, promise2, configName);
-    }
-  }
-  const tsconfig = import_node_path3.default.join(dir, (options2 == null ? void 0 : options2.configName) ?? "tsconfig.json");
-  import_node_fs2.default.stat(tsconfig, (err2, stats) => {
-    if (stats && (stats.isFile() || stats.isFIFO())) {
-      resolve3(tsconfig);
-    } else if ((err2 == null ? void 0 : err2.code) !== "ENOENT") {
-      reject(err2);
-    } else {
-      let parent;
-      if (root === dir || (parent = import_node_path3.default.dirname(dir)) === dir) {
-        resolve3(null);
-      } else {
-        findUp(parent, { promise: promise2, resolve: resolve3, reject }, options2);
-      }
-    }
-  });
-}
-function toJson(tsconfigJson) {
-  const stripped = stripDanglingComma(stripJsonComments(stripBom(tsconfigJson)));
-  if (stripped.trim() === "") {
-    return "{}";
-  } else {
-    return stripped;
-  }
-}
-function stripDanglingComma(pseudoJson) {
-  let insideString = false;
-  let offset2 = 0;
-  let result = "";
-  let danglingCommaPos = null;
-  for (let i = 0; i < pseudoJson.length; i++) {
-    const currentCharacter = pseudoJson[i];
-    if (currentCharacter === '"') {
-      const escaped2 = isEscaped(pseudoJson, i);
-      if (!escaped2) {
-        insideString = !insideString;
-      }
-    }
-    if (insideString) {
-      danglingCommaPos = null;
-      continue;
-    }
-    if (currentCharacter === ",") {
-      danglingCommaPos = i;
-      continue;
-    }
-    if (danglingCommaPos) {
-      if (currentCharacter === "}" || currentCharacter === "]") {
-        result += pseudoJson.slice(offset2, danglingCommaPos) + " ";
-        offset2 = danglingCommaPos + 1;
-        danglingCommaPos = null;
-      } else if (!currentCharacter.match(/\s/)) {
-        danglingCommaPos = null;
-      }
-    }
-  }
-  return result + pseudoJson.substring(offset2);
-}
-function isEscaped(jsonString, quotePosition) {
-  let index = quotePosition - 1;
-  let backslashCount = 0;
-  while (jsonString[index] === "\\") {
-    index -= 1;
-    backslashCount += 1;
-  }
-  return Boolean(backslashCount % 2);
-}
-function strip(string2, start, end) {
-  return string2.slice(start, end).replace(/\S/g, " ");
-}
-var singleComment = Symbol("singleComment");
-var multiComment = Symbol("multiComment");
-function stripJsonComments(jsonString) {
-  let isInsideString = false;
-  let isInsideComment = false;
-  let offset2 = 0;
-  let result = "";
-  for (let index = 0; index < jsonString.length; index++) {
-    const currentCharacter = jsonString[index];
-    const nextCharacter = jsonString[index + 1];
-    if (!isInsideComment && currentCharacter === '"') {
-      const escaped2 = isEscaped(jsonString, index);
-      if (!escaped2) {
-        isInsideString = !isInsideString;
-      }
-    }
-    if (isInsideString) {
-      continue;
-    }
-    if (!isInsideComment && currentCharacter + nextCharacter === "//") {
-      result += jsonString.slice(offset2, index);
-      offset2 = index;
-      isInsideComment = singleComment;
-      index++;
-    } else if (isInsideComment === singleComment && currentCharacter + nextCharacter === "\r\n") {
-      index++;
-      isInsideComment = false;
-      result += strip(jsonString, offset2, index);
-      offset2 = index;
-    } else if (isInsideComment === singleComment && currentCharacter === "\n") {
-      isInsideComment = false;
-      result += strip(jsonString, offset2, index);
-      offset2 = index;
-    } else if (!isInsideComment && currentCharacter + nextCharacter === "/*") {
-      result += jsonString.slice(offset2, index);
-      offset2 = index;
-      isInsideComment = multiComment;
-      index++;
-    } else if (isInsideComment === multiComment && currentCharacter + nextCharacter === "*/") {
-      index++;
-      isInsideComment = false;
-      result += strip(jsonString, offset2, index + 1);
-      offset2 = index + 1;
-    }
-  }
-  return result + (isInsideComment ? strip(jsonString.slice(offset2)) : jsonString.slice(offset2));
-}
-function stripBom(string2) {
-  if (string2.charCodeAt(0) === 65279) {
-    return string2.slice(1);
-  }
-  return string2;
-}
-var not_found_result = {
-  tsconfigFile: null,
-  tsconfig: {}
-};
-async function parse$e(filename, options2) {
-  const cache = options2 == null ? void 0 : options2.cache;
-  if (cache == null ? void 0 : cache.hasParseResult(filename)) {
-    return getParsedDeep(filename, cache, options2);
-  }
-  const {
-    resolve: resolve3,
-    reject,
-    /** @type {Promise}*/
-    promise: promise2
-  } = makePromise();
-  cache == null ? void 0 : cache.setParseResult(filename, promise2, true);
-  try {
-    let tsconfigFile = await resolveTSConfigJson(filename, cache) || await find(filename, options2);
-    if (!tsconfigFile) {
-      resolve3(not_found_result);
-      return promise2;
-    }
-    let result;
-    if (filename !== tsconfigFile && (cache == null ? void 0 : cache.hasParseResult(tsconfigFile))) {
-      result = await getParsedDeep(tsconfigFile, cache, options2);
-    } else {
-      result = await parseFile$1(tsconfigFile, cache, filename === tsconfigFile);
-      await Promise.all([parseExtends(result, cache), parseReferences(result, options2)]);
-    }
-    result.tsconfig = replaceTokens(result.tsconfig, import_node_path3.default.dirname(tsconfigFile));
-    resolve3(resolveSolutionTSConfig(filename, result));
-  } catch (e2) {
-    reject(e2);
-  }
-  return promise2;
-}
-async function getParsedDeep(filename, cache, options2) {
-  const result = await cache.getParseResult(filename);
-  if (result.tsconfig.extends && !result.extended || result.tsconfig.references && !result.referenced) {
-    const promise2 = Promise.all([
-      parseExtends(result, cache),
-      parseReferences(result, options2)
-    ]).then(() => result);
-    cache.setParseResult(filename, promise2, true);
-    return promise2;
-  }
-  return result;
-}
-async function parseFile$1(tsconfigFile, cache, skipCache) {
-  if (!skipCache && (cache == null ? void 0 : cache.hasParseResult(tsconfigFile)) && !cache.getParseResult(tsconfigFile)._isRootFile_) {
-    return cache.getParseResult(tsconfigFile);
-  }
-  const promise2 = import_node_fs2.promises.readFile(tsconfigFile, "utf-8").then(toJson).then((json) => {
-    const parsed = JSON.parse(json);
-    applyDefaults(parsed, tsconfigFile);
-    return {
-      tsconfigFile,
-      tsconfig: normalizeTSConfig(parsed, import_node_path3.default.dirname(tsconfigFile))
-    };
-  }).catch((e2) => {
-    throw new TSConfckParseError(
-      `parsing ${tsconfigFile} failed: ${e2}`,
-      "PARSE_FILE",
-      tsconfigFile,
-      e2
-    );
-  });
-  if (!skipCache && (!(cache == null ? void 0 : cache.hasParseResult(tsconfigFile)) || !cache.getParseResult(tsconfigFile)._isRootFile_)) {
-    cache == null ? void 0 : cache.setParseResult(tsconfigFile, promise2);
-  }
-  return promise2;
-}
-function normalizeTSConfig(tsconfig, dir) {
-  var _a4;
-  const baseUrl = (_a4 = tsconfig.compilerOptions) == null ? void 0 : _a4.baseUrl;
-  if (baseUrl && !baseUrl.startsWith("${") && !import_node_path3.default.isAbsolute(baseUrl)) {
-    tsconfig.compilerOptions.baseUrl = resolve2posix(dir, baseUrl);
-  }
-  return tsconfig;
-}
-async function parseReferences(result, options2) {
-  if (!result.tsconfig.references) {
-    return;
-  }
-  const referencedFiles = resolveReferencedTSConfigFiles(result, options2);
-  const referenced = await Promise.all(
-    referencedFiles.map((file) => parseFile$1(file, options2 == null ? void 0 : options2.cache))
-  );
-  await Promise.all(referenced.map((ref) => parseExtends(ref, options2 == null ? void 0 : options2.cache)));
-  referenced.forEach((ref) => {
-    ref.solution = result;
-  });
-  result.referenced = referenced;
-}
-async function parseExtends(result, cache) {
-  if (!result.tsconfig.extends) {
-    return;
-  }
-  const extended = [
-    { tsconfigFile: result.tsconfigFile, tsconfig: JSON.parse(JSON.stringify(result.tsconfig)) }
-  ];
-  let pos = 0;
-  const extendsPath = [];
-  let currentBranchDepth = 0;
-  while (pos < extended.length) {
-    const extending = extended[pos];
-    extendsPath.push(extending.tsconfigFile);
-    if (extending.tsconfig.extends) {
-      currentBranchDepth += 1;
-      let resolvedExtends;
-      if (!Array.isArray(extending.tsconfig.extends)) {
-        resolvedExtends = [resolveExtends(extending.tsconfig.extends, extending.tsconfigFile)];
-      } else {
-        resolvedExtends = extending.tsconfig.extends.reverse().map((ex) => resolveExtends(ex, extending.tsconfigFile));
-      }
-      const circularExtends = resolvedExtends.find(
-        (tsconfigFile) => extendsPath.includes(tsconfigFile)
-      );
-      if (circularExtends) {
-        const circle = extendsPath.concat([circularExtends]).join(" -> ");
-        throw new TSConfckParseError(
-          `Circular dependency in "extends": ${circle}`,
-          "EXTENDS_CIRCULAR",
-          result.tsconfigFile
-        );
-      }
-      extended.splice(
-        pos + 1,
-        0,
-        ...await Promise.all(resolvedExtends.map((file) => parseFile$1(file, cache)))
-      );
-    } else {
-      extendsPath.splice(-currentBranchDepth);
-      currentBranchDepth = 0;
-    }
-    pos = pos + 1;
-  }
-  result.extended = extended;
-  for (const ext2 of result.extended.slice(1)) {
-    extendTSConfig(result, ext2);
-  }
-}
-function resolveExtends(extended, from) {
-  if (extended === "..") {
-    extended = "../tsconfig.json";
-  }
-  const req2 = (0, import_module.createRequire)(from);
-  let error2;
-  try {
-    return req2.resolve(extended);
-  } catch (e2) {
-    error2 = e2;
-  }
-  if (extended[0] !== "." && !import_node_path3.default.isAbsolute(extended)) {
-    try {
-      return req2.resolve(`${extended}/tsconfig.json`);
-    } catch (e2) {
-      error2 = e2;
-    }
-  }
-  throw new TSConfckParseError(
-    `failed to resolve "extends":"${extended}" in ${from}`,
-    "EXTENDS_RESOLVE",
-    from,
-    error2
-  );
-}
-var EXTENDABLE_KEYS = [
-  "compilerOptions",
-  "files",
-  "include",
-  "exclude",
-  "watchOptions",
-  "compileOnSave",
-  "typeAcquisition",
-  "buildOptions"
-];
-function extendTSConfig(extending, extended) {
-  const extendingConfig = extending.tsconfig;
-  const extendedConfig = extended.tsconfig;
-  const relativePath = native2posix(
-    import_node_path3.default.relative(import_node_path3.default.dirname(extending.tsconfigFile), import_node_path3.default.dirname(extended.tsconfigFile))
-  );
-  for (const key of Object.keys(extendedConfig).filter((key2) => EXTENDABLE_KEYS.includes(key2))) {
-    if (key === "compilerOptions") {
-      if (!extendingConfig.compilerOptions) {
-        extendingConfig.compilerOptions = {};
-      }
-      for (const option of Object.keys(extendedConfig.compilerOptions)) {
-        if (Object.prototype.hasOwnProperty.call(extendingConfig.compilerOptions, option)) {
-          continue;
-        }
-        extendingConfig.compilerOptions[option] = rebaseRelative(
-          option,
-          extendedConfig.compilerOptions[option],
-          relativePath
-        );
-      }
-    } else if (extendingConfig[key] === void 0) {
-      if (key === "watchOptions") {
-        extendingConfig.watchOptions = {};
-        for (const option of Object.keys(extendedConfig.watchOptions)) {
-          extendingConfig.watchOptions[option] = rebaseRelative(
-            option,
-            extendedConfig.watchOptions[option],
-            relativePath
-          );
-        }
-      } else {
-        extendingConfig[key] = rebaseRelative(key, extendedConfig[key], relativePath);
-      }
-    }
-  }
-}
-var REBASE_KEYS = [
-  // root
-  "files",
-  "include",
-  "exclude",
-  // compilerOptions
-  "baseUrl",
-  "rootDir",
-  "rootDirs",
-  "typeRoots",
-  "outDir",
-  "outFile",
-  "declarationDir",
-  // watchOptions
-  "excludeDirectories",
-  "excludeFiles"
-];
-function rebaseRelative(key, value2, prependPath) {
-  if (!REBASE_KEYS.includes(key)) {
-    return value2;
-  }
-  if (Array.isArray(value2)) {
-    return value2.map((x) => rebasePath(x, prependPath));
-  } else {
-    return rebasePath(value2, prependPath);
-  }
-}
-function rebasePath(value2, prependPath) {
-  if (import_node_path3.default.isAbsolute(value2)) {
-    return value2;
-  } else {
-    return import_node_path3.default.posix.normalize(import_node_path3.default.posix.join(prependPath, value2));
-  }
-}
-var TSConfckParseError = class _TSConfckParseError extends Error {
-  /**
-   *
-   * @param {string} message - error message
-   * @param {string} code - error code
-   * @param {string} tsconfigFile - path to tsconfig file
-   * @param {Error?} cause - cause of this error
-   */
-  constructor(message, code, tsconfigFile, cause) {
-    super(message);
-    /**
-     * error code
-     * @type {string}
-     */
-    __publicField(this, "code");
-    /**
-     * error cause
-     * @type { Error | undefined}
-     */
-    __publicField(this, "cause");
-    /**
-     * absolute path of tsconfig file where the error happened
-     * @type {string}
-     */
-    __publicField(this, "tsconfigFile");
-    Object.setPrototypeOf(this, _TSConfckParseError.prototype);
-    this.name = _TSConfckParseError.name;
-    this.code = code;
-    this.cause = cause;
-    this.tsconfigFile = tsconfigFile;
-  }
-};
-function applyDefaults(tsconfig, tsconfigFile) {
-  if (isJSConfig(tsconfigFile)) {
-    tsconfig.compilerOptions = {
-      ...DEFAULT_JSCONFIG_COMPILER_OPTIONS,
-      ...tsconfig.compilerOptions
-    };
-  }
-}
-var DEFAULT_JSCONFIG_COMPILER_OPTIONS = {
-  allowJs: true,
-  maxNodeModuleJsDepth: 2,
-  allowSyntheticDefaultImports: true,
-  skipLibCheck: true,
-  noEmit: true
-};
-function isJSConfig(configFileName) {
-  return import_node_path3.default.basename(configFileName) === "jsconfig.json";
-}
-var _configPaths, _parsed;
-var TSConfckCache = class {
-  constructor() {
-    /**
-     * map directories to their closest tsconfig.json
-     * @internal
-     * @private
-     * @type{Map|string|null)>}
-     */
-    __privateAdd(this, _configPaths, /* @__PURE__ */ new Map());
-    /**
-     * map files to their parsed tsconfig result
-     * @internal
-     * @private
-     * @type {Map|T)> }
-     */
-    __privateAdd(this, _parsed, /* @__PURE__ */ new Map());
-  }
-  /**
-   * clear cache, use this if you have a long running process and tsconfig files have been added,changed or deleted
-   */
-  clear() {
-    __privateGet(this, _configPaths).clear();
-    __privateGet(this, _parsed).clear();
-  }
-  /**
-   * has cached closest config for files in dir
-   * @param {string} dir
-   * @param {string} [configName=tsconfig.json]
-   * @returns {boolean}
-   */
-  hasConfigPath(dir, configName = "tsconfig.json") {
-    return __privateGet(this, _configPaths).has(`${dir}/${configName}`);
-  }
-  /**
-   * get cached closest tsconfig for files in dir
-   * @param {string} dir
-   * @param {string} [configName=tsconfig.json]
-   * @returns {Promise|string|null}
-   * @throws {unknown} if cached value is an error
-   */
-  getConfigPath(dir, configName = "tsconfig.json") {
-    const key = `${dir}/${configName}`;
-    const value2 = __privateGet(this, _configPaths).get(key);
-    if (value2 == null || value2.length || value2.then) {
-      return value2;
-    } else {
-      throw value2;
-    }
-  }
-  /**
-   * has parsed tsconfig for file
-   * @param {string} file
-   * @returns {boolean}
-   */
-  hasParseResult(file) {
-    return __privateGet(this, _parsed).has(file);
-  }
-  /**
-   * get parsed tsconfig for file
-   * @param {string} file
-   * @returns {Promise|T}
-   * @throws {unknown} if cached value is an error
-   */
-  getParseResult(file) {
-    const value2 = __privateGet(this, _parsed).get(file);
-    if (value2.then || value2.tsconfig) {
-      return value2;
-    } else {
-      throw value2;
-    }
-  }
-  /**
-   * @internal
-   * @private
-   * @param file
-   * @param {boolean} isRootFile a flag to check if current file which involking the parse() api, used to distinguish the normal cache which only parsed by parseFile()
-   * @param {Promise} result
-   */
-  setParseResult(file, result, isRootFile = false) {
-    Object.defineProperty(result, "_isRootFile_", {
-      value: isRootFile,
-      writable: false,
-      enumerable: false,
-      configurable: false
-    });
-    __privateGet(this, _parsed).set(file, result);
-    result.then((parsed) => {
-      if (__privateGet(this, _parsed).get(file) === result) {
-        __privateGet(this, _parsed).set(file, parsed);
-      }
-    }).catch((e2) => {
-      if (__privateGet(this, _parsed).get(file) === result) {
-        __privateGet(this, _parsed).set(file, e2);
-      }
-    });
-  }
-  /**
-   * @internal
-   * @private
-   * @param {string} dir
-   * @param {Promise} configPath
-   * @param {string} [configName=tsconfig.json]
-   */
-  setConfigPath(dir, configPath, configName = "tsconfig.json") {
-    const key = `${dir}/${configName}`;
-    __privateGet(this, _configPaths).set(key, configPath);
-    configPath.then((path3) => {
-      if (__privateGet(this, _configPaths).get(key) === configPath) {
-        __privateGet(this, _configPaths).set(key, path3);
-      }
-    }).catch((e2) => {
-      if (__privateGet(this, _configPaths).get(key) === configPath) {
-        __privateGet(this, _configPaths).set(key, e2);
-      }
-    });
-  }
-};
-_configPaths = new WeakMap();
-_parsed = new WeakMap();
-var debug$h = createDebugger("vite:esbuild");
-var IIFE_BEGIN_RE = /(const|var)\s+\S+\s*=\s*function\([^()]*\)\s*\{\s*"use strict";/;
-var validExtensionRE = /\.\w+$/;
-var jsxExtensionsRE = /\.(?:j|t)sx\b/;
-var defaultEsbuildSupported = {
-  "dynamic-import": true,
-  "import-meta": true
-};
-var server;
-async function transformWithEsbuild(code, filename, options2, inMap) {
-  let loader = options2 == null ? void 0 : options2.loader;
-  if (!loader) {
-    const ext2 = import_node_path3.default.extname(validExtensionRE.test(filename) ? filename : cleanUrl(filename)).slice(1);
-    if (ext2 === "cjs" || ext2 === "mjs") {
-      loader = "js";
-    } else if (ext2 === "cts" || ext2 === "mts") {
-      loader = "ts";
-    } else {
-      loader = ext2;
-    }
-  }
-  let tsconfigRaw = options2 == null ? void 0 : options2.tsconfigRaw;
-  if (typeof tsconfigRaw !== "string") {
-    const meaningfulFields = [
-      "alwaysStrict",
-      "experimentalDecorators",
-      "importsNotUsedAsValues",
-      "jsx",
-      "jsxFactory",
-      "jsxFragmentFactory",
-      "jsxImportSource",
-      "preserveValueImports",
-      "target",
-      "useDefineForClassFields",
-      "verbatimModuleSyntax"
-    ];
-    const compilerOptionsForFile = {};
-    if (loader === "ts" || loader === "tsx") {
-      const loadedTsconfig = await loadTsconfigJsonForFile(filename);
-      const loadedCompilerOptions = loadedTsconfig.compilerOptions ?? {};
-      for (const field of meaningfulFields) {
-        if (field in loadedCompilerOptions) {
-          compilerOptionsForFile[field] = loadedCompilerOptions[field];
-        }
-      }
-    }
-    const compilerOptions = {
-      ...compilerOptionsForFile,
-      ...tsconfigRaw == null ? void 0 : tsconfigRaw.compilerOptions
-    };
-    if (compilerOptions.useDefineForClassFields === void 0 && compilerOptions.target === void 0) {
-      compilerOptions.useDefineForClassFields = false;
-    }
-    if (options2) {
-      options2.jsx && (compilerOptions.jsx = void 0);
-      options2.jsxFactory && (compilerOptions.jsxFactory = void 0);
-      options2.jsxFragment && (compilerOptions.jsxFragmentFactory = void 0);
-      options2.jsxImportSource && (compilerOptions.jsxImportSource = void 0);
-    }
-    tsconfigRaw = {
-      ...tsconfigRaw,
-      compilerOptions
-    };
-  }
-  const resolvedOptions = {
-    sourcemap: true,
-    // ensure source file name contains full query
-    sourcefile: filename,
-    ...options2,
-    loader,
-    tsconfigRaw
-  };
-  delete resolvedOptions.include;
-  delete resolvedOptions.exclude;
-  delete resolvedOptions.jsxInject;
-  try {
-    const result = await (0, import_esbuild.transform)(code, resolvedOptions);
-    let map2;
-    if (inMap && resolvedOptions.sourcemap) {
-      const nextMap = JSON.parse(result.map);
-      nextMap.sourcesContent = [];
-      map2 = combineSourcemaps(filename, [
-        nextMap,
-        inMap
-      ]);
-    } else {
-      map2 = resolvedOptions.sourcemap && resolvedOptions.sourcemap !== "inline" ? JSON.parse(result.map) : { mappings: "" };
-    }
-    return {
-      ...result,
-      map: map2
-    };
-  } catch (e2) {
-    debug$h == null ? void 0 : debug$h(`esbuild error with options used: `, resolvedOptions);
-    if (e2.errors) {
-      e2.frame = "";
-      e2.errors.forEach((m) => {
-        if (m.text === "Experimental decorators are not currently enabled" || m.text === "Parameter decorators only work when experimental decorators are enabled") {
-          m.text += '. Vite 5 now uses esbuild 0.18 and you need to enable them by adding "experimentalDecorators": true in your "tsconfig.json" file.';
-        }
-        e2.frame += `
-` + prettifyMessage(m, code);
-      });
-      e2.loc = e2.errors[0].location;
-    }
-    throw e2;
-  }
-}
-function esbuildPlugin(config2) {
-  const options2 = config2.esbuild;
-  const { jsxInject, include, exclude, ...esbuildTransformOptions } = options2;
-  const filter2 = createFilter2(include || /\.(m?ts|[jt]sx)$/, exclude || /\.js$/);
-  const transformOptions = {
-    target: "esnext",
-    charset: "utf8",
-    ...esbuildTransformOptions,
-    minify: false,
-    minifyIdentifiers: false,
-    minifySyntax: false,
-    minifyWhitespace: false,
-    treeShaking: false,
-    // keepNames is not needed when minify is disabled.
-    // Also transforming multiple times with keepNames enabled breaks
-    // tree-shaking. (#9164)
-    keepNames: false,
-    supported: {
-      ...defaultEsbuildSupported,
-      ...esbuildTransformOptions.supported
-    }
-  };
-  return {
-    name: "vite:esbuild",
-    configureServer(_server) {
-      server = _server;
-      server.watcher.on("add", reloadOnTsconfigChange).on("change", reloadOnTsconfigChange).on("unlink", reloadOnTsconfigChange);
-    },
-    buildEnd() {
-      server = null;
-    },
-    async transform(code, id) {
-      if (filter2(id) || filter2(cleanUrl(id))) {
-        const result = await transformWithEsbuild(code, id, transformOptions);
-        if (result.warnings.length) {
-          result.warnings.forEach((m) => {
-            this.warn(prettifyMessage(m, code));
-          });
-        }
-        if (jsxInject && jsxExtensionsRE.test(id)) {
-          result.code = jsxInject + ";" + result.code;
-        }
-        return {
-          code: result.code,
-          map: result.map
-        };
-      }
-    }
-  };
-}
-var rollupToEsbuildFormatMap = {
-  es: "esm",
-  cjs: "cjs",
-  // passing `var Lib = (() => {})()` to esbuild with format = "iife"
-  // will turn it to `(() => { var Lib = (() => {})() })()`,
-  // so we remove the format config to tell esbuild not doing this
-  //
-  // although esbuild doesn't change format, there is still possibility
-  // that `{ treeShaking: true }` removes a top-level no-side-effect variable
-  // like: `var Lib = 1`, which becomes `` after esbuild transforming,
-  // but thankfully rollup does not do this optimization now
-  iife: void 0
-};
-var buildEsbuildPlugin = (config2) => {
-  return {
-    name: "vite:esbuild-transpile",
-    async renderChunk(code, chunk, opts) {
-      if (opts.__vite_skip_esbuild__) {
-        return null;
-      }
-      const options2 = resolveEsbuildTranspileOptions(config2, opts.format);
-      if (!options2) {
-        return null;
-      }
-      const res = await transformWithEsbuild(code, chunk.fileName, options2);
-      if (config2.build.lib) {
-        const esbuildCode = res.code;
-        const contentIndex = opts.format === "iife" ? Math.max(esbuildCode.search(IIFE_BEGIN_RE), 0) : opts.format === "umd" ? esbuildCode.indexOf(`(function(`) : 0;
-        if (contentIndex > 0) {
-          const esbuildHelpers = esbuildCode.slice(0, contentIndex);
-          res.code = esbuildCode.slice(contentIndex).replace(`"use strict";`, `"use strict";` + esbuildHelpers);
-        }
-      }
-      return res;
-    }
-  };
-};
-function resolveEsbuildTranspileOptions(config2, format2) {
-  const target = config2.build.target;
-  const minify = config2.build.minify === "esbuild";
-  if ((!target || target === "esnext") && !minify) {
-    return null;
-  }
-  const isEsLibBuild = config2.build.lib && format2 === "es";
-  const esbuildOptions = config2.esbuild || {};
-  const options2 = {
-    charset: "utf8",
-    ...esbuildOptions,
-    loader: "js",
-    target: target || void 0,
-    format: rollupToEsbuildFormatMap[format2],
-    supported: {
-      ...defaultEsbuildSupported,
-      ...esbuildOptions.supported
-    }
-  };
-  if (!minify) {
-    return {
-      ...options2,
-      minify: false,
-      minifyIdentifiers: false,
-      minifySyntax: false,
-      minifyWhitespace: false,
-      treeShaking: false
-    };
-  }
-  if (options2.minifyIdentifiers != null || options2.minifySyntax != null || options2.minifyWhitespace != null) {
-    if (isEsLibBuild) {
-      return {
-        ...options2,
-        minify: false,
-        minifyIdentifiers: options2.minifyIdentifiers ?? true,
-        minifySyntax: options2.minifySyntax ?? true,
-        minifyWhitespace: false,
-        treeShaking: true
-      };
-    } else {
-      return {
-        ...options2,
-        minify: false,
-        minifyIdentifiers: options2.minifyIdentifiers ?? true,
-        minifySyntax: options2.minifySyntax ?? true,
-        minifyWhitespace: options2.minifyWhitespace ?? true,
-        treeShaking: true
-      };
-    }
-  }
-  if (isEsLibBuild) {
-    return {
-      ...options2,
-      minify: false,
-      minifyIdentifiers: true,
-      minifySyntax: true,
-      minifyWhitespace: false,
-      treeShaking: true
-    };
-  } else {
-    return {
-      ...options2,
-      minify: true,
-      treeShaking: true
-    };
-  }
-}
-function prettifyMessage(m, code) {
-  let res = colors$1.yellow(m.text);
-  if (m.location) {
-    res += `
-` + generateCodeFrame(code, m.location);
-  }
-  return res + `
-`;
-}
-var tsconfckCache;
-async function loadTsconfigJsonForFile(filename) {
-  try {
-    if (!tsconfckCache) {
-      tsconfckCache = new TSConfckCache();
-    }
-    const result = await parse$e(filename, {
-      cache: tsconfckCache,
-      ignoreNodeModules: true
-    });
-    if (server && result.tsconfigFile) {
-      ensureWatchedFile(server.watcher, result.tsconfigFile, server.config.root);
-    }
-    return result.tsconfig;
-  } catch (e2) {
-    if (e2 instanceof TSConfckParseError) {
-      if (server && e2.tsconfigFile) {
-        ensureWatchedFile(server.watcher, e2.tsconfigFile, server.config.root);
-      }
-    }
-    throw e2;
-  }
-}
-async function reloadOnTsconfigChange(changedFile) {
-  if (!server) return;
-  if (import_node_path3.default.basename(changedFile) === "tsconfig.json" || changedFile.endsWith(".json") && (tsconfckCache == null ? void 0 : tsconfckCache.hasParseResult(changedFile))) {
-    server.config.logger.info(
-      `changed tsconfig file detected: ${changedFile} - Clearing cache and forcing full-reload to ensure TypeScript is compiled with updated config values.`,
-      { clear: server.config.clearScreen, timestamp: true }
-    );
-    server.moduleGraph.invalidateAll();
-    tsconfckCache == null ? void 0 : tsconfckCache.clear();
-    if (server) {
-      server.hot.send({
-        type: "full-reload",
-        path: "*"
-      });
-    }
-  }
-}
-var Worker = class {
-  constructor(fn, options2 = {}) {
-    /** @internal */
-    __publicField(this, "_code");
-    /** @internal */
-    __publicField(this, "_parentFunctions");
-    /** @internal */
-    __publicField(this, "_max");
-    /** @internal */
-    __publicField(this, "_pool");
-    /** @internal */
-    __publicField(this, "_idlePool");
-    /** @internal */
-    __publicField(this, "_queue");
-    var _a4, _b3;
-    this._code = genWorkerCode(fn, options2.parentFunctions ?? {});
-    this._parentFunctions = options2.parentFunctions ?? {};
-    const defaultMax = Math.max(
-      1,
-      // os.availableParallelism is available from Node.js 18.14.0
-      (((_b3 = (_a4 = import_node_os.default).availableParallelism) == null ? void 0 : _b3.call(_a4)) ?? import_node_os.default.cpus().length) - 1
-    );
-    this._max = options2.max || defaultMax;
-    this._pool = [];
-    this._idlePool = [];
-    this._queue = [];
-  }
-  async run(...args) {
-    const worker = await this._getAvailableWorker();
-    return new Promise((resolve3, reject) => {
-      worker.currentResolve = resolve3;
-      worker.currentReject = reject;
-      worker.postMessage({ type: "run", args });
-    });
-  }
-  stop() {
-    this._pool.forEach((w) => w.unref());
-    this._queue.forEach(
-      ([, reject]) => reject(
-        new Error("Main worker pool stopped before a worker was available.")
-      )
-    );
-    this._pool = [];
-    this._idlePool = [];
-    this._queue = [];
-  }
-  /** @internal */
-  async _getAvailableWorker() {
-    if (this._idlePool.length) {
-      return this._idlePool.shift();
-    }
-    if (this._pool.length < this._max) {
-      const worker = new import_node_worker_threads.Worker(this._code, { eval: true });
-      worker.on("message", async (args) => {
-        if (args.type === "run") {
-          if ("result" in args) {
-            worker.currentResolve && worker.currentResolve(args.result);
-            worker.currentResolve = null;
-          } else {
-            if (args.error instanceof ReferenceError) {
-              args.error.message += ". Maybe you forgot to pass the function to parentFunction?";
-            }
-            worker.currentReject && worker.currentReject(args.error);
-            worker.currentReject = null;
-          }
-          this._assignDoneWorker(worker);
-        } else if (args.type === "parentFunction") {
-          try {
-            const result = await this._parentFunctions[args.name](...args.args);
-            worker.postMessage({ type: "parentFunction", id: args.id, result });
-          } catch (e2) {
-            worker.postMessage({
-              type: "parentFunction",
-              id: args.id,
-              error: e2
-            });
-          }
-        }
-      });
-      worker.on("error", (err2) => {
-        worker.currentReject && worker.currentReject(err2);
-        worker.currentReject = null;
-      });
-      worker.on("exit", (code) => {
-        const i = this._pool.indexOf(worker);
-        if (i > -1)
-          this._pool.splice(i, 1);
-        if (code !== 0 && worker.currentReject) {
-          worker.currentReject(
-            new Error(`Worker stopped with non-0 exit code ${code}`)
-          );
-          worker.currentReject = null;
-        }
-      });
-      this._pool.push(worker);
-      return worker;
-    }
-    let resolve3;
-    let reject;
-    const onWorkerAvailablePromise = new Promise((r2, rj) => {
-      resolve3 = r2;
-      reject = rj;
-    });
-    this._queue.push([resolve3, reject]);
-    return onWorkerAvailablePromise;
-  }
-  /** @internal */
-  _assignDoneWorker(worker) {
-    if (this._queue.length) {
-      const [resolve3] = this._queue.shift();
-      resolve3(worker);
-      return;
-    }
-    this._idlePool.push(worker);
-  }
-};
-function genWorkerCode(fn, parentFunctions) {
-  const createParentFunctionCaller = (parentPort) => {
-    let id = 0;
-    const resolvers = /* @__PURE__ */ new Map();
-    const call2 = (key) => async (...args) => {
-      id++;
-      let resolve3, reject;
-      const promise2 = new Promise((res, rej) => {
-        resolve3 = res;
-        reject = rej;
-      });
-      resolvers.set(id, { resolve: resolve3, reject });
-      parentPort.postMessage({ type: "parentFunction", id, name: key, args });
-      return await promise2;
-    };
-    const receive = (id2, args) => {
-      if (resolvers.has(id2)) {
-        const { resolve: resolve3, reject } = resolvers.get(id2);
-        resolvers.delete(id2);
-        if ("result" in args) {
-          resolve3(args.result);
-        } else {
-          reject(args.error);
-        }
-      }
-    };
-    return { call: call2, receive };
-  };
-  return `
-const { parentPort } = require('worker_threads')
-const parentFunctionCaller = (${createParentFunctionCaller.toString()})(parentPort)
-
-const doWork = (() => {
-  ${Object.keys(parentFunctions).map(
-    (key) => `const ${key} = parentFunctionCaller.call(${JSON.stringify(key)});`
-  ).join("\n")}
-  return (${fn.toString()})()
-})()
-
-parentPort.on('message', async (args) => {
-  if (args.type === 'run') {
-    try {
-      const res = await doWork(...args.args)
-      parentPort.postMessage({ type: 'run', result: res })
-    } catch (e) {
-      parentPort.postMessage({ type: 'run', error: e })
-    }
-  } else if (args.type === 'parentFunction') {
-    parentFunctionCaller.receive(args.id, args)
-  }
-})
-  `;
-}
-var FakeWorker = class {
-  constructor(fn, options2 = {}) {
-    /** @internal */
-    __publicField(this, "_fn");
-    const argsAndCode = genFakeWorkerArgsAndCode(
-      fn,
-      options2.parentFunctions ?? {}
-    );
-    const require22 = (0, import_node_module.createRequire)(import.meta.url);
-    this._fn = new Function(...argsAndCode)(require22, options2.parentFunctions);
-  }
-  async run(...args) {
-    try {
-      return await this._fn(...args);
-    } catch (err2) {
-      if (err2 instanceof ReferenceError) {
-        err2.message += ". Maybe you forgot to pass the function to parentFunction?";
-      }
-      throw err2;
-    }
-  }
-  stop() {
-  }
-};
-function genFakeWorkerArgsAndCode(fn, parentFunctions) {
-  return [
-    "require",
-    "parentFunctions",
-    `
-${Object.keys(parentFunctions).map((key) => `const ${key} = parentFunctions[${JSON.stringify(key)}];`).join("\n")}
-return (${fn.toString()})()
-  `
-  ];
-}
-var WorkerWithFallback = class {
-  constructor(fn, options2) {
-    /** @internal */
-    __publicField(this, "_disableReal");
-    /** @internal */
-    __publicField(this, "_realWorker");
-    /** @internal */
-    __publicField(this, "_fakeWorker");
-    /** @internal */
-    __publicField(this, "_shouldUseFake");
-    this._disableReal = options2.max !== void 0 && options2.max <= 0;
-    this._realWorker = new Worker(fn, options2);
-    this._fakeWorker = new FakeWorker(fn, options2);
-    this._shouldUseFake = options2.shouldUseFake;
-  }
-  async run(...args) {
-    const useFake = this._disableReal || this._shouldUseFake(...args);
-    return this[useFake ? "_fakeWorker" : "_realWorker"].run(...args);
-  }
-  stop() {
-    this._realWorker.stop();
-    this._fakeWorker.stop();
-  }
-};
-var terserPath;
-var loadTerserPath = (root) => {
-  if (terserPath) return terserPath;
-  try {
-    terserPath = requireResolveFromRootWithFallback(root, "terser");
-  } catch (e2) {
-    if (e2.code === "MODULE_NOT_FOUND") {
-      throw new Error(
-        "terser not found. Since Vite v3, terser has become an optional dependency. You need to install it."
-      );
-    } else {
-      const message = new Error(`terser failed to load:
-${e2.message}`);
-      message.stack = e2.stack + "\n" + message.stack;
-      throw message;
-    }
-  }
-  return terserPath;
-};
-function terserPlugin(config2) {
-  const { maxWorkers, ...terserOptions } = config2.build.terserOptions;
-  const makeWorker = () => new Worker(
-    () => async (terserPath2, code, options2) => {
-      const terser = require2(terserPath2);
-      return terser.minify(code, options2);
-    },
-    {
-      max: maxWorkers
-    }
-  );
-  let worker;
-  return {
-    name: "vite:terser",
-    async renderChunk(code, _chunk, outputOptions) {
-      if (config2.build.minify !== "terser" && // @ts-expect-error injected by @vitejs/plugin-legacy
-      !outputOptions.__vite_force_terser__) {
-        return null;
-      }
-      if (config2.build.lib && outputOptions.format === "es") {
-        return null;
-      }
-      worker || (worker = makeWorker());
-      const terserPath2 = loadTerserPath(config2.root);
-      const res = await worker.run(terserPath2, code, {
-        safari10: true,
-        ...terserOptions,
-        sourceMap: !!outputOptions.sourcemap,
-        module: outputOptions.format.startsWith("es"),
-        toplevel: outputOptions.format === "cjs"
-      });
-      return {
-        code: res.code,
-        map: res.map
-      };
-    },
-    closeBundle() {
-      worker == null ? void 0 : worker.stop();
-    }
-  };
-}
-var mimes = {
-  "3g2": "video/3gpp2",
-  "3gp": "video/3gpp",
-  "3gpp": "video/3gpp",
-  "3mf": "model/3mf",
-  "aac": "audio/aac",
-  "ac": "application/pkix-attr-cert",
-  "adp": "audio/adpcm",
-  "adts": "audio/aac",
-  "ai": "application/postscript",
-  "aml": "application/automationml-aml+xml",
-  "amlx": "application/automationml-amlx+zip",
-  "amr": "audio/amr",
-  "apng": "image/apng",
-  "appcache": "text/cache-manifest",
-  "appinstaller": "application/appinstaller",
-  "appx": "application/appx",
-  "appxbundle": "application/appxbundle",
-  "asc": "application/pgp-keys",
-  "atom": "application/atom+xml",
-  "atomcat": "application/atomcat+xml",
-  "atomdeleted": "application/atomdeleted+xml",
-  "atomsvc": "application/atomsvc+xml",
-  "au": "audio/basic",
-  "avci": "image/avci",
-  "avcs": "image/avcs",
-  "avif": "image/avif",
-  "aw": "application/applixware",
-  "bdoc": "application/bdoc",
-  "bin": "application/octet-stream",
-  "bmp": "image/bmp",
-  "bpk": "application/octet-stream",
-  "btf": "image/prs.btif",
-  "btif": "image/prs.btif",
-  "buffer": "application/octet-stream",
-  "ccxml": "application/ccxml+xml",
-  "cdfx": "application/cdfx+xml",
-  "cdmia": "application/cdmi-capability",
-  "cdmic": "application/cdmi-container",
-  "cdmid": "application/cdmi-domain",
-  "cdmio": "application/cdmi-object",
-  "cdmiq": "application/cdmi-queue",
-  "cer": "application/pkix-cert",
-  "cgm": "image/cgm",
-  "cjs": "application/node",
-  "class": "application/java-vm",
-  "coffee": "text/coffeescript",
-  "conf": "text/plain",
-  "cpl": "application/cpl+xml",
-  "cpt": "application/mac-compactpro",
-  "crl": "application/pkix-crl",
-  "css": "text/css",
-  "csv": "text/csv",
-  "cu": "application/cu-seeme",
-  "cwl": "application/cwl",
-  "cww": "application/prs.cww",
-  "davmount": "application/davmount+xml",
-  "dbk": "application/docbook+xml",
-  "deb": "application/octet-stream",
-  "def": "text/plain",
-  "deploy": "application/octet-stream",
-  "dib": "image/bmp",
-  "disposition-notification": "message/disposition-notification",
-  "dist": "application/octet-stream",
-  "distz": "application/octet-stream",
-  "dll": "application/octet-stream",
-  "dmg": "application/octet-stream",
-  "dms": "application/octet-stream",
-  "doc": "application/msword",
-  "dot": "application/msword",
-  "dpx": "image/dpx",
-  "drle": "image/dicom-rle",
-  "dsc": "text/prs.lines.tag",
-  "dssc": "application/dssc+der",
-  "dtd": "application/xml-dtd",
-  "dump": "application/octet-stream",
-  "dwd": "application/atsc-dwd+xml",
-  "ear": "application/java-archive",
-  "ecma": "application/ecmascript",
-  "elc": "application/octet-stream",
-  "emf": "image/emf",
-  "eml": "message/rfc822",
-  "emma": "application/emma+xml",
-  "emotionml": "application/emotionml+xml",
-  "eps": "application/postscript",
-  "epub": "application/epub+zip",
-  "exe": "application/octet-stream",
-  "exi": "application/exi",
-  "exp": "application/express",
-  "exr": "image/aces",
-  "ez": "application/andrew-inset",
-  "fdf": "application/fdf",
-  "fdt": "application/fdt+xml",
-  "fits": "image/fits",
-  "g3": "image/g3fax",
-  "gbr": "application/rpki-ghostbusters",
-  "geojson": "application/geo+json",
-  "gif": "image/gif",
-  "glb": "model/gltf-binary",
-  "gltf": "model/gltf+json",
-  "gml": "application/gml+xml",
-  "gpx": "application/gpx+xml",
-  "gram": "application/srgs",
-  "grxml": "application/srgs+xml",
-  "gxf": "application/gxf",
-  "gz": "application/gzip",
-  "h261": "video/h261",
-  "h263": "video/h263",
-  "h264": "video/h264",
-  "heic": "image/heic",
-  "heics": "image/heic-sequence",
-  "heif": "image/heif",
-  "heifs": "image/heif-sequence",
-  "hej2": "image/hej2k",
-  "held": "application/atsc-held+xml",
-  "hjson": "application/hjson",
-  "hlp": "application/winhlp",
-  "hqx": "application/mac-binhex40",
-  "hsj2": "image/hsj2",
-  "htm": "text/html",
-  "html": "text/html",
-  "ics": "text/calendar",
-  "ief": "image/ief",
-  "ifb": "text/calendar",
-  "iges": "model/iges",
-  "igs": "model/iges",
-  "img": "application/octet-stream",
-  "in": "text/plain",
-  "ini": "text/plain",
-  "ink": "application/inkml+xml",
-  "inkml": "application/inkml+xml",
-  "ipfix": "application/ipfix",
-  "iso": "application/octet-stream",
-  "its": "application/its+xml",
-  "jade": "text/jade",
-  "jar": "application/java-archive",
-  "jhc": "image/jphc",
-  "jls": "image/jls",
-  "jp2": "image/jp2",
-  "jpe": "image/jpeg",
-  "jpeg": "image/jpeg",
-  "jpf": "image/jpx",
-  "jpg": "image/jpeg",
-  "jpg2": "image/jp2",
-  "jpgm": "image/jpm",
-  "jpgv": "video/jpeg",
-  "jph": "image/jph",
-  "jpm": "image/jpm",
-  "jpx": "image/jpx",
-  "js": "text/javascript",
-  "json": "application/json",
-  "json5": "application/json5",
-  "jsonld": "application/ld+json",
-  "jsonml": "application/jsonml+json",
-  "jsx": "text/jsx",
-  "jt": "model/jt",
-  "jxr": "image/jxr",
-  "jxra": "image/jxra",
-  "jxrs": "image/jxrs",
-  "jxs": "image/jxs",
-  "jxsc": "image/jxsc",
-  "jxsi": "image/jxsi",
-  "jxss": "image/jxss",
-  "kar": "audio/midi",
-  "ktx": "image/ktx",
-  "ktx2": "image/ktx2",
-  "less": "text/less",
-  "lgr": "application/lgr+xml",
-  "list": "text/plain",
-  "litcoffee": "text/coffeescript",
-  "log": "text/plain",
-  "lostxml": "application/lost+xml",
-  "lrf": "application/octet-stream",
-  "m1v": "video/mpeg",
-  "m21": "application/mp21",
-  "m2a": "audio/mpeg",
-  "m2v": "video/mpeg",
-  "m3a": "audio/mpeg",
-  "m4a": "audio/mp4",
-  "m4p": "application/mp4",
-  "m4s": "video/iso.segment",
-  "ma": "application/mathematica",
-  "mads": "application/mads+xml",
-  "maei": "application/mmt-aei+xml",
-  "man": "text/troff",
-  "manifest": "text/cache-manifest",
-  "map": "application/json",
-  "mar": "application/octet-stream",
-  "markdown": "text/markdown",
-  "mathml": "application/mathml+xml",
-  "mb": "application/mathematica",
-  "mbox": "application/mbox",
-  "md": "text/markdown",
-  "mdx": "text/mdx",
-  "me": "text/troff",
-  "mesh": "model/mesh",
-  "meta4": "application/metalink4+xml",
-  "metalink": "application/metalink+xml",
-  "mets": "application/mets+xml",
-  "mft": "application/rpki-manifest",
-  "mid": "audio/midi",
-  "midi": "audio/midi",
-  "mime": "message/rfc822",
-  "mj2": "video/mj2",
-  "mjp2": "video/mj2",
-  "mjs": "text/javascript",
-  "mml": "text/mathml",
-  "mods": "application/mods+xml",
-  "mov": "video/quicktime",
-  "mp2": "audio/mpeg",
-  "mp21": "application/mp21",
-  "mp2a": "audio/mpeg",
-  "mp3": "audio/mpeg",
-  "mp4": "video/mp4",
-  "mp4a": "audio/mp4",
-  "mp4s": "application/mp4",
-  "mp4v": "video/mp4",
-  "mpd": "application/dash+xml",
-  "mpe": "video/mpeg",
-  "mpeg": "video/mpeg",
-  "mpf": "application/media-policy-dataset+xml",
-  "mpg": "video/mpeg",
-  "mpg4": "video/mp4",
-  "mpga": "audio/mpeg",
-  "mpp": "application/dash-patch+xml",
-  "mrc": "application/marc",
-  "mrcx": "application/marcxml+xml",
-  "ms": "text/troff",
-  "mscml": "application/mediaservercontrol+xml",
-  "msh": "model/mesh",
-  "msi": "application/octet-stream",
-  "msix": "application/msix",
-  "msixbundle": "application/msixbundle",
-  "msm": "application/octet-stream",
-  "msp": "application/octet-stream",
-  "mtl": "model/mtl",
-  "musd": "application/mmt-usd+xml",
-  "mxf": "application/mxf",
-  "mxmf": "audio/mobile-xmf",
-  "mxml": "application/xv+xml",
-  "n3": "text/n3",
-  "nb": "application/mathematica",
-  "nq": "application/n-quads",
-  "nt": "application/n-triples",
-  "obj": "model/obj",
-  "oda": "application/oda",
-  "oga": "audio/ogg",
-  "ogg": "audio/ogg",
-  "ogv": "video/ogg",
-  "ogx": "application/ogg",
-  "omdoc": "application/omdoc+xml",
-  "onepkg": "application/onenote",
-  "onetmp": "application/onenote",
-  "onetoc": "application/onenote",
-  "onetoc2": "application/onenote",
-  "opf": "application/oebps-package+xml",
-  "opus": "audio/ogg",
-  "otf": "font/otf",
-  "owl": "application/rdf+xml",
-  "oxps": "application/oxps",
-  "p10": "application/pkcs10",
-  "p7c": "application/pkcs7-mime",
-  "p7m": "application/pkcs7-mime",
-  "p7s": "application/pkcs7-signature",
-  "p8": "application/pkcs8",
-  "pdf": "application/pdf",
-  "pfr": "application/font-tdpfr",
-  "pgp": "application/pgp-encrypted",
-  "pkg": "application/octet-stream",
-  "pki": "application/pkixcmp",
-  "pkipath": "application/pkix-pkipath",
-  "pls": "application/pls+xml",
-  "png": "image/png",
-  "prc": "model/prc",
-  "prf": "application/pics-rules",
-  "provx": "application/provenance+xml",
-  "ps": "application/postscript",
-  "pskcxml": "application/pskc+xml",
-  "pti": "image/prs.pti",
-  "qt": "video/quicktime",
-  "raml": "application/raml+yaml",
-  "rapd": "application/route-apd+xml",
-  "rdf": "application/rdf+xml",
-  "relo": "application/p2p-overlay+xml",
-  "rif": "application/reginfo+xml",
-  "rl": "application/resource-lists+xml",
-  "rld": "application/resource-lists-diff+xml",
-  "rmi": "audio/midi",
-  "rnc": "application/relax-ng-compact-syntax",
-  "rng": "application/xml",
-  "roa": "application/rpki-roa",
-  "roff": "text/troff",
-  "rq": "application/sparql-query",
-  "rs": "application/rls-services+xml",
-  "rsat": "application/atsc-rsat+xml",
-  "rsd": "application/rsd+xml",
-  "rsheet": "application/urc-ressheet+xml",
-  "rss": "application/rss+xml",
-  "rtf": "text/rtf",
-  "rtx": "text/richtext",
-  "rusd": "application/route-usd+xml",
-  "s3m": "audio/s3m",
-  "sbml": "application/sbml+xml",
-  "scq": "application/scvp-cv-request",
-  "scs": "application/scvp-cv-response",
-  "sdp": "application/sdp",
-  "senmlx": "application/senml+xml",
-  "sensmlx": "application/sensml+xml",
-  "ser": "application/java-serialized-object",
-  "setpay": "application/set-payment-initiation",
-  "setreg": "application/set-registration-initiation",
-  "sgi": "image/sgi",
-  "sgm": "text/sgml",
-  "sgml": "text/sgml",
-  "shex": "text/shex",
-  "shf": "application/shf+xml",
-  "shtml": "text/html",
-  "sieve": "application/sieve",
-  "sig": "application/pgp-signature",
-  "sil": "audio/silk",
-  "silo": "model/mesh",
-  "siv": "application/sieve",
-  "slim": "text/slim",
-  "slm": "text/slim",
-  "sls": "application/route-s-tsid+xml",
-  "smi": "application/smil+xml",
-  "smil": "application/smil+xml",
-  "snd": "audio/basic",
-  "so": "application/octet-stream",
-  "spdx": "text/spdx",
-  "spp": "application/scvp-vp-response",
-  "spq": "application/scvp-vp-request",
-  "spx": "audio/ogg",
-  "sql": "application/sql",
-  "sru": "application/sru+xml",
-  "srx": "application/sparql-results+xml",
-  "ssdl": "application/ssdl+xml",
-  "ssml": "application/ssml+xml",
-  "stk": "application/hyperstudio",
-  "stl": "model/stl",
-  "stpx": "model/step+xml",
-  "stpxz": "model/step-xml+zip",
-  "stpz": "model/step+zip",
-  "styl": "text/stylus",
-  "stylus": "text/stylus",
-  "svg": "image/svg+xml",
-  "svgz": "image/svg+xml",
-  "swidtag": "application/swid+xml",
-  "t": "text/troff",
-  "t38": "image/t38",
-  "td": "application/urc-targetdesc+xml",
-  "tei": "application/tei+xml",
-  "teicorpus": "application/tei+xml",
-  "text": "text/plain",
-  "tfi": "application/thraud+xml",
-  "tfx": "image/tiff-fx",
-  "tif": "image/tiff",
-  "tiff": "image/tiff",
-  "toml": "application/toml",
-  "tr": "text/troff",
-  "trig": "application/trig",
-  "ts": "video/mp2t",
-  "tsd": "application/timestamped-data",
-  "tsv": "text/tab-separated-values",
-  "ttc": "font/collection",
-  "ttf": "font/ttf",
-  "ttl": "text/turtle",
-  "ttml": "application/ttml+xml",
-  "txt": "text/plain",
-  "u3d": "model/u3d",
-  "u8dsn": "message/global-delivery-status",
-  "u8hdr": "message/global-headers",
-  "u8mdn": "message/global-disposition-notification",
-  "u8msg": "message/global",
-  "ubj": "application/ubjson",
-  "uri": "text/uri-list",
-  "uris": "text/uri-list",
-  "urls": "text/uri-list",
-  "vcard": "text/vcard",
-  "vrml": "model/vrml",
-  "vtt": "text/vtt",
-  "vxml": "application/voicexml+xml",
-  "war": "application/java-archive",
-  "wasm": "application/wasm",
-  "wav": "audio/wav",
-  "weba": "audio/webm",
-  "webm": "video/webm",
-  "webmanifest": "application/manifest+json",
-  "webp": "image/webp",
-  "wgsl": "text/wgsl",
-  "wgt": "application/widget",
-  "wif": "application/watcherinfo+xml",
-  "wmf": "image/wmf",
-  "woff": "font/woff",
-  "woff2": "font/woff2",
-  "wrl": "model/vrml",
-  "wsdl": "application/wsdl+xml",
-  "wspolicy": "application/wspolicy+xml",
-  "x3d": "model/x3d+xml",
-  "x3db": "model/x3d+fastinfoset",
-  "x3dbz": "model/x3d+binary",
-  "x3dv": "model/x3d-vrml",
-  "x3dvz": "model/x3d+vrml",
-  "x3dz": "model/x3d+xml",
-  "xaml": "application/xaml+xml",
-  "xav": "application/xcap-att+xml",
-  "xca": "application/xcap-caps+xml",
-  "xcs": "application/calendar+xml",
-  "xdf": "application/xcap-diff+xml",
-  "xdssc": "application/dssc+xml",
-  "xel": "application/xcap-el+xml",
-  "xenc": "application/xenc+xml",
-  "xer": "application/patch-ops-error+xml",
-  "xfdf": "application/xfdf",
-  "xht": "application/xhtml+xml",
-  "xhtml": "application/xhtml+xml",
-  "xhvml": "application/xv+xml",
-  "xlf": "application/xliff+xml",
-  "xm": "audio/xm",
-  "xml": "text/xml",
-  "xns": "application/xcap-ns+xml",
-  "xop": "application/xop+xml",
-  "xpl": "application/xproc+xml",
-  "xsd": "application/xml",
-  "xsf": "application/prs.xsf+xml",
-  "xsl": "application/xml",
-  "xslt": "application/xml",
-  "xspf": "application/xspf+xml",
-  "xvm": "application/xv+xml",
-  "xvml": "application/xv+xml",
-  "yaml": "text/yaml",
-  "yang": "application/yang",
-  "yin": "application/yin+xml",
-  "yml": "text/yaml",
-  "zip": "application/zip"
-};
-function lookup(extn) {
-  let tmp = ("" + extn).trim().toLowerCase();
-  let idx = tmp.lastIndexOf(".");
-  return mimes[!~idx ? tmp : tmp.substring(++idx)];
-}
-var publicFilesMap = /* @__PURE__ */ new WeakMap();
-async function initPublicFiles(config2) {
-  let fileNames;
-  try {
-    fileNames = await recursiveReaddir(config2.publicDir);
-  } catch (e2) {
-    if (e2.code === ERR_SYMLINK_IN_RECURSIVE_READDIR) {
-      return;
-    }
-    throw e2;
-  }
-  const publicFiles = new Set(
-    fileNames.map((fileName) => fileName.slice(config2.publicDir.length))
-  );
-  publicFilesMap.set(config2, publicFiles);
-  return publicFiles;
-}
-function getPublicFiles(config2) {
-  return publicFilesMap.get(config2);
-}
-function checkPublicFile(url2, config2) {
-  const { publicDir } = config2;
-  if (!publicDir || url2[0] !== "/") {
-    return;
-  }
-  const fileName = cleanUrl(url2);
-  const publicFiles = getPublicFiles(config2);
-  if (publicFiles) {
-    return publicFiles.has(fileName) ? normalizePath$3(import_node_path3.default.join(publicDir, fileName)) : void 0;
-  }
-  const publicFile = normalizePath$3(import_node_path3.default.join(publicDir, fileName));
-  if (!publicFile.startsWith(withTrailingSlash(publicDir))) {
-    return;
-  }
-  return import_node_fs2.default.existsSync(publicFile) ? publicFile : void 0;
-}
-var assetUrlRE = /__VITE_ASSET__([\w$]+)__(?:\$_(.*?)__)?/g;
-var jsSourceMapRE = /\.[cm]?js\.map$/;
-var assetCache = /* @__PURE__ */ new WeakMap();
-var generatedAssets = /* @__PURE__ */ new WeakMap();
-function registerCustomMime() {
-  mimes["ico"] = "image/x-icon";
-  mimes["flac"] = "audio/flac";
-  mimes["eot"] = "application/vnd.ms-fontobject";
-}
-function renderAssetUrlInJS(ctx, config2, chunk, opts, code) {
-  const toRelativeRuntime = createToImportMetaURLBasedRelativeRuntime(
-    opts.format,
-    config2.isWorker
-  );
-  let match2;
-  let s;
-  assetUrlRE.lastIndex = 0;
-  while (match2 = assetUrlRE.exec(code)) {
-    s || (s = new MagicString(code));
-    const [full, referenceId, postfix = ""] = match2;
-    const file = ctx.getFileName(referenceId);
-    chunk.viteMetadata.importedAssets.add(cleanUrl(file));
-    const filename = file + postfix;
-    const replacement = toOutputFilePathInJS(
-      filename,
-      "asset",
-      chunk.fileName,
-      "js",
-      config2,
-      toRelativeRuntime
-    );
-    const replacementString = typeof replacement === "string" ? JSON.stringify(encodeURIPath(replacement)).slice(1, -1) : `"+${replacement.runtime}+"`;
-    s.update(match2.index, match2.index + full.length, replacementString);
-  }
-  const publicAssetUrlMap = publicAssetUrlCache.get(config2);
-  publicAssetUrlRE.lastIndex = 0;
-  while (match2 = publicAssetUrlRE.exec(code)) {
-    s || (s = new MagicString(code));
-    const [full, hash2] = match2;
-    const publicUrl = publicAssetUrlMap.get(hash2).slice(1);
-    const replacement = toOutputFilePathInJS(
-      publicUrl,
-      "public",
-      chunk.fileName,
-      "js",
-      config2,
-      toRelativeRuntime
-    );
-    const replacementString = typeof replacement === "string" ? JSON.stringify(encodeURIPath(replacement)).slice(1, -1) : `"+${replacement.runtime}+"`;
-    s.update(match2.index, match2.index + full.length, replacementString);
-  }
-  return s;
-}
-function assetPlugin(config2) {
-  registerCustomMime();
-  let moduleGraph;
-  return {
-    name: "vite:asset",
-    buildStart() {
-      assetCache.set(config2, /* @__PURE__ */ new Map());
-      generatedAssets.set(config2, /* @__PURE__ */ new Map());
-    },
-    configureServer(server2) {
-      moduleGraph = server2.moduleGraph;
-    },
-    resolveId(id) {
-      if (!config2.assetsInclude(cleanUrl(id)) && !urlRE.test(id)) {
-        return;
-      }
-      const publicFile = checkPublicFile(id, config2);
-      if (publicFile) {
-        return id;
-      }
-    },
-    async load(id) {
-      var _a4;
-      if (id[0] === "\0") {
-        return;
-      }
-      if (rawRE.test(id)) {
-        const file = checkPublicFile(id, config2) || cleanUrl(id);
-        this.addWatchFile(file);
-        return `export default ${JSON.stringify(
-          await import_promises.default.readFile(file, "utf-8")
-        )}`;
-      }
-      if (!urlRE.test(id) && !config2.assetsInclude(cleanUrl(id))) {
-        return;
-      }
-      id = removeUrlQuery(id);
-      let url2 = await fileToUrl$1(id, config2, this);
-      if (moduleGraph) {
-        const mod = moduleGraph.getModuleById(id);
-        if (mod && mod.lastHMRTimestamp > 0) {
-          url2 = injectQuery(url2, `t=${mod.lastHMRTimestamp}`);
-        }
-      }
-      return {
-        code: `export default ${JSON.stringify(encodeURIPath(url2))}`,
-        // Force rollup to keep this module from being shared between other entry points if it's an entrypoint.
-        // If the resulting chunk is empty, it will be removed in generateBundle.
-        moduleSideEffects: config2.command === "build" && ((_a4 = this.getModuleInfo(id)) == null ? void 0 : _a4.isEntry) ? "no-treeshake" : false
-      };
-    },
-    renderChunk(code, chunk, opts) {
-      const s = renderAssetUrlInJS(this, config2, chunk, opts, code);
-      if (s) {
-        return {
-          code: s.toString(),
-          map: config2.build.sourcemap ? s.generateMap({ hires: "boundary" }) : null
-        };
-      } else {
-        return null;
-      }
-    },
-    generateBundle(_, bundle) {
-      for (const file in bundle) {
-        const chunk = bundle[file];
-        if (chunk.type === "chunk" && chunk.isEntry && chunk.moduleIds.length === 1 && config2.assetsInclude(chunk.moduleIds[0])) {
-          delete bundle[file];
-        }
-      }
-      if (config2.command === "build" && config2.build.ssr && !config2.build.ssrEmitAssets) {
-        for (const file in bundle) {
-          if (bundle[file].type === "asset" && !file.endsWith("ssr-manifest.json") && !jsSourceMapRE.test(file)) {
-            delete bundle[file];
-          }
-        }
-      }
-    }
-  };
-}
-async function fileToUrl$1(id, config2, ctx) {
-  if (config2.command === "serve") {
-    return fileToDevUrl(id, config2);
-  } else {
-    return fileToBuiltUrl(id, config2, ctx);
-  }
-}
-function fileToDevUrl(id, config2) {
-  var _a4;
-  let rtn;
-  if (checkPublicFile(id, config2)) {
-    rtn = id;
-  } else if (id.startsWith(withTrailingSlash(config2.root))) {
-    rtn = "/" + import_node_path3.default.posix.relative(config2.root, id);
-  } else {
-    rtn = import_node_path3.default.posix.join(FS_PREFIX, id);
-  }
-  const base = joinUrlSegments(((_a4 = config2.server) == null ? void 0 : _a4.origin) ?? "", config2.base);
-  return joinUrlSegments(base, removeLeadingSlash(rtn));
-}
-function getPublicAssetFilename(hash2, config2) {
-  var _a4;
-  return (_a4 = publicAssetUrlCache.get(config2)) == null ? void 0 : _a4.get(hash2);
-}
-var publicAssetUrlCache = /* @__PURE__ */ new WeakMap();
-var publicAssetUrlRE = /__VITE_PUBLIC_ASSET__([a-z\d]{8})__/g;
-function publicFileToBuiltUrl(url2, config2) {
-  if (config2.command !== "build") {
-    return joinUrlSegments(config2.base, url2);
-  }
-  const hash2 = getHash(url2);
-  let cache = publicAssetUrlCache.get(config2);
-  if (!cache) {
-    cache = /* @__PURE__ */ new Map();
-    publicAssetUrlCache.set(config2, cache);
-  }
-  if (!cache.get(hash2)) {
-    cache.set(hash2, url2);
-  }
-  return `__VITE_PUBLIC_ASSET__${hash2}__`;
-}
-var GIT_LFS_PREFIX = import_node_buffer.Buffer.from("version https://git-lfs.github.com");
-function isGitLfsPlaceholder(content) {
-  if (content.length < GIT_LFS_PREFIX.length) return false;
-  return GIT_LFS_PREFIX.compare(content, 0, GIT_LFS_PREFIX.length) === 0;
-}
-async function fileToBuiltUrl(id, config2, pluginContext, skipPublicCheck = false, forceInline) {
-  if (!skipPublicCheck && checkPublicFile(id, config2)) {
-    return publicFileToBuiltUrl(id, config2);
-  }
-  const cache = assetCache.get(config2);
-  const cached = cache.get(id);
-  if (cached) {
-    return cached;
-  }
-  const file = cleanUrl(id);
-  const content = await import_promises.default.readFile(file);
-  let url2;
-  if (shouldInline(config2, file, id, content, pluginContext, forceInline)) {
-    if (config2.build.lib && isGitLfsPlaceholder(content)) {
-      config2.logger.warn(
-        colors$1.yellow(`Inlined file ${id} was not downloaded via Git LFS`)
-      );
-    }
-    if (file.endsWith(".svg")) {
-      url2 = svgToDataURL(content);
-    } else {
-      const mimeType = lookup(file) ?? "application/octet-stream";
-      url2 = `data:${mimeType};base64,${content.toString("base64")}`;
-    }
-  } else {
-    const { search, hash: hash2 } = (0, import_node_url2.parse)(id);
-    const postfix = (search || "") + (hash2 || "");
-    const referenceId = pluginContext.emitFile({
-      // Ignore directory structure for asset file names
-      name: import_node_path3.default.basename(file),
-      type: "asset",
-      source: content
-    });
-    const originalName = normalizePath$3(import_node_path3.default.relative(config2.root, file));
-    generatedAssets.get(config2).set(referenceId, { originalName });
-    url2 = `__VITE_ASSET__${referenceId}__${postfix ? `$_${postfix}__` : ``}`;
-  }
-  cache.set(id, url2);
-  return url2;
-}
-async function urlToBuiltUrl(url2, importer, config2, pluginContext, forceInline) {
-  if (checkPublicFile(url2, config2)) {
-    return publicFileToBuiltUrl(url2, config2);
-  }
-  const file = url2[0] === "/" ? import_node_path3.default.join(config2.root, url2) : import_node_path3.default.join(import_node_path3.default.dirname(importer), url2);
-  return fileToBuiltUrl(
-    file,
-    config2,
-    pluginContext,
-    // skip public check since we just did it above
-    true,
-    forceInline
-  );
-}
-var shouldInline = (config2, file, id, content, pluginContext, forceInline) => {
-  var _a4;
-  if (config2.build.lib) return true;
-  if ((_a4 = pluginContext.getModuleInfo(id)) == null ? void 0 : _a4.isEntry) return false;
-  if (forceInline !== void 0) return forceInline;
-  let limit;
-  if (typeof config2.build.assetsInlineLimit === "function") {
-    const userShouldInline = config2.build.assetsInlineLimit(file, content);
-    if (userShouldInline != null) return userShouldInline;
-    limit = DEFAULT_ASSETS_INLINE_LIMIT;
-  } else {
-    limit = Number(config2.build.assetsInlineLimit);
-  }
-  if (file.endsWith(".html")) return false;
-  if (file.endsWith(".svg") && id.includes("#")) return false;
-  return content.length < limit && !isGitLfsPlaceholder(content);
-};
-var nestedQuotesRE = /"[^"']*'[^"]*"|'[^'"]*"[^']*'/;
-function svgToDataURL(content) {
-  const stringContent = content.toString();
-  if (stringContent.includes("\s+<").replaceAll('"', "'").replaceAll("%", "%25").replaceAll("#", "%23").replaceAll("<", "%3c").replaceAll(">", "%3e").replaceAll(/\s+/g, "%20");
-  }
-}
-var endsWithJSRE = /\.[cm]?js$/;
-function manifestPlugin(config2) {
-  const manifest = {};
-  let outputCount;
-  return {
-    name: "vite:manifest",
-    buildStart() {
-      outputCount = 0;
-    },
-    generateBundle({ format: format2 }, bundle) {
-      var _a4, _b3;
-      function getChunkName(chunk) {
-        return getChunkOriginalFileName(chunk, config2.root, format2);
-      }
-      function getInternalImports(imports) {
-        const filteredImports = [];
-        for (const file of imports) {
-          if (bundle[file] === void 0) {
-            continue;
-          }
-          filteredImports.push(getChunkName(bundle[file]));
-        }
-        return filteredImports;
-      }
-      function createChunk(chunk) {
-        var _a5, _b4;
-        const manifestChunk = {
-          file: chunk.fileName,
-          name: chunk.name
-        };
-        if (chunk.facadeModuleId) {
-          manifestChunk.src = getChunkName(chunk);
-        }
-        if (chunk.isEntry) {
-          manifestChunk.isEntry = true;
-        }
-        if (chunk.isDynamicEntry) {
-          manifestChunk.isDynamicEntry = true;
-        }
-        if (chunk.imports.length) {
-          const internalImports = getInternalImports(chunk.imports);
-          if (internalImports.length > 0) {
-            manifestChunk.imports = internalImports;
-          }
-        }
-        if (chunk.dynamicImports.length) {
-          const internalImports = getInternalImports(chunk.dynamicImports);
-          if (internalImports.length > 0) {
-            manifestChunk.dynamicImports = internalImports;
-          }
-        }
-        if ((_a5 = chunk.viteMetadata) == null ? void 0 : _a5.importedCss.size) {
-          manifestChunk.css = [...chunk.viteMetadata.importedCss];
-        }
-        if ((_b4 = chunk.viteMetadata) == null ? void 0 : _b4.importedAssets.size) {
-          manifestChunk.assets = [...chunk.viteMetadata.importedAssets];
-        }
-        return manifestChunk;
-      }
-      function createAsset(asset, src2, isEntry) {
-        const manifestChunk = {
-          file: asset.fileName,
-          src: src2
-        };
-        if (isEntry) manifestChunk.isEntry = true;
-        return manifestChunk;
-      }
-      const fileNameToAssetMeta = /* @__PURE__ */ new Map();
-      const assets = generatedAssets.get(config2);
-      assets.forEach((asset, referenceId) => {
-        try {
-          const fileName = this.getFileName(referenceId);
-          fileNameToAssetMeta.set(fileName, asset);
-        } catch (error2) {
-          assets.delete(referenceId);
-        }
-      });
-      const fileNameToAsset = /* @__PURE__ */ new Map();
-      for (const file in bundle) {
-        const chunk = bundle[file];
-        if (chunk.type === "chunk") {
-          manifest[getChunkName(chunk)] = createChunk(chunk);
-        } else if (chunk.type === "asset" && typeof chunk.name === "string") {
-          const assetMeta = fileNameToAssetMeta.get(chunk.fileName);
-          const src2 = (assetMeta == null ? void 0 : assetMeta.originalName) ?? chunk.name;
-          const asset = createAsset(chunk, src2, assetMeta == null ? void 0 : assetMeta.isEntry);
-          const file2 = (_a4 = manifest[src2]) == null ? void 0 : _a4.file;
-          if (file2 && endsWithJSRE.test(file2)) continue;
-          manifest[src2] = asset;
-          fileNameToAsset.set(chunk.fileName, asset);
-        }
-      }
-      assets.forEach(({ originalName }, referenceId) => {
-        if (!manifest[originalName]) {
-          const fileName = this.getFileName(referenceId);
-          const asset = fileNameToAsset.get(fileName);
-          if (asset) {
-            manifest[originalName] = asset;
-          }
-        }
-      });
-      outputCount++;
-      const output = (_b3 = config2.build.rollupOptions) == null ? void 0 : _b3.output;
-      const outputLength = Array.isArray(output) ? output.length : 1;
-      if (outputCount >= outputLength) {
-        this.emitFile({
-          fileName: typeof config2.build.manifest === "string" ? config2.build.manifest : ".vite/manifest.json",
-          type: "asset",
-          source: JSON.stringify(sortObjectKeys(manifest), void 0, 2)
-        });
-      }
-    }
-  };
-}
-function getChunkOriginalFileName(chunk, root, format2) {
-  if (chunk.facadeModuleId) {
-    let name2 = normalizePath$3(import_node_path3.default.relative(root, chunk.facadeModuleId));
-    if (format2 === "system" && !chunk.name.includes("-legacy")) {
-      const ext2 = import_node_path3.default.extname(name2);
-      const endPos = ext2.length !== 0 ? -ext2.length : void 0;
-      name2 = name2.slice(0, endPos) + `-legacy` + ext2;
-    }
-    return name2.replace(/\0/g, "");
-  } else {
-    return `_` + import_node_path3.default.basename(chunk.fileName);
-  }
-}
-var dataUriRE = /^([^/]+\/[^;,]+)(;base64)?,([\s\S]*)$/;
-var base64RE = /base64/i;
-var dataUriPrefix = `\0/@data-uri/`;
-function dataURIPlugin() {
-  let resolved;
-  return {
-    name: "vite:data-uri",
-    buildStart() {
-      resolved = /* @__PURE__ */ new Map();
-    },
-    resolveId(id) {
-      if (!dataUriRE.test(id)) {
-        return;
-      }
-      const uri = new import_node_url2.URL(id);
-      if (uri.protocol !== "data:") {
-        return;
-      }
-      const match2 = uri.pathname.match(dataUriRE);
-      if (!match2) {
-        return;
-      }
-      const [, mime, format2, data] = match2;
-      if (mime !== "text/javascript") {
-        throw new Error(
-          `data URI with non-JavaScript mime type is not supported. If you're using legacy JavaScript MIME types (such as 'application/javascript'), please use 'text/javascript' instead.`
-        );
-      }
-      const base64 = format2 && base64RE.test(format2.substring(1));
-      const content = base64 ? Buffer.from(data, "base64").toString("utf-8") : data;
-      resolved.set(id, content);
-      return dataUriPrefix + id;
-    },
-    load(id) {
-      if (id.startsWith(dataUriPrefix)) {
-        return resolved.get(id.slice(dataUriPrefix.length));
-      }
-    }
-  };
-}
-var ImportType;
-!function(A2) {
-  A2[A2.Static = 1] = "Static", A2[A2.Dynamic = 2] = "Dynamic", A2[A2.ImportMeta = 3] = "ImportMeta", A2[A2.StaticSourcePhase = 4] = "StaticSourcePhase", A2[A2.DynamicSourcePhase = 5] = "DynamicSourcePhase";
-}(ImportType || (ImportType = {}));
-var A = 1 === new Uint8Array(new Uint16Array([1]).buffer)[0];
-function parse$d(E2, g = "@") {
-  if (!C) return init.then(() => parse$d(E2));
-  const I = E2.length + 1, w = (C.__heap_base.value || C.__heap_base) + 4 * I - C.memory.buffer.byteLength;
-  w > 0 && C.memory.grow(Math.ceil(w / 65536));
-  const K = C.sa(I - 1);
-  if ((A ? B : Q)(E2, new Uint16Array(C.memory.buffer, K, I)), !C.parse()) throw Object.assign(new Error(`Parse error ${g}:${E2.slice(0, C.e()).split("\n").length}:${C.e() - E2.lastIndexOf("\n", C.e() - 1)}`), { idx: C.e() });
-  const D = [], o2 = [];
-  for (; C.ri(); ) {
-    const A2 = C.is(), Q2 = C.ie(), B2 = C.it(), g2 = C.ai(), I2 = C.id(), w2 = C.ss(), K2 = C.se();
-    let o3;
-    C.ip() && (o3 = k(E2.slice(-1 === I2 ? A2 - 1 : A2, -1 === I2 ? Q2 + 1 : Q2))), D.push({ n: o3, t: B2, s: A2, e: Q2, ss: w2, se: K2, d: I2, a: g2 });
-  }
-  for (; C.re(); ) {
-    const A2 = C.es(), Q2 = C.ee(), B2 = C.els(), g2 = C.ele(), I2 = E2.slice(A2, Q2), w2 = I2[0], K2 = B2 < 0 ? void 0 : E2.slice(B2, g2), D2 = K2 ? K2[0] : "";
-    o2.push({ s: A2, e: Q2, ls: B2, le: g2, n: '"' === w2 || "'" === w2 ? k(I2) : I2, ln: '"' === D2 || "'" === D2 ? k(K2) : K2 });
-  }
-  function k(A2) {
-    try {
-      return (0, eval)(A2);
-    } catch (A3) {
-    }
-  }
-  return [D, o2, !!C.f(), !!C.ms()];
-}
-function Q(A2, Q2) {
-  const B2 = A2.length;
-  let C2 = 0;
-  for (; C2 < B2; ) {
-    const B3 = A2.charCodeAt(C2);
-    Q2[C2++] = (255 & B3) << 8 | B3 >>> 8;
-  }
-}
-function B(A2, Q2) {
-  const B2 = A2.length;
-  let C2 = 0;
-  for (; C2 < B2; ) Q2[C2] = A2.charCodeAt(C2++);
-}
-var C;
-var init = WebAssembly.compile((E = "AGFzbQEAAAABKwhgAX8Bf2AEf39/fwBgAAF/YAAAYAF/AGADf39/AX9gAn9/AX9gA39/fwADMTAAAQECAgICAgICAgICAgICAgICAgIAAwMDBAQAAAUAAAAAAAMDAwAGAAAABwAGAgUEBQFwAQEBBQMBAAEGDwJ/AUHA8gALfwBBwPIACwd6FQZtZW1vcnkCAAJzYQAAAWUAAwJpcwAEAmllAAUCc3MABgJzZQAHAml0AAgCYWkACQJpZAAKAmlwAAsCZXMADAJlZQANA2VscwAOA2VsZQAPAnJpABACcmUAEQFmABICbXMAEwVwYXJzZQAUC19faGVhcF9iYXNlAwEKm0EwaAEBf0EAIAA2AoAKQQAoAtwJIgEgAEEBdGoiAEEAOwEAQQAgAEECaiIANgKECkEAIAA2AogKQQBBADYC4AlBAEEANgLwCUEAQQA2AugJQQBBADYC5AlBAEEANgL4CUEAQQA2AuwJIAEL0wEBA39BACgC8AkhBEEAQQAoAogKIgU2AvAJQQAgBDYC9AlBACAFQSRqNgKICiAEQSBqQeAJIAQbIAU2AgBBACgC1AkhBEEAKALQCSEGIAUgATYCACAFIAA2AgggBSACIAJBAmpBACAGIANGIgAbIAQgA0YiBBs2AgwgBSADNgIUIAVBADYCECAFIAI2AgQgBUEANgIgIAVBA0EBQQIgABsgBBs2AhwgBUEAKALQCSADRiICOgAYAkACQCACDQBBACgC1AkgA0cNAQtBAEEBOgCMCgsLXgEBf0EAKAL4CSIEQRBqQeQJIAQbQQAoAogKIgQ2AgBBACAENgL4CUEAIARBFGo2AogKQQBBAToAjAogBEEANgIQIAQgAzYCDCAEIAI2AgggBCABNgIEIAQgADYCAAsIAEEAKAKQCgsVAEEAKALoCSgCAEEAKALcCWtBAXULHgEBf0EAKALoCSgCBCIAQQAoAtwJa0EBdUF/IAAbCxUAQQAoAugJKAIIQQAoAtwJa0EBdQseAQF/QQAoAugJKAIMIgBBACgC3AlrQQF1QX8gABsLCwBBACgC6AkoAhwLHgEBf0EAKALoCSgCECIAQQAoAtwJa0EBdUF/IAAbCzsBAX8CQEEAKALoCSgCFCIAQQAoAtAJRw0AQX8PCwJAIABBACgC1AlHDQBBfg8LIABBACgC3AlrQQF1CwsAQQAoAugJLQAYCxUAQQAoAuwJKAIAQQAoAtwJa0EBdQsVAEEAKALsCSgCBEEAKALcCWtBAXULHgEBf0EAKALsCSgCCCIAQQAoAtwJa0EBdUF/IAAbCx4BAX9BACgC7AkoAgwiAEEAKALcCWtBAXVBfyAAGwslAQF/QQBBACgC6AkiAEEgakHgCSAAGygCACIANgLoCSAAQQBHCyUBAX9BAEEAKALsCSIAQRBqQeQJIAAbKAIAIgA2AuwJIABBAEcLCABBAC0AlAoLCABBAC0AjAoL3Q0BBX8jAEGA0ABrIgAkAEEAQQE6AJQKQQBBACgC2Ak2ApwKQQBBACgC3AlBfmoiATYCsApBACABQQAoAoAKQQF0aiICNgK0CkEAQQA6AIwKQQBBADsBlgpBAEEAOwGYCkEAQQA6AKAKQQBBADYCkApBAEEAOgD8CUEAIABBgBBqNgKkCkEAIAA2AqgKQQBBADoArAoCQAJAAkACQANAQQAgAUECaiIDNgKwCiABIAJPDQECQCADLwEAIgJBd2pBBUkNAAJAAkACQAJAAkAgAkGbf2oOBQEICAgCAAsgAkEgRg0EIAJBL0YNAyACQTtGDQIMBwtBAC8BmAoNASADEBVFDQEgAUEEakGCCEEKEC8NARAWQQAtAJQKDQFBAEEAKAKwCiIBNgKcCgwHCyADEBVFDQAgAUEEakGMCEEKEC8NABAXC0EAQQAoArAKNgKcCgwBCwJAIAEvAQQiA0EqRg0AIANBL0cNBBAYDAELQQEQGQtBACgCtAohAkEAKAKwCiEBDAALC0EAIQIgAyEBQQAtAPwJDQIMAQtBACABNgKwCkEAQQA6AJQKCwNAQQAgAUECaiIDNgKwCgJAAkACQAJAAkACQAJAIAFBACgCtApPDQAgAy8BACICQXdqQQVJDQYCQAJAAkACQAJAAkACQAJAAkACQCACQWBqDgoQDwYPDw8PBQECAAsCQAJAAkACQCACQaB/ag4KCxISAxIBEhISAgALIAJBhX9qDgMFEQYJC0EALwGYCg0QIAMQFUUNECABQQRqQYIIQQoQLw0QEBYMEAsgAxAVRQ0PIAFBBGpBjAhBChAvDQ8QFwwPCyADEBVFDQ4gASkABELsgISDsI7AOVINDiABLwEMIgNBd2oiAUEXSw0MQQEgAXRBn4CABHFFDQwMDQtBAEEALwGYCiIBQQFqOwGYCkEAKAKkCiABQQN0aiIBQQE2AgAgAUEAKAKcCjYCBAwNC0EALwGYCiIDRQ0JQQAgA0F/aiIDOwGYCkEALwGWCiICRQ0MQQAoAqQKIANB//8DcUEDdGooAgBBBUcNDAJAIAJBAnRBACgCqApqQXxqKAIAIgMoAgQNACADQQAoApwKQQJqNgIEC0EAIAJBf2o7AZYKIAMgAUEEajYCDAwMCwJAQQAoApwKIgEvAQBBKUcNAEEAKALwCSIDRQ0AIAMoAgQgAUcNAEEAQQAoAvQJIgM2AvAJAkAgA0UNACADQQA2AiAMAQtBAEEANgLgCQtBAEEALwGYCiIDQQFqOwGYCkEAKAKkCiADQQN0aiIDQQZBAkEALQCsChs2AgAgAyABNgIEQQBBADoArAoMCwtBAC8BmAoiAUUNB0EAIAFBf2oiATsBmApBACgCpAogAUH//wNxQQN0aigCAEEERg0EDAoLQScQGgwJC0EiEBoMCAsgAkEvRw0HAkACQCABLwEEIgFBKkYNACABQS9HDQEQGAwKC0EBEBkMCQsCQAJAAkACQEEAKAKcCiIBLwEAIgMQG0UNAAJAAkAgA0FVag4EAAkBAwkLIAFBfmovAQBBK0YNAwwICyABQX5qLwEAQS1GDQIMBwsgA0EpRw0BQQAoAqQKQQAvAZgKIgJBA3RqKAIEEBxFDQIMBgsgAUF+ai8BAEFQakH//wNxQQpPDQULQQAvAZgKIQILAkACQCACQf//A3EiAkUNACADQeYARw0AQQAoAqQKIAJBf2pBA3RqIgQoAgBBAUcNACABQX5qLwEAQe8ARw0BIAQoAgRBlghBAxAdRQ0BDAULIANB/QBHDQBBACgCpAogAkEDdGoiAigCBBAeDQQgAigCAEEGRg0ECyABEB8NAyADRQ0DIANBL0ZBAC0AoApBAEdxDQMCQEEAKAL4CSICRQ0AIAEgAigCAEkNACABIAIoAgRNDQQLIAFBfmohAUEAKALcCSECAkADQCABQQJqIgQgAk0NAUEAIAE2ApwKIAEvAQAhAyABQX5qIgQhASADECBFDQALIARBAmohBAsCQCADQf//A3EQIUUNACAEQX5qIQECQANAIAFBAmoiAyACTQ0BQQAgATYCnAogAS8BACEDIAFBfmoiBCEBIAMQIQ0ACyAEQQJqIQMLIAMQIg0EC0EAQQE6AKAKDAcLQQAoAqQKQQAvAZgKIgFBA3QiA2pBACgCnAo2AgRBACABQQFqOwGYCkEAKAKkCiADakEDNgIACxAjDAULQQAtAPwJQQAvAZYKQQAvAZgKcnJFIQIMBwsQJEEAQQA6AKAKDAMLECVBACECDAULIANBoAFHDQELQQBBAToArAoLQQBBACgCsAo2ApwKC0EAKAKwCiEBDAALCyAAQYDQAGokACACCxoAAkBBACgC3AkgAEcNAEEBDwsgAEF+ahAmC/4KAQZ/QQBBACgCsAoiAEEMaiIBNgKwCkEAKAL4CSECQQEQKSEDAkACQAJAAkACQAJAAkACQAJAQQAoArAKIgQgAUcNACADEChFDQELAkACQAJAAkACQAJAAkAgA0EqRg0AIANB+wBHDQFBACAEQQJqNgKwCkEBECkhA0EAKAKwCiEEA0ACQAJAIANB//8DcSIDQSJGDQAgA0EnRg0AIAMQLBpBACgCsAohAwwBCyADEBpBAEEAKAKwCkECaiIDNgKwCgtBARApGgJAIAQgAxAtIgNBLEcNAEEAQQAoArAKQQJqNgKwCkEBECkhAwsgA0H9AEYNA0EAKAKwCiIFIARGDQ8gBSEEIAVBACgCtApNDQAMDwsLQQAgBEECajYCsApBARApGkEAKAKwCiIDIAMQLRoMAgtBAEEAOgCUCgJAAkACQAJAAkACQCADQZ9/ag4MAgsEAQsDCwsLCwsFAAsgA0H2AEYNBAwKC0EAIARBDmoiAzYCsAoCQAJAAkBBARApQZ9/ag4GABICEhIBEgtBACgCsAoiBSkAAkLzgOSD4I3AMVINESAFLwEKECFFDRFBACAFQQpqNgKwCkEAECkaC0EAKAKwCiIFQQJqQbIIQQ4QLw0QIAUvARAiAkF3aiIBQRdLDQ1BASABdEGfgIAEcUUNDQwOC0EAKAKwCiIFKQACQuyAhIOwjsA5Ug0PIAUvAQoiAkF3aiIBQRdNDQYMCgtBACAEQQpqNgKwCkEAECkaQQAoArAKIQQLQQAgBEEQajYCsAoCQEEBECkiBEEqRw0AQQBBACgCsApBAmo2ArAKQQEQKSEEC0EAKAKwCiEDIAQQLBogA0EAKAKwCiIEIAMgBBACQQBBACgCsApBfmo2ArAKDwsCQCAEKQACQuyAhIOwjsA5Ug0AIAQvAQoQIEUNAEEAIARBCmo2ArAKQQEQKSEEQQAoArAKIQMgBBAsGiADQQAoArAKIgQgAyAEEAJBAEEAKAKwCkF+ajYCsAoPC0EAIARBBGoiBDYCsAoLQQAgBEEGajYCsApBAEEAOgCUCkEBECkhBEEAKAKwCiEDIAQQLCEEQQAoArAKIQIgBEHf/wNxIgFB2wBHDQNBACACQQJqNgKwCkEBECkhBUEAKAKwCiEDQQAhBAwEC0EAQQE6AIwKQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0AQQAgA0EIajYCsAogAEEBEClBABArIAJBEGpB5AkgAhshAwNAIAMoAgAiA0UNBSADQgA3AgggA0EQaiEDDAALC0EAIANBfmo2ArAKDAMLQQEgAXRBn4CABHFFDQMMBAtBASEECwNAAkACQCAEDgIAAQELIAVB//8DcRAsGkEBIQQMAQsCQAJAQQAoArAKIgQgA0YNACADIAQgAyAEEAJBARApIQQCQCABQdsARw0AIARBIHJB/QBGDQQLQQAoArAKIQMCQCAEQSxHDQBBACADQQJqNgKwCkEBECkhBUEAKAKwCiEDIAVBIHJB+wBHDQILQQAgA0F+ajYCsAoLIAFB2wBHDQJBACACQX5qNgKwCg8LQQAhBAwACwsPCyACQaABRg0AIAJB+wBHDQQLQQAgBUEKajYCsApBARApIgVB+wBGDQMMAgsCQCACQVhqDgMBAwEACyACQaABRw0CC0EAIAVBEGo2ArAKAkBBARApIgVBKkcNAEEAQQAoArAKQQJqNgKwCkEBECkhBQsgBUEoRg0BC0EAKAKwCiEBIAUQLBpBACgCsAoiBSABTQ0AIAQgAyABIAUQAkEAQQAoArAKQX5qNgKwCg8LIAQgA0EAQQAQAkEAIARBDGo2ArAKDwsQJQvcCAEGf0EAIQBBAEEAKAKwCiIBQQxqIgI2ArAKQQEQKSEDQQAoArAKIQQCQAJAAkACQAJAAkACQAJAIANBLkcNAEEAIARBAmo2ArAKAkBBARApIgNB8wBGDQAgA0HtAEcNB0EAKAKwCiIDQQJqQZwIQQYQLw0HAkBBACgCnAoiBBAqDQAgBC8BAEEuRg0ICyABIAEgA0EIakEAKALUCRABDwtBACgCsAoiA0ECakGiCEEKEC8NBgJAQQAoApwKIgQQKg0AIAQvAQBBLkYNBwsgA0EMaiEDDAELIANB8wBHDQEgBCACTQ0BQQYhAEEAIQIgBEECakGiCEEKEC8NAiAEQQxqIQMCQCAELwEMIgVBd2oiBEEXSw0AQQEgBHRBn4CABHENAQsgBUGgAUcNAgtBACADNgKwCkEBIQBBARApIQMLAkACQAJAAkAgA0H7AEYNACADQShHDQFBACgCpApBAC8BmAoiA0EDdGoiBEEAKAKwCjYCBEEAIANBAWo7AZgKIARBBTYCAEEAKAKcCi8BAEEuRg0HQQBBACgCsAoiBEECajYCsApBARApIQMgAUEAKAKwCkEAIAQQAQJAAkAgAA0AQQAoAvAJIQQMAQtBACgC8AkiBEEFNgIcC0EAQQAvAZYKIgBBAWo7AZYKQQAoAqgKIABBAnRqIAQ2AgACQCADQSJGDQAgA0EnRg0AQQBBACgCsApBfmo2ArAKDwsgAxAaQQBBACgCsApBAmoiAzYCsAoCQAJAAkBBARApQVdqDgQBAgIAAgtBAEEAKAKwCkECajYCsApBARApGkEAKALwCSIEIAM2AgQgBEEBOgAYIARBACgCsAoiAzYCEEEAIANBfmo2ArAKDwtBACgC8AkiBCADNgIEIARBAToAGEEAQQAvAZgKQX9qOwGYCiAEQQAoArAKQQJqNgIMQQBBAC8BlgpBf2o7AZYKDwtBAEEAKAKwCkF+ajYCsAoPCyAADQJBACgCsAohA0EALwGYCg0BA0ACQAJAAkAgA0EAKAK0Ck8NAEEBECkiA0EiRg0BIANBJ0YNASADQf0ARw0CQQBBACgCsApBAmo2ArAKC0EBECkhBEEAKAKwCiEDAkAgBEHmAEcNACADQQJqQawIQQYQLw0JC0EAIANBCGo2ArAKAkBBARApIgNBIkYNACADQSdHDQkLIAEgA0EAECsPCyADEBoLQQBBACgCsApBAmoiAzYCsAoMAAsLIAANAUEGIQBBACECAkAgA0FZag4EBAMDBAALIANBIkYNAwwCC0EAIANBfmo2ArAKDwtBDCEAQQEhAgtBACgCsAoiAyABIABBAXRqRw0AQQAgA0F+ajYCsAoPC0EALwGYCg0CQQAoArAKIQNBACgCtAohAANAIAMgAE8NAQJAAkAgAy8BACIEQSdGDQAgBEEiRw0BCyABIAQgAhArDwtBACADQQJqIgM2ArAKDAALCxAlCw8LQQBBACgCsApBfmo2ArAKC0cBA39BACgCsApBAmohAEEAKAK0CiEBAkADQCAAIgJBfmogAU8NASACQQJqIQAgAi8BAEF2ag4EAQAAAQALC0EAIAI2ArAKC5gBAQN/QQBBACgCsAoiAUECajYCsAogAUEGaiEBQQAoArQKIQIDQAJAAkACQCABQXxqIAJPDQAgAUF+ai8BACEDAkACQCAADQAgA0EqRg0BIANBdmoOBAIEBAIECyADQSpHDQMLIAEvAQBBL0cNAkEAIAFBfmo2ArAKDAELIAFBfmohAQtBACABNgKwCg8LIAFBAmohAQwACwuIAQEEf0EAKAKwCiEBQQAoArQKIQICQAJAA0AgASIDQQJqIQEgAyACTw0BIAEvAQAiBCAARg0CAkAgBEHcAEYNACAEQXZqDgQCAQECAQsgA0EEaiEBIAMvAQRBDUcNACADQQZqIAEgAy8BBkEKRhshAQwACwtBACABNgKwChAlDwtBACABNgKwCgtsAQF/AkACQCAAQV9qIgFBBUsNAEEBIAF0QTFxDQELIABBRmpB//8DcUEGSQ0AIABBKUcgAEFYakH//wNxQQdJcQ0AAkAgAEGlf2oOBAEAAAEACyAAQf0ARyAAQYV/akH//wNxQQRJcQ8LQQELLgEBf0EBIQECQCAAQaYJQQUQHQ0AIABBlghBAxAdDQAgAEGwCUECEB0hAQsgAQtGAQN/QQAhAwJAIAAgAkEBdCICayIEQQJqIgBBACgC3AkiBUkNACAAIAEgAhAvDQACQCAAIAVHDQBBAQ8LIAQQJiEDCyADC4MBAQJ/QQEhAQJAAkACQAJAAkACQCAALwEAIgJBRWoOBAUEBAEACwJAIAJBm39qDgQDBAQCAAsgAkEpRg0EIAJB+QBHDQMgAEF+akG8CUEGEB0PCyAAQX5qLwEAQT1GDwsgAEF+akG0CUEEEB0PCyAAQX5qQcgJQQMQHQ8LQQAhAQsgAQu0AwECf0EAIQECQAJAAkACQAJAAkACQAJAAkACQCAALwEAQZx/ag4UAAECCQkJCQMJCQQFCQkGCQcJCQgJCwJAAkAgAEF+ai8BAEGXf2oOBAAKCgEKCyAAQXxqQcoIQQIQHQ8LIABBfGpBzghBAxAdDwsCQAJAAkAgAEF+ai8BAEGNf2oOAwABAgoLAkAgAEF8ai8BACICQeEARg0AIAJB7ABHDQogAEF6akHlABAnDwsgAEF6akHjABAnDwsgAEF8akHUCEEEEB0PCyAAQXxqQdwIQQYQHQ8LIABBfmovAQBB7wBHDQYgAEF8ai8BAEHlAEcNBgJAIABBemovAQAiAkHwAEYNACACQeMARw0HIABBeGpB6AhBBhAdDwsgAEF4akH0CEECEB0PCyAAQX5qQfgIQQQQHQ8LQQEhASAAQX5qIgBB6QAQJw0EIABBgAlBBRAdDwsgAEF+akHkABAnDwsgAEF+akGKCUEHEB0PCyAAQX5qQZgJQQQQHQ8LAkAgAEF+ai8BACICQe8ARg0AIAJB5QBHDQEgAEF8akHuABAnDwsgAEF8akGgCUEDEB0hAQsgAQs0AQF/QQEhAQJAIABBd2pB//8DcUEFSQ0AIABBgAFyQaABRg0AIABBLkcgABAocSEBCyABCzABAX8CQAJAIABBd2oiAUEXSw0AQQEgAXRBjYCABHENAQsgAEGgAUYNAEEADwtBAQtOAQJ/QQAhAQJAAkAgAC8BACICQeUARg0AIAJB6wBHDQEgAEF+akH4CEEEEB0PCyAAQX5qLwEAQfUARw0AIABBfGpB3AhBBhAdIQELIAEL3gEBBH9BACgCsAohAEEAKAK0CiEBAkACQAJAA0AgACICQQJqIQAgAiABTw0BAkACQAJAIAAvAQAiA0Gkf2oOBQIDAwMBAAsgA0EkRw0CIAIvAQRB+wBHDQJBACACQQRqIgA2ArAKQQBBAC8BmAoiAkEBajsBmApBACgCpAogAkEDdGoiAkEENgIAIAIgADYCBA8LQQAgADYCsApBAEEALwGYCkF/aiIAOwGYCkEAKAKkCiAAQf//A3FBA3RqKAIAQQNHDQMMBAsgAkEEaiEADAALC0EAIAA2ArAKCxAlCwtwAQJ/AkACQANAQQBBACgCsAoiAEECaiIBNgKwCiAAQQAoArQKTw0BAkACQAJAIAEvAQAiAUGlf2oOAgECAAsCQCABQXZqDgQEAwMEAAsgAUEvRw0CDAQLEC4aDAELQQAgAEEEajYCsAoMAAsLECULCzUBAX9BAEEBOgD8CUEAKAKwCiEAQQBBACgCtApBAmo2ArAKQQAgAEEAKALcCWtBAXU2ApAKC0MBAn9BASEBAkAgAC8BACICQXdqQf//A3FBBUkNACACQYABckGgAUYNAEEAIQEgAhAoRQ0AIAJBLkcgABAqcg8LIAELPQECf0EAIQICQEEAKALcCSIDIABLDQAgAC8BACABRw0AAkAgAyAARw0AQQEPCyAAQX5qLwEAECAhAgsgAgtoAQJ/QQEhAQJAAkAgAEFfaiICQQVLDQBBASACdEExcQ0BCyAAQfj/A3FBKEYNACAAQUZqQf//A3FBBkkNAAJAIABBpX9qIgJBA0sNACACQQFHDQELIABBhX9qQf//A3FBBEkhAQsgAQucAQEDf0EAKAKwCiEBAkADQAJAAkAgAS8BACICQS9HDQACQCABLwECIgFBKkYNACABQS9HDQQQGAwCCyAAEBkMAQsCQAJAIABFDQAgAkF3aiIBQRdLDQFBASABdEGfgIAEcUUNAQwCCyACECFFDQMMAQsgAkGgAUcNAgtBAEEAKAKwCiIDQQJqIgE2ArAKIANBACgCtApJDQALCyACCzEBAX9BACEBAkAgAC8BAEEuRw0AIABBfmovAQBBLkcNACAAQXxqLwEAQS5GIQELIAELnAQBAX8CQCABQSJGDQAgAUEnRg0AECUPC0EAKAKwCiEDIAEQGiAAIANBAmpBACgCsApBACgC0AkQAQJAIAJFDQBBACgC8AlBBDYCHAtBAEEAKAKwCkECajYCsAoCQAJAAkACQEEAECkiAUHhAEYNACABQfcARg0BQQAoArAKIQEMAgtBACgCsAoiAUECakHACEEKEC8NAUEGIQAMAgtBACgCsAoiAS8BAkHpAEcNACABLwEEQfQARw0AQQQhACABLwEGQegARg0BC0EAIAFBfmo2ArAKDwtBACABIABBAXRqNgKwCgJAQQEQKUH7AEYNAEEAIAE2ArAKDwtBACgCsAoiAiEAA0BBACAAQQJqNgKwCgJAAkACQEEBECkiAEEiRg0AIABBJ0cNAUEnEBpBAEEAKAKwCkECajYCsApBARApIQAMAgtBIhAaQQBBACgCsApBAmo2ArAKQQEQKSEADAELIAAQLCEACwJAIABBOkYNAEEAIAE2ArAKDwtBAEEAKAKwCkECajYCsAoCQEEBECkiAEEiRg0AIABBJ0YNAEEAIAE2ArAKDwsgABAaQQBBACgCsApBAmo2ArAKAkACQEEBECkiAEEsRg0AIABB/QBGDQFBACABNgKwCg8LQQBBACgCsApBAmo2ArAKQQEQKUH9AEYNAEEAKAKwCiEADAELC0EAKALwCSIBIAI2AhAgAUEAKAKwCkECajYCDAttAQJ/AkACQANAAkAgAEH//wNxIgFBd2oiAkEXSw0AQQEgAnRBn4CABHENAgsgAUGgAUYNASAAIQIgARAoDQJBACECQQBBACgCsAoiAEECajYCsAogAC8BAiIADQAMAgsLIAAhAgsgAkH//wNxC6sBAQR/AkACQEEAKAKwCiICLwEAIgNB4QBGDQAgASEEIAAhBQwBC0EAIAJBBGo2ArAKQQEQKSECQQAoArAKIQUCQAJAIAJBIkYNACACQSdGDQAgAhAsGkEAKAKwCiEEDAELIAIQGkEAQQAoArAKQQJqIgQ2ArAKC0EBECkhA0EAKAKwCiECCwJAIAIgBUYNACAFIARBACAAIAAgAUYiAhtBACABIAIbEAILIAMLcgEEf0EAKAKwCiEAQQAoArQKIQECQAJAA0AgAEECaiECIAAgAU8NAQJAAkAgAi8BACIDQaR/ag4CAQQACyACIQAgA0F2ag4EAgEBAgELIABBBGohAAwACwtBACACNgKwChAlQQAPC0EAIAI2ArAKQd0AC0kBA39BACEDAkAgAkUNAAJAA0AgAC0AACIEIAEtAAAiBUcNASABQQFqIQEgAEEBaiEAIAJBf2oiAg0ADAILCyAEIAVrIQMLIAMLC+wBAgBBgAgLzgEAAHgAcABvAHIAdABtAHAAbwByAHQAZgBvAHIAZQB0AGEAbwB1AHIAYwBlAHIAbwBtAHUAbgBjAHQAaQBvAG4AcwBzAGUAcgB0AHYAbwB5AGkAZQBkAGUAbABlAGMAbwBuAHQAaQBuAGkAbgBzAHQAYQBuAHQAeQBiAHIAZQBhAHIAZQB0AHUAcgBkAGUAYgB1AGcAZwBlAGEAdwBhAGkAdABoAHIAdwBoAGkAbABlAGkAZgBjAGEAdABjAGYAaQBuAGEAbABsAGUAbABzAABB0AkLEAEAAAACAAAAAAQAAEA5AAA=", "undefined" != typeof Buffer ? Buffer.from(E, "base64") : Uint8Array.from(atob(E), (A2) => A2.charCodeAt(0)))).then(WebAssembly.instantiate).then(({ exports: A2 }) => {
-  C = A2;
-});
-var E;
-var convertSourceMap$1 = {};
-(function(exports2) {
-  Object.defineProperty(exports2, "commentRegex", {
-    get: function getCommentRegex() {
-      return /^\s*?\/[\/\*][@#]\s+?sourceMappingURL=data:(((?:application|text)\/json)(?:;charset=([^;,]+?)?)?)?(?:;(base64))?,(.*?)$/mg;
-    }
-  });
-  Object.defineProperty(exports2, "mapFileCommentRegex", {
-    get: function getMapFileCommentRegex() {
-      return /(?:\/\/[@#][ \t]+?sourceMappingURL=([^\s'"`]+?)[ \t]*?$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*?(?:\*\/){1}[ \t]*?$)/mg;
-    }
-  });
-  var decodeBase64;
-  if (typeof Buffer !== "undefined") {
-    if (typeof Buffer.from === "function") {
-      decodeBase64 = decodeBase64WithBufferFrom;
-    } else {
-      decodeBase64 = decodeBase64WithNewBuffer;
-    }
-  } else {
-    decodeBase64 = decodeBase64WithAtob;
-  }
-  function decodeBase64WithBufferFrom(base64) {
-    return Buffer.from(base64, "base64").toString();
-  }
-  function decodeBase64WithNewBuffer(base64) {
-    if (typeof value === "number") {
-      throw new TypeError("The value to decode must not be of type number.");
-    }
-    return new Buffer(base64, "base64").toString();
-  }
-  function decodeBase64WithAtob(base64) {
-    return decodeURIComponent(escape(atob(base64)));
-  }
-  function stripComment(sm) {
-    return sm.split(",").pop();
-  }
-  function readFromFileMap(sm, read2) {
-    var r2 = exports2.mapFileCommentRegex.exec(sm);
-    var filename = r2[1] || r2[2];
-    try {
-      var sm = read2(filename);
-      if (sm != null && typeof sm.catch === "function") {
-        return sm.catch(throwError);
-      } else {
-        return sm;
-      }
-    } catch (e2) {
-      throwError(e2);
-    }
-    function throwError(e2) {
-      throw new Error("An error occurred while trying to read the map file at " + filename + "\n" + e2.stack);
-    }
-  }
-  function Converter(sm, opts) {
-    opts = opts || {};
-    if (opts.hasComment) {
-      sm = stripComment(sm);
-    }
-    if (opts.encoding === "base64") {
-      sm = decodeBase64(sm);
-    } else if (opts.encoding === "uri") {
-      sm = decodeURIComponent(sm);
-    }
-    if (opts.isJSON || opts.encoding) {
-      sm = JSON.parse(sm);
-    }
-    this.sourcemap = sm;
-  }
-  Converter.prototype.toJSON = function(space) {
-    return JSON.stringify(this.sourcemap, null, space);
-  };
-  if (typeof Buffer !== "undefined") {
-    if (typeof Buffer.from === "function") {
-      Converter.prototype.toBase64 = encodeBase64WithBufferFrom;
-    } else {
-      Converter.prototype.toBase64 = encodeBase64WithNewBuffer;
-    }
-  } else {
-    Converter.prototype.toBase64 = encodeBase64WithBtoa;
-  }
-  function encodeBase64WithBufferFrom() {
-    var json = this.toJSON();
-    return Buffer.from(json, "utf8").toString("base64");
-  }
-  function encodeBase64WithNewBuffer() {
-    var json = this.toJSON();
-    if (typeof json === "number") {
-      throw new TypeError("The json to encode must not be of type number.");
-    }
-    return new Buffer(json, "utf8").toString("base64");
-  }
-  function encodeBase64WithBtoa() {
-    var json = this.toJSON();
-    return btoa(unescape(encodeURIComponent(json)));
-  }
-  Converter.prototype.toURI = function() {
-    var json = this.toJSON();
-    return encodeURIComponent(json);
-  };
-  Converter.prototype.toComment = function(options2) {
-    var encoding, content, data;
-    if (options2 != null && options2.encoding === "uri") {
-      encoding = "";
-      content = this.toURI();
-    } else {
-      encoding = ";base64";
-      content = this.toBase64();
-    }
-    data = "sourceMappingURL=data:application/json;charset=utf-8" + encoding + "," + content;
-    return options2 != null && options2.multiline ? "/*# " + data + " */" : "//# " + data;
-  };
-  Converter.prototype.toObject = function() {
-    return JSON.parse(this.toJSON());
-  };
-  Converter.prototype.addProperty = function(key, value2) {
-    if (this.sourcemap.hasOwnProperty(key)) throw new Error('property "' + key + '" already exists on the sourcemap, use set property instead');
-    return this.setProperty(key, value2);
-  };
-  Converter.prototype.setProperty = function(key, value2) {
-    this.sourcemap[key] = value2;
-    return this;
-  };
-  Converter.prototype.getProperty = function(key) {
-    return this.sourcemap[key];
-  };
-  exports2.fromObject = function(obj) {
-    return new Converter(obj);
-  };
-  exports2.fromJSON = function(json) {
-    return new Converter(json, { isJSON: true });
-  };
-  exports2.fromURI = function(uri) {
-    return new Converter(uri, { encoding: "uri" });
-  };
-  exports2.fromBase64 = function(base64) {
-    return new Converter(base64, { encoding: "base64" });
-  };
-  exports2.fromComment = function(comment) {
-    var m, encoding;
-    comment = comment.replace(/^\/\*/g, "//").replace(/\*\/$/g, "");
-    m = exports2.commentRegex.exec(comment);
-    encoding = m && m[4] || "uri";
-    return new Converter(comment, { encoding, hasComment: true });
-  };
-  function makeConverter(sm) {
-    return new Converter(sm, { isJSON: true });
-  }
-  exports2.fromMapFileComment = function(comment, read2) {
-    if (typeof read2 === "string") {
-      throw new Error(
-        "String directory paths are no longer supported with `fromMapFileComment`\nPlease review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading"
-      );
-    }
-    var sm = readFromFileMap(comment, read2);
-    if (sm != null && typeof sm.then === "function") {
-      return sm.then(makeConverter);
-    } else {
-      return makeConverter(sm);
-    }
-  };
-  exports2.fromSource = function(content) {
-    var m = content.match(exports2.commentRegex);
-    return m ? exports2.fromComment(m.pop()) : null;
-  };
-  exports2.fromMapFileSource = function(content, read2) {
-    if (typeof read2 === "string") {
-      throw new Error(
-        "String directory paths are no longer supported with `fromMapFileSource`\nPlease review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading"
-      );
-    }
-    var m = content.match(exports2.mapFileCommentRegex);
-    return m ? exports2.fromMapFileComment(m.pop(), read2) : null;
-  };
-  exports2.removeComments = function(src2) {
-    return src2.replace(exports2.commentRegex, "");
-  };
-  exports2.removeMapFileComments = function(src2) {
-    return src2.replace(exports2.mapFileCommentRegex, "");
-  };
-  exports2.generateMapFileComment = function(file, options2) {
-    var data = "sourceMappingURL=" + file;
-    return options2 && options2.multiline ? "/*# " + data + " */" : "//# " + data;
-  };
-})(convertSourceMap$1);
-var convertSourceMap = getDefaultExportFromCjs(convertSourceMap$1);
-var debug$g = createDebugger("vite:sourcemap", {
-  onlyWhenFocused: true
-});
-var virtualSourceRE = /^(?:dep:|browser-external:|virtual:)|\0/;
-async function computeSourceRoute(map2, file) {
-  let sourceRoot;
-  try {
-    sourceRoot = await import_promises.default.realpath(
-      import_node_path3.default.resolve(import_node_path3.default.dirname(file), map2.sourceRoot || "")
-    );
-  } catch {
-  }
-  return sourceRoot;
-}
-async function injectSourcesContent(map2, file, logger) {
-  let sourceRootPromise;
-  const missingSources = [];
-  const sourcesContent = map2.sourcesContent || [];
-  const sourcesContentPromises = [];
-  for (let index = 0; index < map2.sources.length; index++) {
-    const sourcePath = map2.sources[index];
-    if (sourcesContent[index] == null && sourcePath && !virtualSourceRE.test(sourcePath)) {
-      sourcesContentPromises.push(
-        (async () => {
-          sourceRootPromise ?? (sourceRootPromise = computeSourceRoute(map2, file));
-          const sourceRoot = await sourceRootPromise;
-          let resolvedSourcePath = cleanUrl(decodeURI(sourcePath));
-          if (sourceRoot) {
-            resolvedSourcePath = import_node_path3.default.resolve(sourceRoot, resolvedSourcePath);
-          }
-          sourcesContent[index] = await import_promises.default.readFile(resolvedSourcePath, "utf-8").catch(() => {
-            missingSources.push(resolvedSourcePath);
-            return null;
-          });
-        })()
-      );
-    }
-  }
-  await Promise.all(sourcesContentPromises);
-  map2.sourcesContent = sourcesContent;
-  if (missingSources.length) {
-    logger.warnOnce(`Sourcemap for "${file}" points to missing source files`);
-    debug$g == null ? void 0 : debug$g(`Missing sources:
-  ` + missingSources.join(`
-  `));
-  }
-}
-function genSourceMapUrl(map2) {
-  if (typeof map2 !== "string") {
-    map2 = JSON.stringify(map2);
-  }
-  return `data:application/json;base64,${Buffer.from(map2).toString("base64")}`;
-}
-function getCodeWithSourcemap(type, code, map2) {
-  if (debug$g) {
-    code += `
-/*${JSON.stringify(map2, null, 2).replace(/\*\//g, "*\\/")}*/
-`;
-  }
-  if (type === "js") {
-    code += `
-//# sourceMappingURL=${genSourceMapUrl(map2)}`;
-  } else if (type === "css") {
-    code += `
-/*# sourceMappingURL=${genSourceMapUrl(map2)} */`;
-  }
-  return code;
-}
-function applySourcemapIgnoreList(map2, sourcemapPath, sourcemapIgnoreList, logger) {
-  let { x_google_ignoreList } = map2;
-  if (x_google_ignoreList === void 0) {
-    x_google_ignoreList = [];
-  }
-  for (let sourcesIndex = 0; sourcesIndex < map2.sources.length; ++sourcesIndex) {
-    const sourcePath = map2.sources[sourcesIndex];
-    if (!sourcePath) continue;
-    const ignoreList = sourcemapIgnoreList(
-      import_node_path3.default.isAbsolute(sourcePath) ? sourcePath : import_node_path3.default.resolve(import_node_path3.default.dirname(sourcemapPath), sourcePath),
-      sourcemapPath
-    );
-    if (logger && typeof ignoreList !== "boolean") {
-      logger.warn("sourcemapIgnoreList function must return a boolean.");
-    }
-    if (ignoreList && !x_google_ignoreList.includes(sourcesIndex)) {
-      x_google_ignoreList.push(sourcesIndex);
-    }
-  }
-  if (x_google_ignoreList.length > 0) {
-    if (!map2.x_google_ignoreList) map2.x_google_ignoreList = x_google_ignoreList;
-  }
-}
-async function extractSourcemapFromFile(code, filePath) {
-  var _a4;
-  const map2 = (_a4 = convertSourceMap.fromSource(code) || await convertSourceMap.fromMapFileSource(
-    code,
-    createConvertSourceMapReadMap(filePath)
-  )) == null ? void 0 : _a4.toObject();
-  if (map2) {
-    return {
-      code: code.replace(convertSourceMap.mapFileCommentRegex, blankReplacer),
-      map: map2
-    };
-  }
-}
-function createConvertSourceMapReadMap(originalFileName) {
-  return (filename) => {
-    return import_promises.default.readFile(
-      import_node_path3.default.resolve(import_node_path3.default.dirname(originalFileName), filename),
-      "utf-8"
-    );
-  };
-}
-var tasks = {};
-var utils$g = {};
-var array$1 = {};
-Object.defineProperty(array$1, "__esModule", { value: true });
-array$1.splitWhen = array$1.flatten = void 0;
-function flatten$1(items) {
-  return items.reduce((collection, item) => [].concat(collection, item), []);
-}
-array$1.flatten = flatten$1;
-function splitWhen(items, predicate) {
-  const result = [[]];
-  let groupIndex = 0;
-  for (const item of items) {
-    if (predicate(item)) {
-      groupIndex++;
-      result[groupIndex] = [];
-    } else {
-      result[groupIndex].push(item);
-    }
-  }
-  return result;
-}
-array$1.splitWhen = splitWhen;
-var errno$1 = {};
-Object.defineProperty(errno$1, "__esModule", { value: true });
-errno$1.isEnoentCodeError = void 0;
-function isEnoentCodeError(error2) {
-  return error2.code === "ENOENT";
-}
-errno$1.isEnoentCodeError = isEnoentCodeError;
-var fs$i = {};
-Object.defineProperty(fs$i, "__esModule", { value: true });
-fs$i.createDirentFromStats = void 0;
-var DirentFromStats$1 = class DirentFromStats {
-  constructor(name2, stats) {
-    this.name = name2;
-    this.isBlockDevice = stats.isBlockDevice.bind(stats);
-    this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
-    this.isDirectory = stats.isDirectory.bind(stats);
-    this.isFIFO = stats.isFIFO.bind(stats);
-    this.isFile = stats.isFile.bind(stats);
-    this.isSocket = stats.isSocket.bind(stats);
-    this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
-  }
-};
-function createDirentFromStats$1(name2, stats) {
-  return new DirentFromStats$1(name2, stats);
-}
-fs$i.createDirentFromStats = createDirentFromStats$1;
-var path$i = {};
-Object.defineProperty(path$i, "__esModule", { value: true });
-path$i.convertPosixPathToPattern = path$i.convertWindowsPathToPattern = path$i.convertPathToPattern = path$i.escapePosixPath = path$i.escapeWindowsPath = path$i.escape = path$i.removeLeadingDotSegment = path$i.makeAbsolute = path$i.unixify = void 0;
-var os$4 = import_os.default;
-var path$h = import_path.default;
-var IS_WINDOWS_PLATFORM = os$4.platform() === "win32";
-var LEADING_DOT_SEGMENT_CHARACTERS_COUNT = 2;
-var POSIX_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g;
-var WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE = /(\\?)([()[\]{}]|^!|[!+@](?=\())/g;
-var DOS_DEVICE_PATH_RE = /^\\\\([.?])/;
-var WINDOWS_BACKSLASHES_RE = /\\(?![!()+@[\]{}])/g;
-function unixify(filepath) {
-  return filepath.replace(/\\/g, "/");
-}
-path$i.unixify = unixify;
-function makeAbsolute(cwd, filepath) {
-  return path$h.resolve(cwd, filepath);
-}
-path$i.makeAbsolute = makeAbsolute;
-function removeLeadingDotSegment(entry2) {
-  if (entry2.charAt(0) === ".") {
-    const secondCharactery = entry2.charAt(1);
-    if (secondCharactery === "/" || secondCharactery === "\\") {
-      return entry2.slice(LEADING_DOT_SEGMENT_CHARACTERS_COUNT);
-    }
-  }
-  return entry2;
-}
-path$i.removeLeadingDotSegment = removeLeadingDotSegment;
-path$i.escape = IS_WINDOWS_PLATFORM ? escapeWindowsPath : escapePosixPath;
-function escapeWindowsPath(pattern2) {
-  return pattern2.replace(WINDOWS_UNESCAPED_GLOB_SYMBOLS_RE, "\\$2");
-}
-path$i.escapeWindowsPath = escapeWindowsPath;
-function escapePosixPath(pattern2) {
-  return pattern2.replace(POSIX_UNESCAPED_GLOB_SYMBOLS_RE, "\\$2");
-}
-path$i.escapePosixPath = escapePosixPath;
-path$i.convertPathToPattern = IS_WINDOWS_PLATFORM ? convertWindowsPathToPattern : convertPosixPathToPattern;
-function convertWindowsPathToPattern(filepath) {
-  return escapeWindowsPath(filepath).replace(DOS_DEVICE_PATH_RE, "//$1").replace(WINDOWS_BACKSLASHES_RE, "/");
-}
-path$i.convertWindowsPathToPattern = convertWindowsPathToPattern;
-function convertPosixPathToPattern(filepath) {
-  return escapePosixPath(filepath);
-}
-path$i.convertPosixPathToPattern = convertPosixPathToPattern;
-var pattern$1 = {};
-var isExtglob$1 = function isExtglob(str) {
-  if (typeof str !== "string" || str === "") {
-    return false;
-  }
-  var match2;
-  while (match2 = /(\\).|([@?!+*]\(.*\))/g.exec(str)) {
-    if (match2[2]) return true;
-    str = str.slice(match2.index + match2[0].length);
-  }
-  return false;
-};
-var isExtglob2 = isExtglob$1;
-var chars = { "{": "}", "(": ")", "[": "]" };
-var strictCheck = function(str) {
-  if (str[0] === "!") {
-    return true;
-  }
-  var index = 0;
-  var pipeIndex = -2;
-  var closeSquareIndex = -2;
-  var closeCurlyIndex = -2;
-  var closeParenIndex = -2;
-  var backSlashIndex = -2;
-  while (index < str.length) {
-    if (str[index] === "*") {
-      return true;
-    }
-    if (str[index + 1] === "?" && /[\].+)]/.test(str[index])) {
-      return true;
-    }
-    if (closeSquareIndex !== -1 && str[index] === "[" && str[index + 1] !== "]") {
-      if (closeSquareIndex < index) {
-        closeSquareIndex = str.indexOf("]", index);
-      }
-      if (closeSquareIndex > index) {
-        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
-          return true;
-        }
-        backSlashIndex = str.indexOf("\\", index);
-        if (backSlashIndex === -1 || backSlashIndex > closeSquareIndex) {
-          return true;
-        }
-      }
-    }
-    if (closeCurlyIndex !== -1 && str[index] === "{" && str[index + 1] !== "}") {
-      closeCurlyIndex = str.indexOf("}", index);
-      if (closeCurlyIndex > index) {
-        backSlashIndex = str.indexOf("\\", index);
-        if (backSlashIndex === -1 || backSlashIndex > closeCurlyIndex) {
-          return true;
-        }
-      }
-    }
-    if (closeParenIndex !== -1 && str[index] === "(" && str[index + 1] === "?" && /[:!=]/.test(str[index + 2]) && str[index + 3] !== ")") {
-      closeParenIndex = str.indexOf(")", index);
-      if (closeParenIndex > index) {
-        backSlashIndex = str.indexOf("\\", index);
-        if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
-          return true;
-        }
-      }
-    }
-    if (pipeIndex !== -1 && str[index] === "(" && str[index + 1] !== "|") {
-      if (pipeIndex < index) {
-        pipeIndex = str.indexOf("|", index);
-      }
-      if (pipeIndex !== -1 && str[pipeIndex + 1] !== ")") {
-        closeParenIndex = str.indexOf(")", pipeIndex);
-        if (closeParenIndex > pipeIndex) {
-          backSlashIndex = str.indexOf("\\", pipeIndex);
-          if (backSlashIndex === -1 || backSlashIndex > closeParenIndex) {
-            return true;
-          }
-        }
-      }
-    }
-    if (str[index] === "\\") {
-      var open2 = str[index + 1];
-      index += 2;
-      var close2 = chars[open2];
-      if (close2) {
-        var n2 = str.indexOf(close2, index);
-        if (n2 !== -1) {
-          index = n2 + 1;
-        }
-      }
-      if (str[index] === "!") {
-        return true;
-      }
-    } else {
-      index++;
-    }
-  }
-  return false;
-};
-var relaxedCheck = function(str) {
-  if (str[0] === "!") {
-    return true;
-  }
-  var index = 0;
-  while (index < str.length) {
-    if (/[*?{}()[\]]/.test(str[index])) {
-      return true;
-    }
-    if (str[index] === "\\") {
-      var open2 = str[index + 1];
-      index += 2;
-      var close2 = chars[open2];
-      if (close2) {
-        var n2 = str.indexOf(close2, index);
-        if (n2 !== -1) {
-          index = n2 + 1;
-        }
-      }
-      if (str[index] === "!") {
-        return true;
-      }
-    } else {
-      index++;
-    }
-  }
-  return false;
-};
-var isGlob$2 = function isGlob(str, options2) {
-  if (typeof str !== "string" || str === "") {
-    return false;
-  }
-  if (isExtglob2(str)) {
-    return true;
-  }
-  var check = strictCheck;
-  if (options2 && options2.strict === false) {
-    check = relaxedCheck;
-  }
-  return check(str);
-};
-var isGlob$1 = isGlob$2;
-var pathPosixDirname = import_path.default.posix.dirname;
-var isWin32 = import_os.default.platform() === "win32";
-var slash = "/";
-var backslash = /\\/g;
-var enclosure = /[\{\[].*[\}\]]$/;
-var globby = /(^|[^\\])([\{\[]|\([^\)]+$)/;
-var escaped = /\\([\!\*\?\|\[\]\(\)\{\}])/g;
-var globParent$2 = function globParent(str, opts) {
-  var options2 = Object.assign({ flipBackslashes: true }, opts);
-  if (options2.flipBackslashes && isWin32 && str.indexOf(slash) < 0) {
-    str = str.replace(backslash, slash);
-  }
-  if (enclosure.test(str)) {
-    str += slash;
-  }
-  str += "a";
-  do {
-    str = pathPosixDirname(str);
-  } while (isGlob$1(str) || globby.test(str));
-  return str.replace(escaped, "$1");
-};
-var utils$f = {};
-(function(exports2) {
-  exports2.isInteger = (num) => {
-    if (typeof num === "number") {
-      return Number.isInteger(num);
-    }
-    if (typeof num === "string" && num.trim() !== "") {
-      return Number.isInteger(Number(num));
-    }
-    return false;
-  };
-  exports2.find = (node2, type) => node2.nodes.find((node3) => node3.type === type);
-  exports2.exceedsLimit = (min2, max, step = 1, limit) => {
-    if (limit === false) return false;
-    if (!exports2.isInteger(min2) || !exports2.isInteger(max)) return false;
-    return (Number(max) - Number(min2)) / Number(step) >= limit;
-  };
-  exports2.escapeNode = (block, n2 = 0, type) => {
-    const node2 = block.nodes[n2];
-    if (!node2) return;
-    if (type && node2.type === type || node2.type === "open" || node2.type === "close") {
-      if (node2.escaped !== true) {
-        node2.value = "\\" + node2.value;
-        node2.escaped = true;
-      }
-    }
-  };
-  exports2.encloseBrace = (node2) => {
-    if (node2.type !== "brace") return false;
-    if (node2.commas >> 0 + node2.ranges >> 0 === 0) {
-      node2.invalid = true;
-      return true;
-    }
-    return false;
-  };
-  exports2.isInvalidBrace = (block) => {
-    if (block.type !== "brace") return false;
-    if (block.invalid === true || block.dollar) return true;
-    if (block.commas >> 0 + block.ranges >> 0 === 0) {
-      block.invalid = true;
-      return true;
-    }
-    if (block.open !== true || block.close !== true) {
-      block.invalid = true;
-      return true;
-    }
-    return false;
-  };
-  exports2.isOpenOrClose = (node2) => {
-    if (node2.type === "open" || node2.type === "close") {
-      return true;
-    }
-    return node2.open === true || node2.close === true;
-  };
-  exports2.reduce = (nodes) => nodes.reduce((acc, node2) => {
-    if (node2.type === "text") acc.push(node2.value);
-    if (node2.type === "range") node2.type = "text";
-    return acc;
-  }, []);
-  exports2.flatten = (...args) => {
-    const result = [];
-    const flat = (arr) => {
-      for (let i = 0; i < arr.length; i++) {
-        const ele = arr[i];
-        if (Array.isArray(ele)) {
-          flat(ele);
-          continue;
-        }
-        if (ele !== void 0) {
-          result.push(ele);
-        }
-      }
-      return result;
-    };
-    flat(args);
-    return result;
-  };
-})(utils$f);
-var utils$e = utils$f;
-var stringify$7 = (ast, options2 = {}) => {
-  const stringify2 = (node2, parent = {}) => {
-    const invalidBlock = options2.escapeInvalid && utils$e.isInvalidBrace(parent);
-    const invalidNode = node2.invalid === true && options2.escapeInvalid === true;
-    let output = "";
-    if (node2.value) {
-      if ((invalidBlock || invalidNode) && utils$e.isOpenOrClose(node2)) {
-        return "\\" + node2.value;
-      }
-      return node2.value;
-    }
-    if (node2.value) {
-      return node2.value;
-    }
-    if (node2.nodes) {
-      for (const child of node2.nodes) {
-        output += stringify2(child);
-      }
-    }
-    return output;
-  };
-  return stringify2(ast);
-};
-var isNumber$2 = function(num) {
-  if (typeof num === "number") {
-    return num - num === 0;
-  }
-  if (typeof num === "string" && num.trim() !== "") {
-    return Number.isFinite ? Number.isFinite(+num) : isFinite(+num);
-  }
-  return false;
-};
-var isNumber$1 = isNumber$2;
-var toRegexRange$1 = (min2, max, options2) => {
-  if (isNumber$1(min2) === false) {
-    throw new TypeError("toRegexRange: expected the first argument to be a number");
-  }
-  if (max === void 0 || min2 === max) {
-    return String(min2);
-  }
-  if (isNumber$1(max) === false) {
-    throw new TypeError("toRegexRange: expected the second argument to be a number.");
-  }
-  let opts = { relaxZeros: true, ...options2 };
-  if (typeof opts.strictZeros === "boolean") {
-    opts.relaxZeros = opts.strictZeros === false;
-  }
-  let relax = String(opts.relaxZeros);
-  let shorthand = String(opts.shorthand);
-  let capture = String(opts.capture);
-  let wrap2 = String(opts.wrap);
-  let cacheKey = min2 + ":" + max + "=" + relax + shorthand + capture + wrap2;
-  if (toRegexRange$1.cache.hasOwnProperty(cacheKey)) {
-    return toRegexRange$1.cache[cacheKey].result;
-  }
-  let a = Math.min(min2, max);
-  let b = Math.max(min2, max);
-  if (Math.abs(a - b) === 1) {
-    let result = min2 + "|" + max;
-    if (opts.capture) {
-      return `(${result})`;
-    }
-    if (opts.wrap === false) {
-      return result;
-    }
-    return `(?:${result})`;
-  }
-  let isPadded2 = hasPadding(min2) || hasPadding(max);
-  let state = { min: min2, max, a, b };
-  let positives = [];
-  let negatives = [];
-  if (isPadded2) {
-    state.isPadded = isPadded2;
-    state.maxLen = String(state.max).length;
-  }
-  if (a < 0) {
-    let newMin = b < 0 ? Math.abs(b) : 1;
-    negatives = splitToPatterns(newMin, Math.abs(a), state, opts);
-    a = state.a = 0;
-  }
-  if (b >= 0) {
-    positives = splitToPatterns(a, b, state, opts);
-  }
-  state.negatives = negatives;
-  state.positives = positives;
-  state.result = collatePatterns(negatives, positives);
-  if (opts.capture === true) {
-    state.result = `(${state.result})`;
-  } else if (opts.wrap !== false && positives.length + negatives.length > 1) {
-    state.result = `(?:${state.result})`;
-  }
-  toRegexRange$1.cache[cacheKey] = state;
-  return state.result;
-};
-function collatePatterns(neg, pos, options2) {
-  let onlyNegative = filterPatterns(neg, pos, "-", false) || [];
-  let onlyPositive = filterPatterns(pos, neg, "", false) || [];
-  let intersected = filterPatterns(neg, pos, "-?", true) || [];
-  let subpatterns = onlyNegative.concat(intersected).concat(onlyPositive);
-  return subpatterns.join("|");
-}
-function splitToRanges(min2, max) {
-  let nines = 1;
-  let zeros2 = 1;
-  let stop = countNines(min2, nines);
-  let stops = /* @__PURE__ */ new Set([max]);
-  while (min2 <= stop && stop <= max) {
-    stops.add(stop);
-    nines += 1;
-    stop = countNines(min2, nines);
-  }
-  stop = countZeros(max + 1, zeros2) - 1;
-  while (min2 < stop && stop <= max) {
-    stops.add(stop);
-    zeros2 += 1;
-    stop = countZeros(max + 1, zeros2) - 1;
-  }
-  stops = [...stops];
-  stops.sort(compare);
-  return stops;
-}
-function rangeToPattern(start, stop, options2) {
-  if (start === stop) {
-    return { pattern: start, count: [], digits: 0 };
-  }
-  let zipped = zip(start, stop);
-  let digits = zipped.length;
-  let pattern2 = "";
-  let count = 0;
-  for (let i = 0; i < digits; i++) {
-    let [startDigit, stopDigit] = zipped[i];
-    if (startDigit === stopDigit) {
-      pattern2 += startDigit;
-    } else if (startDigit !== "0" || stopDigit !== "9") {
-      pattern2 += toCharacterClass(startDigit, stopDigit);
-    } else {
-      count++;
-    }
-  }
-  if (count) {
-    pattern2 += options2.shorthand === true ? "\\d" : "[0-9]";
-  }
-  return { pattern: pattern2, count: [count], digits };
-}
-function splitToPatterns(min2, max, tok, options2) {
-  let ranges = splitToRanges(min2, max);
-  let tokens = [];
-  let start = min2;
-  let prev;
-  for (let i = 0; i < ranges.length; i++) {
-    let max2 = ranges[i];
-    let obj = rangeToPattern(String(start), String(max2), options2);
-    let zeros2 = "";
-    if (!tok.isPadded && prev && prev.pattern === obj.pattern) {
-      if (prev.count.length > 1) {
-        prev.count.pop();
-      }
-      prev.count.push(obj.count[0]);
-      prev.string = prev.pattern + toQuantifier(prev.count);
-      start = max2 + 1;
-      continue;
-    }
-    if (tok.isPadded) {
-      zeros2 = padZeros(max2, tok, options2);
-    }
-    obj.string = zeros2 + obj.pattern + toQuantifier(obj.count);
-    tokens.push(obj);
-    start = max2 + 1;
-    prev = obj;
-  }
-  return tokens;
-}
-function filterPatterns(arr, comparison, prefix, intersection, options2) {
-  let result = [];
-  for (let ele of arr) {
-    let { string: string2 } = ele;
-    if (!intersection && !contains(comparison, "string", string2)) {
-      result.push(prefix + string2);
-    }
-    if (intersection && contains(comparison, "string", string2)) {
-      result.push(prefix + string2);
-    }
-  }
-  return result;
-}
-function zip(a, b) {
-  let arr = [];
-  for (let i = 0; i < a.length; i++) arr.push([a[i], b[i]]);
-  return arr;
-}
-function compare(a, b) {
-  return a > b ? 1 : b > a ? -1 : 0;
-}
-function contains(arr, key, val) {
-  return arr.some((ele) => ele[key] === val);
-}
-function countNines(min2, len) {
-  return Number(String(min2).slice(0, -len) + "9".repeat(len));
-}
-function countZeros(integer, zeros2) {
-  return integer - integer % Math.pow(10, zeros2);
-}
-function toQuantifier(digits) {
-  let [start = 0, stop = ""] = digits;
-  if (stop || start > 1) {
-    return `{${start + (stop ? "," + stop : "")}}`;
-  }
-  return "";
-}
-function toCharacterClass(a, b, options2) {
-  return `[${a}${b - a === 1 ? "" : "-"}${b}]`;
-}
-function hasPadding(str) {
-  return /^-?(0+)\d/.test(str);
-}
-function padZeros(value2, tok, options2) {
-  if (!tok.isPadded) {
-    return value2;
-  }
-  let diff = Math.abs(tok.maxLen - String(value2).length);
-  let relax = options2.relaxZeros !== false;
-  switch (diff) {
-    case 0:
-      return "";
-    case 1:
-      return relax ? "0?" : "0";
-    case 2:
-      return relax ? "0{0,2}" : "00";
-    default: {
-      return relax ? `0{0,${diff}}` : `0{${diff}}`;
-    }
-  }
-}
-toRegexRange$1.cache = {};
-toRegexRange$1.clearCache = () => toRegexRange$1.cache = {};
-var toRegexRange_1 = toRegexRange$1;
-var util$1 = import_util.default;
-var toRegexRange = toRegexRange_1;
-var isObject = (val) => val !== null && typeof val === "object" && !Array.isArray(val);
-var transform = (toNumber) => {
-  return (value2) => toNumber === true ? Number(value2) : String(value2);
-};
-var isValidValue = (value2) => {
-  return typeof value2 === "number" || typeof value2 === "string" && value2 !== "";
-};
-var isNumber = (num) => Number.isInteger(+num);
-var zeros = (input) => {
-  let value2 = `${input}`;
-  let index = -1;
-  if (value2[0] === "-") value2 = value2.slice(1);
-  if (value2 === "0") return false;
-  while (value2[++index] === "0") ;
-  return index > 0;
-};
-var stringify$6 = (start, end, options2) => {
-  if (typeof start === "string" || typeof end === "string") {
-    return true;
-  }
-  return options2.stringify === true;
-};
-var pad = (input, maxLength, toNumber) => {
-  if (maxLength > 0) {
-    let dash = input[0] === "-" ? "-" : "";
-    if (dash) input = input.slice(1);
-    input = dash + input.padStart(dash ? maxLength - 1 : maxLength, "0");
-  }
-  if (toNumber === false) {
-    return String(input);
-  }
-  return input;
-};
-var toMaxLen = (input, maxLength) => {
-  let negative = input[0] === "-" ? "-" : "";
-  if (negative) {
-    input = input.slice(1);
-    maxLength--;
-  }
-  while (input.length < maxLength) input = "0" + input;
-  return negative ? "-" + input : input;
-};
-var toSequence = (parts, options2, maxLen) => {
-  parts.negatives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
-  parts.positives.sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
-  let prefix = options2.capture ? "" : "?:";
-  let positives = "";
-  let negatives = "";
-  let result;
-  if (parts.positives.length) {
-    positives = parts.positives.map((v) => toMaxLen(String(v), maxLen)).join("|");
-  }
-  if (parts.negatives.length) {
-    negatives = `-(${prefix}${parts.negatives.map((v) => toMaxLen(String(v), maxLen)).join("|")})`;
-  }
-  if (positives && negatives) {
-    result = `${positives}|${negatives}`;
-  } else {
-    result = positives || negatives;
-  }
-  if (options2.wrap) {
-    return `(${prefix}${result})`;
-  }
-  return result;
-};
-var toRange = (a, b, isNumbers, options2) => {
-  if (isNumbers) {
-    return toRegexRange(a, b, { wrap: false, ...options2 });
-  }
-  let start = String.fromCharCode(a);
-  if (a === b) return start;
-  let stop = String.fromCharCode(b);
-  return `[${start}-${stop}]`;
-};
-var toRegex = (start, end, options2) => {
-  if (Array.isArray(start)) {
-    let wrap2 = options2.wrap === true;
-    let prefix = options2.capture ? "" : "?:";
-    return wrap2 ? `(${prefix}${start.join("|")})` : start.join("|");
-  }
-  return toRegexRange(start, end, options2);
-};
-var rangeError = (...args) => {
-  return new RangeError("Invalid range arguments: " + util$1.inspect(...args));
-};
-var invalidRange = (start, end, options2) => {
-  if (options2.strictRanges === true) throw rangeError([start, end]);
-  return [];
-};
-var invalidStep = (step, options2) => {
-  if (options2.strictRanges === true) {
-    throw new TypeError(`Expected step "${step}" to be a number`);
-  }
-  return [];
-};
-var fillNumbers = (start, end, step = 1, options2 = {}) => {
-  let a = Number(start);
-  let b = Number(end);
-  if (!Number.isInteger(a) || !Number.isInteger(b)) {
-    if (options2.strictRanges === true) throw rangeError([start, end]);
-    return [];
-  }
-  if (a === 0) a = 0;
-  if (b === 0) b = 0;
-  let descending = a > b;
-  let startString = String(start);
-  let endString = String(end);
-  let stepString = String(step);
-  step = Math.max(Math.abs(step), 1);
-  let padded = zeros(startString) || zeros(endString) || zeros(stepString);
-  let maxLen = padded ? Math.max(startString.length, endString.length, stepString.length) : 0;
-  let toNumber = padded === false && stringify$6(start, end, options2) === false;
-  let format2 = options2.transform || transform(toNumber);
-  if (options2.toRegex && step === 1) {
-    return toRange(toMaxLen(start, maxLen), toMaxLen(end, maxLen), true, options2);
-  }
-  let parts = { negatives: [], positives: [] };
-  let push2 = (num) => parts[num < 0 ? "negatives" : "positives"].push(Math.abs(num));
-  let range2 = [];
-  let index = 0;
-  while (descending ? a >= b : a <= b) {
-    if (options2.toRegex === true && step > 1) {
-      push2(a);
-    } else {
-      range2.push(pad(format2(a, index), maxLen, toNumber));
-    }
-    a = descending ? a - step : a + step;
-    index++;
-  }
-  if (options2.toRegex === true) {
-    return step > 1 ? toSequence(parts, options2, maxLen) : toRegex(range2, null, { wrap: false, ...options2 });
-  }
-  return range2;
-};
-var fillLetters = (start, end, step = 1, options2 = {}) => {
-  if (!isNumber(start) && start.length > 1 || !isNumber(end) && end.length > 1) {
-    return invalidRange(start, end, options2);
-  }
-  let format2 = options2.transform || ((val) => String.fromCharCode(val));
-  let a = `${start}`.charCodeAt(0);
-  let b = `${end}`.charCodeAt(0);
-  let descending = a > b;
-  let min2 = Math.min(a, b);
-  let max = Math.max(a, b);
-  if (options2.toRegex && step === 1) {
-    return toRange(min2, max, false, options2);
-  }
-  let range2 = [];
-  let index = 0;
-  while (descending ? a >= b : a <= b) {
-    range2.push(format2(a, index));
-    a = descending ? a - step : a + step;
-    index++;
-  }
-  if (options2.toRegex === true) {
-    return toRegex(range2, null, { wrap: false, options: options2 });
-  }
-  return range2;
-};
-var fill$2 = (start, end, step, options2 = {}) => {
-  if (end == null && isValidValue(start)) {
-    return [start];
-  }
-  if (!isValidValue(start) || !isValidValue(end)) {
-    return invalidRange(start, end, options2);
-  }
-  if (typeof step === "function") {
-    return fill$2(start, end, 1, { transform: step });
-  }
-  if (isObject(step)) {
-    return fill$2(start, end, 0, step);
-  }
-  let opts = { ...options2 };
-  if (opts.capture === true) opts.wrap = true;
-  step = step || opts.step || 1;
-  if (!isNumber(step)) {
-    if (step != null && !isObject(step)) return invalidStep(step, opts);
-    return fill$2(start, end, 1, step);
-  }
-  if (isNumber(start) && isNumber(end)) {
-    return fillNumbers(start, end, step, opts);
-  }
-  return fillLetters(start, end, Math.max(Math.abs(step), 1), opts);
-};
-var fillRange = fill$2;
-var fill$1 = fillRange;
-var utils$d = utils$f;
-var compile$1 = (ast, options2 = {}) => {
-  const walk2 = (node2, parent = {}) => {
-    const invalidBlock = utils$d.isInvalidBrace(parent);
-    const invalidNode = node2.invalid === true && options2.escapeInvalid === true;
-    const invalid = invalidBlock === true || invalidNode === true;
-    const prefix = options2.escapeInvalid === true ? "\\" : "";
-    let output = "";
-    if (node2.isOpen === true) {
-      return prefix + node2.value;
-    }
-    if (node2.isClose === true) {
-      console.log("node.isClose", prefix, node2.value);
-      return prefix + node2.value;
-    }
-    if (node2.type === "open") {
-      return invalid ? prefix + node2.value : "(";
-    }
-    if (node2.type === "close") {
-      return invalid ? prefix + node2.value : ")";
-    }
-    if (node2.type === "comma") {
-      return node2.prev.type === "comma" ? "" : invalid ? node2.value : "|";
-    }
-    if (node2.value) {
-      return node2.value;
-    }
-    if (node2.nodes && node2.ranges > 0) {
-      const args = utils$d.reduce(node2.nodes);
-      const range2 = fill$1(...args, { ...options2, wrap: false, toRegex: true, strictZeros: true });
-      if (range2.length !== 0) {
-        return args.length > 1 && range2.length > 1 ? `(${range2})` : range2;
-      }
-    }
-    if (node2.nodes) {
-      for (const child of node2.nodes) {
-        output += walk2(child, node2);
-      }
-    }
-    return output;
-  };
-  return walk2(ast);
-};
-var compile_1 = compile$1;
-var fill = fillRange;
-var stringify$5 = stringify$7;
-var utils$c = utils$f;
-var append$1 = (queue2 = "", stash = "", enclose = false) => {
-  const result = [];
-  queue2 = [].concat(queue2);
-  stash = [].concat(stash);
-  if (!stash.length) return queue2;
-  if (!queue2.length) {
-    return enclose ? utils$c.flatten(stash).map((ele) => `{${ele}}`) : stash;
-  }
-  for (const item of queue2) {
-    if (Array.isArray(item)) {
-      for (const value2 of item) {
-        result.push(append$1(value2, stash, enclose));
-      }
-    } else {
-      for (let ele of stash) {
-        if (enclose === true && typeof ele === "string") ele = `{${ele}}`;
-        result.push(Array.isArray(ele) ? append$1(item, ele, enclose) : item + ele);
-      }
-    }
-  }
-  return utils$c.flatten(result);
-};
-var expand$2 = (ast, options2 = {}) => {
-  const rangeLimit = options2.rangeLimit === void 0 ? 1e3 : options2.rangeLimit;
-  const walk2 = (node2, parent = {}) => {
-    node2.queue = [];
-    let p = parent;
-    let q = parent.queue;
-    while (p.type !== "brace" && p.type !== "root" && p.parent) {
-      p = p.parent;
-      q = p.queue;
-    }
-    if (node2.invalid || node2.dollar) {
-      q.push(append$1(q.pop(), stringify$5(node2, options2)));
-      return;
-    }
-    if (node2.type === "brace" && node2.invalid !== true && node2.nodes.length === 2) {
-      q.push(append$1(q.pop(), ["{}"]));
-      return;
-    }
-    if (node2.nodes && node2.ranges > 0) {
-      const args = utils$c.reduce(node2.nodes);
-      if (utils$c.exceedsLimit(...args, options2.step, rangeLimit)) {
-        throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");
-      }
-      let range2 = fill(...args, options2);
-      if (range2.length === 0) {
-        range2 = stringify$5(node2, options2);
-      }
-      q.push(append$1(q.pop(), range2));
-      node2.nodes = [];
-      return;
-    }
-    const enclose = utils$c.encloseBrace(node2);
-    let queue2 = node2.queue;
-    let block = node2;
-    while (block.type !== "brace" && block.type !== "root" && block.parent) {
-      block = block.parent;
-      queue2 = block.queue;
-    }
-    for (let i = 0; i < node2.nodes.length; i++) {
-      const child = node2.nodes[i];
-      if (child.type === "comma" && node2.type === "brace") {
-        if (i === 1) queue2.push("");
-        queue2.push("");
-        continue;
-      }
-      if (child.type === "close") {
-        q.push(append$1(q.pop(), queue2, enclose));
-        continue;
-      }
-      if (child.value && child.type !== "open") {
-        queue2.push(append$1(queue2.pop(), child.value));
-        continue;
-      }
-      if (child.nodes) {
-        walk2(child, node2);
-      }
-    }
-    return queue2;
-  };
-  return utils$c.flatten(walk2(ast));
-};
-var expand_1$1 = expand$2;
-var constants$3 = {
-  MAX_LENGTH: 1e4,
-  // Digits
-  CHAR_0: "0",
-  /* 0 */
-  CHAR_9: "9",
-  /* 9 */
-  // Alphabet chars.
-  CHAR_UPPERCASE_A: "A",
-  /* A */
-  CHAR_LOWERCASE_A: "a",
-  /* a */
-  CHAR_UPPERCASE_Z: "Z",
-  /* Z */
-  CHAR_LOWERCASE_Z: "z",
-  /* z */
-  CHAR_LEFT_PARENTHESES: "(",
-  /* ( */
-  CHAR_RIGHT_PARENTHESES: ")",
-  /* ) */
-  CHAR_ASTERISK: "*",
-  /* * */
-  // Non-alphabetic chars.
-  CHAR_AMPERSAND: "&",
-  /* & */
-  CHAR_AT: "@",
-  /* @ */
-  CHAR_BACKSLASH: "\\",
-  /* \ */
-  CHAR_BACKTICK: "`",
-  /* ` */
-  CHAR_CARRIAGE_RETURN: "\r",
-  /* \r */
-  CHAR_CIRCUMFLEX_ACCENT: "^",
-  /* ^ */
-  CHAR_COLON: ":",
-  /* : */
-  CHAR_COMMA: ",",
-  /* , */
-  CHAR_DOLLAR: "$",
-  /* . */
-  CHAR_DOT: ".",
-  /* . */
-  CHAR_DOUBLE_QUOTE: '"',
-  /* " */
-  CHAR_EQUAL: "=",
-  /* = */
-  CHAR_EXCLAMATION_MARK: "!",
-  /* ! */
-  CHAR_FORM_FEED: "\f",
-  /* \f */
-  CHAR_FORWARD_SLASH: "/",
-  /* / */
-  CHAR_HASH: "#",
-  /* # */
-  CHAR_HYPHEN_MINUS: "-",
-  /* - */
-  CHAR_LEFT_ANGLE_BRACKET: "<",
-  /* < */
-  CHAR_LEFT_CURLY_BRACE: "{",
-  /* { */
-  CHAR_LEFT_SQUARE_BRACKET: "[",
-  /* [ */
-  CHAR_LINE_FEED: "\n",
-  /* \n */
-  CHAR_NO_BREAK_SPACE: " ",
-  /* \u00A0 */
-  CHAR_PERCENT: "%",
-  /* % */
-  CHAR_PLUS: "+",
-  /* + */
-  CHAR_QUESTION_MARK: "?",
-  /* ? */
-  CHAR_RIGHT_ANGLE_BRACKET: ">",
-  /* > */
-  CHAR_RIGHT_CURLY_BRACE: "}",
-  /* } */
-  CHAR_RIGHT_SQUARE_BRACKET: "]",
-  /* ] */
-  CHAR_SEMICOLON: ";",
-  /* ; */
-  CHAR_SINGLE_QUOTE: "'",
-  /* ' */
-  CHAR_SPACE: " ",
-  /*   */
-  CHAR_TAB: "	",
-  /* \t */
-  CHAR_UNDERSCORE: "_",
-  /* _ */
-  CHAR_VERTICAL_LINE: "|",
-  /* | */
-  CHAR_ZERO_WIDTH_NOBREAK_SPACE: "\uFEFF"
-  /* \uFEFF */
-};
-var stringify$4 = stringify$7;
-var {
-  MAX_LENGTH,
-  CHAR_BACKSLASH,
-  /* \ */
-  CHAR_BACKTICK,
-  /* ` */
-  CHAR_COMMA,
-  /* , */
-  CHAR_DOT,
-  /* . */
-  CHAR_LEFT_PARENTHESES,
-  /* ( */
-  CHAR_RIGHT_PARENTHESES,
-  /* ) */
-  CHAR_LEFT_CURLY_BRACE,
-  /* { */
-  CHAR_RIGHT_CURLY_BRACE,
-  /* } */
-  CHAR_LEFT_SQUARE_BRACKET,
-  /* [ */
-  CHAR_RIGHT_SQUARE_BRACKET,
-  /* ] */
-  CHAR_DOUBLE_QUOTE,
-  /* " */
-  CHAR_SINGLE_QUOTE,
-  /* ' */
-  CHAR_NO_BREAK_SPACE,
-  CHAR_ZERO_WIDTH_NOBREAK_SPACE
-} = constants$3;
-var parse$c = (input, options2 = {}) => {
-  if (typeof input !== "string") {
-    throw new TypeError("Expected a string");
-  }
-  const opts = options2 || {};
-  const max = typeof opts.maxLength === "number" ? Math.min(MAX_LENGTH, opts.maxLength) : MAX_LENGTH;
-  if (input.length > max) {
-    throw new SyntaxError(`Input length (${input.length}), exceeds max characters (${max})`);
-  }
-  const ast = { type: "root", input, nodes: [] };
-  const stack = [ast];
-  let block = ast;
-  let prev = ast;
-  let brackets = 0;
-  const length = input.length;
-  let index = 0;
-  let depth2 = 0;
-  let value2;
-  const advance = () => input[index++];
-  const push2 = (node2) => {
-    if (node2.type === "text" && prev.type === "dot") {
-      prev.type = "text";
-    }
-    if (prev && prev.type === "text" && node2.type === "text") {
-      prev.value += node2.value;
-      return;
-    }
-    block.nodes.push(node2);
-    node2.parent = block;
-    node2.prev = prev;
-    prev = node2;
-    return node2;
-  };
-  push2({ type: "bos" });
-  while (index < length) {
-    block = stack[stack.length - 1];
-    value2 = advance();
-    if (value2 === CHAR_ZERO_WIDTH_NOBREAK_SPACE || value2 === CHAR_NO_BREAK_SPACE) {
-      continue;
-    }
-    if (value2 === CHAR_BACKSLASH) {
-      push2({ type: "text", value: (options2.keepEscaping ? value2 : "") + advance() });
-      continue;
-    }
-    if (value2 === CHAR_RIGHT_SQUARE_BRACKET) {
-      push2({ type: "text", value: "\\" + value2 });
-      continue;
-    }
-    if (value2 === CHAR_LEFT_SQUARE_BRACKET) {
-      brackets++;
-      let next;
-      while (index < length && (next = advance())) {
-        value2 += next;
-        if (next === CHAR_LEFT_SQUARE_BRACKET) {
-          brackets++;
-          continue;
-        }
-        if (next === CHAR_BACKSLASH) {
-          value2 += advance();
-          continue;
-        }
-        if (next === CHAR_RIGHT_SQUARE_BRACKET) {
-          brackets--;
-          if (brackets === 0) {
-            break;
-          }
-        }
-      }
-      push2({ type: "text", value: value2 });
-      continue;
-    }
-    if (value2 === CHAR_LEFT_PARENTHESES) {
-      block = push2({ type: "paren", nodes: [] });
-      stack.push(block);
-      push2({ type: "text", value: value2 });
-      continue;
-    }
-    if (value2 === CHAR_RIGHT_PARENTHESES) {
-      if (block.type !== "paren") {
-        push2({ type: "text", value: value2 });
-        continue;
-      }
-      block = stack.pop();
-      push2({ type: "text", value: value2 });
-      block = stack[stack.length - 1];
-      continue;
-    }
-    if (value2 === CHAR_DOUBLE_QUOTE || value2 === CHAR_SINGLE_QUOTE || value2 === CHAR_BACKTICK) {
-      const open2 = value2;
-      let next;
-      if (options2.keepQuotes !== true) {
-        value2 = "";
-      }
-      while (index < length && (next = advance())) {
-        if (next === CHAR_BACKSLASH) {
-          value2 += next + advance();
-          continue;
-        }
-        if (next === open2) {
-          if (options2.keepQuotes === true) value2 += next;
-          break;
-        }
-        value2 += next;
-      }
-      push2({ type: "text", value: value2 });
-      continue;
-    }
-    if (value2 === CHAR_LEFT_CURLY_BRACE) {
-      depth2++;
-      const dollar = prev.value && prev.value.slice(-1) === "$" || block.dollar === true;
-      const brace = {
-        type: "brace",
-        open: true,
-        close: false,
-        dollar,
-        depth: depth2,
-        commas: 0,
-        ranges: 0,
-        nodes: []
-      };
-      block = push2(brace);
-      stack.push(block);
-      push2({ type: "open", value: value2 });
-      continue;
-    }
-    if (value2 === CHAR_RIGHT_CURLY_BRACE) {
-      if (block.type !== "brace") {
-        push2({ type: "text", value: value2 });
-        continue;
-      }
-      const type = "close";
-      block = stack.pop();
-      block.close = true;
-      push2({ type, value: value2 });
-      depth2--;
-      block = stack[stack.length - 1];
-      continue;
-    }
-    if (value2 === CHAR_COMMA && depth2 > 0) {
-      if (block.ranges > 0) {
-        block.ranges = 0;
-        const open2 = block.nodes.shift();
-        block.nodes = [open2, { type: "text", value: stringify$4(block) }];
-      }
-      push2({ type: "comma", value: value2 });
-      block.commas++;
-      continue;
-    }
-    if (value2 === CHAR_DOT && depth2 > 0 && block.commas === 0) {
-      const siblings = block.nodes;
-      if (depth2 === 0 || siblings.length === 0) {
-        push2({ type: "text", value: value2 });
-        continue;
-      }
-      if (prev.type === "dot") {
-        block.range = [];
-        prev.value += value2;
-        prev.type = "range";
-        if (block.nodes.length !== 3 && block.nodes.length !== 5) {
-          block.invalid = true;
-          block.ranges = 0;
-          prev.type = "text";
-          continue;
-        }
-        block.ranges++;
-        block.args = [];
-        continue;
-      }
-      if (prev.type === "range") {
-        siblings.pop();
-        const before = siblings[siblings.length - 1];
-        before.value += prev.value + value2;
-        prev = before;
-        block.ranges--;
-        continue;
-      }
-      push2({ type: "dot", value: value2 });
-      continue;
-    }
-    push2({ type: "text", value: value2 });
-  }
-  do {
-    block = stack.pop();
-    if (block.type !== "root") {
-      block.nodes.forEach((node2) => {
-        if (!node2.nodes) {
-          if (node2.type === "open") node2.isOpen = true;
-          if (node2.type === "close") node2.isClose = true;
-          if (!node2.nodes) node2.type = "text";
-          node2.invalid = true;
-        }
-      });
-      const parent = stack[stack.length - 1];
-      const index2 = parent.nodes.indexOf(block);
-      parent.nodes.splice(index2, 1, ...block.nodes);
-    }
-  } while (stack.length > 0);
-  push2({ type: "eos" });
-  return ast;
-};
-var parse_1$2 = parse$c;
-var stringify$3 = stringify$7;
-var compile = compile_1;
-var expand$1 = expand_1$1;
-var parse$b = parse_1$2;
-var braces$2 = (input, options2 = {}) => {
-  let output = [];
-  if (Array.isArray(input)) {
-    for (const pattern2 of input) {
-      const result = braces$2.create(pattern2, options2);
-      if (Array.isArray(result)) {
-        output.push(...result);
-      } else {
-        output.push(result);
-      }
-    }
-  } else {
-    output = [].concat(braces$2.create(input, options2));
-  }
-  if (options2 && options2.expand === true && options2.nodupes === true) {
-    output = [...new Set(output)];
-  }
-  return output;
-};
-braces$2.parse = (input, options2 = {}) => parse$b(input, options2);
-braces$2.stringify = (input, options2 = {}) => {
-  if (typeof input === "string") {
-    return stringify$3(braces$2.parse(input, options2), options2);
-  }
-  return stringify$3(input, options2);
-};
-braces$2.compile = (input, options2 = {}) => {
-  if (typeof input === "string") {
-    input = braces$2.parse(input, options2);
-  }
-  return compile(input, options2);
-};
-braces$2.expand = (input, options2 = {}) => {
-  if (typeof input === "string") {
-    input = braces$2.parse(input, options2);
-  }
-  let result = expand$1(input, options2);
-  if (options2.noempty === true) {
-    result = result.filter(Boolean);
-  }
-  if (options2.nodupes === true) {
-    result = [...new Set(result)];
-  }
-  return result;
-};
-braces$2.create = (input, options2 = {}) => {
-  if (input === "" || input.length < 3) {
-    return [input];
-  }
-  return options2.expand !== true ? braces$2.compile(input, options2) : braces$2.expand(input, options2);
-};
-var braces_1 = braces$2;
-var util = import_util.default;
-var braces$1 = braces_1;
-var picomatch$2 = picomatch$3;
-var utils$b = utils$k;
-var isEmptyString = (val) => val === "" || val === "./";
-var micromatch$1 = (list, patterns, options2) => {
-  patterns = [].concat(patterns);
-  list = [].concat(list);
-  let omit = /* @__PURE__ */ new Set();
-  let keep = /* @__PURE__ */ new Set();
-  let items = /* @__PURE__ */ new Set();
-  let negatives = 0;
-  let onResult = (state) => {
-    items.add(state.output);
-    if (options2 && options2.onResult) {
-      options2.onResult(state);
-    }
-  };
-  for (let i = 0; i < patterns.length; i++) {
-    let isMatch2 = picomatch$2(String(patterns[i]), { ...options2, onResult }, true);
-    let negated = isMatch2.state.negated || isMatch2.state.negatedExtglob;
-    if (negated) negatives++;
-    for (let item of list) {
-      let matched = isMatch2(item, true);
-      let match2 = negated ? !matched.isMatch : matched.isMatch;
-      if (!match2) continue;
-      if (negated) {
-        omit.add(matched.output);
-      } else {
-        omit.delete(matched.output);
-        keep.add(matched.output);
-      }
-    }
-  }
-  let result = negatives === patterns.length ? [...items] : [...keep];
-  let matches2 = result.filter((item) => !omit.has(item));
-  if (options2 && matches2.length === 0) {
-    if (options2.failglob === true) {
-      throw new Error(`No matches found for "${patterns.join(", ")}"`);
-    }
-    if (options2.nonull === true || options2.nullglob === true) {
-      return options2.unescape ? patterns.map((p) => p.replace(/\\/g, "")) : patterns;
-    }
-  }
-  return matches2;
-};
-micromatch$1.match = micromatch$1;
-micromatch$1.matcher = (pattern2, options2) => picomatch$2(pattern2, options2);
-micromatch$1.isMatch = (str, patterns, options2) => picomatch$2(patterns, options2)(str);
-micromatch$1.any = micromatch$1.isMatch;
-micromatch$1.not = (list, patterns, options2 = {}) => {
-  patterns = [].concat(patterns).map(String);
-  let result = /* @__PURE__ */ new Set();
-  let items = [];
-  let onResult = (state) => {
-    if (options2.onResult) options2.onResult(state);
-    items.push(state.output);
-  };
-  let matches2 = new Set(micromatch$1(list, patterns, { ...options2, onResult }));
-  for (let item of items) {
-    if (!matches2.has(item)) {
-      result.add(item);
-    }
-  }
-  return [...result];
-};
-micromatch$1.contains = (str, pattern2, options2) => {
-  if (typeof str !== "string") {
-    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
-  }
-  if (Array.isArray(pattern2)) {
-    return pattern2.some((p) => micromatch$1.contains(str, p, options2));
-  }
-  if (typeof pattern2 === "string") {
-    if (isEmptyString(str) || isEmptyString(pattern2)) {
-      return false;
-    }
-    if (str.includes(pattern2) || str.startsWith("./") && str.slice(2).includes(pattern2)) {
-      return true;
-    }
-  }
-  return micromatch$1.isMatch(str, pattern2, { ...options2, contains: true });
-};
-micromatch$1.matchKeys = (obj, patterns, options2) => {
-  if (!utils$b.isObject(obj)) {
-    throw new TypeError("Expected the first argument to be an object");
-  }
-  let keys = micromatch$1(Object.keys(obj), patterns, options2);
-  let res = {};
-  for (let key of keys) res[key] = obj[key];
-  return res;
-};
-micromatch$1.some = (list, patterns, options2) => {
-  let items = [].concat(list);
-  for (let pattern2 of [].concat(patterns)) {
-    let isMatch2 = picomatch$2(String(pattern2), options2);
-    if (items.some((item) => isMatch2(item))) {
-      return true;
-    }
-  }
-  return false;
-};
-micromatch$1.every = (list, patterns, options2) => {
-  let items = [].concat(list);
-  for (let pattern2 of [].concat(patterns)) {
-    let isMatch2 = picomatch$2(String(pattern2), options2);
-    if (!items.every((item) => isMatch2(item))) {
-      return false;
-    }
-  }
-  return true;
-};
-micromatch$1.all = (str, patterns, options2) => {
-  if (typeof str !== "string") {
-    throw new TypeError(`Expected a string: "${util.inspect(str)}"`);
-  }
-  return [].concat(patterns).every((p) => picomatch$2(p, options2)(str));
-};
-micromatch$1.capture = (glob2, input, options2) => {
-  let posix2 = utils$b.isWindows(options2);
-  let regex2 = picomatch$2.makeRe(String(glob2), { ...options2, capture: true });
-  let match2 = regex2.exec(posix2 ? utils$b.toPosixSlashes(input) : input);
-  if (match2) {
-    return match2.slice(1).map((v) => v === void 0 ? "" : v);
-  }
-};
-micromatch$1.makeRe = (...args) => picomatch$2.makeRe(...args);
-micromatch$1.scan = (...args) => picomatch$2.scan(...args);
-micromatch$1.parse = (patterns, options2) => {
-  let res = [];
-  for (let pattern2 of [].concat(patterns || [])) {
-    for (let str of braces$1(String(pattern2), options2)) {
-      res.push(picomatch$2.parse(str, options2));
-    }
-  }
-  return res;
-};
-micromatch$1.braces = (pattern2, options2) => {
-  if (typeof pattern2 !== "string") throw new TypeError("Expected a string");
-  if (options2 && options2.nobrace === true || !/\{.*\}/.test(pattern2)) {
-    return [pattern2];
-  }
-  return braces$1(pattern2, options2);
-};
-micromatch$1.braceExpand = (pattern2, options2) => {
-  if (typeof pattern2 !== "string") throw new TypeError("Expected a string");
-  return micromatch$1.braces(pattern2, { ...options2, expand: true });
-};
-var micromatch_1 = micromatch$1;
-var micromatch$2 = getDefaultExportFromCjs(micromatch_1);
-Object.defineProperty(pattern$1, "__esModule", { value: true });
-pattern$1.removeDuplicateSlashes = pattern$1.matchAny = pattern$1.convertPatternsToRe = pattern$1.makeRe = pattern$1.getPatternParts = pattern$1.expandBraceExpansion = pattern$1.expandPatternsWithBraceExpansion = pattern$1.isAffectDepthOfReadingPattern = pattern$1.endsWithSlashGlobStar = pattern$1.hasGlobStar = pattern$1.getBaseDirectory = pattern$1.isPatternRelatedToParentDirectory = pattern$1.getPatternsOutsideCurrentDirectory = pattern$1.getPatternsInsideCurrentDirectory = pattern$1.getPositivePatterns = pattern$1.getNegativePatterns = pattern$1.isPositivePattern = pattern$1.isNegativePattern = pattern$1.convertToNegativePattern = pattern$1.convertToPositivePattern = pattern$1.isDynamicPattern = pattern$1.isStaticPattern = void 0;
-var path$g = import_path.default;
-var globParent$1 = globParent$2;
-var micromatch = micromatch_1;
-var GLOBSTAR$1 = "**";
-var ESCAPE_SYMBOL = "\\";
-var COMMON_GLOB_SYMBOLS_RE = /[*?]|^!/;
-var REGEX_CHARACTER_CLASS_SYMBOLS_RE = /\[[^[]*]/;
-var REGEX_GROUP_SYMBOLS_RE = /(?:^|[^!*+?@])\([^(]*\|[^|]*\)/;
-var GLOB_EXTENSION_SYMBOLS_RE = /[!*+?@]\([^(]*\)/;
-var BRACE_EXPANSION_SEPARATORS_RE = /,|\.\./;
-var DOUBLE_SLASH_RE$1 = /(?!^)\/{2,}/g;
-function isStaticPattern(pattern2, options2 = {}) {
-  return !isDynamicPattern(pattern2, options2);
-}
-pattern$1.isStaticPattern = isStaticPattern;
-function isDynamicPattern(pattern2, options2 = {}) {
-  if (pattern2 === "") {
-    return false;
-  }
-  if (options2.caseSensitiveMatch === false || pattern2.includes(ESCAPE_SYMBOL)) {
-    return true;
-  }
-  if (COMMON_GLOB_SYMBOLS_RE.test(pattern2) || REGEX_CHARACTER_CLASS_SYMBOLS_RE.test(pattern2) || REGEX_GROUP_SYMBOLS_RE.test(pattern2)) {
-    return true;
-  }
-  if (options2.extglob !== false && GLOB_EXTENSION_SYMBOLS_RE.test(pattern2)) {
-    return true;
-  }
-  if (options2.braceExpansion !== false && hasBraceExpansion(pattern2)) {
-    return true;
-  }
-  return false;
-}
-pattern$1.isDynamicPattern = isDynamicPattern;
-function hasBraceExpansion(pattern2) {
-  const openingBraceIndex = pattern2.indexOf("{");
-  if (openingBraceIndex === -1) {
-    return false;
-  }
-  const closingBraceIndex = pattern2.indexOf("}", openingBraceIndex + 1);
-  if (closingBraceIndex === -1) {
-    return false;
-  }
-  const braceContent = pattern2.slice(openingBraceIndex, closingBraceIndex);
-  return BRACE_EXPANSION_SEPARATORS_RE.test(braceContent);
-}
-function convertToPositivePattern(pattern2) {
-  return isNegativePattern(pattern2) ? pattern2.slice(1) : pattern2;
-}
-pattern$1.convertToPositivePattern = convertToPositivePattern;
-function convertToNegativePattern(pattern2) {
-  return "!" + pattern2;
-}
-pattern$1.convertToNegativePattern = convertToNegativePattern;
-function isNegativePattern(pattern2) {
-  return pattern2.startsWith("!") && pattern2[1] !== "(";
-}
-pattern$1.isNegativePattern = isNegativePattern;
-function isPositivePattern(pattern2) {
-  return !isNegativePattern(pattern2);
-}
-pattern$1.isPositivePattern = isPositivePattern;
-function getNegativePatterns(patterns) {
-  return patterns.filter(isNegativePattern);
-}
-pattern$1.getNegativePatterns = getNegativePatterns;
-function getPositivePatterns$1(patterns) {
-  return patterns.filter(isPositivePattern);
-}
-pattern$1.getPositivePatterns = getPositivePatterns$1;
-function getPatternsInsideCurrentDirectory(patterns) {
-  return patterns.filter((pattern2) => !isPatternRelatedToParentDirectory(pattern2));
-}
-pattern$1.getPatternsInsideCurrentDirectory = getPatternsInsideCurrentDirectory;
-function getPatternsOutsideCurrentDirectory(patterns) {
-  return patterns.filter(isPatternRelatedToParentDirectory);
-}
-pattern$1.getPatternsOutsideCurrentDirectory = getPatternsOutsideCurrentDirectory;
-function isPatternRelatedToParentDirectory(pattern2) {
-  return pattern2.startsWith("..") || pattern2.startsWith("./..");
-}
-pattern$1.isPatternRelatedToParentDirectory = isPatternRelatedToParentDirectory;
-function getBaseDirectory(pattern2) {
-  return globParent$1(pattern2, { flipBackslashes: false });
-}
-pattern$1.getBaseDirectory = getBaseDirectory;
-function hasGlobStar(pattern2) {
-  return pattern2.includes(GLOBSTAR$1);
-}
-pattern$1.hasGlobStar = hasGlobStar;
-function endsWithSlashGlobStar(pattern2) {
-  return pattern2.endsWith("/" + GLOBSTAR$1);
-}
-pattern$1.endsWithSlashGlobStar = endsWithSlashGlobStar;
-function isAffectDepthOfReadingPattern(pattern2) {
-  const basename2 = path$g.basename(pattern2);
-  return endsWithSlashGlobStar(pattern2) || isStaticPattern(basename2);
-}
-pattern$1.isAffectDepthOfReadingPattern = isAffectDepthOfReadingPattern;
-function expandPatternsWithBraceExpansion(patterns) {
-  return patterns.reduce((collection, pattern2) => {
-    return collection.concat(expandBraceExpansion(pattern2));
-  }, []);
-}
-pattern$1.expandPatternsWithBraceExpansion = expandPatternsWithBraceExpansion;
-function expandBraceExpansion(pattern2) {
-  const patterns = micromatch.braces(pattern2, { expand: true, nodupes: true, keepEscaping: true });
-  patterns.sort((a, b) => a.length - b.length);
-  return patterns.filter((pattern3) => pattern3 !== "");
-}
-pattern$1.expandBraceExpansion = expandBraceExpansion;
-function getPatternParts(pattern2, options2) {
-  let { parts } = micromatch.scan(pattern2, Object.assign(Object.assign({}, options2), { parts: true }));
-  if (parts.length === 0) {
-    parts = [pattern2];
-  }
-  if (parts[0].startsWith("/")) {
-    parts[0] = parts[0].slice(1);
-    parts.unshift("");
-  }
-  return parts;
-}
-pattern$1.getPatternParts = getPatternParts;
-function makeRe(pattern2, options2) {
-  return micromatch.makeRe(pattern2, options2);
-}
-pattern$1.makeRe = makeRe;
-function convertPatternsToRe(patterns, options2) {
-  return patterns.map((pattern2) => makeRe(pattern2, options2));
-}
-pattern$1.convertPatternsToRe = convertPatternsToRe;
-function matchAny(entry2, patternsRe) {
-  return patternsRe.some((patternRe) => patternRe.test(entry2));
-}
-pattern$1.matchAny = matchAny;
-function removeDuplicateSlashes(pattern2) {
-  return pattern2.replace(DOUBLE_SLASH_RE$1, "/");
-}
-pattern$1.removeDuplicateSlashes = removeDuplicateSlashes;
-var stream$4 = {};
-var Stream = import_stream.default;
-var PassThrough = Stream.PassThrough;
-var slice = Array.prototype.slice;
-var merge2_1 = merge2$1;
-function merge2$1() {
-  const streamsQueue = [];
-  const args = slice.call(arguments);
-  let merging = false;
-  let options2 = args[args.length - 1];
-  if (options2 && !Array.isArray(options2) && options2.pipe == null) {
-    args.pop();
-  } else {
-    options2 = {};
-  }
-  const doEnd = options2.end !== false;
-  const doPipeError = options2.pipeError === true;
-  if (options2.objectMode == null) {
-    options2.objectMode = true;
-  }
-  if (options2.highWaterMark == null) {
-    options2.highWaterMark = 64 * 1024;
-  }
-  const mergedStream = PassThrough(options2);
-  function addStream() {
-    for (let i = 0, len = arguments.length; i < len; i++) {
-      streamsQueue.push(pauseStreams(arguments[i], options2));
-    }
-    mergeStream();
-    return this;
-  }
-  function mergeStream() {
-    if (merging) {
-      return;
-    }
-    merging = true;
-    let streams = streamsQueue.shift();
-    if (!streams) {
-      process.nextTick(endStream);
-      return;
-    }
-    if (!Array.isArray(streams)) {
-      streams = [streams];
-    }
-    let pipesCount = streams.length + 1;
-    function next() {
-      if (--pipesCount > 0) {
-        return;
-      }
-      merging = false;
-      mergeStream();
-    }
-    function pipe(stream4) {
-      function onend() {
-        stream4.removeListener("merge2UnpipeEnd", onend);
-        stream4.removeListener("end", onend);
-        if (doPipeError) {
-          stream4.removeListener("error", onerror);
-        }
-        next();
-      }
-      function onerror(err2) {
-        mergedStream.emit("error", err2);
-      }
-      if (stream4._readableState.endEmitted) {
-        return next();
-      }
-      stream4.on("merge2UnpipeEnd", onend);
-      stream4.on("end", onend);
-      if (doPipeError) {
-        stream4.on("error", onerror);
-      }
-      stream4.pipe(mergedStream, { end: false });
-      stream4.resume();
-    }
-    for (let i = 0; i < streams.length; i++) {
-      pipe(streams[i]);
-    }
-    next();
-  }
-  function endStream() {
-    merging = false;
-    mergedStream.emit("queueDrain");
-    if (doEnd) {
-      mergedStream.end();
-    }
-  }
-  mergedStream.setMaxListeners(0);
-  mergedStream.add = addStream;
-  mergedStream.on("unpipe", function(stream4) {
-    stream4.emit("merge2UnpipeEnd");
-  });
-  if (args.length) {
-    addStream.apply(null, args);
-  }
-  return mergedStream;
-}
-function pauseStreams(streams, options2) {
-  if (!Array.isArray(streams)) {
-    if (!streams._readableState && streams.pipe) {
-      streams = streams.pipe(PassThrough(options2));
-    }
-    if (!streams._readableState || !streams.pause || !streams.pipe) {
-      throw new Error("Only readable stream can be merged.");
-    }
-    streams.pause();
-  } else {
-    for (let i = 0, len = streams.length; i < len; i++) {
-      streams[i] = pauseStreams(streams[i], options2);
-    }
-  }
-  return streams;
-}
-Object.defineProperty(stream$4, "__esModule", { value: true });
-stream$4.merge = void 0;
-var merge2 = merge2_1;
-function merge$1(streams) {
-  const mergedStream = merge2(streams);
-  streams.forEach((stream4) => {
-    stream4.once("error", (error2) => mergedStream.emit("error", error2));
-  });
-  mergedStream.once("close", () => propagateCloseEventToSources(streams));
-  mergedStream.once("end", () => propagateCloseEventToSources(streams));
-  return mergedStream;
-}
-stream$4.merge = merge$1;
-function propagateCloseEventToSources(streams) {
-  streams.forEach((stream4) => stream4.emit("close"));
-}
-var string$2 = {};
-Object.defineProperty(string$2, "__esModule", { value: true });
-string$2.isEmpty = string$2.isString = void 0;
-function isString$1(input) {
-  return typeof input === "string";
-}
-string$2.isString = isString$1;
-function isEmpty$1(input) {
-  return input === "";
-}
-string$2.isEmpty = isEmpty$1;
-Object.defineProperty(utils$g, "__esModule", { value: true });
-utils$g.string = utils$g.stream = utils$g.pattern = utils$g.path = utils$g.fs = utils$g.errno = utils$g.array = void 0;
-var array = array$1;
-utils$g.array = array;
-var errno = errno$1;
-utils$g.errno = errno;
-var fs$h = fs$i;
-utils$g.fs = fs$h;
-var path$f = path$i;
-utils$g.path = path$f;
-var pattern = pattern$1;
-utils$g.pattern = pattern;
-var stream$3 = stream$4;
-utils$g.stream = stream$3;
-var string$1 = string$2;
-utils$g.string = string$1;
-Object.defineProperty(tasks, "__esModule", { value: true });
-tasks.convertPatternGroupToTask = tasks.convertPatternGroupsToTasks = tasks.groupPatternsByBaseDirectory = tasks.getNegativePatternsAsPositive = tasks.getPositivePatterns = tasks.convertPatternsToTasks = tasks.generate = void 0;
-var utils$a = utils$g;
-function generate(input, settings2) {
-  const patterns = processPatterns(input, settings2);
-  const ignore = processPatterns(settings2.ignore, settings2);
-  const positivePatterns = getPositivePatterns(patterns);
-  const negativePatterns = getNegativePatternsAsPositive(patterns, ignore);
-  const staticPatterns = positivePatterns.filter((pattern2) => utils$a.pattern.isStaticPattern(pattern2, settings2));
-  const dynamicPatterns = positivePatterns.filter((pattern2) => utils$a.pattern.isDynamicPattern(pattern2, settings2));
-  const staticTasks = convertPatternsToTasks(
-    staticPatterns,
-    negativePatterns,
-    /* dynamic */
-    false
-  );
-  const dynamicTasks = convertPatternsToTasks(
-    dynamicPatterns,
-    negativePatterns,
-    /* dynamic */
-    true
-  );
-  return staticTasks.concat(dynamicTasks);
-}
-tasks.generate = generate;
-function processPatterns(input, settings2) {
-  let patterns = input;
-  if (settings2.braceExpansion) {
-    patterns = utils$a.pattern.expandPatternsWithBraceExpansion(patterns);
-  }
-  if (settings2.baseNameMatch) {
-    patterns = patterns.map((pattern2) => pattern2.includes("/") ? pattern2 : `**/${pattern2}`);
-  }
-  return patterns.map((pattern2) => utils$a.pattern.removeDuplicateSlashes(pattern2));
-}
-function convertPatternsToTasks(positive, negative, dynamic) {
-  const tasks2 = [];
-  const patternsOutsideCurrentDirectory = utils$a.pattern.getPatternsOutsideCurrentDirectory(positive);
-  const patternsInsideCurrentDirectory = utils$a.pattern.getPatternsInsideCurrentDirectory(positive);
-  const outsideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsOutsideCurrentDirectory);
-  const insideCurrentDirectoryGroup = groupPatternsByBaseDirectory(patternsInsideCurrentDirectory);
-  tasks2.push(...convertPatternGroupsToTasks(outsideCurrentDirectoryGroup, negative, dynamic));
-  if ("." in insideCurrentDirectoryGroup) {
-    tasks2.push(convertPatternGroupToTask(".", patternsInsideCurrentDirectory, negative, dynamic));
-  } else {
-    tasks2.push(...convertPatternGroupsToTasks(insideCurrentDirectoryGroup, negative, dynamic));
-  }
-  return tasks2;
-}
-tasks.convertPatternsToTasks = convertPatternsToTasks;
-function getPositivePatterns(patterns) {
-  return utils$a.pattern.getPositivePatterns(patterns);
-}
-tasks.getPositivePatterns = getPositivePatterns;
-function getNegativePatternsAsPositive(patterns, ignore) {
-  const negative = utils$a.pattern.getNegativePatterns(patterns).concat(ignore);
-  const positive = negative.map(utils$a.pattern.convertToPositivePattern);
-  return positive;
-}
-tasks.getNegativePatternsAsPositive = getNegativePatternsAsPositive;
-function groupPatternsByBaseDirectory(patterns) {
-  const group = {};
-  return patterns.reduce((collection, pattern2) => {
-    const base = utils$a.pattern.getBaseDirectory(pattern2);
-    if (base in collection) {
-      collection[base].push(pattern2);
-    } else {
-      collection[base] = [pattern2];
-    }
-    return collection;
-  }, group);
-}
-tasks.groupPatternsByBaseDirectory = groupPatternsByBaseDirectory;
-function convertPatternGroupsToTasks(positive, negative, dynamic) {
-  return Object.keys(positive).map((base) => {
-    return convertPatternGroupToTask(base, positive[base], negative, dynamic);
-  });
-}
-tasks.convertPatternGroupsToTasks = convertPatternGroupsToTasks;
-function convertPatternGroupToTask(base, positive, negative, dynamic) {
-  return {
-    dynamic,
-    positive,
-    negative,
-    base,
-    patterns: [].concat(positive, negative.map(utils$a.pattern.convertToNegativePattern))
-  };
-}
-tasks.convertPatternGroupToTask = convertPatternGroupToTask;
-var async$7 = {};
-var async$6 = {};
-var out$3 = {};
-var async$5 = {};
-var async$4 = {};
-var out$2 = {};
-var async$3 = {};
-var out$1 = {};
-var async$2 = {};
-Object.defineProperty(async$2, "__esModule", { value: true });
-async$2.read = void 0;
-function read$3(path3, settings2, callback) {
-  settings2.fs.lstat(path3, (lstatError, lstat2) => {
-    if (lstatError !== null) {
-      callFailureCallback$2(callback, lstatError);
-      return;
-    }
-    if (!lstat2.isSymbolicLink() || !settings2.followSymbolicLink) {
-      callSuccessCallback$2(callback, lstat2);
-      return;
-    }
-    settings2.fs.stat(path3, (statError, stat2) => {
-      if (statError !== null) {
-        if (settings2.throwErrorOnBrokenSymbolicLink) {
-          callFailureCallback$2(callback, statError);
-          return;
-        }
-        callSuccessCallback$2(callback, lstat2);
-        return;
-      }
-      if (settings2.markSymbolicLink) {
-        stat2.isSymbolicLink = () => true;
-      }
-      callSuccessCallback$2(callback, stat2);
-    });
-  });
-}
-async$2.read = read$3;
-function callFailureCallback$2(callback, error2) {
-  callback(error2);
-}
-function callSuccessCallback$2(callback, result) {
-  callback(null, result);
-}
-var sync$8 = {};
-Object.defineProperty(sync$8, "__esModule", { value: true });
-sync$8.read = void 0;
-function read$2(path3, settings2) {
-  const lstat2 = settings2.fs.lstatSync(path3);
-  if (!lstat2.isSymbolicLink() || !settings2.followSymbolicLink) {
-    return lstat2;
-  }
-  try {
-    const stat2 = settings2.fs.statSync(path3);
-    if (settings2.markSymbolicLink) {
-      stat2.isSymbolicLink = () => true;
-    }
-    return stat2;
-  } catch (error2) {
-    if (!settings2.throwErrorOnBrokenSymbolicLink) {
-      return lstat2;
-    }
-    throw error2;
-  }
-}
-sync$8.read = read$2;
-var settings$3 = {};
-var fs$g = {};
-(function(exports2) {
-  Object.defineProperty(exports2, "__esModule", { value: true });
-  exports2.createFileSystemAdapter = exports2.FILE_SYSTEM_ADAPTER = void 0;
-  const fs2 = import_fs.default;
-  exports2.FILE_SYSTEM_ADAPTER = {
-    lstat: fs2.lstat,
-    stat: fs2.stat,
-    lstatSync: fs2.lstatSync,
-    statSync: fs2.statSync
-  };
-  function createFileSystemAdapter(fsMethods) {
-    if (fsMethods === void 0) {
-      return exports2.FILE_SYSTEM_ADAPTER;
-    }
-    return Object.assign(Object.assign({}, exports2.FILE_SYSTEM_ADAPTER), fsMethods);
-  }
-  exports2.createFileSystemAdapter = createFileSystemAdapter;
-})(fs$g);
-Object.defineProperty(settings$3, "__esModule", { value: true });
-var fs$f = fs$g;
-var Settings$2 = class Settings {
-  constructor(_options2 = {}) {
-    this._options = _options2;
-    this.followSymbolicLink = this._getValue(this._options.followSymbolicLink, true);
-    this.fs = fs$f.createFileSystemAdapter(this._options.fs);
-    this.markSymbolicLink = this._getValue(this._options.markSymbolicLink, false);
-    this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
-  }
-  _getValue(option, value2) {
-    return option !== null && option !== void 0 ? option : value2;
-  }
-};
-settings$3.default = Settings$2;
-Object.defineProperty(out$1, "__esModule", { value: true });
-out$1.statSync = out$1.stat = out$1.Settings = void 0;
-var async$1 = async$2;
-var sync$7 = sync$8;
-var settings_1$3 = settings$3;
-out$1.Settings = settings_1$3.default;
-function stat$4(path3, optionsOrSettingsOrCallback, callback) {
-  if (typeof optionsOrSettingsOrCallback === "function") {
-    async$1.read(path3, getSettings$2(), optionsOrSettingsOrCallback);
-    return;
-  }
-  async$1.read(path3, getSettings$2(optionsOrSettingsOrCallback), callback);
-}
-out$1.stat = stat$4;
-function statSync2(path3, optionsOrSettings) {
-  const settings2 = getSettings$2(optionsOrSettings);
-  return sync$7.read(path3, settings2);
-}
-out$1.statSync = statSync2;
-function getSettings$2(settingsOrOptions = {}) {
-  if (settingsOrOptions instanceof settings_1$3.default) {
-    return settingsOrOptions;
-  }
-  return new settings_1$3.default(settingsOrOptions);
-}
-var promise;
-var queueMicrotask_1 = typeof queueMicrotask === "function" ? queueMicrotask.bind(typeof window !== "undefined" ? window : commonjsGlobal) : (cb) => (promise || (promise = Promise.resolve())).then(cb).catch((err2) => setTimeout(() => {
-  throw err2;
-}, 0));
-var runParallel_1 = runParallel;
-var queueMicrotask$1 = queueMicrotask_1;
-function runParallel(tasks2, cb) {
-  let results, pending, keys;
-  let isSync = true;
-  if (Array.isArray(tasks2)) {
-    results = [];
-    pending = tasks2.length;
-  } else {
-    keys = Object.keys(tasks2);
-    results = {};
-    pending = keys.length;
-  }
-  function done(err2) {
-    function end() {
-      if (cb) cb(err2, results);
-      cb = null;
-    }
-    if (isSync) queueMicrotask$1(end);
-    else end();
-  }
-  function each(i, err2, result) {
-    results[i] = result;
-    if (--pending === 0 || err2) {
-      done(err2);
-    }
-  }
-  if (!pending) {
-    done(null);
-  } else if (keys) {
-    keys.forEach(function(key) {
-      tasks2[key](function(err2, result) {
-        each(key, err2, result);
-      });
-    });
-  } else {
-    tasks2.forEach(function(task, i) {
-      task(function(err2, result) {
-        each(i, err2, result);
-      });
-    });
-  }
-  isSync = false;
-}
-var constants$2 = {};
-Object.defineProperty(constants$2, "__esModule", { value: true });
-constants$2.IS_SUPPORT_READDIR_WITH_FILE_TYPES = void 0;
-var NODE_PROCESS_VERSION_PARTS = process.versions.node.split(".");
-if (NODE_PROCESS_VERSION_PARTS[0] === void 0 || NODE_PROCESS_VERSION_PARTS[1] === void 0) {
-  throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);
-}
-var MAJOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[0], 10);
-var MINOR_VERSION = Number.parseInt(NODE_PROCESS_VERSION_PARTS[1], 10);
-var SUPPORTED_MAJOR_VERSION = 10;
-var SUPPORTED_MINOR_VERSION = 10;
-var IS_MATCHED_BY_MAJOR = MAJOR_VERSION > SUPPORTED_MAJOR_VERSION;
-var IS_MATCHED_BY_MAJOR_AND_MINOR = MAJOR_VERSION === SUPPORTED_MAJOR_VERSION && MINOR_VERSION >= SUPPORTED_MINOR_VERSION;
-constants$2.IS_SUPPORT_READDIR_WITH_FILE_TYPES = IS_MATCHED_BY_MAJOR || IS_MATCHED_BY_MAJOR_AND_MINOR;
-var utils$9 = {};
-var fs$e = {};
-Object.defineProperty(fs$e, "__esModule", { value: true });
-fs$e.createDirentFromStats = void 0;
-var DirentFromStats2 = class {
-  constructor(name2, stats) {
-    this.name = name2;
-    this.isBlockDevice = stats.isBlockDevice.bind(stats);
-    this.isCharacterDevice = stats.isCharacterDevice.bind(stats);
-    this.isDirectory = stats.isDirectory.bind(stats);
-    this.isFIFO = stats.isFIFO.bind(stats);
-    this.isFile = stats.isFile.bind(stats);
-    this.isSocket = stats.isSocket.bind(stats);
-    this.isSymbolicLink = stats.isSymbolicLink.bind(stats);
-  }
-};
-function createDirentFromStats(name2, stats) {
-  return new DirentFromStats2(name2, stats);
-}
-fs$e.createDirentFromStats = createDirentFromStats;
-Object.defineProperty(utils$9, "__esModule", { value: true });
-utils$9.fs = void 0;
-var fs$d = fs$e;
-utils$9.fs = fs$d;
-var common$a = {};
-Object.defineProperty(common$a, "__esModule", { value: true });
-common$a.joinPathSegments = void 0;
-function joinPathSegments$1(a, b, separator) {
-  if (a.endsWith(separator)) {
-    return a + b;
-  }
-  return a + separator + b;
-}
-common$a.joinPathSegments = joinPathSegments$1;
-Object.defineProperty(async$3, "__esModule", { value: true });
-async$3.readdir = async$3.readdirWithFileTypes = async$3.read = void 0;
-var fsStat$5 = out$1;
-var rpl = runParallel_1;
-var constants_1$1 = constants$2;
-var utils$8 = utils$9;
-var common$9 = common$a;
-function read$1(directory, settings2, callback) {
-  if (!settings2.stats && constants_1$1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
-    readdirWithFileTypes$1(directory, settings2, callback);
-    return;
-  }
-  readdir$3(directory, settings2, callback);
-}
-async$3.read = read$1;
-function readdirWithFileTypes$1(directory, settings2, callback) {
-  settings2.fs.readdir(directory, { withFileTypes: true }, (readdirError, dirents) => {
-    if (readdirError !== null) {
-      callFailureCallback$1(callback, readdirError);
-      return;
-    }
-    const entries = dirents.map((dirent) => ({
-      dirent,
-      name: dirent.name,
-      path: common$9.joinPathSegments(directory, dirent.name, settings2.pathSegmentSeparator)
-    }));
-    if (!settings2.followSymbolicLinks) {
-      callSuccessCallback$1(callback, entries);
-      return;
-    }
-    const tasks2 = entries.map((entry2) => makeRplTaskEntry(entry2, settings2));
-    rpl(tasks2, (rplError, rplEntries) => {
-      if (rplError !== null) {
-        callFailureCallback$1(callback, rplError);
-        return;
-      }
-      callSuccessCallback$1(callback, rplEntries);
-    });
-  });
-}
-async$3.readdirWithFileTypes = readdirWithFileTypes$1;
-function makeRplTaskEntry(entry2, settings2) {
-  return (done) => {
-    if (!entry2.dirent.isSymbolicLink()) {
-      done(null, entry2);
-      return;
-    }
-    settings2.fs.stat(entry2.path, (statError, stats) => {
-      if (statError !== null) {
-        if (settings2.throwErrorOnBrokenSymbolicLink) {
-          done(statError);
-          return;
-        }
-        done(null, entry2);
-        return;
-      }
-      entry2.dirent = utils$8.fs.createDirentFromStats(entry2.name, stats);
-      done(null, entry2);
-    });
-  };
-}
-function readdir$3(directory, settings2, callback) {
-  settings2.fs.readdir(directory, (readdirError, names) => {
-    if (readdirError !== null) {
-      callFailureCallback$1(callback, readdirError);
-      return;
-    }
-    const tasks2 = names.map((name2) => {
-      const path3 = common$9.joinPathSegments(directory, name2, settings2.pathSegmentSeparator);
-      return (done) => {
-        fsStat$5.stat(path3, settings2.fsStatSettings, (error2, stats) => {
-          if (error2 !== null) {
-            done(error2);
-            return;
-          }
-          const entry2 = {
-            name: name2,
-            path: path3,
-            dirent: utils$8.fs.createDirentFromStats(name2, stats)
-          };
-          if (settings2.stats) {
-            entry2.stats = stats;
-          }
-          done(null, entry2);
-        });
-      };
-    });
-    rpl(tasks2, (rplError, entries) => {
-      if (rplError !== null) {
-        callFailureCallback$1(callback, rplError);
-        return;
-      }
-      callSuccessCallback$1(callback, entries);
-    });
-  });
-}
-async$3.readdir = readdir$3;
-function callFailureCallback$1(callback, error2) {
-  callback(error2);
-}
-function callSuccessCallback$1(callback, result) {
-  callback(null, result);
-}
-var sync$6 = {};
-Object.defineProperty(sync$6, "__esModule", { value: true });
-sync$6.readdir = sync$6.readdirWithFileTypes = sync$6.read = void 0;
-var fsStat$4 = out$1;
-var constants_1 = constants$2;
-var utils$7 = utils$9;
-var common$8 = common$a;
-function read(directory, settings2) {
-  if (!settings2.stats && constants_1.IS_SUPPORT_READDIR_WITH_FILE_TYPES) {
-    return readdirWithFileTypes(directory, settings2);
-  }
-  return readdir$2(directory, settings2);
-}
-sync$6.read = read;
-function readdirWithFileTypes(directory, settings2) {
-  const dirents = settings2.fs.readdirSync(directory, { withFileTypes: true });
-  return dirents.map((dirent) => {
-    const entry2 = {
-      dirent,
-      name: dirent.name,
-      path: common$8.joinPathSegments(directory, dirent.name, settings2.pathSegmentSeparator)
-    };
-    if (entry2.dirent.isSymbolicLink() && settings2.followSymbolicLinks) {
-      try {
-        const stats = settings2.fs.statSync(entry2.path);
-        entry2.dirent = utils$7.fs.createDirentFromStats(entry2.name, stats);
-      } catch (error2) {
-        if (settings2.throwErrorOnBrokenSymbolicLink) {
-          throw error2;
-        }
-      }
-    }
-    return entry2;
-  });
-}
-sync$6.readdirWithFileTypes = readdirWithFileTypes;
-function readdir$2(directory, settings2) {
-  const names = settings2.fs.readdirSync(directory);
-  return names.map((name2) => {
-    const entryPath = common$8.joinPathSegments(directory, name2, settings2.pathSegmentSeparator);
-    const stats = fsStat$4.statSync(entryPath, settings2.fsStatSettings);
-    const entry2 = {
-      name: name2,
-      path: entryPath,
-      dirent: utils$7.fs.createDirentFromStats(name2, stats)
-    };
-    if (settings2.stats) {
-      entry2.stats = stats;
-    }
-    return entry2;
-  });
-}
-sync$6.readdir = readdir$2;
-var settings$2 = {};
-var fs$c = {};
-(function(exports2) {
-  Object.defineProperty(exports2, "__esModule", { value: true });
-  exports2.createFileSystemAdapter = exports2.FILE_SYSTEM_ADAPTER = void 0;
-  const fs2 = import_fs.default;
-  exports2.FILE_SYSTEM_ADAPTER = {
-    lstat: fs2.lstat,
-    stat: fs2.stat,
-    lstatSync: fs2.lstatSync,
-    statSync: fs2.statSync,
-    readdir: fs2.readdir,
-    readdirSync: fs2.readdirSync
-  };
-  function createFileSystemAdapter(fsMethods) {
-    if (fsMethods === void 0) {
-      return exports2.FILE_SYSTEM_ADAPTER;
-    }
-    return Object.assign(Object.assign({}, exports2.FILE_SYSTEM_ADAPTER), fsMethods);
-  }
-  exports2.createFileSystemAdapter = createFileSystemAdapter;
-})(fs$c);
-Object.defineProperty(settings$2, "__esModule", { value: true });
-var path$e = import_path.default;
-var fsStat$3 = out$1;
-var fs$b = fs$c;
-var Settings$1 = class Settings2 {
-  constructor(_options2 = {}) {
-    this._options = _options2;
-    this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, false);
-    this.fs = fs$b.createFileSystemAdapter(this._options.fs);
-    this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$e.sep);
-    this.stats = this._getValue(this._options.stats, false);
-    this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, true);
-    this.fsStatSettings = new fsStat$3.Settings({
-      followSymbolicLink: this.followSymbolicLinks,
-      fs: this.fs,
-      throwErrorOnBrokenSymbolicLink: this.throwErrorOnBrokenSymbolicLink
-    });
-  }
-  _getValue(option, value2) {
-    return option !== null && option !== void 0 ? option : value2;
-  }
-};
-settings$2.default = Settings$1;
-Object.defineProperty(out$2, "__esModule", { value: true });
-out$2.Settings = out$2.scandirSync = out$2.scandir = void 0;
-var async = async$3;
-var sync$5 = sync$6;
-var settings_1$2 = settings$2;
-out$2.Settings = settings_1$2.default;
-function scandir(path3, optionsOrSettingsOrCallback, callback) {
-  if (typeof optionsOrSettingsOrCallback === "function") {
-    async.read(path3, getSettings$1(), optionsOrSettingsOrCallback);
-    return;
-  }
-  async.read(path3, getSettings$1(optionsOrSettingsOrCallback), callback);
-}
-out$2.scandir = scandir;
-function scandirSync(path3, optionsOrSettings) {
-  const settings2 = getSettings$1(optionsOrSettings);
-  return sync$5.read(path3, settings2);
-}
-out$2.scandirSync = scandirSync;
-function getSettings$1(settingsOrOptions = {}) {
-  if (settingsOrOptions instanceof settings_1$2.default) {
-    return settingsOrOptions;
-  }
-  return new settings_1$2.default(settingsOrOptions);
-}
-var queue = { exports: {} };
-function reusify$1(Constructor) {
-  var head = new Constructor();
-  var tail = head;
-  function get2() {
-    var current = head;
-    if (current.next) {
-      head = current.next;
-    } else {
-      head = new Constructor();
-      tail = head;
-    }
-    current.next = null;
-    return current;
-  }
-  function release(obj) {
-    tail.next = obj;
-    tail = obj;
-  }
-  return {
-    get: get2,
-    release
-  };
-}
-var reusify_1 = reusify$1;
-var reusify = reusify_1;
-function fastqueue(context, worker, _concurrency) {
-  if (typeof context === "function") {
-    _concurrency = worker;
-    worker = context;
-    context = null;
-  }
-  if (!(_concurrency >= 1)) {
-    throw new Error("fastqueue concurrency must be equal to or greater than 1");
-  }
-  var cache = reusify(Task);
-  var queueHead = null;
-  var queueTail = null;
-  var _running = 0;
-  var errorHandler = null;
-  var self2 = {
-    push: push2,
-    drain: noop$4,
-    saturated: noop$4,
-    pause,
-    paused: false,
-    get concurrency() {
-      return _concurrency;
-    },
-    set concurrency(value2) {
-      if (!(value2 >= 1)) {
-        throw new Error("fastqueue concurrency must be equal to or greater than 1");
-      }
-      _concurrency = value2;
-      if (self2.paused) return;
-      for (; queueHead && _running < _concurrency; ) {
-        _running++;
-        release();
-      }
-    },
-    running,
-    resume: resume2,
-    idle,
-    length,
-    getQueue,
-    unshift,
-    empty: noop$4,
-    kill,
-    killAndDrain,
-    error: error2
-  };
-  return self2;
-  function running() {
-    return _running;
-  }
-  function pause() {
-    self2.paused = true;
-  }
-  function length() {
-    var current = queueHead;
-    var counter = 0;
-    while (current) {
-      current = current.next;
-      counter++;
-    }
-    return counter;
-  }
-  function getQueue() {
-    var current = queueHead;
-    var tasks2 = [];
-    while (current) {
-      tasks2.push(current.value);
-      current = current.next;
-    }
-    return tasks2;
-  }
-  function resume2() {
-    if (!self2.paused) return;
-    self2.paused = false;
-    if (queueHead === null) {
-      _running++;
-      release();
-      return;
-    }
-    for (; queueHead && _running < _concurrency; ) {
-      _running++;
-      release();
-    }
-  }
-  function idle() {
-    return _running === 0 && self2.length() === 0;
-  }
-  function push2(value2, done) {
-    var current = cache.get();
-    current.context = context;
-    current.release = release;
-    current.value = value2;
-    current.callback = done || noop$4;
-    current.errorHandler = errorHandler;
-    if (_running >= _concurrency || self2.paused) {
-      if (queueTail) {
-        queueTail.next = current;
-        queueTail = current;
-      } else {
-        queueHead = current;
-        queueTail = current;
-        self2.saturated();
-      }
-    } else {
-      _running++;
-      worker.call(context, current.value, current.worked);
-    }
-  }
-  function unshift(value2, done) {
-    var current = cache.get();
-    current.context = context;
-    current.release = release;
-    current.value = value2;
-    current.callback = done || noop$4;
-    current.errorHandler = errorHandler;
-    if (_running >= _concurrency || self2.paused) {
-      if (queueHead) {
-        current.next = queueHead;
-        queueHead = current;
-      } else {
-        queueHead = current;
-        queueTail = current;
-        self2.saturated();
-      }
-    } else {
-      _running++;
-      worker.call(context, current.value, current.worked);
-    }
-  }
-  function release(holder) {
-    if (holder) {
-      cache.release(holder);
-    }
-    var next = queueHead;
-    if (next && _running <= _concurrency) {
-      if (!self2.paused) {
-        if (queueTail === queueHead) {
-          queueTail = null;
-        }
-        queueHead = next.next;
-        next.next = null;
-        worker.call(context, next.value, next.worked);
-        if (queueTail === null) {
-          self2.empty();
-        }
-      } else {
-        _running--;
-      }
-    } else if (--_running === 0) {
-      self2.drain();
-    }
-  }
-  function kill() {
-    queueHead = null;
-    queueTail = null;
-    self2.drain = noop$4;
-  }
-  function killAndDrain() {
-    queueHead = null;
-    queueTail = null;
-    self2.drain();
-    self2.drain = noop$4;
-  }
-  function error2(handler) {
-    errorHandler = handler;
-  }
-}
-function noop$4() {
-}
-function Task() {
-  this.value = null;
-  this.callback = noop$4;
-  this.next = null;
-  this.release = noop$4;
-  this.context = null;
-  this.errorHandler = null;
-  var self2 = this;
-  this.worked = function worked(err2, result) {
-    var callback = self2.callback;
-    var errorHandler = self2.errorHandler;
-    var val = self2.value;
-    self2.value = null;
-    self2.callback = noop$4;
-    if (self2.errorHandler) {
-      errorHandler(err2, val);
-    }
-    callback.call(self2.context, err2, result);
-    self2.release(self2);
-  };
-}
-function queueAsPromised(context, worker, _concurrency) {
-  if (typeof context === "function") {
-    _concurrency = worker;
-    worker = context;
-    context = null;
-  }
-  function asyncWrapper(arg, cb) {
-    worker.call(this, arg).then(function(res) {
-      cb(null, res);
-    }, cb);
-  }
-  var queue2 = fastqueue(context, asyncWrapper, _concurrency);
-  var pushCb = queue2.push;
-  var unshiftCb = queue2.unshift;
-  queue2.push = push2;
-  queue2.unshift = unshift;
-  queue2.drained = drained;
-  return queue2;
-  function push2(value2) {
-    var p = new Promise(function(resolve3, reject) {
-      pushCb(value2, function(err2, result) {
-        if (err2) {
-          reject(err2);
-          return;
-        }
-        resolve3(result);
-      });
-    });
-    p.catch(noop$4);
-    return p;
-  }
-  function unshift(value2) {
-    var p = new Promise(function(resolve3, reject) {
-      unshiftCb(value2, function(err2, result) {
-        if (err2) {
-          reject(err2);
-          return;
-        }
-        resolve3(result);
-      });
-    });
-    p.catch(noop$4);
-    return p;
-  }
-  function drained() {
-    if (queue2.idle()) {
-      return new Promise(function(resolve3) {
-        resolve3();
-      });
-    }
-    var previousDrain = queue2.drain;
-    var p = new Promise(function(resolve3) {
-      queue2.drain = function() {
-        previousDrain();
-        resolve3();
-      };
-    });
-    return p;
-  }
-}
-queue.exports = fastqueue;
-queue.exports.promise = queueAsPromised;
-var queueExports = queue.exports;
-var common$7 = {};
-Object.defineProperty(common$7, "__esModule", { value: true });
-common$7.joinPathSegments = common$7.replacePathSegmentSeparator = common$7.isAppliedFilter = common$7.isFatalError = void 0;
-function isFatalError(settings2, error2) {
-  if (settings2.errorFilter === null) {
-    return true;
-  }
-  return !settings2.errorFilter(error2);
-}
-common$7.isFatalError = isFatalError;
-function isAppliedFilter(filter2, value2) {
-  return filter2 === null || filter2(value2);
-}
-common$7.isAppliedFilter = isAppliedFilter;
-function replacePathSegmentSeparator(filepath, separator) {
-  return filepath.split(/[/\\]/).join(separator);
-}
-common$7.replacePathSegmentSeparator = replacePathSegmentSeparator;
-function joinPathSegments(a, b, separator) {
-  if (a === "") {
-    return b;
-  }
-  if (a.endsWith(separator)) {
-    return a + b;
-  }
-  return a + separator + b;
-}
-common$7.joinPathSegments = joinPathSegments;
-var reader$1 = {};
-Object.defineProperty(reader$1, "__esModule", { value: true });
-var common$6 = common$7;
-var Reader$1 = class Reader {
-  constructor(_root2, _settings) {
-    this._root = _root2;
-    this._settings = _settings;
-    this._root = common$6.replacePathSegmentSeparator(_root2, _settings.pathSegmentSeparator);
-  }
-};
-reader$1.default = Reader$1;
-Object.defineProperty(async$4, "__esModule", { value: true });
-var events_1 = import_events.default;
-var fsScandir$2 = out$2;
-var fastq = queueExports;
-var common$5 = common$7;
-var reader_1$4 = reader$1;
-var AsyncReader = class extends reader_1$4.default {
-  constructor(_root2, _settings) {
-    super(_root2, _settings);
-    this._settings = _settings;
-    this._scandir = fsScandir$2.scandir;
-    this._emitter = new events_1.EventEmitter();
-    this._queue = fastq(this._worker.bind(this), this._settings.concurrency);
-    this._isFatalError = false;
-    this._isDestroyed = false;
-    this._queue.drain = () => {
-      if (!this._isFatalError) {
-        this._emitter.emit("end");
-      }
-    };
-  }
-  read() {
-    this._isFatalError = false;
-    this._isDestroyed = false;
-    setImmediate(() => {
-      this._pushToQueue(this._root, this._settings.basePath);
-    });
-    return this._emitter;
-  }
-  get isDestroyed() {
-    return this._isDestroyed;
-  }
-  destroy() {
-    if (this._isDestroyed) {
-      throw new Error("The reader is already destroyed");
-    }
-    this._isDestroyed = true;
-    this._queue.killAndDrain();
-  }
-  onEntry(callback) {
-    this._emitter.on("entry", callback);
-  }
-  onError(callback) {
-    this._emitter.once("error", callback);
-  }
-  onEnd(callback) {
-    this._emitter.once("end", callback);
-  }
-  _pushToQueue(directory, base) {
-    const queueItem = { directory, base };
-    this._queue.push(queueItem, (error2) => {
-      if (error2 !== null) {
-        this._handleError(error2);
-      }
-    });
-  }
-  _worker(item, done) {
-    this._scandir(item.directory, this._settings.fsScandirSettings, (error2, entries) => {
-      if (error2 !== null) {
-        done(error2, void 0);
-        return;
-      }
-      for (const entry2 of entries) {
-        this._handleEntry(entry2, item.base);
-      }
-      done(null, void 0);
-    });
-  }
-  _handleError(error2) {
-    if (this._isDestroyed || !common$5.isFatalError(this._settings, error2)) {
-      return;
-    }
-    this._isFatalError = true;
-    this._isDestroyed = true;
-    this._emitter.emit("error", error2);
-  }
-  _handleEntry(entry2, base) {
-    if (this._isDestroyed || this._isFatalError) {
-      return;
-    }
-    const fullpath = entry2.path;
-    if (base !== void 0) {
-      entry2.path = common$5.joinPathSegments(base, entry2.name, this._settings.pathSegmentSeparator);
-    }
-    if (common$5.isAppliedFilter(this._settings.entryFilter, entry2)) {
-      this._emitEntry(entry2);
-    }
-    if (entry2.dirent.isDirectory() && common$5.isAppliedFilter(this._settings.deepFilter, entry2)) {
-      this._pushToQueue(fullpath, base === void 0 ? void 0 : entry2.path);
-    }
-  }
-  _emitEntry(entry2) {
-    this._emitter.emit("entry", entry2);
-  }
-};
-async$4.default = AsyncReader;
-Object.defineProperty(async$5, "__esModule", { value: true });
-var async_1$4 = async$4;
-var AsyncProvider = class {
-  constructor(_root2, _settings) {
-    this._root = _root2;
-    this._settings = _settings;
-    this._reader = new async_1$4.default(this._root, this._settings);
-    this._storage = [];
-  }
-  read(callback) {
-    this._reader.onError((error2) => {
-      callFailureCallback(callback, error2);
-    });
-    this._reader.onEntry((entry2) => {
-      this._storage.push(entry2);
-    });
-    this._reader.onEnd(() => {
-      callSuccessCallback(callback, this._storage);
-    });
-    this._reader.read();
-  }
-};
-async$5.default = AsyncProvider;
-function callFailureCallback(callback, error2) {
-  callback(error2);
-}
-function callSuccessCallback(callback, entries) {
-  callback(null, entries);
-}
-var stream$2 = {};
-Object.defineProperty(stream$2, "__esModule", { value: true });
-var stream_1$5 = import_stream.default;
-var async_1$3 = async$4;
-var StreamProvider = class {
-  constructor(_root2, _settings) {
-    this._root = _root2;
-    this._settings = _settings;
-    this._reader = new async_1$3.default(this._root, this._settings);
-    this._stream = new stream_1$5.Readable({
-      objectMode: true,
-      read: () => {
-      },
-      destroy: () => {
-        if (!this._reader.isDestroyed) {
-          this._reader.destroy();
-        }
-      }
-    });
-  }
-  read() {
-    this._reader.onError((error2) => {
-      this._stream.emit("error", error2);
-    });
-    this._reader.onEntry((entry2) => {
-      this._stream.push(entry2);
-    });
-    this._reader.onEnd(() => {
-      this._stream.push(null);
-    });
-    this._reader.read();
-    return this._stream;
-  }
-};
-stream$2.default = StreamProvider;
-var sync$4 = {};
-var sync$3 = {};
-Object.defineProperty(sync$3, "__esModule", { value: true });
-var fsScandir$1 = out$2;
-var common$4 = common$7;
-var reader_1$3 = reader$1;
-var SyncReader = class extends reader_1$3.default {
-  constructor() {
-    super(...arguments);
-    this._scandir = fsScandir$1.scandirSync;
-    this._storage = [];
-    this._queue = /* @__PURE__ */ new Set();
-  }
-  read() {
-    this._pushToQueue(this._root, this._settings.basePath);
-    this._handleQueue();
-    return this._storage;
-  }
-  _pushToQueue(directory, base) {
-    this._queue.add({ directory, base });
-  }
-  _handleQueue() {
-    for (const item of this._queue.values()) {
-      this._handleDirectory(item.directory, item.base);
-    }
-  }
-  _handleDirectory(directory, base) {
-    try {
-      const entries = this._scandir(directory, this._settings.fsScandirSettings);
-      for (const entry2 of entries) {
-        this._handleEntry(entry2, base);
-      }
-    } catch (error2) {
-      this._handleError(error2);
-    }
-  }
-  _handleError(error2) {
-    if (!common$4.isFatalError(this._settings, error2)) {
-      return;
-    }
-    throw error2;
-  }
-  _handleEntry(entry2, base) {
-    const fullpath = entry2.path;
-    if (base !== void 0) {
-      entry2.path = common$4.joinPathSegments(base, entry2.name, this._settings.pathSegmentSeparator);
-    }
-    if (common$4.isAppliedFilter(this._settings.entryFilter, entry2)) {
-      this._pushToStorage(entry2);
-    }
-    if (entry2.dirent.isDirectory() && common$4.isAppliedFilter(this._settings.deepFilter, entry2)) {
-      this._pushToQueue(fullpath, base === void 0 ? void 0 : entry2.path);
-    }
-  }
-  _pushToStorage(entry2) {
-    this._storage.push(entry2);
-  }
-};
-sync$3.default = SyncReader;
-Object.defineProperty(sync$4, "__esModule", { value: true });
-var sync_1$3 = sync$3;
-var SyncProvider = class {
-  constructor(_root2, _settings) {
-    this._root = _root2;
-    this._settings = _settings;
-    this._reader = new sync_1$3.default(this._root, this._settings);
-  }
-  read() {
-    return this._reader.read();
-  }
-};
-sync$4.default = SyncProvider;
-var settings$1 = {};
-Object.defineProperty(settings$1, "__esModule", { value: true });
-var path$d = import_path.default;
-var fsScandir = out$2;
-var Settings3 = class {
-  constructor(_options2 = {}) {
-    this._options = _options2;
-    this.basePath = this._getValue(this._options.basePath, void 0);
-    this.concurrency = this._getValue(this._options.concurrency, Number.POSITIVE_INFINITY);
-    this.deepFilter = this._getValue(this._options.deepFilter, null);
-    this.entryFilter = this._getValue(this._options.entryFilter, null);
-    this.errorFilter = this._getValue(this._options.errorFilter, null);
-    this.pathSegmentSeparator = this._getValue(this._options.pathSegmentSeparator, path$d.sep);
-    this.fsScandirSettings = new fsScandir.Settings({
-      followSymbolicLinks: this._options.followSymbolicLinks,
-      fs: this._options.fs,
-      pathSegmentSeparator: this._options.pathSegmentSeparator,
-      stats: this._options.stats,
-      throwErrorOnBrokenSymbolicLink: this._options.throwErrorOnBrokenSymbolicLink
-    });
-  }
-  _getValue(option, value2) {
-    return option !== null && option !== void 0 ? option : value2;
-  }
-};
-settings$1.default = Settings3;
-Object.defineProperty(out$3, "__esModule", { value: true });
-out$3.Settings = out$3.walkStream = out$3.walkSync = out$3.walk = void 0;
-var async_1$2 = async$5;
-var stream_1$4 = stream$2;
-var sync_1$2 = sync$4;
-var settings_1$1 = settings$1;
-out$3.Settings = settings_1$1.default;
-function walk$2(directory, optionsOrSettingsOrCallback, callback) {
-  if (typeof optionsOrSettingsOrCallback === "function") {
-    new async_1$2.default(directory, getSettings()).read(optionsOrSettingsOrCallback);
-    return;
-  }
-  new async_1$2.default(directory, getSettings(optionsOrSettingsOrCallback)).read(callback);
-}
-out$3.walk = walk$2;
-function walkSync(directory, optionsOrSettings) {
-  const settings2 = getSettings(optionsOrSettings);
-  const provider2 = new sync_1$2.default(directory, settings2);
-  return provider2.read();
-}
-out$3.walkSync = walkSync;
-function walkStream(directory, optionsOrSettings) {
-  const settings2 = getSettings(optionsOrSettings);
-  const provider2 = new stream_1$4.default(directory, settings2);
-  return provider2.read();
-}
-out$3.walkStream = walkStream;
-function getSettings(settingsOrOptions = {}) {
-  if (settingsOrOptions instanceof settings_1$1.default) {
-    return settingsOrOptions;
-  }
-  return new settings_1$1.default(settingsOrOptions);
-}
-var reader = {};
-Object.defineProperty(reader, "__esModule", { value: true });
-var path$c = import_path.default;
-var fsStat$2 = out$1;
-var utils$6 = utils$g;
-var Reader2 = class {
-  constructor(_settings) {
-    this._settings = _settings;
-    this._fsStatSettings = new fsStat$2.Settings({
-      followSymbolicLink: this._settings.followSymbolicLinks,
-      fs: this._settings.fs,
-      throwErrorOnBrokenSymbolicLink: this._settings.followSymbolicLinks
-    });
-  }
-  _getFullEntryPath(filepath) {
-    return path$c.resolve(this._settings.cwd, filepath);
-  }
-  _makeEntry(stats, pattern2) {
-    const entry2 = {
-      name: pattern2,
-      path: pattern2,
-      dirent: utils$6.fs.createDirentFromStats(pattern2, stats)
-    };
-    if (this._settings.stats) {
-      entry2.stats = stats;
-    }
-    return entry2;
-  }
-  _isFatalError(error2) {
-    return !utils$6.errno.isEnoentCodeError(error2) && !this._settings.suppressErrors;
-  }
-};
-reader.default = Reader2;
-var stream$1 = {};
-Object.defineProperty(stream$1, "__esModule", { value: true });
-var stream_1$3 = import_stream.default;
-var fsStat$1 = out$1;
-var fsWalk$2 = out$3;
-var reader_1$2 = reader;
-var ReaderStream = class extends reader_1$2.default {
-  constructor() {
-    super(...arguments);
-    this._walkStream = fsWalk$2.walkStream;
-    this._stat = fsStat$1.stat;
-  }
-  dynamic(root, options2) {
-    return this._walkStream(root, options2);
-  }
-  static(patterns, options2) {
-    const filepaths = patterns.map(this._getFullEntryPath, this);
-    const stream4 = new stream_1$3.PassThrough({ objectMode: true });
-    stream4._write = (index, _enc, done) => {
-      return this._getEntry(filepaths[index], patterns[index], options2).then((entry2) => {
-        if (entry2 !== null && options2.entryFilter(entry2)) {
-          stream4.push(entry2);
-        }
-        if (index === filepaths.length - 1) {
-          stream4.end();
-        }
-        done();
-      }).catch(done);
-    };
-    for (let i = 0; i < filepaths.length; i++) {
-      stream4.write(i);
-    }
-    return stream4;
-  }
-  _getEntry(filepath, pattern2, options2) {
-    return this._getStat(filepath).then((stats) => this._makeEntry(stats, pattern2)).catch((error2) => {
-      if (options2.errorFilter(error2)) {
-        return null;
-      }
-      throw error2;
-    });
-  }
-  _getStat(filepath) {
-    return new Promise((resolve3, reject) => {
-      this._stat(filepath, this._fsStatSettings, (error2, stats) => {
-        return error2 === null ? resolve3(stats) : reject(error2);
-      });
-    });
-  }
-};
-stream$1.default = ReaderStream;
-Object.defineProperty(async$6, "__esModule", { value: true });
-var fsWalk$1 = out$3;
-var reader_1$1 = reader;
-var stream_1$2 = stream$1;
-var ReaderAsync = class extends reader_1$1.default {
-  constructor() {
-    super(...arguments);
-    this._walkAsync = fsWalk$1.walk;
-    this._readerStream = new stream_1$2.default(this._settings);
-  }
-  dynamic(root, options2) {
-    return new Promise((resolve3, reject) => {
-      this._walkAsync(root, options2, (error2, entries) => {
-        if (error2 === null) {
-          resolve3(entries);
-        } else {
-          reject(error2);
-        }
-      });
-    });
-  }
-  async static(patterns, options2) {
-    const entries = [];
-    const stream4 = this._readerStream.static(patterns, options2);
-    return new Promise((resolve3, reject) => {
-      stream4.once("error", reject);
-      stream4.on("data", (entry2) => entries.push(entry2));
-      stream4.once("end", () => resolve3(entries));
-    });
-  }
-};
-async$6.default = ReaderAsync;
-var provider = {};
-var deep = {};
-var partial = {};
-var matcher = {};
-Object.defineProperty(matcher, "__esModule", { value: true });
-var utils$5 = utils$g;
-var Matcher = class {
-  constructor(_patterns, _settings, _micromatchOptions) {
-    this._patterns = _patterns;
-    this._settings = _settings;
-    this._micromatchOptions = _micromatchOptions;
-    this._storage = [];
-    this._fillStorage();
-  }
-  _fillStorage() {
-    for (const pattern2 of this._patterns) {
-      const segments = this._getPatternSegments(pattern2);
-      const sections = this._splitSegmentsIntoSections(segments);
-      this._storage.push({
-        complete: sections.length <= 1,
-        pattern: pattern2,
-        segments,
-        sections
-      });
-    }
-  }
-  _getPatternSegments(pattern2) {
-    const parts = utils$5.pattern.getPatternParts(pattern2, this._micromatchOptions);
-    return parts.map((part) => {
-      const dynamic = utils$5.pattern.isDynamicPattern(part, this._settings);
-      if (!dynamic) {
-        return {
-          dynamic: false,
-          pattern: part
-        };
-      }
-      return {
-        dynamic: true,
-        pattern: part,
-        patternRe: utils$5.pattern.makeRe(part, this._micromatchOptions)
-      };
-    });
-  }
-  _splitSegmentsIntoSections(segments) {
-    return utils$5.array.splitWhen(segments, (segment) => segment.dynamic && utils$5.pattern.hasGlobStar(segment.pattern));
-  }
-};
-matcher.default = Matcher;
-Object.defineProperty(partial, "__esModule", { value: true });
-var matcher_1 = matcher;
-var PartialMatcher = class extends matcher_1.default {
-  match(filepath) {
-    const parts = filepath.split("/");
-    const levels = parts.length;
-    const patterns = this._storage.filter((info) => !info.complete || info.segments.length > levels);
-    for (const pattern2 of patterns) {
-      const section = pattern2.sections[0];
-      if (!pattern2.complete && levels > section.length) {
-        return true;
-      }
-      const match2 = parts.every((part, index) => {
-        const segment = pattern2.segments[index];
-        if (segment.dynamic && segment.patternRe.test(part)) {
-          return true;
-        }
-        if (!segment.dynamic && segment.pattern === part) {
-          return true;
-        }
-        return false;
-      });
-      if (match2) {
-        return true;
-      }
-    }
-    return false;
-  }
-};
-partial.default = PartialMatcher;
-Object.defineProperty(deep, "__esModule", { value: true });
-var utils$4 = utils$g;
-var partial_1 = partial;
-var DeepFilter = class {
-  constructor(_settings, _micromatchOptions) {
-    this._settings = _settings;
-    this._micromatchOptions = _micromatchOptions;
-  }
-  getFilter(basePath, positive, negative) {
-    const matcher2 = this._getMatcher(positive);
-    const negativeRe = this._getNegativePatternsRe(negative);
-    return (entry2) => this._filter(basePath, entry2, matcher2, negativeRe);
-  }
-  _getMatcher(patterns) {
-    return new partial_1.default(patterns, this._settings, this._micromatchOptions);
-  }
-  _getNegativePatternsRe(patterns) {
-    const affectDepthOfReadingPatterns = patterns.filter(utils$4.pattern.isAffectDepthOfReadingPattern);
-    return utils$4.pattern.convertPatternsToRe(affectDepthOfReadingPatterns, this._micromatchOptions);
-  }
-  _filter(basePath, entry2, matcher2, negativeRe) {
-    if (this._isSkippedByDeep(basePath, entry2.path)) {
-      return false;
-    }
-    if (this._isSkippedSymbolicLink(entry2)) {
-      return false;
-    }
-    const filepath = utils$4.path.removeLeadingDotSegment(entry2.path);
-    if (this._isSkippedByPositivePatterns(filepath, matcher2)) {
-      return false;
-    }
-    return this._isSkippedByNegativePatterns(filepath, negativeRe);
-  }
-  _isSkippedByDeep(basePath, entryPath) {
-    if (this._settings.deep === Infinity) {
-      return false;
-    }
-    return this._getEntryLevel(basePath, entryPath) >= this._settings.deep;
-  }
-  _getEntryLevel(basePath, entryPath) {
-    const entryPathDepth = entryPath.split("/").length;
-    if (basePath === "") {
-      return entryPathDepth;
-    }
-    const basePathDepth = basePath.split("/").length;
-    return entryPathDepth - basePathDepth;
-  }
-  _isSkippedSymbolicLink(entry2) {
-    return !this._settings.followSymbolicLinks && entry2.dirent.isSymbolicLink();
-  }
-  _isSkippedByPositivePatterns(entryPath, matcher2) {
-    return !this._settings.baseNameMatch && !matcher2.match(entryPath);
-  }
-  _isSkippedByNegativePatterns(entryPath, patternsRe) {
-    return !utils$4.pattern.matchAny(entryPath, patternsRe);
-  }
-};
-deep.default = DeepFilter;
-var entry$1 = {};
-Object.defineProperty(entry$1, "__esModule", { value: true });
-var utils$3 = utils$g;
-var EntryFilter = class {
-  constructor(_settings, _micromatchOptions) {
-    this._settings = _settings;
-    this._micromatchOptions = _micromatchOptions;
-    this.index = /* @__PURE__ */ new Map();
-  }
-  getFilter(positive, negative) {
-    const positiveRe = utils$3.pattern.convertPatternsToRe(positive, this._micromatchOptions);
-    const negativeRe = utils$3.pattern.convertPatternsToRe(negative, Object.assign(Object.assign({}, this._micromatchOptions), { dot: true }));
-    return (entry2) => this._filter(entry2, positiveRe, negativeRe);
-  }
-  _filter(entry2, positiveRe, negativeRe) {
-    const filepath = utils$3.path.removeLeadingDotSegment(entry2.path);
-    if (this._settings.unique && this._isDuplicateEntry(filepath)) {
-      return false;
-    }
-    if (this._onlyFileFilter(entry2) || this._onlyDirectoryFilter(entry2)) {
-      return false;
-    }
-    if (this._isSkippedByAbsoluteNegativePatterns(filepath, negativeRe)) {
-      return false;
-    }
-    const isDirectory2 = entry2.dirent.isDirectory();
-    const isMatched = this._isMatchToPatterns(filepath, positiveRe, isDirectory2) && !this._isMatchToPatterns(filepath, negativeRe, isDirectory2);
-    if (this._settings.unique && isMatched) {
-      this._createIndexRecord(filepath);
-    }
-    return isMatched;
-  }
-  _isDuplicateEntry(filepath) {
-    return this.index.has(filepath);
-  }
-  _createIndexRecord(filepath) {
-    this.index.set(filepath, void 0);
-  }
-  _onlyFileFilter(entry2) {
-    return this._settings.onlyFiles && !entry2.dirent.isFile();
-  }
-  _onlyDirectoryFilter(entry2) {
-    return this._settings.onlyDirectories && !entry2.dirent.isDirectory();
-  }
-  _isSkippedByAbsoluteNegativePatterns(entryPath, patternsRe) {
-    if (!this._settings.absolute) {
-      return false;
-    }
-    const fullpath = utils$3.path.makeAbsolute(this._settings.cwd, entryPath);
-    return utils$3.pattern.matchAny(fullpath, patternsRe);
-  }
-  _isMatchToPatterns(filepath, patternsRe, isDirectory2) {
-    const isMatched = utils$3.pattern.matchAny(filepath, patternsRe);
-    if (!isMatched && isDirectory2) {
-      return utils$3.pattern.matchAny(filepath + "/", patternsRe);
-    }
-    return isMatched;
-  }
-};
-entry$1.default = EntryFilter;
-var error$1 = {};
-Object.defineProperty(error$1, "__esModule", { value: true });
-var utils$2 = utils$g;
-var ErrorFilter = class {
-  constructor(_settings) {
-    this._settings = _settings;
-  }
-  getFilter() {
-    return (error2) => this._isNonFatalError(error2);
-  }
-  _isNonFatalError(error2) {
-    return utils$2.errno.isEnoentCodeError(error2) || this._settings.suppressErrors;
-  }
-};
-error$1.default = ErrorFilter;
-var entry = {};
-Object.defineProperty(entry, "__esModule", { value: true });
-var utils$1 = utils$g;
-var EntryTransformer = class {
-  constructor(_settings) {
-    this._settings = _settings;
-  }
-  getTransformer() {
-    return (entry2) => this._transform(entry2);
-  }
-  _transform(entry2) {
-    let filepath = entry2.path;
-    if (this._settings.absolute) {
-      filepath = utils$1.path.makeAbsolute(this._settings.cwd, filepath);
-      filepath = utils$1.path.unixify(filepath);
-    }
-    if (this._settings.markDirectories && entry2.dirent.isDirectory()) {
-      filepath += "/";
-    }
-    if (!this._settings.objectMode) {
-      return filepath;
-    }
-    return Object.assign(Object.assign({}, entry2), { path: filepath });
-  }
-};
-entry.default = EntryTransformer;
-Object.defineProperty(provider, "__esModule", { value: true });
-var path$b = import_path.default;
-var deep_1 = deep;
-var entry_1 = entry$1;
-var error_1 = error$1;
-var entry_2 = entry;
-var Provider = class {
-  constructor(_settings) {
-    this._settings = _settings;
-    this.errorFilter = new error_1.default(this._settings);
-    this.entryFilter = new entry_1.default(this._settings, this._getMicromatchOptions());
-    this.deepFilter = new deep_1.default(this._settings, this._getMicromatchOptions());
-    this.entryTransformer = new entry_2.default(this._settings);
-  }
-  _getRootDirectory(task) {
-    return path$b.resolve(this._settings.cwd, task.base);
-  }
-  _getReaderOptions(task) {
-    const basePath = task.base === "." ? "" : task.base;
-    return {
-      basePath,
-      pathSegmentSeparator: "/",
-      concurrency: this._settings.concurrency,
-      deepFilter: this.deepFilter.getFilter(basePath, task.positive, task.negative),
-      entryFilter: this.entryFilter.getFilter(task.positive, task.negative),
-      errorFilter: this.errorFilter.getFilter(),
-      followSymbolicLinks: this._settings.followSymbolicLinks,
-      fs: this._settings.fs,
-      stats: this._settings.stats,
-      throwErrorOnBrokenSymbolicLink: this._settings.throwErrorOnBrokenSymbolicLink,
-      transform: this.entryTransformer.getTransformer()
-    };
-  }
-  _getMicromatchOptions() {
-    return {
-      dot: this._settings.dot,
-      matchBase: this._settings.baseNameMatch,
-      nobrace: !this._settings.braceExpansion,
-      nocase: !this._settings.caseSensitiveMatch,
-      noext: !this._settings.extglob,
-      noglobstar: !this._settings.globstar,
-      posix: true,
-      strictSlashes: false
-    };
-  }
-};
-provider.default = Provider;
-Object.defineProperty(async$7, "__esModule", { value: true });
-var async_1$1 = async$6;
-var provider_1$2 = provider;
-var ProviderAsync = class extends provider_1$2.default {
-  constructor() {
-    super(...arguments);
-    this._reader = new async_1$1.default(this._settings);
-  }
-  async read(task) {
-    const root = this._getRootDirectory(task);
-    const options2 = this._getReaderOptions(task);
-    const entries = await this.api(root, task, options2);
-    return entries.map((entry2) => options2.transform(entry2));
-  }
-  api(root, task, options2) {
-    if (task.dynamic) {
-      return this._reader.dynamic(root, options2);
-    }
-    return this._reader.static(task.patterns, options2);
-  }
-};
-async$7.default = ProviderAsync;
-var stream = {};
-Object.defineProperty(stream, "__esModule", { value: true });
-var stream_1$1 = import_stream.default;
-var stream_2 = stream$1;
-var provider_1$1 = provider;
-var ProviderStream = class extends provider_1$1.default {
-  constructor() {
-    super(...arguments);
-    this._reader = new stream_2.default(this._settings);
-  }
-  read(task) {
-    const root = this._getRootDirectory(task);
-    const options2 = this._getReaderOptions(task);
-    const source = this.api(root, task, options2);
-    const destination = new stream_1$1.Readable({ objectMode: true, read: () => {
-    } });
-    source.once("error", (error2) => destination.emit("error", error2)).on("data", (entry2) => destination.emit("data", options2.transform(entry2))).once("end", () => destination.emit("end"));
-    destination.once("close", () => source.destroy());
-    return destination;
-  }
-  api(root, task, options2) {
-    if (task.dynamic) {
-      return this._reader.dynamic(root, options2);
-    }
-    return this._reader.static(task.patterns, options2);
-  }
-};
-stream.default = ProviderStream;
-var sync$2 = {};
-var sync$1 = {};
-Object.defineProperty(sync$1, "__esModule", { value: true });
-var fsStat = out$1;
-var fsWalk = out$3;
-var reader_1 = reader;
-var ReaderSync = class extends reader_1.default {
-  constructor() {
-    super(...arguments);
-    this._walkSync = fsWalk.walkSync;
-    this._statSync = fsStat.statSync;
-  }
-  dynamic(root, options2) {
-    return this._walkSync(root, options2);
-  }
-  static(patterns, options2) {
-    const entries = [];
-    for (const pattern2 of patterns) {
-      const filepath = this._getFullEntryPath(pattern2);
-      const entry2 = this._getEntry(filepath, pattern2, options2);
-      if (entry2 === null || !options2.entryFilter(entry2)) {
-        continue;
-      }
-      entries.push(entry2);
-    }
-    return entries;
-  }
-  _getEntry(filepath, pattern2, options2) {
-    try {
-      const stats = this._getStat(filepath);
-      return this._makeEntry(stats, pattern2);
-    } catch (error2) {
-      if (options2.errorFilter(error2)) {
-        return null;
-      }
-      throw error2;
-    }
-  }
-  _getStat(filepath) {
-    return this._statSync(filepath, this._fsStatSettings);
-  }
-};
-sync$1.default = ReaderSync;
-Object.defineProperty(sync$2, "__esModule", { value: true });
-var sync_1$1 = sync$1;
-var provider_1 = provider;
-var ProviderSync = class extends provider_1.default {
-  constructor() {
-    super(...arguments);
-    this._reader = new sync_1$1.default(this._settings);
-  }
-  read(task) {
-    const root = this._getRootDirectory(task);
-    const options2 = this._getReaderOptions(task);
-    const entries = this.api(root, task, options2);
-    return entries.map(options2.transform);
-  }
-  api(root, task, options2) {
-    if (task.dynamic) {
-      return this._reader.dynamic(root, options2);
-    }
-    return this._reader.static(task.patterns, options2);
-  }
-};
-sync$2.default = ProviderSync;
-var settings = {};
-(function(exports2) {
-  Object.defineProperty(exports2, "__esModule", { value: true });
-  exports2.DEFAULT_FILE_SYSTEM_ADAPTER = void 0;
-  const fs2 = import_fs.default;
-  const os2 = import_os.default;
-  const CPU_COUNT = Math.max(os2.cpus().length, 1);
-  exports2.DEFAULT_FILE_SYSTEM_ADAPTER = {
-    lstat: fs2.lstat,
-    lstatSync: fs2.lstatSync,
-    stat: fs2.stat,
-    statSync: fs2.statSync,
-    readdir: fs2.readdir,
-    readdirSync: fs2.readdirSync
-  };
-  class Settings4 {
-    constructor(_options2 = {}) {
-      this._options = _options2;
-      this.absolute = this._getValue(this._options.absolute, false);
-      this.baseNameMatch = this._getValue(this._options.baseNameMatch, false);
-      this.braceExpansion = this._getValue(this._options.braceExpansion, true);
-      this.caseSensitiveMatch = this._getValue(this._options.caseSensitiveMatch, true);
-      this.concurrency = this._getValue(this._options.concurrency, CPU_COUNT);
-      this.cwd = this._getValue(this._options.cwd, process.cwd());
-      this.deep = this._getValue(this._options.deep, Infinity);
-      this.dot = this._getValue(this._options.dot, false);
-      this.extglob = this._getValue(this._options.extglob, true);
-      this.followSymbolicLinks = this._getValue(this._options.followSymbolicLinks, true);
-      this.fs = this._getFileSystemMethods(this._options.fs);
-      this.globstar = this._getValue(this._options.globstar, true);
-      this.ignore = this._getValue(this._options.ignore, []);
-      this.markDirectories = this._getValue(this._options.markDirectories, false);
-      this.objectMode = this._getValue(this._options.objectMode, false);
-      this.onlyDirectories = this._getValue(this._options.onlyDirectories, false);
-      this.onlyFiles = this._getValue(this._options.onlyFiles, true);
-      this.stats = this._getValue(this._options.stats, false);
-      this.suppressErrors = this._getValue(this._options.suppressErrors, false);
-      this.throwErrorOnBrokenSymbolicLink = this._getValue(this._options.throwErrorOnBrokenSymbolicLink, false);
-      this.unique = this._getValue(this._options.unique, true);
-      if (this.onlyDirectories) {
-        this.onlyFiles = false;
-      }
-      if (this.stats) {
-        this.objectMode = true;
-      }
-      this.ignore = [].concat(this.ignore);
-    }
-    _getValue(option, value2) {
-      return option === void 0 ? value2 : option;
-    }
-    _getFileSystemMethods(methods = {}) {
-      return Object.assign(Object.assign({}, exports2.DEFAULT_FILE_SYSTEM_ADAPTER), methods);
-    }
-  }
-  exports2.default = Settings4;
-})(settings);
-var taskManager = tasks;
-var async_1 = async$7;
-var stream_1 = stream;
-var sync_1 = sync$2;
-var settings_1 = settings;
-var utils = utils$g;
-async function FastGlob(source, options2) {
-  assertPatternsInput(source);
-  const works = getWorks(source, async_1.default, options2);
-  const result = await Promise.all(works);
-  return utils.array.flatten(result);
-}
-(function(FastGlob2) {
-  FastGlob2.glob = FastGlob2;
-  FastGlob2.globSync = sync2;
-  FastGlob2.globStream = stream4;
-  FastGlob2.async = FastGlob2;
-  function sync2(source, options2) {
-    assertPatternsInput(source);
-    const works = getWorks(source, sync_1.default, options2);
-    return utils.array.flatten(works);
-  }
-  FastGlob2.sync = sync2;
-  function stream4(source, options2) {
-    assertPatternsInput(source);
-    const works = getWorks(source, stream_1.default, options2);
-    return utils.stream.merge(works);
-  }
-  FastGlob2.stream = stream4;
-  function generateTasks(source, options2) {
-    assertPatternsInput(source);
-    const patterns = [].concat(source);
-    const settings2 = new settings_1.default(options2);
-    return taskManager.generate(patterns, settings2);
-  }
-  FastGlob2.generateTasks = generateTasks;
-  function isDynamicPattern2(source, options2) {
-    assertPatternsInput(source);
-    const settings2 = new settings_1.default(options2);
-    return utils.pattern.isDynamicPattern(source, settings2);
-  }
-  FastGlob2.isDynamicPattern = isDynamicPattern2;
-  function escapePath(source) {
-    assertPatternsInput(source);
-    return utils.path.escape(source);
-  }
-  FastGlob2.escapePath = escapePath;
-  function convertPathToPattern(source) {
-    assertPatternsInput(source);
-    return utils.path.convertPathToPattern(source);
-  }
-  FastGlob2.convertPathToPattern = convertPathToPattern;
-  (function(posix2) {
-    function escapePath2(source) {
-      assertPatternsInput(source);
-      return utils.path.escapePosixPath(source);
-    }
-    posix2.escapePath = escapePath2;
-    function convertPathToPattern2(source) {
-      assertPatternsInput(source);
-      return utils.path.convertPosixPathToPattern(source);
-    }
-    posix2.convertPathToPattern = convertPathToPattern2;
-  })(FastGlob2.posix || (FastGlob2.posix = {}));
-  (function(win322) {
-    function escapePath2(source) {
-      assertPatternsInput(source);
-      return utils.path.escapeWindowsPath(source);
-    }
-    win322.escapePath = escapePath2;
-    function convertPathToPattern2(source) {
-      assertPatternsInput(source);
-      return utils.path.convertWindowsPathToPattern(source);
-    }
-    win322.convertPathToPattern = convertPathToPattern2;
-  })(FastGlob2.win32 || (FastGlob2.win32 = {}));
-})(FastGlob || (FastGlob = {}));
-function getWorks(source, _Provider, options2) {
-  const patterns = [].concat(source);
-  const settings2 = new settings_1.default(options2);
-  const tasks2 = taskManager.generate(patterns, settings2);
-  const provider2 = new _Provider(settings2);
-  return tasks2.map(provider2.read, provider2);
-}
-function assertPatternsInput(input) {
-  const source = [].concat(input);
-  const isValidSource = source.every((item) => utils.string.isString(item) && !utils.string.isEmpty(item));
-  if (!isValidSource) {
-    throw new TypeError("Patterns must be a string (non empty) or an array of strings");
-  }
-}
-var out = FastGlob;
-var glob = getDefaultExportFromCjs(out);
-var src$2 = {};
-var path$a = import_path.default;
-var fs$a = import_fs.default;
-var os$3 = import_os.default;
-var fsReadFileAsync = fs$a.promises.readFile;
-function getDefaultSearchPlaces(name2, sync2) {
-  return [
-    "package.json",
-    `.${name2}rc.json`,
-    `.${name2}rc.js`,
-    `.${name2}rc.cjs`,
-    ...sync2 ? [] : [`.${name2}rc.mjs`],
-    `.config/${name2}rc`,
-    `.config/${name2}rc.json`,
-    `.config/${name2}rc.js`,
-    `.config/${name2}rc.cjs`,
-    ...sync2 ? [] : [`.config/${name2}rc.mjs`],
-    `${name2}.config.js`,
-    `${name2}.config.cjs`,
-    ...sync2 ? [] : [`${name2}.config.mjs`]
-  ];
-}
-function parentDir(p) {
-  return path$a.dirname(p) || path$a.sep;
-}
-var jsonLoader = (_, content) => JSON.parse(content);
-var requireFunc = typeof __webpack_require__ === "function" ? __non_webpack_require__ : __require2;
-var defaultLoadersSync = Object.freeze({
-  ".js": requireFunc,
-  ".json": requireFunc,
-  ".cjs": requireFunc,
-  noExt: jsonLoader
-});
-src$2.defaultLoadersSync = defaultLoadersSync;
-var dynamicImport = async (id) => {
-  try {
-    const mod = await import(
-      /* webpackIgnore: true */
-      id
-    );
-    return mod.default;
-  } catch (e2) {
-    try {
-      return requireFunc(id);
-    } catch (requireE) {
-      if (requireE.code === "ERR_REQUIRE_ESM" || requireE instanceof SyntaxError && requireE.toString().includes("Cannot use import statement outside a module")) {
-        throw e2;
-      }
-      throw requireE;
-    }
-  }
-};
-var defaultLoaders = Object.freeze({
-  ".js": dynamicImport,
-  ".mjs": dynamicImport,
-  ".cjs": dynamicImport,
-  ".json": jsonLoader,
-  noExt: jsonLoader
-});
-src$2.defaultLoaders = defaultLoaders;
-function getOptions(name2, options2, sync2) {
-  const conf = {
-    stopDir: os$3.homedir(),
-    searchPlaces: getDefaultSearchPlaces(name2, sync2),
-    ignoreEmptySearchPlaces: true,
-    cache: true,
-    transform: (x) => x,
-    packageProp: [name2],
-    ...options2,
-    loaders: {
-      ...sync2 ? defaultLoadersSync : defaultLoaders,
-      ...options2.loaders
-    }
-  };
-  conf.searchPlaces.forEach((place) => {
-    const key = path$a.extname(place) || "noExt";
-    const loader = conf.loaders[key];
-    if (!loader) {
-      throw new Error(`Missing loader for extension "${place}"`);
-    }
-    if (typeof loader !== "function") {
-      throw new Error(
-        `Loader for extension "${place}" is not a function: Received ${typeof loader}.`
-      );
-    }
-  });
-  return conf;
-}
-function getPackageProp(props, obj) {
-  if (typeof props === "string" && props in obj) return obj[props];
-  return (Array.isArray(props) ? props : props.split(".")).reduce(
-    (acc, prop) => acc === void 0 ? acc : acc[prop],
-    obj
-  ) || null;
-}
-function validateFilePath(filepath) {
-  if (!filepath) throw new Error("load must pass a non-empty string");
-}
-function validateLoader(loader, ext2) {
-  if (!loader) throw new Error(`No loader specified for extension "${ext2}"`);
-  if (typeof loader !== "function") throw new Error("loader is not a function");
-}
-var makeEmplace = (enableCache) => (c, filepath, res) => {
-  if (enableCache) c.set(filepath, res);
-  return res;
-};
-src$2.lilconfig = function lilconfig(name2, options2) {
-  const {
-    ignoreEmptySearchPlaces,
-    loaders,
-    packageProp,
-    searchPlaces,
-    stopDir,
-    transform: transform2,
-    cache
-  } = getOptions(name2, options2 ?? {}, false);
-  const searchCache = /* @__PURE__ */ new Map();
-  const loadCache = /* @__PURE__ */ new Map();
-  const emplace = makeEmplace(cache);
-  return {
-    async search(searchFrom = process.cwd()) {
-      const result = {
-        config: null,
-        filepath: ""
-      };
-      const visited = /* @__PURE__ */ new Set();
-      let dir = searchFrom;
-      dirLoop: while (true) {
-        if (cache) {
-          const r2 = searchCache.get(dir);
-          if (r2 !== void 0) {
-            for (const p of visited) searchCache.set(p, r2);
-            return r2;
-          }
-          visited.add(dir);
-        }
-        for (const searchPlace of searchPlaces) {
-          const filepath = path$a.join(dir, searchPlace);
-          try {
-            await fs$a.promises.access(filepath);
-          } catch {
-            continue;
-          }
-          const content = String(await fsReadFileAsync(filepath));
-          const loaderKey = path$a.extname(searchPlace) || "noExt";
-          const loader = loaders[loaderKey];
-          if (searchPlace === "package.json") {
-            const pkg = await loader(filepath, content);
-            const maybeConfig = getPackageProp(packageProp, pkg);
-            if (maybeConfig != null) {
-              result.config = maybeConfig;
-              result.filepath = filepath;
-              break dirLoop;
-            }
-            continue;
-          }
-          const isEmpty2 = content.trim() === "";
-          if (isEmpty2 && ignoreEmptySearchPlaces) continue;
-          if (isEmpty2) {
-            result.isEmpty = true;
-            result.config = void 0;
-          } else {
-            validateLoader(loader, loaderKey);
-            result.config = await loader(filepath, content);
-          }
-          result.filepath = filepath;
-          break dirLoop;
-        }
-        if (dir === stopDir || dir === parentDir(dir)) break dirLoop;
-        dir = parentDir(dir);
-      }
-      const transformed = (
-        // not found
-        result.filepath === "" && result.config === null ? transform2(null) : transform2(result)
-      );
-      if (cache) {
-        for (const p of visited) searchCache.set(p, transformed);
-      }
-      return transformed;
-    },
-    async load(filepath) {
-      validateFilePath(filepath);
-      const absPath = path$a.resolve(process.cwd(), filepath);
-      if (cache && loadCache.has(absPath)) {
-        return loadCache.get(absPath);
-      }
-      const { base, ext: ext2 } = path$a.parse(absPath);
-      const loaderKey = ext2 || "noExt";
-      const loader = loaders[loaderKey];
-      validateLoader(loader, loaderKey);
-      const content = String(await fsReadFileAsync(absPath));
-      if (base === "package.json") {
-        const pkg = await loader(absPath, content);
-        return emplace(
-          loadCache,
-          absPath,
-          transform2({
-            config: getPackageProp(packageProp, pkg),
-            filepath: absPath
-          })
-        );
-      }
-      const result = {
-        config: null,
-        filepath: absPath
-      };
-      const isEmpty2 = content.trim() === "";
-      if (isEmpty2 && ignoreEmptySearchPlaces)
-        return emplace(
-          loadCache,
-          absPath,
-          transform2({
-            config: void 0,
-            filepath: absPath,
-            isEmpty: true
-          })
-        );
-      result.config = isEmpty2 ? void 0 : await loader(absPath, content);
-      return emplace(
-        loadCache,
-        absPath,
-        transform2(isEmpty2 ? { ...result, isEmpty: isEmpty2, config: void 0 } : result)
-      );
-    },
-    clearLoadCache() {
-      if (cache) loadCache.clear();
-    },
-    clearSearchCache() {
-      if (cache) searchCache.clear();
-    },
-    clearCaches() {
-      if (cache) {
-        loadCache.clear();
-        searchCache.clear();
-      }
-    }
-  };
-};
-src$2.lilconfigSync = function lilconfigSync(name2, options2) {
-  const {
-    ignoreEmptySearchPlaces,
-    loaders,
-    packageProp,
-    searchPlaces,
-    stopDir,
-    transform: transform2,
-    cache
-  } = getOptions(name2, options2 ?? {}, true);
-  const searchCache = /* @__PURE__ */ new Map();
-  const loadCache = /* @__PURE__ */ new Map();
-  const emplace = makeEmplace(cache);
-  return {
-    search(searchFrom = process.cwd()) {
-      const result = {
-        config: null,
-        filepath: ""
-      };
-      const visited = /* @__PURE__ */ new Set();
-      let dir = searchFrom;
-      dirLoop: while (true) {
-        if (cache) {
-          const r2 = searchCache.get(dir);
-          if (r2 !== void 0) {
-            for (const p of visited) searchCache.set(p, r2);
-            return r2;
-          }
-          visited.add(dir);
-        }
-        for (const searchPlace of searchPlaces) {
-          const filepath = path$a.join(dir, searchPlace);
-          try {
-            fs$a.accessSync(filepath);
-          } catch {
-            continue;
-          }
-          const loaderKey = path$a.extname(searchPlace) || "noExt";
-          const loader = loaders[loaderKey];
-          const content = String(fs$a.readFileSync(filepath));
-          if (searchPlace === "package.json") {
-            const pkg = loader(filepath, content);
-            const maybeConfig = getPackageProp(packageProp, pkg);
-            if (maybeConfig != null) {
-              result.config = maybeConfig;
-              result.filepath = filepath;
-              break dirLoop;
-            }
-            continue;
-          }
-          const isEmpty2 = content.trim() === "";
-          if (isEmpty2 && ignoreEmptySearchPlaces) continue;
-          if (isEmpty2) {
-            result.isEmpty = true;
-            result.config = void 0;
-          } else {
-            validateLoader(loader, loaderKey);
-            result.config = loader(filepath, content);
-          }
-          result.filepath = filepath;
-          break dirLoop;
-        }
-        if (dir === stopDir || dir === parentDir(dir)) break dirLoop;
-        dir = parentDir(dir);
-      }
-      const transformed = (
-        // not found
-        result.filepath === "" && result.config === null ? transform2(null) : transform2(result)
-      );
-      if (cache) {
-        for (const p of visited) searchCache.set(p, transformed);
-      }
-      return transformed;
-    },
-    load(filepath) {
-      validateFilePath(filepath);
-      const absPath = path$a.resolve(process.cwd(), filepath);
-      if (cache && loadCache.has(absPath)) {
-        return loadCache.get(absPath);
-      }
-      const { base, ext: ext2 } = path$a.parse(absPath);
-      const loaderKey = ext2 || "noExt";
-      const loader = loaders[loaderKey];
-      validateLoader(loader, loaderKey);
-      const content = String(fs$a.readFileSync(absPath));
-      if (base === "package.json") {
-        const pkg = loader(absPath, content);
-        return transform2({
-          config: getPackageProp(packageProp, pkg),
-          filepath: absPath
-        });
-      }
-      const result = {
-        config: null,
-        filepath: absPath
-      };
-      const isEmpty2 = content.trim() === "";
-      if (isEmpty2 && ignoreEmptySearchPlaces)
-        return emplace(
-          loadCache,
-          absPath,
-          transform2({
-            filepath: absPath,
-            config: void 0,
-            isEmpty: true
-          })
-        );
-      result.config = isEmpty2 ? void 0 : loader(absPath, content);
-      return emplace(
-        loadCache,
-        absPath,
-        transform2(isEmpty2 ? { ...result, isEmpty: isEmpty2, config: void 0 } : result)
-      );
-    },
-    clearLoadCache() {
-      if (cache) loadCache.clear();
-    },
-    clearSearchCache() {
-      if (cache) searchCache.clear();
-    },
-    clearCaches() {
-      if (cache) {
-        loadCache.clear();
-        searchCache.clear();
-      }
-    }
-  };
-};
-var ALIAS = Symbol.for("yaml.alias");
-var DOC = Symbol.for("yaml.document");
-var MAP = Symbol.for("yaml.map");
-var PAIR = Symbol.for("yaml.pair");
-var SCALAR$1 = Symbol.for("yaml.scalar");
-var SEQ = Symbol.for("yaml.seq");
-var NODE_TYPE = Symbol.for("yaml.node.type");
-var isAlias = (node2) => !!node2 && typeof node2 === "object" && node2[NODE_TYPE] === ALIAS;
-var isDocument = (node2) => !!node2 && typeof node2 === "object" && node2[NODE_TYPE] === DOC;
-var isMap = (node2) => !!node2 && typeof node2 === "object" && node2[NODE_TYPE] === MAP;
-var isPair = (node2) => !!node2 && typeof node2 === "object" && node2[NODE_TYPE] === PAIR;
-var isScalar$1 = (node2) => !!node2 && typeof node2 === "object" && node2[NODE_TYPE] === SCALAR$1;
-var isSeq = (node2) => !!node2 && typeof node2 === "object" && node2[NODE_TYPE] === SEQ;
-function isCollection$1(node2) {
-  if (node2 && typeof node2 === "object")
-    switch (node2[NODE_TYPE]) {
-      case MAP:
-      case SEQ:
-        return true;
-    }
-  return false;
-}
-function isNode$1(node2) {
-  if (node2 && typeof node2 === "object")
-    switch (node2[NODE_TYPE]) {
-      case ALIAS:
-      case MAP:
-      case SCALAR$1:
-      case SEQ:
-        return true;
-    }
-  return false;
-}
-var hasAnchor = (node2) => (isScalar$1(node2) || isCollection$1(node2)) && !!node2.anchor;
-var BREAK$1 = Symbol("break visit");
-var SKIP$1 = Symbol("skip children");
-var REMOVE$1 = Symbol("remove node");
-function visit$1(node2, visitor) {
-  const visitor_ = initVisitor(visitor);
-  if (isDocument(node2)) {
-    const cd = visit_(null, node2.contents, visitor_, Object.freeze([node2]));
-    if (cd === REMOVE$1)
-      node2.contents = null;
-  } else
-    visit_(null, node2, visitor_, Object.freeze([]));
-}
-visit$1.BREAK = BREAK$1;
-visit$1.SKIP = SKIP$1;
-visit$1.REMOVE = REMOVE$1;
-function visit_(key, node2, visitor, path3) {
-  const ctrl = callVisitor(key, node2, visitor, path3);
-  if (isNode$1(ctrl) || isPair(ctrl)) {
-    replaceNode(key, path3, ctrl);
-    return visit_(key, ctrl, visitor, path3);
-  }
-  if (typeof ctrl !== "symbol") {
-    if (isCollection$1(node2)) {
-      path3 = Object.freeze(path3.concat(node2));
-      for (let i = 0; i < node2.items.length; ++i) {
-        const ci = visit_(i, node2.items[i], visitor, path3);
-        if (typeof ci === "number")
-          i = ci - 1;
-        else if (ci === BREAK$1)
-          return BREAK$1;
-        else if (ci === REMOVE$1) {
-          node2.items.splice(i, 1);
-          i -= 1;
-        }
-      }
-    } else if (isPair(node2)) {
-      path3 = Object.freeze(path3.concat(node2));
-      const ck = visit_("key", node2.key, visitor, path3);
-      if (ck === BREAK$1)
-        return BREAK$1;
-      else if (ck === REMOVE$1)
-        node2.key = null;
-      const cv = visit_("value", node2.value, visitor, path3);
-      if (cv === BREAK$1)
-        return BREAK$1;
-      else if (cv === REMOVE$1)
-        node2.value = null;
-    }
-  }
-  return ctrl;
-}
-async function visitAsync(node2, visitor) {
-  const visitor_ = initVisitor(visitor);
-  if (isDocument(node2)) {
-    const cd = await visitAsync_(null, node2.contents, visitor_, Object.freeze([node2]));
-    if (cd === REMOVE$1)
-      node2.contents = null;
-  } else
-    await visitAsync_(null, node2, visitor_, Object.freeze([]));
-}
-visitAsync.BREAK = BREAK$1;
-visitAsync.SKIP = SKIP$1;
-visitAsync.REMOVE = REMOVE$1;
-async function visitAsync_(key, node2, visitor, path3) {
-  const ctrl = await callVisitor(key, node2, visitor, path3);
-  if (isNode$1(ctrl) || isPair(ctrl)) {
-    replaceNode(key, path3, ctrl);
-    return visitAsync_(key, ctrl, visitor, path3);
-  }
-  if (typeof ctrl !== "symbol") {
-    if (isCollection$1(node2)) {
-      path3 = Object.freeze(path3.concat(node2));
-      for (let i = 0; i < node2.items.length; ++i) {
-        const ci = await visitAsync_(i, node2.items[i], visitor, path3);
-        if (typeof ci === "number")
-          i = ci - 1;
-        else if (ci === BREAK$1)
-          return BREAK$1;
-        else if (ci === REMOVE$1) {
-          node2.items.splice(i, 1);
-          i -= 1;
-        }
-      }
-    } else if (isPair(node2)) {
-      path3 = Object.freeze(path3.concat(node2));
-      const ck = await visitAsync_("key", node2.key, visitor, path3);
-      if (ck === BREAK$1)
-        return BREAK$1;
-      else if (ck === REMOVE$1)
-        node2.key = null;
-      const cv = await visitAsync_("value", node2.value, visitor, path3);
-      if (cv === BREAK$1)
-        return BREAK$1;
-      else if (cv === REMOVE$1)
-        node2.value = null;
-    }
-  }
-  return ctrl;
-}
-function initVisitor(visitor) {
-  if (typeof visitor === "object" && (visitor.Collection || visitor.Node || visitor.Value)) {
-    return Object.assign({
-      Alias: visitor.Node,
-      Map: visitor.Node,
-      Scalar: visitor.Node,
-      Seq: visitor.Node
-    }, visitor.Value && {
-      Map: visitor.Value,
-      Scalar: visitor.Value,
-      Seq: visitor.Value
-    }, visitor.Collection && {
-      Map: visitor.Collection,
-      Seq: visitor.Collection
-    }, visitor);
-  }
-  return visitor;
-}
-function callVisitor(key, node2, visitor, path3) {
-  var _a4, _b3, _c2, _d2, _e2;
-  if (typeof visitor === "function")
-    return visitor(key, node2, path3);
-  if (isMap(node2))
-    return (_a4 = visitor.Map) == null ? void 0 : _a4.call(visitor, key, node2, path3);
-  if (isSeq(node2))
-    return (_b3 = visitor.Seq) == null ? void 0 : _b3.call(visitor, key, node2, path3);
-  if (isPair(node2))
-    return (_c2 = visitor.Pair) == null ? void 0 : _c2.call(visitor, key, node2, path3);
-  if (isScalar$1(node2))
-    return (_d2 = visitor.Scalar) == null ? void 0 : _d2.call(visitor, key, node2, path3);
-  if (isAlias(node2))
-    return (_e2 = visitor.Alias) == null ? void 0 : _e2.call(visitor, key, node2, path3);
-  return void 0;
-}
-function replaceNode(key, path3, node2) {
-  const parent = path3[path3.length - 1];
-  if (isCollection$1(parent)) {
-    parent.items[key] = node2;
-  } else if (isPair(parent)) {
-    if (key === "key")
-      parent.key = node2;
-    else
-      parent.value = node2;
-  } else if (isDocument(parent)) {
-    parent.contents = node2;
-  } else {
-    const pt = isAlias(parent) ? "alias" : "scalar";
-    throw new Error(`Cannot replace node with ${pt} parent`);
-  }
-}
-var escapeChars = {
-  "!": "%21",
-  ",": "%2C",
-  "[": "%5B",
-  "]": "%5D",
-  "{": "%7B",
-  "}": "%7D"
-};
-var escapeTagName = (tn) => tn.replace(/[!,[\]{}]/g, (ch) => escapeChars[ch]);
-var Directives = class _Directives {
-  constructor(yaml2, tags) {
-    this.docStart = null;
-    this.docEnd = false;
-    this.yaml = Object.assign({}, _Directives.defaultYaml, yaml2);
-    this.tags = Object.assign({}, _Directives.defaultTags, tags);
-  }
-  clone() {
-    const copy = new _Directives(this.yaml, this.tags);
-    copy.docStart = this.docStart;
-    return copy;
-  }
-  /**
-   * During parsing, get a Directives instance for the current document and
-   * update the stream state according to the current version's spec.
-   */
-  atDocument() {
-    const res = new _Directives(this.yaml, this.tags);
-    switch (this.yaml.version) {
-      case "1.1":
-        this.atNextDocument = true;
-        break;
-      case "1.2":
-        this.atNextDocument = false;
-        this.yaml = {
-          explicit: _Directives.defaultYaml.explicit,
-          version: "1.2"
-        };
-        this.tags = Object.assign({}, _Directives.defaultTags);
-        break;
-    }
-    return res;
-  }
-  /**
-   * @param onError - May be called even if the action was successful
-   * @returns `true` on success
-   */
-  add(line, onError2) {
-    if (this.atNextDocument) {
-      this.yaml = { explicit: _Directives.defaultYaml.explicit, version: "1.1" };
-      this.tags = Object.assign({}, _Directives.defaultTags);
-      this.atNextDocument = false;
-    }
-    const parts = line.trim().split(/[ \t]+/);
-    const name2 = parts.shift();
-    switch (name2) {
-      case "%TAG": {
-        if (parts.length !== 2) {
-          onError2(0, "%TAG directive should contain exactly two parts");
-          if (parts.length < 2)
-            return false;
-        }
-        const [handle2, prefix] = parts;
-        this.tags[handle2] = prefix;
-        return true;
-      }
-      case "%YAML": {
-        this.yaml.explicit = true;
-        if (parts.length !== 1) {
-          onError2(0, "%YAML directive should contain exactly one part");
-          return false;
-        }
-        const [version3] = parts;
-        if (version3 === "1.1" || version3 === "1.2") {
-          this.yaml.version = version3;
-          return true;
-        } else {
-          const isValid = /^\d+\.\d+$/.test(version3);
-          onError2(6, `Unsupported YAML version ${version3}`, isValid);
-          return false;
-        }
-      }
-      default:
-        onError2(0, `Unknown directive ${name2}`, true);
-        return false;
-    }
-  }
-  /**
-   * Resolves a tag, matching handles to those defined in %TAG directives.
-   *
-   * @returns Resolved tag, which may also be the non-specific tag `'!'` or a
-   *   `'!local'` tag, or `null` if unresolvable.
-   */
-  tagName(source, onError2) {
-    if (source === "!")
-      return "!";
-    if (source[0] !== "!") {
-      onError2(`Not a valid tag: ${source}`);
-      return null;
-    }
-    if (source[1] === "<") {
-      const verbatim = source.slice(2, -1);
-      if (verbatim === "!" || verbatim === "!!") {
-        onError2(`Verbatim tags aren't resolved, so ${source} is invalid.`);
-        return null;
-      }
-      if (source[source.length - 1] !== ">")
-        onError2("Verbatim tags must end with a >");
-      return verbatim;
-    }
-    const [, handle2, suffix] = source.match(/^(.*!)([^!]*)$/s);
-    if (!suffix)
-      onError2(`The ${source} tag has no suffix`);
-    const prefix = this.tags[handle2];
-    if (prefix) {
-      try {
-        return prefix + decodeURIComponent(suffix);
-      } catch (error2) {
-        onError2(String(error2));
-        return null;
-      }
-    }
-    if (handle2 === "!")
-      return source;
-    onError2(`Could not resolve tag: ${source}`);
-    return null;
-  }
-  /**
-   * Given a fully resolved tag, returns its printable string form,
-   * taking into account current tag prefixes and defaults.
-   */
-  tagString(tag) {
-    for (const [handle2, prefix] of Object.entries(this.tags)) {
-      if (tag.startsWith(prefix))
-        return handle2 + escapeTagName(tag.substring(prefix.length));
-    }
-    return tag[0] === "!" ? tag : `!<${tag}>`;
-  }
-  toString(doc) {
-    const lines = this.yaml.explicit ? [`%YAML ${this.yaml.version || "1.2"}`] : [];
-    const tagEntries = Object.entries(this.tags);
-    let tagNames;
-    if (doc && tagEntries.length > 0 && isNode$1(doc.contents)) {
-      const tags = {};
-      visit$1(doc.contents, (_key, node2) => {
-        if (isNode$1(node2) && node2.tag)
-          tags[node2.tag] = true;
-      });
-      tagNames = Object.keys(tags);
-    } else
-      tagNames = [];
-    for (const [handle2, prefix] of tagEntries) {
-      if (handle2 === "!!" && prefix === "tag:yaml.org,2002:")
-        continue;
-      if (!doc || tagNames.some((tn) => tn.startsWith(prefix)))
-        lines.push(`%TAG ${handle2} ${prefix}`);
-    }
-    return lines.join("\n");
-  }
-};
-Directives.defaultYaml = { explicit: false, version: "1.2" };
-Directives.defaultTags = { "!!": "tag:yaml.org,2002:" };
-function anchorIsValid(anchor) {
-  if (/[\x00-\x19\s,[\]{}]/.test(anchor)) {
-    const sa = JSON.stringify(anchor);
-    const msg = `Anchor must not contain whitespace or control characters: ${sa}`;
-    throw new Error(msg);
-  }
-  return true;
-}
-function anchorNames(root) {
-  const anchors = /* @__PURE__ */ new Set();
-  visit$1(root, {
-    Value(_key, node2) {
-      if (node2.anchor)
-        anchors.add(node2.anchor);
-    }
-  });
-  return anchors;
-}
-function findNewAnchor(prefix, exclude) {
-  for (let i = 1; true; ++i) {
-    const name2 = `${prefix}${i}`;
-    if (!exclude.has(name2))
-      return name2;
-  }
-}
-function createNodeAnchors(doc, prefix) {
-  const aliasObjects = [];
-  const sourceObjects = /* @__PURE__ */ new Map();
-  let prevAnchors = null;
-  return {
-    onAnchor: (source) => {
-      aliasObjects.push(source);
-      if (!prevAnchors)
-        prevAnchors = anchorNames(doc);
-      const anchor = findNewAnchor(prefix, prevAnchors);
-      prevAnchors.add(anchor);
-      return anchor;
-    },
-    /**
-     * With circular references, the source node is only resolved after all
-     * of its child nodes are. This is why anchors are set only after all of
-     * the nodes have been created.
-     */
-    setAnchors: () => {
-      for (const source of aliasObjects) {
-        const ref = sourceObjects.get(source);
-        if (typeof ref === "object" && ref.anchor && (isScalar$1(ref.node) || isCollection$1(ref.node))) {
-          ref.node.anchor = ref.anchor;
-        } else {
-          const error2 = new Error("Failed to resolve repeated object (this should not happen)");
-          error2.source = source;
-          throw error2;
-        }
-      }
-    },
-    sourceObjects
-  };
-}
-function applyReviver(reviver, obj, key, val) {
-  if (val && typeof val === "object") {
-    if (Array.isArray(val)) {
-      for (let i = 0, len = val.length; i < len; ++i) {
-        const v0 = val[i];
-        const v1 = applyReviver(reviver, val, String(i), v0);
-        if (v1 === void 0)
-          delete val[i];
-        else if (v1 !== v0)
-          val[i] = v1;
-      }
-    } else if (val instanceof Map) {
-      for (const k of Array.from(val.keys())) {
-        const v0 = val.get(k);
-        const v1 = applyReviver(reviver, val, k, v0);
-        if (v1 === void 0)
-          val.delete(k);
-        else if (v1 !== v0)
-          val.set(k, v1);
-      }
-    } else if (val instanceof Set) {
-      for (const v0 of Array.from(val)) {
-        const v1 = applyReviver(reviver, val, v0, v0);
-        if (v1 === void 0)
-          val.delete(v0);
-        else if (v1 !== v0) {
-          val.delete(v0);
-          val.add(v1);
-        }
-      }
-    } else {
-      for (const [k, v0] of Object.entries(val)) {
-        const v1 = applyReviver(reviver, val, k, v0);
-        if (v1 === void 0)
-          delete val[k];
-        else if (v1 !== v0)
-          val[k] = v1;
-      }
-    }
-  }
-  return reviver.call(obj, key, val);
-}
-function toJS(value2, arg, ctx) {
-  if (Array.isArray(value2))
-    return value2.map((v, i) => toJS(v, String(i), ctx));
-  if (value2 && typeof value2.toJSON === "function") {
-    if (!ctx || !hasAnchor(value2))
-      return value2.toJSON(arg, ctx);
-    const data = { aliasCount: 0, count: 1, res: void 0 };
-    ctx.anchors.set(value2, data);
-    ctx.onCreate = (res2) => {
-      data.res = res2;
-      delete ctx.onCreate;
-    };
-    const res = value2.toJSON(arg, ctx);
-    if (ctx.onCreate)
-      ctx.onCreate(res);
-    return res;
-  }
-  if (typeof value2 === "bigint" && !(ctx == null ? void 0 : ctx.keep))
-    return Number(value2);
-  return value2;
-}
-var NodeBase = class {
-  constructor(type) {
-    Object.defineProperty(this, NODE_TYPE, { value: type });
-  }
-  /** Create a copy of this node.  */
-  clone() {
-    const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));
-    if (this.range)
-      copy.range = this.range.slice();
-    return copy;
-  }
-  /** A plain JavaScript representation of this node. */
-  toJS(doc, { mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {
-    if (!isDocument(doc))
-      throw new TypeError("A document argument is required");
-    const ctx = {
-      anchors: /* @__PURE__ */ new Map(),
-      doc,
-      keep: true,
-      mapAsMap: mapAsMap === true,
-      mapKeyWarned: false,
-      maxAliasCount: typeof maxAliasCount === "number" ? maxAliasCount : 100
-    };
-    const res = toJS(this, "", ctx);
-    if (typeof onAnchor === "function")
-      for (const { count, res: res2 } of ctx.anchors.values())
-        onAnchor(res2, count);
-    return typeof reviver === "function" ? applyReviver(reviver, { "": res }, "", res) : res;
-  }
-};
-var Alias = class extends NodeBase {
-  constructor(source) {
-    super(ALIAS);
-    this.source = source;
-    Object.defineProperty(this, "tag", {
-      set() {
-        throw new Error("Alias nodes cannot have tags");
-      }
-    });
-  }
-  /**
-   * Resolve the value of this alias within `doc`, finding the last
-   * instance of the `source` anchor before this node.
-   */
-  resolve(doc) {
-    let found2 = void 0;
-    visit$1(doc, {
-      Node: (_key, node2) => {
-        if (node2 === this)
-          return visit$1.BREAK;
-        if (node2.anchor === this.source)
-          found2 = node2;
-      }
-    });
-    return found2;
-  }
-  toJSON(_arg, ctx) {
-    if (!ctx)
-      return { source: this.source };
-    const { anchors, doc, maxAliasCount } = ctx;
-    const source = this.resolve(doc);
-    if (!source) {
-      const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
-      throw new ReferenceError(msg);
-    }
-    let data = anchors.get(source);
-    if (!data) {
-      toJS(source, null, ctx);
-      data = anchors.get(source);
-    }
-    if (!data || data.res === void 0) {
-      const msg = "This should not happen: Alias anchor was not resolved?";
-      throw new ReferenceError(msg);
-    }
-    if (maxAliasCount >= 0) {
-      data.count += 1;
-      if (data.aliasCount === 0)
-        data.aliasCount = getAliasCount(doc, source, anchors);
-      if (data.count * data.aliasCount > maxAliasCount) {
-        const msg = "Excessive alias count indicates a resource exhaustion attack";
-        throw new ReferenceError(msg);
-      }
-    }
-    return data.res;
-  }
-  toString(ctx, _onComment, _onChompKeep) {
-    const src2 = `*${this.source}`;
-    if (ctx) {
-      anchorIsValid(this.source);
-      if (ctx.options.verifyAliasOrder && !ctx.anchors.has(this.source)) {
-        const msg = `Unresolved alias (the anchor must be set before the alias): ${this.source}`;
-        throw new Error(msg);
-      }
-      if (ctx.implicitKey)
-        return `${src2} `;
-    }
-    return src2;
-  }
-};
-function getAliasCount(doc, node2, anchors) {
-  if (isAlias(node2)) {
-    const source = node2.resolve(doc);
-    const anchor = anchors && source && anchors.get(source);
-    return anchor ? anchor.count * anchor.aliasCount : 0;
-  } else if (isCollection$1(node2)) {
-    let count = 0;
-    for (const item of node2.items) {
-      const c = getAliasCount(doc, item, anchors);
-      if (c > count)
-        count = c;
-    }
-    return count;
-  } else if (isPair(node2)) {
-    const kc = getAliasCount(doc, node2.key, anchors);
-    const vc = getAliasCount(doc, node2.value, anchors);
-    return Math.max(kc, vc);
-  }
-  return 1;
-}
-var isScalarValue = (value2) => !value2 || typeof value2 !== "function" && typeof value2 !== "object";
-var Scalar = class extends NodeBase {
-  constructor(value2) {
-    super(SCALAR$1);
-    this.value = value2;
-  }
-  toJSON(arg, ctx) {
-    return (ctx == null ? void 0 : ctx.keep) ? this.value : toJS(this.value, arg, ctx);
-  }
-  toString() {
-    return String(this.value);
-  }
-};
-Scalar.BLOCK_FOLDED = "BLOCK_FOLDED";
-Scalar.BLOCK_LITERAL = "BLOCK_LITERAL";
-Scalar.PLAIN = "PLAIN";
-Scalar.QUOTE_DOUBLE = "QUOTE_DOUBLE";
-Scalar.QUOTE_SINGLE = "QUOTE_SINGLE";
-var defaultTagPrefix = "tag:yaml.org,2002:";
-function findTagObject(value2, tagName, tags) {
-  if (tagName) {
-    const match2 = tags.filter((t2) => t2.tag === tagName);
-    const tagObj = match2.find((t2) => !t2.format) ?? match2[0];
-    if (!tagObj)
-      throw new Error(`Tag ${tagName} not found`);
-    return tagObj;
-  }
-  return tags.find((t2) => {
-    var _a4;
-    return ((_a4 = t2.identify) == null ? void 0 : _a4.call(t2, value2)) && !t2.format;
-  });
-}
-function createNode(value2, tagName, ctx) {
-  var _a4, _b3, _c2;
-  if (isDocument(value2))
-    value2 = value2.contents;
-  if (isNode$1(value2))
-    return value2;
-  if (isPair(value2)) {
-    const map2 = (_b3 = (_a4 = ctx.schema[MAP]).createNode) == null ? void 0 : _b3.call(_a4, ctx.schema, null, ctx);
-    map2.items.push(value2);
-    return map2;
-  }
-  if (value2 instanceof String || value2 instanceof Number || value2 instanceof Boolean || typeof BigInt !== "undefined" && value2 instanceof BigInt) {
-    value2 = value2.valueOf();
-  }
-  const { aliasDuplicateObjects, onAnchor, onTagObj, schema: schema2, sourceObjects } = ctx;
-  let ref = void 0;
-  if (aliasDuplicateObjects && value2 && typeof value2 === "object") {
-    ref = sourceObjects.get(value2);
-    if (ref) {
-      if (!ref.anchor)
-        ref.anchor = onAnchor(value2);
-      return new Alias(ref.anchor);
-    } else {
-      ref = { anchor: null, node: null };
-      sourceObjects.set(value2, ref);
-    }
-  }
-  if (tagName == null ? void 0 : tagName.startsWith("!!"))
-    tagName = defaultTagPrefix + tagName.slice(2);
-  let tagObj = findTagObject(value2, tagName, schema2.tags);
-  if (!tagObj) {
-    if (value2 && typeof value2.toJSON === "function") {
-      value2 = value2.toJSON();
-    }
-    if (!value2 || typeof value2 !== "object") {
-      const node3 = new Scalar(value2);
-      if (ref)
-        ref.node = node3;
-      return node3;
-    }
-    tagObj = value2 instanceof Map ? schema2[MAP] : Symbol.iterator in Object(value2) ? schema2[SEQ] : schema2[MAP];
-  }
-  if (onTagObj) {
-    onTagObj(tagObj);
-    delete ctx.onTagObj;
-  }
-  const node2 = (tagObj == null ? void 0 : tagObj.createNode) ? tagObj.createNode(ctx.schema, value2, ctx) : typeof ((_c2 = tagObj == null ? void 0 : tagObj.nodeClass) == null ? void 0 : _c2.from) === "function" ? tagObj.nodeClass.from(ctx.schema, value2, ctx) : new Scalar(value2);
-  if (tagName)
-    node2.tag = tagName;
-  else if (!tagObj.default)
-    node2.tag = tagObj.tag;
-  if (ref)
-    ref.node = node2;
-  return node2;
-}
-function collectionFromPath(schema2, path3, value2) {
-  let v = value2;
-  for (let i = path3.length - 1; i >= 0; --i) {
-    const k = path3[i];
-    if (typeof k === "number" && Number.isInteger(k) && k >= 0) {
-      const a = [];
-      a[k] = v;
-      v = a;
-    } else {
-      v = /* @__PURE__ */ new Map([[k, v]]);
-    }
-  }
-  return createNode(v, void 0, {
-    aliasDuplicateObjects: false,
-    keepUndefined: false,
-    onAnchor: () => {
-      throw new Error("This should not happen, please report a bug.");
-    },
-    schema: schema2,
-    sourceObjects: /* @__PURE__ */ new Map()
-  });
-}
-var isEmptyPath = (path3) => path3 == null || typeof path3 === "object" && !!path3[Symbol.iterator]().next().done;
-var Collection = class extends NodeBase {
-  constructor(type, schema2) {
-    super(type);
-    Object.defineProperty(this, "schema", {
-      value: schema2,
-      configurable: true,
-      enumerable: false,
-      writable: true
-    });
-  }
-  /**
-   * Create a copy of this collection.
-   *
-   * @param schema - If defined, overwrites the original's schema
-   */
-  clone(schema2) {
-    const copy = Object.create(Object.getPrototypeOf(this), Object.getOwnPropertyDescriptors(this));
-    if (schema2)
-      copy.schema = schema2;
-    copy.items = copy.items.map((it) => isNode$1(it) || isPair(it) ? it.clone(schema2) : it);
-    if (this.range)
-      copy.range = this.range.slice();
-    return copy;
-  }
-  /**
-   * Adds a value to the collection. For `!!map` and `!!omap` the value must
-   * be a Pair instance or a `{ key, value }` object, which may not have a key
-   * that already exists in the map.
-   */
-  addIn(path3, value2) {
-    if (isEmptyPath(path3))
-      this.add(value2);
-    else {
-      const [key, ...rest] = path3;
-      const node2 = this.get(key, true);
-      if (isCollection$1(node2))
-        node2.addIn(rest, value2);
-      else if (node2 === void 0 && this.schema)
-        this.set(key, collectionFromPath(this.schema, rest, value2));
-      else
-        throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
-    }
-  }
-  /**
-   * Removes a value from the collection.
-   * @returns `true` if the item was found and removed.
-   */
-  deleteIn(path3) {
-    const [key, ...rest] = path3;
-    if (rest.length === 0)
-      return this.delete(key);
-    const node2 = this.get(key, true);
-    if (isCollection$1(node2))
-      return node2.deleteIn(rest);
-    else
-      throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
-  }
-  /**
-   * Returns item at `key`, or `undefined` if not found. By default unwraps
-   * scalar values from their surrounding node; to disable set `keepScalar` to
-   * `true` (collections are always returned intact).
-   */
-  getIn(path3, keepScalar) {
-    const [key, ...rest] = path3;
-    const node2 = this.get(key, true);
-    if (rest.length === 0)
-      return !keepScalar && isScalar$1(node2) ? node2.value : node2;
-    else
-      return isCollection$1(node2) ? node2.getIn(rest, keepScalar) : void 0;
-  }
-  hasAllNullValues(allowScalar) {
-    return this.items.every((node2) => {
-      if (!isPair(node2))
-        return false;
-      const n2 = node2.value;
-      return n2 == null || allowScalar && isScalar$1(n2) && n2.value == null && !n2.commentBefore && !n2.comment && !n2.tag;
-    });
-  }
-  /**
-   * Checks if the collection includes a value with the key `key`.
-   */
-  hasIn(path3) {
-    const [key, ...rest] = path3;
-    if (rest.length === 0)
-      return this.has(key);
-    const node2 = this.get(key, true);
-    return isCollection$1(node2) ? node2.hasIn(rest) : false;
-  }
-  /**
-   * Sets a value in this collection. For `!!set`, `value` needs to be a
-   * boolean to add/remove the item from the set.
-   */
-  setIn(path3, value2) {
-    const [key, ...rest] = path3;
-    if (rest.length === 0) {
-      this.set(key, value2);
-    } else {
-      const node2 = this.get(key, true);
-      if (isCollection$1(node2))
-        node2.setIn(rest, value2);
-      else if (node2 === void 0 && this.schema)
-        this.set(key, collectionFromPath(this.schema, rest, value2));
-      else
-        throw new Error(`Expected YAML collection at ${key}. Remaining path: ${rest}`);
-    }
-  }
-};
-Collection.maxFlowStringSingleLineLength = 60;
-var stringifyComment = (str) => str.replace(/^(?!$)(?: $)?/gm, "#");
-function indentComment(comment, indent) {
-  if (/^\n+$/.test(comment))
-    return comment.substring(1);
-  return indent ? comment.replace(/^(?! *$)/gm, indent) : comment;
-}
-var lineComment = (str, indent, comment) => str.endsWith("\n") ? indentComment(comment, indent) : comment.includes("\n") ? "\n" + indentComment(comment, indent) : (str.endsWith(" ") ? "" : " ") + comment;
-var FOLD_FLOW = "flow";
-var FOLD_BLOCK = "block";
-var FOLD_QUOTED = "quoted";
-function foldFlowLines(text, indent, mode2 = "flow", { indentAtStart, lineWidth = 80, minContentWidth = 20, onFold, onOverflow } = {}) {
-  if (!lineWidth || lineWidth < 0)
-    return text;
-  const endStep = Math.max(1 + minContentWidth, 1 + lineWidth - indent.length);
-  if (text.length <= endStep)
-    return text;
-  const folds = [];
-  const escapedFolds = {};
-  let end = lineWidth - indent.length;
-  if (typeof indentAtStart === "number") {
-    if (indentAtStart > lineWidth - Math.max(2, minContentWidth))
-      folds.push(0);
-    else
-      end = lineWidth - indentAtStart;
-  }
-  let split = void 0;
-  let prev = void 0;
-  let overflow = false;
-  let i = -1;
-  let escStart = -1;
-  let escEnd = -1;
-  if (mode2 === FOLD_BLOCK) {
-    i = consumeMoreIndentedLines(text, i, indent.length);
-    if (i !== -1)
-      end = i + endStep;
-  }
-  for (let ch; ch = text[i += 1]; ) {
-    if (mode2 === FOLD_QUOTED && ch === "\\") {
-      escStart = i;
-      switch (text[i + 1]) {
-        case "x":
-          i += 3;
-          break;
-        case "u":
-          i += 5;
-          break;
-        case "U":
-          i += 9;
-          break;
-        default:
-          i += 1;
-      }
-      escEnd = i;
-    }
-    if (ch === "\n") {
-      if (mode2 === FOLD_BLOCK)
-        i = consumeMoreIndentedLines(text, i, indent.length);
-      end = i + indent.length + endStep;
-      split = void 0;
-    } else {
-      if (ch === " " && prev && prev !== " " && prev !== "\n" && prev !== "	") {
-        const next = text[i + 1];
-        if (next && next !== " " && next !== "\n" && next !== "	")
-          split = i;
-      }
-      if (i >= end) {
-        if (split) {
-          folds.push(split);
-          end = split + endStep;
-          split = void 0;
-        } else if (mode2 === FOLD_QUOTED) {
-          while (prev === " " || prev === "	") {
-            prev = ch;
-            ch = text[i += 1];
-            overflow = true;
-          }
-          const j = i > escEnd + 1 ? i - 2 : escStart - 1;
-          if (escapedFolds[j])
-            return text;
-          folds.push(j);
-          escapedFolds[j] = true;
-          end = j + endStep;
-          split = void 0;
-        } else {
-          overflow = true;
-        }
-      }
-    }
-    prev = ch;
-  }
-  if (overflow && onOverflow)
-    onOverflow();
-  if (folds.length === 0)
-    return text;
-  if (onFold)
-    onFold();
-  let res = text.slice(0, folds[0]);
-  for (let i2 = 0; i2 < folds.length; ++i2) {
-    const fold = folds[i2];
-    const end2 = folds[i2 + 1] || text.length;
-    if (fold === 0)
-      res = `
-${indent}${text.slice(0, end2)}`;
-    else {
-      if (mode2 === FOLD_QUOTED && escapedFolds[fold])
-        res += `${text[fold]}\\`;
-      res += `
-${indent}${text.slice(fold + 1, end2)}`;
-    }
-  }
-  return res;
-}
-function consumeMoreIndentedLines(text, i, indent) {
-  let end = i;
-  let start = i + 1;
-  let ch = text[start];
-  while (ch === " " || ch === "	") {
-    if (i < start + indent) {
-      ch = text[++i];
-    } else {
-      do {
-        ch = text[++i];
-      } while (ch && ch !== "\n");
-      end = i;
-      start = i + 1;
-      ch = text[start];
-    }
-  }
-  return end;
-}
-var getFoldOptions = (ctx, isBlock2) => ({
-  indentAtStart: isBlock2 ? ctx.indent.length : ctx.indentAtStart,
-  lineWidth: ctx.options.lineWidth,
-  minContentWidth: ctx.options.minContentWidth
-});
-var containsDocumentMarker = (str) => /^(%|---|\.\.\.)/m.test(str);
-function lineLengthOverLimit(str, lineWidth, indentLength) {
-  if (!lineWidth || lineWidth < 0)
-    return false;
-  const limit = lineWidth - indentLength;
-  const strLen = str.length;
-  if (strLen <= limit)
-    return false;
-  for (let i = 0, start = 0; i < strLen; ++i) {
-    if (str[i] === "\n") {
-      if (i - start > limit)
-        return true;
-      start = i + 1;
-      if (strLen - start <= limit)
-        return false;
-    }
-  }
-  return true;
-}
-function doubleQuotedString(value2, ctx) {
-  const json = JSON.stringify(value2);
-  if (ctx.options.doubleQuotedAsJSON)
-    return json;
-  const { implicitKey } = ctx;
-  const minMultiLineLength = ctx.options.doubleQuotedMinMultiLineLength;
-  const indent = ctx.indent || (containsDocumentMarker(value2) ? "  " : "");
-  let str = "";
-  let start = 0;
-  for (let i = 0, ch = json[i]; ch; ch = json[++i]) {
-    if (ch === " " && json[i + 1] === "\\" && json[i + 2] === "n") {
-      str += json.slice(start, i) + "\\ ";
-      i += 1;
-      start = i;
-      ch = "\\";
-    }
-    if (ch === "\\")
-      switch (json[i + 1]) {
-        case "u":
-          {
-            str += json.slice(start, i);
-            const code = json.substr(i + 2, 4);
-            switch (code) {
-              case "0000":
-                str += "\\0";
-                break;
-              case "0007":
-                str += "\\a";
-                break;
-              case "000b":
-                str += "\\v";
-                break;
-              case "001b":
-                str += "\\e";
-                break;
-              case "0085":
-                str += "\\N";
-                break;
-              case "00a0":
-                str += "\\_";
-                break;
-              case "2028":
-                str += "\\L";
-                break;
-              case "2029":
-                str += "\\P";
-                break;
-              default:
-                if (code.substr(0, 2) === "00")
-                  str += "\\x" + code.substr(2);
-                else
-                  str += json.substr(i, 6);
-            }
-            i += 5;
-            start = i + 1;
-          }
-          break;
-        case "n":
-          if (implicitKey || json[i + 2] === '"' || json.length < minMultiLineLength) {
-            i += 1;
-          } else {
-            str += json.slice(start, i) + "\n\n";
-            while (json[i + 2] === "\\" && json[i + 3] === "n" && json[i + 4] !== '"') {
-              str += "\n";
-              i += 2;
-            }
-            str += indent;
-            if (json[i + 2] === " ")
-              str += "\\";
-            i += 1;
-            start = i + 1;
-          }
-          break;
-        default:
-          i += 1;
-      }
-  }
-  str = start ? str + json.slice(start) : json;
-  return implicitKey ? str : foldFlowLines(str, indent, FOLD_QUOTED, getFoldOptions(ctx, false));
-}
-function singleQuotedString(value2, ctx) {
-  if (ctx.options.singleQuote === false || ctx.implicitKey && value2.includes("\n") || /[ \t]\n|\n[ \t]/.test(value2))
-    return doubleQuotedString(value2, ctx);
-  const indent = ctx.indent || (containsDocumentMarker(value2) ? "  " : "");
-  const res = "'" + value2.replace(/'/g, "''").replace(/\n+/g, `$&
-${indent}`) + "'";
-  return ctx.implicitKey ? res : foldFlowLines(res, indent, FOLD_FLOW, getFoldOptions(ctx, false));
-}
-function quotedString(value2, ctx) {
-  const { singleQuote } = ctx.options;
-  let qs2;
-  if (singleQuote === false)
-    qs2 = doubleQuotedString;
-  else {
-    const hasDouble = value2.includes('"');
-    const hasSingle = value2.includes("'");
-    if (hasDouble && !hasSingle)
-      qs2 = singleQuotedString;
-    else if (hasSingle && !hasDouble)
-      qs2 = doubleQuotedString;
-    else
-      qs2 = singleQuote ? singleQuotedString : doubleQuotedString;
-  }
-  return qs2(value2, ctx);
-}
-var blockEndNewlines;
-try {
-  blockEndNewlines = new RegExp("(^|(?\n";
-  let chomp;
-  let endStart;
-  for (endStart = value2.length; endStart > 0; --endStart) {
-    const ch = value2[endStart - 1];
-    if (ch !== "\n" && ch !== "	" && ch !== " ")
-      break;
-  }
-  let end = value2.substring(endStart);
-  const endNlPos = end.indexOf("\n");
-  if (endNlPos === -1) {
-    chomp = "-";
-  } else if (value2 === end || endNlPos !== end.length - 1) {
-    chomp = "+";
-    if (onChompKeep)
-      onChompKeep();
-  } else {
-    chomp = "";
-  }
-  if (end) {
-    value2 = value2.slice(0, -end.length);
-    if (end[end.length - 1] === "\n")
-      end = end.slice(0, -1);
-    end = end.replace(blockEndNewlines, `$&${indent}`);
-  }
-  let startWithSpace = false;
-  let startEnd;
-  let startNlPos = -1;
-  for (startEnd = 0; startEnd < value2.length; ++startEnd) {
-    const ch = value2[startEnd];
-    if (ch === " ")
-      startWithSpace = true;
-    else if (ch === "\n")
-      startNlPos = startEnd;
-    else
-      break;
-  }
-  let start = value2.substring(0, startNlPos < startEnd ? startNlPos + 1 : startEnd);
-  if (start) {
-    value2 = value2.substring(start.length);
-    start = start.replace(/\n+/g, `$&${indent}`);
-  }
-  const indentSize = indent ? "2" : "1";
-  let header = (literal ? "|" : ">") + (startWithSpace ? indentSize : "") + chomp;
-  if (comment) {
-    header += " " + commentString(comment.replace(/ ?[\r\n]+/g, " "));
-    if (onComment)
-      onComment();
-  }
-  if (literal) {
-    value2 = value2.replace(/\n+/g, `$&${indent}`);
-    return `${header}
-${indent}${start}${value2}${end}`;
-  }
-  value2 = value2.replace(/\n+/g, "\n$&").replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g, "$1$2").replace(/\n+/g, `$&${indent}`);
-  const body = foldFlowLines(`${start}${value2}${end}`, indent, FOLD_BLOCK, getFoldOptions(ctx, true));
-  return `${header}
-${indent}${body}`;
-}
-function plainString(item, ctx, onComment, onChompKeep) {
-  const { type, value: value2 } = item;
-  const { actualString, implicitKey, indent, indentStep, inFlow } = ctx;
-  if (implicitKey && value2.includes("\n") || inFlow && /[[\]{},]/.test(value2)) {
-    return quotedString(value2, ctx);
-  }
-  if (!value2 || /^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(value2)) {
-    return implicitKey || inFlow || !value2.includes("\n") ? quotedString(value2, ctx) : blockString(item, ctx, onComment, onChompKeep);
-  }
-  if (!implicitKey && !inFlow && type !== Scalar.PLAIN && value2.includes("\n")) {
-    return blockString(item, ctx, onComment, onChompKeep);
-  }
-  if (containsDocumentMarker(value2)) {
-    if (indent === "") {
-      ctx.forceBlockIndent = true;
-      return blockString(item, ctx, onComment, onChompKeep);
-    } else if (implicitKey && indent === indentStep) {
-      return quotedString(value2, ctx);
-    }
-  }
-  const str = value2.replace(/\n+/g, `$&
-${indent}`);
-  if (actualString) {
-    const test = (tag) => {
-      var _a4;
-      return tag.default && tag.tag !== "tag:yaml.org,2002:str" && ((_a4 = tag.test) == null ? void 0 : _a4.test(str));
-    };
-    const { compat, tags } = ctx.doc.schema;
-    if (tags.some(test) || (compat == null ? void 0 : compat.some(test)))
-      return quotedString(value2, ctx);
-  }
-  return implicitKey ? str : foldFlowLines(str, indent, FOLD_FLOW, getFoldOptions(ctx, false));
-}
-function stringifyString(item, ctx, onComment, onChompKeep) {
-  const { implicitKey, inFlow } = ctx;
-  const ss = typeof item.value === "string" ? item : Object.assign({}, item, { value: String(item.value) });
-  let { type } = item;
-  if (type !== Scalar.QUOTE_DOUBLE) {
-    if (/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(ss.value))
-      type = Scalar.QUOTE_DOUBLE;
-  }
-  const _stringify = (_type2) => {
-    switch (_type2) {
-      case Scalar.BLOCK_FOLDED:
-      case Scalar.BLOCK_LITERAL:
-        return implicitKey || inFlow ? quotedString(ss.value, ctx) : blockString(ss, ctx, onComment, onChompKeep);
-      case Scalar.QUOTE_DOUBLE:
-        return doubleQuotedString(ss.value, ctx);
-      case Scalar.QUOTE_SINGLE:
-        return singleQuotedString(ss.value, ctx);
-      case Scalar.PLAIN:
-        return plainString(ss, ctx, onComment, onChompKeep);
-      default:
-        return null;
-    }
-  };
-  let res = _stringify(type);
-  if (res === null) {
-    const { defaultKeyType, defaultStringType } = ctx.options;
-    const t2 = implicitKey && defaultKeyType || defaultStringType;
-    res = _stringify(t2);
-    if (res === null)
-      throw new Error(`Unsupported default string type ${t2}`);
-  }
-  return res;
-}
-function createStringifyContext(doc, options2) {
-  const opt = Object.assign({
-    blockQuote: true,
-    commentString: stringifyComment,
-    defaultKeyType: null,
-    defaultStringType: "PLAIN",
-    directives: null,
-    doubleQuotedAsJSON: false,
-    doubleQuotedMinMultiLineLength: 40,
-    falseStr: "false",
-    flowCollectionPadding: true,
-    indentSeq: true,
-    lineWidth: 80,
-    minContentWidth: 20,
-    nullStr: "null",
-    simpleKeys: false,
-    singleQuote: null,
-    trueStr: "true",
-    verifyAliasOrder: true
-  }, doc.schema.toStringOptions, options2);
-  let inFlow;
-  switch (opt.collectionStyle) {
-    case "block":
-      inFlow = false;
-      break;
-    case "flow":
-      inFlow = true;
-      break;
-    default:
-      inFlow = null;
-  }
-  return {
-    anchors: /* @__PURE__ */ new Set(),
-    doc,
-    flowCollectionPadding: opt.flowCollectionPadding ? " " : "",
-    indent: "",
-    indentStep: typeof opt.indent === "number" ? " ".repeat(opt.indent) : "  ",
-    inFlow,
-    options: opt
-  };
-}
-function getTagObject(tags, item) {
-  var _a4;
-  if (item.tag) {
-    const match2 = tags.filter((t2) => t2.tag === item.tag);
-    if (match2.length > 0)
-      return match2.find((t2) => t2.format === item.format) ?? match2[0];
-  }
-  let tagObj = void 0;
-  let obj;
-  if (isScalar$1(item)) {
-    obj = item.value;
-    const match2 = tags.filter((t2) => {
-      var _a5;
-      return (_a5 = t2.identify) == null ? void 0 : _a5.call(t2, obj);
-    });
-    tagObj = match2.find((t2) => t2.format === item.format) ?? match2.find((t2) => !t2.format);
-  } else {
-    obj = item;
-    tagObj = tags.find((t2) => t2.nodeClass && obj instanceof t2.nodeClass);
-  }
-  if (!tagObj) {
-    const name2 = ((_a4 = obj == null ? void 0 : obj.constructor) == null ? void 0 : _a4.name) ?? typeof obj;
-    throw new Error(`Tag not resolved for ${name2} value`);
-  }
-  return tagObj;
-}
-function stringifyProps(node2, tagObj, { anchors, doc }) {
-  if (!doc.directives)
-    return "";
-  const props = [];
-  const anchor = (isScalar$1(node2) || isCollection$1(node2)) && node2.anchor;
-  if (anchor && anchorIsValid(anchor)) {
-    anchors.add(anchor);
-    props.push(`&${anchor}`);
-  }
-  const tag = node2.tag ? node2.tag : tagObj.default ? null : tagObj.tag;
-  if (tag)
-    props.push(doc.directives.tagString(tag));
-  return props.join(" ");
-}
-function stringify$2(item, ctx, onComment, onChompKeep) {
-  var _a4;
-  if (isPair(item))
-    return item.toString(ctx, onComment, onChompKeep);
-  if (isAlias(item)) {
-    if (ctx.doc.directives)
-      return item.toString(ctx);
-    if ((_a4 = ctx.resolvedAliases) == null ? void 0 : _a4.has(item)) {
-      throw new TypeError(`Cannot stringify circular structure without alias nodes`);
-    } else {
-      if (ctx.resolvedAliases)
-        ctx.resolvedAliases.add(item);
-      else
-        ctx.resolvedAliases = /* @__PURE__ */ new Set([item]);
-      item = item.resolve(ctx.doc);
-    }
-  }
-  let tagObj = void 0;
-  const node2 = isNode$1(item) ? item : ctx.doc.createNode(item, { onTagObj: (o2) => tagObj = o2 });
-  if (!tagObj)
-    tagObj = getTagObject(ctx.doc.schema.tags, node2);
-  const props = stringifyProps(node2, tagObj, ctx);
-  if (props.length > 0)
-    ctx.indentAtStart = (ctx.indentAtStart ?? 0) + props.length + 1;
-  const str = typeof tagObj.stringify === "function" ? tagObj.stringify(node2, ctx, onComment, onChompKeep) : isScalar$1(node2) ? stringifyString(node2, ctx, onComment, onChompKeep) : node2.toString(ctx, onComment, onChompKeep);
-  if (!props)
-    return str;
-  return isScalar$1(node2) || str[0] === "{" || str[0] === "[" ? `${props} ${str}` : `${props}
-${ctx.indent}${str}`;
-}
-function stringifyPair({ key, value: value2 }, ctx, onComment, onChompKeep) {
-  const { allNullValues, doc, indent, indentStep, options: { commentString, indentSeq, simpleKeys } } = ctx;
-  let keyComment = isNode$1(key) && key.comment || null;
-  if (simpleKeys) {
-    if (keyComment) {
-      throw new Error("With simple keys, key nodes cannot have comments");
-    }
-    if (isCollection$1(key) || !isNode$1(key) && typeof key === "object") {
-      const msg = "With simple keys, collection cannot be used as a key value";
-      throw new Error(msg);
-    }
-  }
-  let explicitKey = !simpleKeys && (!key || keyComment && value2 == null && !ctx.inFlow || isCollection$1(key) || (isScalar$1(key) ? key.type === Scalar.BLOCK_FOLDED || key.type === Scalar.BLOCK_LITERAL : typeof key === "object"));
-  ctx = Object.assign({}, ctx, {
-    allNullValues: false,
-    implicitKey: !explicitKey && (simpleKeys || !allNullValues),
-    indent: indent + indentStep
-  });
-  let keyCommentDone = false;
-  let chompKeep = false;
-  let str = stringify$2(key, ctx, () => keyCommentDone = true, () => chompKeep = true);
-  if (!explicitKey && !ctx.inFlow && str.length > 1024) {
-    if (simpleKeys)
-      throw new Error("With simple keys, single line scalar must not span more than 1024 characters");
-    explicitKey = true;
-  }
-  if (ctx.inFlow) {
-    if (allNullValues || value2 == null) {
-      if (keyCommentDone && onComment)
-        onComment();
-      return str === "" ? "?" : explicitKey ? `? ${str}` : str;
-    }
-  } else if (allNullValues && !simpleKeys || value2 == null && explicitKey) {
-    str = `? ${str}`;
-    if (keyComment && !keyCommentDone) {
-      str += lineComment(str, ctx.indent, commentString(keyComment));
-    } else if (chompKeep && onChompKeep)
-      onChompKeep();
-    return str;
-  }
-  if (keyCommentDone)
-    keyComment = null;
-  if (explicitKey) {
-    if (keyComment)
-      str += lineComment(str, ctx.indent, commentString(keyComment));
-    str = `? ${str}
-${indent}:`;
-  } else {
-    str = `${str}:`;
-    if (keyComment)
-      str += lineComment(str, ctx.indent, commentString(keyComment));
-  }
-  let vsb, vcb, valueComment;
-  if (isNode$1(value2)) {
-    vsb = !!value2.spaceBefore;
-    vcb = value2.commentBefore;
-    valueComment = value2.comment;
-  } else {
-    vsb = false;
-    vcb = null;
-    valueComment = null;
-    if (value2 && typeof value2 === "object")
-      value2 = doc.createNode(value2);
-  }
-  ctx.implicitKey = false;
-  if (!explicitKey && !keyComment && isScalar$1(value2))
-    ctx.indentAtStart = str.length + 1;
-  chompKeep = false;
-  if (!indentSeq && indentStep.length >= 2 && !ctx.inFlow && !explicitKey && isSeq(value2) && !value2.flow && !value2.tag && !value2.anchor) {
-    ctx.indent = ctx.indent.substring(2);
-  }
-  let valueCommentDone = false;
-  const valueStr = stringify$2(value2, ctx, () => valueCommentDone = true, () => chompKeep = true);
-  let ws = " ";
-  if (keyComment || vsb || vcb) {
-    ws = vsb ? "\n" : "";
-    if (vcb) {
-      const cs = commentString(vcb);
-      ws += `
-${indentComment(cs, ctx.indent)}`;
-    }
-    if (valueStr === "" && !ctx.inFlow) {
-      if (ws === "\n")
-        ws = "\n\n";
-    } else {
-      ws += `
-${ctx.indent}`;
-    }
-  } else if (!explicitKey && isCollection$1(value2)) {
-    const vs0 = valueStr[0];
-    const nl0 = valueStr.indexOf("\n");
-    const hasNewline = nl0 !== -1;
-    const flow = ctx.inFlow ?? value2.flow ?? value2.items.length === 0;
-    if (hasNewline || !flow) {
-      let hasPropsLine = false;
-      if (hasNewline && (vs0 === "&" || vs0 === "!")) {
-        let sp0 = valueStr.indexOf(" ");
-        if (vs0 === "&" && sp0 !== -1 && sp0 < nl0 && valueStr[sp0 + 1] === "!") {
-          sp0 = valueStr.indexOf(" ", sp0 + 1);
-        }
-        if (sp0 === -1 || nl0 < sp0)
-          hasPropsLine = true;
-      }
-      if (!hasPropsLine)
-        ws = `
-${ctx.indent}`;
-    }
-  } else if (valueStr === "" || valueStr[0] === "\n") {
-    ws = "";
-  }
-  str += ws + valueStr;
-  if (ctx.inFlow) {
-    if (valueCommentDone && onComment)
-      onComment();
-  } else if (valueComment && !valueCommentDone) {
-    str += lineComment(str, ctx.indent, commentString(valueComment));
-  } else if (chompKeep && onChompKeep) {
-    onChompKeep();
-  }
-  return str;
-}
-function warn(logLevel, warning) {
-  if (logLevel === "debug" || logLevel === "warn") {
-    if (typeof process !== "undefined" && process.emitWarning)
-      process.emitWarning(warning);
-    else
-      console.warn(warning);
-  }
-}
-var MERGE_KEY = "<<";
-function addPairToJSMap(ctx, map2, { key, value: value2 }) {
-  if ((ctx == null ? void 0 : ctx.doc.schema.merge) && isMergeKey(key)) {
-    value2 = isAlias(value2) ? value2.resolve(ctx.doc) : value2;
-    if (isSeq(value2))
-      for (const it of value2.items)
-        mergeToJSMap(ctx, map2, it);
-    else if (Array.isArray(value2))
-      for (const it of value2)
-        mergeToJSMap(ctx, map2, it);
-    else
-      mergeToJSMap(ctx, map2, value2);
-  } else {
-    const jsKey = toJS(key, "", ctx);
-    if (map2 instanceof Map) {
-      map2.set(jsKey, toJS(value2, jsKey, ctx));
-    } else if (map2 instanceof Set) {
-      map2.add(jsKey);
-    } else {
-      const stringKey = stringifyKey(key, jsKey, ctx);
-      const jsValue = toJS(value2, stringKey, ctx);
-      if (stringKey in map2)
-        Object.defineProperty(map2, stringKey, {
-          value: jsValue,
-          writable: true,
-          enumerable: true,
-          configurable: true
-        });
-      else
-        map2[stringKey] = jsValue;
-    }
-  }
-  return map2;
-}
-var isMergeKey = (key) => key === MERGE_KEY || isScalar$1(key) && key.value === MERGE_KEY && (!key.type || key.type === Scalar.PLAIN);
-function mergeToJSMap(ctx, map2, value2) {
-  const source = ctx && isAlias(value2) ? value2.resolve(ctx.doc) : value2;
-  if (!isMap(source))
-    throw new Error("Merge sources must be maps or map aliases");
-  const srcMap = source.toJSON(null, ctx, Map);
-  for (const [key, value3] of srcMap) {
-    if (map2 instanceof Map) {
-      if (!map2.has(key))
-        map2.set(key, value3);
-    } else if (map2 instanceof Set) {
-      map2.add(key);
-    } else if (!Object.prototype.hasOwnProperty.call(map2, key)) {
-      Object.defineProperty(map2, key, {
-        value: value3,
-        writable: true,
-        enumerable: true,
-        configurable: true
-      });
-    }
-  }
-  return map2;
-}
-function stringifyKey(key, jsKey, ctx) {
-  if (jsKey === null)
-    return "";
-  if (typeof jsKey !== "object")
-    return String(jsKey);
-  if (isNode$1(key) && (ctx == null ? void 0 : ctx.doc)) {
-    const strCtx = createStringifyContext(ctx.doc, {});
-    strCtx.anchors = /* @__PURE__ */ new Set();
-    for (const node2 of ctx.anchors.keys())
-      strCtx.anchors.add(node2.anchor);
-    strCtx.inFlow = true;
-    strCtx.inStringifyKey = true;
-    const strKey = key.toString(strCtx);
-    if (!ctx.mapKeyWarned) {
-      let jsonStr = JSON.stringify(strKey);
-      if (jsonStr.length > 40)
-        jsonStr = jsonStr.substring(0, 36) + '..."';
-      warn(ctx.doc.options.logLevel, `Keys with collection values will be stringified due to JS Object restrictions: ${jsonStr}. Set mapAsMap: true to use object keys.`);
-      ctx.mapKeyWarned = true;
-    }
-    return strKey;
-  }
-  return JSON.stringify(jsKey);
-}
-function createPair(key, value2, ctx) {
-  const k = createNode(key, void 0, ctx);
-  const v = createNode(value2, void 0, ctx);
-  return new Pair(k, v);
-}
-var Pair = class _Pair {
-  constructor(key, value2 = null) {
-    Object.defineProperty(this, NODE_TYPE, { value: PAIR });
-    this.key = key;
-    this.value = value2;
-  }
-  clone(schema2) {
-    let { key, value: value2 } = this;
-    if (isNode$1(key))
-      key = key.clone(schema2);
-    if (isNode$1(value2))
-      value2 = value2.clone(schema2);
-    return new _Pair(key, value2);
-  }
-  toJSON(_, ctx) {
-    const pair = (ctx == null ? void 0 : ctx.mapAsMap) ? /* @__PURE__ */ new Map() : {};
-    return addPairToJSMap(ctx, pair, this);
-  }
-  toString(ctx, onComment, onChompKeep) {
-    return (ctx == null ? void 0 : ctx.doc) ? stringifyPair(this, ctx, onComment, onChompKeep) : JSON.stringify(this);
-  }
-};
-function stringifyCollection(collection, ctx, options2) {
-  const flow = ctx.inFlow ?? collection.flow;
-  const stringify2 = flow ? stringifyFlowCollection : stringifyBlockCollection;
-  return stringify2(collection, ctx, options2);
-}
-function stringifyBlockCollection({ comment, items }, ctx, { blockItemPrefix, flowChars, itemIndent, onChompKeep, onComment }) {
-  const { indent, options: { commentString } } = ctx;
-  const itemCtx = Object.assign({}, ctx, { indent: itemIndent, type: null });
-  let chompKeep = false;
-  const lines = [];
-  for (let i = 0; i < items.length; ++i) {
-    const item = items[i];
-    let comment2 = null;
-    if (isNode$1(item)) {
-      if (!chompKeep && item.spaceBefore)
-        lines.push("");
-      addCommentBefore(ctx, lines, item.commentBefore, chompKeep);
-      if (item.comment)
-        comment2 = item.comment;
-    } else if (isPair(item)) {
-      const ik = isNode$1(item.key) ? item.key : null;
-      if (ik) {
-        if (!chompKeep && ik.spaceBefore)
-          lines.push("");
-        addCommentBefore(ctx, lines, ik.commentBefore, chompKeep);
-      }
-    }
-    chompKeep = false;
-    let str2 = stringify$2(item, itemCtx, () => comment2 = null, () => chompKeep = true);
-    if (comment2)
-      str2 += lineComment(str2, itemIndent, commentString(comment2));
-    if (chompKeep && comment2)
-      chompKeep = false;
-    lines.push(blockItemPrefix + str2);
-  }
-  let str;
-  if (lines.length === 0) {
-    str = flowChars.start + flowChars.end;
-  } else {
-    str = lines[0];
-    for (let i = 1; i < lines.length; ++i) {
-      const line = lines[i];
-      str += line ? `
-${indent}${line}` : "\n";
-    }
-  }
-  if (comment) {
-    str += "\n" + indentComment(commentString(comment), indent);
-    if (onComment)
-      onComment();
-  } else if (chompKeep && onChompKeep)
-    onChompKeep();
-  return str;
-}
-function stringifyFlowCollection({ items }, ctx, { flowChars, itemIndent }) {
-  const { indent, indentStep, flowCollectionPadding: fcPadding, options: { commentString } } = ctx;
-  itemIndent += indentStep;
-  const itemCtx = Object.assign({}, ctx, {
-    indent: itemIndent,
-    inFlow: true,
-    type: null
-  });
-  let reqNewline = false;
-  let linesAtValue = 0;
-  const lines = [];
-  for (let i = 0; i < items.length; ++i) {
-    const item = items[i];
-    let comment = null;
-    if (isNode$1(item)) {
-      if (item.spaceBefore)
-        lines.push("");
-      addCommentBefore(ctx, lines, item.commentBefore, false);
-      if (item.comment)
-        comment = item.comment;
-    } else if (isPair(item)) {
-      const ik = isNode$1(item.key) ? item.key : null;
-      if (ik) {
-        if (ik.spaceBefore)
-          lines.push("");
-        addCommentBefore(ctx, lines, ik.commentBefore, false);
-        if (ik.comment)
-          reqNewline = true;
-      }
-      const iv = isNode$1(item.value) ? item.value : null;
-      if (iv) {
-        if (iv.comment)
-          comment = iv.comment;
-        if (iv.commentBefore)
-          reqNewline = true;
-      } else if (item.value == null && (ik == null ? void 0 : ik.comment)) {
-        comment = ik.comment;
-      }
-    }
-    if (comment)
-      reqNewline = true;
-    let str = stringify$2(item, itemCtx, () => comment = null);
-    if (i < items.length - 1)
-      str += ",";
-    if (comment)
-      str += lineComment(str, itemIndent, commentString(comment));
-    if (!reqNewline && (lines.length > linesAtValue || str.includes("\n")))
-      reqNewline = true;
-    lines.push(str);
-    linesAtValue = lines.length;
-  }
-  const { start, end } = flowChars;
-  if (lines.length === 0) {
-    return start + end;
-  } else {
-    if (!reqNewline) {
-      const len = lines.reduce((sum, line) => sum + line.length + 2, 2);
-      reqNewline = ctx.options.lineWidth > 0 && len > ctx.options.lineWidth;
-    }
-    if (reqNewline) {
-      let str = start;
-      for (const line of lines)
-        str += line ? `
-${indentStep}${indent}${line}` : "\n";
-      return `${str}
-${indent}${end}`;
-    } else {
-      return `${start}${fcPadding}${lines.join(" ")}${fcPadding}${end}`;
-    }
-  }
-}
-function addCommentBefore({ indent, options: { commentString } }, lines, comment, chompKeep) {
-  if (comment && chompKeep)
-    comment = comment.replace(/^\n+/, "");
-  if (comment) {
-    const ic = indentComment(commentString(comment), indent);
-    lines.push(ic.trimStart());
-  }
-}
-function findPair(items, key) {
-  const k = isScalar$1(key) ? key.value : key;
-  for (const it of items) {
-    if (isPair(it)) {
-      if (it.key === key || it.key === k)
-        return it;
-      if (isScalar$1(it.key) && it.key.value === k)
-        return it;
-    }
-  }
-  return void 0;
-}
-var YAMLMap = class extends Collection {
-  static get tagName() {
-    return "tag:yaml.org,2002:map";
-  }
-  constructor(schema2) {
-    super(MAP, schema2);
-    this.items = [];
-  }
-  /**
-   * A generic collection parsing method that can be extended
-   * to other node classes that inherit from YAMLMap
-   */
-  static from(schema2, obj, ctx) {
-    const { keepUndefined, replacer } = ctx;
-    const map2 = new this(schema2);
-    const add = (key, value2) => {
-      if (typeof replacer === "function")
-        value2 = replacer.call(obj, key, value2);
-      else if (Array.isArray(replacer) && !replacer.includes(key))
-        return;
-      if (value2 !== void 0 || keepUndefined)
-        map2.items.push(createPair(key, value2, ctx));
-    };
-    if (obj instanceof Map) {
-      for (const [key, value2] of obj)
-        add(key, value2);
-    } else if (obj && typeof obj === "object") {
-      for (const key of Object.keys(obj))
-        add(key, obj[key]);
-    }
-    if (typeof schema2.sortMapEntries === "function") {
-      map2.items.sort(schema2.sortMapEntries);
-    }
-    return map2;
-  }
-  /**
-   * Adds a value to the collection.
-   *
-   * @param overwrite - If not set `true`, using a key that is already in the
-   *   collection will throw. Otherwise, overwrites the previous value.
-   */
-  add(pair, overwrite) {
-    var _a4;
-    let _pair;
-    if (isPair(pair))
-      _pair = pair;
-    else if (!pair || typeof pair !== "object" || !("key" in pair)) {
-      _pair = new Pair(pair, pair == null ? void 0 : pair.value);
-    } else
-      _pair = new Pair(pair.key, pair.value);
-    const prev = findPair(this.items, _pair.key);
-    const sortEntries = (_a4 = this.schema) == null ? void 0 : _a4.sortMapEntries;
-    if (prev) {
-      if (!overwrite)
-        throw new Error(`Key ${_pair.key} already set`);
-      if (isScalar$1(prev.value) && isScalarValue(_pair.value))
-        prev.value.value = _pair.value;
-      else
-        prev.value = _pair.value;
-    } else if (sortEntries) {
-      const i = this.items.findIndex((item) => sortEntries(_pair, item) < 0);
-      if (i === -1)
-        this.items.push(_pair);
-      else
-        this.items.splice(i, 0, _pair);
-    } else {
-      this.items.push(_pair);
-    }
-  }
-  delete(key) {
-    const it = findPair(this.items, key);
-    if (!it)
-      return false;
-    const del = this.items.splice(this.items.indexOf(it), 1);
-    return del.length > 0;
-  }
-  get(key, keepScalar) {
-    const it = findPair(this.items, key);
-    const node2 = it == null ? void 0 : it.value;
-    return (!keepScalar && isScalar$1(node2) ? node2.value : node2) ?? void 0;
-  }
-  has(key) {
-    return !!findPair(this.items, key);
-  }
-  set(key, value2) {
-    this.add(new Pair(key, value2), true);
-  }
-  /**
-   * @param ctx - Conversion context, originally set in Document#toJS()
-   * @param {Class} Type - If set, forces the returned collection type
-   * @returns Instance of Type, Map, or Object
-   */
-  toJSON(_, ctx, Type) {
-    const map2 = Type ? new Type() : (ctx == null ? void 0 : ctx.mapAsMap) ? /* @__PURE__ */ new Map() : {};
-    if (ctx == null ? void 0 : ctx.onCreate)
-      ctx.onCreate(map2);
-    for (const item of this.items)
-      addPairToJSMap(ctx, map2, item);
-    return map2;
-  }
-  toString(ctx, onComment, onChompKeep) {
-    if (!ctx)
-      return JSON.stringify(this);
-    for (const item of this.items) {
-      if (!isPair(item))
-        throw new Error(`Map items must all be pairs; found ${JSON.stringify(item)} instead`);
-    }
-    if (!ctx.allNullValues && this.hasAllNullValues(false))
-      ctx = Object.assign({}, ctx, { allNullValues: true });
-    return stringifyCollection(this, ctx, {
-      blockItemPrefix: "",
-      flowChars: { start: "{", end: "}" },
-      itemIndent: ctx.indent || "",
-      onChompKeep,
-      onComment
-    });
-  }
-};
-var map$1 = {
-  collection: "map",
-  default: true,
-  nodeClass: YAMLMap,
-  tag: "tag:yaml.org,2002:map",
-  resolve(map2, onError2) {
-    if (!isMap(map2))
-      onError2("Expected a mapping for this tag");
-    return map2;
-  },
-  createNode: (schema2, obj, ctx) => YAMLMap.from(schema2, obj, ctx)
-};
-var YAMLSeq = class extends Collection {
-  static get tagName() {
-    return "tag:yaml.org,2002:seq";
-  }
-  constructor(schema2) {
-    super(SEQ, schema2);
-    this.items = [];
-  }
-  add(value2) {
-    this.items.push(value2);
-  }
-  /**
-   * Removes a value from the collection.
-   *
-   * `key` must contain a representation of an integer for this to succeed.
-   * It may be wrapped in a `Scalar`.
-   *
-   * @returns `true` if the item was found and removed.
-   */
-  delete(key) {
-    const idx = asItemIndex(key);
-    if (typeof idx !== "number")
-      return false;
-    const del = this.items.splice(idx, 1);
-    return del.length > 0;
-  }
-  get(key, keepScalar) {
-    const idx = asItemIndex(key);
-    if (typeof idx !== "number")
-      return void 0;
-    const it = this.items[idx];
-    return !keepScalar && isScalar$1(it) ? it.value : it;
-  }
-  /**
-   * Checks if the collection includes a value with the key `key`.
-   *
-   * `key` must contain a representation of an integer for this to succeed.
-   * It may be wrapped in a `Scalar`.
-   */
-  has(key) {
-    const idx = asItemIndex(key);
-    return typeof idx === "number" && idx < this.items.length;
-  }
-  /**
-   * Sets a value in this collection. For `!!set`, `value` needs to be a
-   * boolean to add/remove the item from the set.
-   *
-   * If `key` does not contain a representation of an integer, this will throw.
-   * It may be wrapped in a `Scalar`.
-   */
-  set(key, value2) {
-    const idx = asItemIndex(key);
-    if (typeof idx !== "number")
-      throw new Error(`Expected a valid index, not ${key}.`);
-    const prev = this.items[idx];
-    if (isScalar$1(prev) && isScalarValue(value2))
-      prev.value = value2;
-    else
-      this.items[idx] = value2;
-  }
-  toJSON(_, ctx) {
-    const seq2 = [];
-    if (ctx == null ? void 0 : ctx.onCreate)
-      ctx.onCreate(seq2);
-    let i = 0;
-    for (const item of this.items)
-      seq2.push(toJS(item, String(i++), ctx));
-    return seq2;
-  }
-  toString(ctx, onComment, onChompKeep) {
-    if (!ctx)
-      return JSON.stringify(this);
-    return stringifyCollection(this, ctx, {
-      blockItemPrefix: "- ",
-      flowChars: { start: "[", end: "]" },
-      itemIndent: (ctx.indent || "") + "  ",
-      onChompKeep,
-      onComment
-    });
-  }
-  static from(schema2, obj, ctx) {
-    const { replacer } = ctx;
-    const seq2 = new this(schema2);
-    if (obj && Symbol.iterator in Object(obj)) {
-      let i = 0;
-      for (let it of obj) {
-        if (typeof replacer === "function") {
-          const key = obj instanceof Set ? it : String(i++);
-          it = replacer.call(obj, key, it);
-        }
-        seq2.items.push(createNode(it, void 0, ctx));
-      }
-    }
-    return seq2;
-  }
-};
-function asItemIndex(key) {
-  let idx = isScalar$1(key) ? key.value : key;
-  if (idx && typeof idx === "string")
-    idx = Number(idx);
-  return typeof idx === "number" && Number.isInteger(idx) && idx >= 0 ? idx : null;
-}
-var seq = {
-  collection: "seq",
-  default: true,
-  nodeClass: YAMLSeq,
-  tag: "tag:yaml.org,2002:seq",
-  resolve(seq2, onError2) {
-    if (!isSeq(seq2))
-      onError2("Expected a sequence for this tag");
-    return seq2;
-  },
-  createNode: (schema2, obj, ctx) => YAMLSeq.from(schema2, obj, ctx)
-};
-var string = {
-  identify: (value2) => typeof value2 === "string",
-  default: true,
-  tag: "tag:yaml.org,2002:str",
-  resolve: (str) => str,
-  stringify(item, ctx, onComment, onChompKeep) {
-    ctx = Object.assign({ actualString: true }, ctx);
-    return stringifyString(item, ctx, onComment, onChompKeep);
-  }
-};
-var nullTag = {
-  identify: (value2) => value2 == null,
-  createNode: () => new Scalar(null),
-  default: true,
-  tag: "tag:yaml.org,2002:null",
-  test: /^(?:~|[Nn]ull|NULL)?$/,
-  resolve: () => new Scalar(null),
-  stringify: ({ source }, ctx) => typeof source === "string" && nullTag.test.test(source) ? source : ctx.options.nullStr
-};
-var boolTag = {
-  identify: (value2) => typeof value2 === "boolean",
-  default: true,
-  tag: "tag:yaml.org,2002:bool",
-  test: /^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,
-  resolve: (str) => new Scalar(str[0] === "t" || str[0] === "T"),
-  stringify({ source, value: value2 }, ctx) {
-    if (source && boolTag.test.test(source)) {
-      const sv = source[0] === "t" || source[0] === "T";
-      if (value2 === sv)
-        return source;
-    }
-    return value2 ? ctx.options.trueStr : ctx.options.falseStr;
-  }
-};
-function stringifyNumber({ format: format2, minFractionDigits, tag, value: value2 }) {
-  if (typeof value2 === "bigint")
-    return String(value2);
-  const num = typeof value2 === "number" ? value2 : Number(value2);
-  if (!isFinite(num))
-    return isNaN(num) ? ".nan" : num < 0 ? "-.inf" : ".inf";
-  let n2 = JSON.stringify(value2);
-  if (!format2 && minFractionDigits && (!tag || tag === "tag:yaml.org,2002:float") && /^\d/.test(n2)) {
-    let i = n2.indexOf(".");
-    if (i < 0) {
-      i = n2.length;
-      n2 += ".";
-    }
-    let d = minFractionDigits - (n2.length - i - 1);
-    while (d-- > 0)
-      n2 += "0";
-  }
-  return n2;
-}
-var floatNaN$1 = {
-  identify: (value2) => typeof value2 === "number",
-  default: true,
-  tag: "tag:yaml.org,2002:float",
-  test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
-  resolve: (str) => str.slice(-3).toLowerCase() === "nan" ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
-  stringify: stringifyNumber
-};
-var floatExp$1 = {
-  identify: (value2) => typeof value2 === "number",
-  default: true,
-  tag: "tag:yaml.org,2002:float",
-  format: "EXP",
-  test: /^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,
-  resolve: (str) => parseFloat(str),
-  stringify(node2) {
-    const num = Number(node2.value);
-    return isFinite(num) ? num.toExponential() : stringifyNumber(node2);
-  }
-};
-var float$1 = {
-  identify: (value2) => typeof value2 === "number",
-  default: true,
-  tag: "tag:yaml.org,2002:float",
-  test: /^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,
-  resolve(str) {
-    const node2 = new Scalar(parseFloat(str));
-    const dot = str.indexOf(".");
-    if (dot !== -1 && str[str.length - 1] === "0")
-      node2.minFractionDigits = str.length - dot - 1;
-    return node2;
-  },
-  stringify: stringifyNumber
-};
-var intIdentify$2 = (value2) => typeof value2 === "bigint" || Number.isInteger(value2);
-var intResolve$1 = (str, offset2, radix, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str.substring(offset2), radix);
-function intStringify$1(node2, radix, prefix) {
-  const { value: value2 } = node2;
-  if (intIdentify$2(value2) && value2 >= 0)
-    return prefix + value2.toString(radix);
-  return stringifyNumber(node2);
-}
-var intOct$1 = {
-  identify: (value2) => intIdentify$2(value2) && value2 >= 0,
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  format: "OCT",
-  test: /^0o[0-7]+$/,
-  resolve: (str, _onError, opt) => intResolve$1(str, 2, 8, opt),
-  stringify: (node2) => intStringify$1(node2, 8, "0o")
-};
-var int$1 = {
-  identify: intIdentify$2,
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  test: /^[-+]?[0-9]+$/,
-  resolve: (str, _onError, opt) => intResolve$1(str, 0, 10, opt),
-  stringify: stringifyNumber
-};
-var intHex$1 = {
-  identify: (value2) => intIdentify$2(value2) && value2 >= 0,
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  format: "HEX",
-  test: /^0x[0-9a-fA-F]+$/,
-  resolve: (str, _onError, opt) => intResolve$1(str, 2, 16, opt),
-  stringify: (node2) => intStringify$1(node2, 16, "0x")
-};
-var schema$2 = [
-  map$1,
-  seq,
-  string,
-  nullTag,
-  boolTag,
-  intOct$1,
-  int$1,
-  intHex$1,
-  floatNaN$1,
-  floatExp$1,
-  float$1
-];
-function intIdentify$1(value2) {
-  return typeof value2 === "bigint" || Number.isInteger(value2);
-}
-var stringifyJSON = ({ value: value2 }) => JSON.stringify(value2);
-var jsonScalars = [
-  {
-    identify: (value2) => typeof value2 === "string",
-    default: true,
-    tag: "tag:yaml.org,2002:str",
-    resolve: (str) => str,
-    stringify: stringifyJSON
-  },
-  {
-    identify: (value2) => value2 == null,
-    createNode: () => new Scalar(null),
-    default: true,
-    tag: "tag:yaml.org,2002:null",
-    test: /^null$/,
-    resolve: () => null,
-    stringify: stringifyJSON
-  },
-  {
-    identify: (value2) => typeof value2 === "boolean",
-    default: true,
-    tag: "tag:yaml.org,2002:bool",
-    test: /^true|false$/,
-    resolve: (str) => str === "true",
-    stringify: stringifyJSON
-  },
-  {
-    identify: intIdentify$1,
-    default: true,
-    tag: "tag:yaml.org,2002:int",
-    test: /^-?(?:0|[1-9][0-9]*)$/,
-    resolve: (str, _onError, { intAsBigInt }) => intAsBigInt ? BigInt(str) : parseInt(str, 10),
-    stringify: ({ value: value2 }) => intIdentify$1(value2) ? value2.toString() : JSON.stringify(value2)
-  },
-  {
-    identify: (value2) => typeof value2 === "number",
-    default: true,
-    tag: "tag:yaml.org,2002:float",
-    test: /^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,
-    resolve: (str) => parseFloat(str),
-    stringify: stringifyJSON
-  }
-];
-var jsonError = {
-  default: true,
-  tag: "",
-  test: /^/,
-  resolve(str, onError2) {
-    onError2(`Unresolved plain scalar ${JSON.stringify(str)}`);
-    return str;
-  }
-};
-var schema$1 = [map$1, seq].concat(jsonScalars, jsonError);
-var binary = {
-  identify: (value2) => value2 instanceof Uint8Array,
-  // Buffer inherits from Uint8Array
-  default: false,
-  tag: "tag:yaml.org,2002:binary",
-  /**
-   * Returns a Buffer in node and an Uint8Array in browsers
-   *
-   * To use the resulting buffer as an image, you'll want to do something like:
-   *
-   *   const blob = new Blob([buffer], { type: 'image/jpeg' })
-   *   document.querySelector('#photo').src = URL.createObjectURL(blob)
-   */
-  resolve(src2, onError2) {
-    if (typeof Buffer === "function") {
-      return Buffer.from(src2, "base64");
-    } else if (typeof atob === "function") {
-      const str = atob(src2.replace(/[\n\r]/g, ""));
-      const buffer = new Uint8Array(str.length);
-      for (let i = 0; i < str.length; ++i)
-        buffer[i] = str.charCodeAt(i);
-      return buffer;
-    } else {
-      onError2("This environment does not support reading binary tags; either Buffer or atob is required");
-      return src2;
-    }
-  },
-  stringify({ comment, type, value: value2 }, ctx, onComment, onChompKeep) {
-    const buf = value2;
-    let str;
-    if (typeof Buffer === "function") {
-      str = buf instanceof Buffer ? buf.toString("base64") : Buffer.from(buf.buffer).toString("base64");
-    } else if (typeof btoa === "function") {
-      let s = "";
-      for (let i = 0; i < buf.length; ++i)
-        s += String.fromCharCode(buf[i]);
-      str = btoa(s);
-    } else {
-      throw new Error("This environment does not support writing binary tags; either Buffer or btoa is required");
-    }
-    if (!type)
-      type = Scalar.BLOCK_LITERAL;
-    if (type !== Scalar.QUOTE_DOUBLE) {
-      const lineWidth = Math.max(ctx.options.lineWidth - ctx.indent.length, ctx.options.minContentWidth);
-      const n2 = Math.ceil(str.length / lineWidth);
-      const lines = new Array(n2);
-      for (let i = 0, o2 = 0; i < n2; ++i, o2 += lineWidth) {
-        lines[i] = str.substr(o2, lineWidth);
-      }
-      str = lines.join(type === Scalar.BLOCK_LITERAL ? "\n" : " ");
-    }
-    return stringifyString({ comment, type, value: str }, ctx, onComment, onChompKeep);
-  }
-};
-function resolvePairs(seq2, onError2) {
-  if (isSeq(seq2)) {
-    for (let i = 0; i < seq2.items.length; ++i) {
-      let item = seq2.items[i];
-      if (isPair(item))
-        continue;
-      else if (isMap(item)) {
-        if (item.items.length > 1)
-          onError2("Each pair must have its own sequence indicator");
-        const pair = item.items[0] || new Pair(new Scalar(null));
-        if (item.commentBefore)
-          pair.key.commentBefore = pair.key.commentBefore ? `${item.commentBefore}
-${pair.key.commentBefore}` : item.commentBefore;
-        if (item.comment) {
-          const cn = pair.value ?? pair.key;
-          cn.comment = cn.comment ? `${item.comment}
-${cn.comment}` : item.comment;
-        }
-        item = pair;
-      }
-      seq2.items[i] = isPair(item) ? item : new Pair(item);
-    }
-  } else
-    onError2("Expected a sequence for this tag");
-  return seq2;
-}
-function createPairs(schema2, iterable, ctx) {
-  const { replacer } = ctx;
-  const pairs2 = new YAMLSeq(schema2);
-  pairs2.tag = "tag:yaml.org,2002:pairs";
-  let i = 0;
-  if (iterable && Symbol.iterator in Object(iterable))
-    for (let it of iterable) {
-      if (typeof replacer === "function")
-        it = replacer.call(iterable, String(i++), it);
-      let key, value2;
-      if (Array.isArray(it)) {
-        if (it.length === 2) {
-          key = it[0];
-          value2 = it[1];
-        } else
-          throw new TypeError(`Expected [key, value] tuple: ${it}`);
-      } else if (it && it instanceof Object) {
-        const keys = Object.keys(it);
-        if (keys.length === 1) {
-          key = keys[0];
-          value2 = it[key];
-        } else {
-          throw new TypeError(`Expected tuple with one key, not ${keys.length} keys`);
-        }
-      } else {
-        key = it;
-      }
-      pairs2.items.push(createPair(key, value2, ctx));
-    }
-  return pairs2;
-}
-var pairs = {
-  collection: "seq",
-  default: false,
-  tag: "tag:yaml.org,2002:pairs",
-  resolve: resolvePairs,
-  createNode: createPairs
-};
-var YAMLOMap = class _YAMLOMap extends YAMLSeq {
-  constructor() {
-    super();
-    this.add = YAMLMap.prototype.add.bind(this);
-    this.delete = YAMLMap.prototype.delete.bind(this);
-    this.get = YAMLMap.prototype.get.bind(this);
-    this.has = YAMLMap.prototype.has.bind(this);
-    this.set = YAMLMap.prototype.set.bind(this);
-    this.tag = _YAMLOMap.tag;
-  }
-  /**
-   * If `ctx` is given, the return type is actually `Map`,
-   * but TypeScript won't allow widening the signature of a child method.
-   */
-  toJSON(_, ctx) {
-    if (!ctx)
-      return super.toJSON(_);
-    const map2 = /* @__PURE__ */ new Map();
-    if (ctx == null ? void 0 : ctx.onCreate)
-      ctx.onCreate(map2);
-    for (const pair of this.items) {
-      let key, value2;
-      if (isPair(pair)) {
-        key = toJS(pair.key, "", ctx);
-        value2 = toJS(pair.value, key, ctx);
-      } else {
-        key = toJS(pair, "", ctx);
-      }
-      if (map2.has(key))
-        throw new Error("Ordered maps must not include duplicate keys");
-      map2.set(key, value2);
-    }
-    return map2;
-  }
-  static from(schema2, iterable, ctx) {
-    const pairs2 = createPairs(schema2, iterable, ctx);
-    const omap2 = new this();
-    omap2.items = pairs2.items;
-    return omap2;
-  }
-};
-YAMLOMap.tag = "tag:yaml.org,2002:omap";
-var omap = {
-  collection: "seq",
-  identify: (value2) => value2 instanceof Map,
-  nodeClass: YAMLOMap,
-  default: false,
-  tag: "tag:yaml.org,2002:omap",
-  resolve(seq2, onError2) {
-    const pairs2 = resolvePairs(seq2, onError2);
-    const seenKeys = [];
-    for (const { key } of pairs2.items) {
-      if (isScalar$1(key)) {
-        if (seenKeys.includes(key.value)) {
-          onError2(`Ordered maps must not include duplicate keys: ${key.value}`);
-        } else {
-          seenKeys.push(key.value);
-        }
-      }
-    }
-    return Object.assign(new YAMLOMap(), pairs2);
-  },
-  createNode: (schema2, iterable, ctx) => YAMLOMap.from(schema2, iterable, ctx)
-};
-function boolStringify({ value: value2, source }, ctx) {
-  const boolObj = value2 ? trueTag : falseTag;
-  if (source && boolObj.test.test(source))
-    return source;
-  return value2 ? ctx.options.trueStr : ctx.options.falseStr;
-}
-var trueTag = {
-  identify: (value2) => value2 === true,
-  default: true,
-  tag: "tag:yaml.org,2002:bool",
-  test: /^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,
-  resolve: () => new Scalar(true),
-  stringify: boolStringify
-};
-var falseTag = {
-  identify: (value2) => value2 === false,
-  default: true,
-  tag: "tag:yaml.org,2002:bool",
-  test: /^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,
-  resolve: () => new Scalar(false),
-  stringify: boolStringify
-};
-var floatNaN = {
-  identify: (value2) => typeof value2 === "number",
-  default: true,
-  tag: "tag:yaml.org,2002:float",
-  test: /^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,
-  resolve: (str) => str.slice(-3).toLowerCase() === "nan" ? NaN : str[0] === "-" ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY,
-  stringify: stringifyNumber
-};
-var floatExp = {
-  identify: (value2) => typeof value2 === "number",
-  default: true,
-  tag: "tag:yaml.org,2002:float",
-  format: "EXP",
-  test: /^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,
-  resolve: (str) => parseFloat(str.replace(/_/g, "")),
-  stringify(node2) {
-    const num = Number(node2.value);
-    return isFinite(num) ? num.toExponential() : stringifyNumber(node2);
-  }
-};
-var float = {
-  identify: (value2) => typeof value2 === "number",
-  default: true,
-  tag: "tag:yaml.org,2002:float",
-  test: /^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,
-  resolve(str) {
-    const node2 = new Scalar(parseFloat(str.replace(/_/g, "")));
-    const dot = str.indexOf(".");
-    if (dot !== -1) {
-      const f2 = str.substring(dot + 1).replace(/_/g, "");
-      if (f2[f2.length - 1] === "0")
-        node2.minFractionDigits = f2.length;
-    }
-    return node2;
-  },
-  stringify: stringifyNumber
-};
-var intIdentify = (value2) => typeof value2 === "bigint" || Number.isInteger(value2);
-function intResolve(str, offset2, radix, { intAsBigInt }) {
-  const sign = str[0];
-  if (sign === "-" || sign === "+")
-    offset2 += 1;
-  str = str.substring(offset2).replace(/_/g, "");
-  if (intAsBigInt) {
-    switch (radix) {
-      case 2:
-        str = `0b${str}`;
-        break;
-      case 8:
-        str = `0o${str}`;
-        break;
-      case 16:
-        str = `0x${str}`;
-        break;
-    }
-    const n3 = BigInt(str);
-    return sign === "-" ? BigInt(-1) * n3 : n3;
-  }
-  const n2 = parseInt(str, radix);
-  return sign === "-" ? -1 * n2 : n2;
-}
-function intStringify(node2, radix, prefix) {
-  const { value: value2 } = node2;
-  if (intIdentify(value2)) {
-    const str = value2.toString(radix);
-    return value2 < 0 ? "-" + prefix + str.substr(1) : prefix + str;
-  }
-  return stringifyNumber(node2);
-}
-var intBin = {
-  identify: intIdentify,
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  format: "BIN",
-  test: /^[-+]?0b[0-1_]+$/,
-  resolve: (str, _onError, opt) => intResolve(str, 2, 2, opt),
-  stringify: (node2) => intStringify(node2, 2, "0b")
-};
-var intOct = {
-  identify: intIdentify,
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  format: "OCT",
-  test: /^[-+]?0[0-7_]+$/,
-  resolve: (str, _onError, opt) => intResolve(str, 1, 8, opt),
-  stringify: (node2) => intStringify(node2, 8, "0")
-};
-var int = {
-  identify: intIdentify,
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  test: /^[-+]?[0-9][0-9_]*$/,
-  resolve: (str, _onError, opt) => intResolve(str, 0, 10, opt),
-  stringify: stringifyNumber
-};
-var intHex = {
-  identify: intIdentify,
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  format: "HEX",
-  test: /^[-+]?0x[0-9a-fA-F_]+$/,
-  resolve: (str, _onError, opt) => intResolve(str, 2, 16, opt),
-  stringify: (node2) => intStringify(node2, 16, "0x")
-};
-var YAMLSet = class _YAMLSet extends YAMLMap {
-  constructor(schema2) {
-    super(schema2);
-    this.tag = _YAMLSet.tag;
-  }
-  add(key) {
-    let pair;
-    if (isPair(key))
-      pair = key;
-    else if (key && typeof key === "object" && "key" in key && "value" in key && key.value === null)
-      pair = new Pair(key.key, null);
-    else
-      pair = new Pair(key, null);
-    const prev = findPair(this.items, pair.key);
-    if (!prev)
-      this.items.push(pair);
-  }
-  /**
-   * If `keepPair` is `true`, returns the Pair matching `key`.
-   * Otherwise, returns the value of that Pair's key.
-   */
-  get(key, keepPair) {
-    const pair = findPair(this.items, key);
-    return !keepPair && isPair(pair) ? isScalar$1(pair.key) ? pair.key.value : pair.key : pair;
-  }
-  set(key, value2) {
-    if (typeof value2 !== "boolean")
-      throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof value2}`);
-    const prev = findPair(this.items, key);
-    if (prev && !value2) {
-      this.items.splice(this.items.indexOf(prev), 1);
-    } else if (!prev && value2) {
-      this.items.push(new Pair(key));
-    }
-  }
-  toJSON(_, ctx) {
-    return super.toJSON(_, ctx, Set);
-  }
-  toString(ctx, onComment, onChompKeep) {
-    if (!ctx)
-      return JSON.stringify(this);
-    if (this.hasAllNullValues(true))
-      return super.toString(Object.assign({}, ctx, { allNullValues: true }), onComment, onChompKeep);
-    else
-      throw new Error("Set items must all have null values");
-  }
-  static from(schema2, iterable, ctx) {
-    const { replacer } = ctx;
-    const set2 = new this(schema2);
-    if (iterable && Symbol.iterator in Object(iterable))
-      for (let value2 of iterable) {
-        if (typeof replacer === "function")
-          value2 = replacer.call(iterable, value2, value2);
-        set2.items.push(createPair(value2, null, ctx));
-      }
-    return set2;
-  }
-};
-YAMLSet.tag = "tag:yaml.org,2002:set";
-var set = {
-  collection: "map",
-  identify: (value2) => value2 instanceof Set,
-  nodeClass: YAMLSet,
-  default: false,
-  tag: "tag:yaml.org,2002:set",
-  createNode: (schema2, iterable, ctx) => YAMLSet.from(schema2, iterable, ctx),
-  resolve(map2, onError2) {
-    if (isMap(map2)) {
-      if (map2.hasAllNullValues(true))
-        return Object.assign(new YAMLSet(), map2);
-      else
-        onError2("Set items must all have null values");
-    } else
-      onError2("Expected a mapping for this tag");
-    return map2;
-  }
-};
-function parseSexagesimal(str, asBigInt) {
-  const sign = str[0];
-  const parts = sign === "-" || sign === "+" ? str.substring(1) : str;
-  const num = (n2) => asBigInt ? BigInt(n2) : Number(n2);
-  const res = parts.replace(/_/g, "").split(":").reduce((res2, p) => res2 * num(60) + num(p), num(0));
-  return sign === "-" ? num(-1) * res : res;
-}
-function stringifySexagesimal(node2) {
-  let { value: value2 } = node2;
-  let num = (n2) => n2;
-  if (typeof value2 === "bigint")
-    num = (n2) => BigInt(n2);
-  else if (isNaN(value2) || !isFinite(value2))
-    return stringifyNumber(node2);
-  let sign = "";
-  if (value2 < 0) {
-    sign = "-";
-    value2 *= num(-1);
-  }
-  const _60 = num(60);
-  const parts = [value2 % _60];
-  if (value2 < 60) {
-    parts.unshift(0);
-  } else {
-    value2 = (value2 - parts[0]) / _60;
-    parts.unshift(value2 % _60);
-    if (value2 >= 60) {
-      value2 = (value2 - parts[0]) / _60;
-      parts.unshift(value2);
-    }
-  }
-  return sign + parts.map((n2) => String(n2).padStart(2, "0")).join(":").replace(/000000\d*$/, "");
-}
-var intTime = {
-  identify: (value2) => typeof value2 === "bigint" || Number.isInteger(value2),
-  default: true,
-  tag: "tag:yaml.org,2002:int",
-  format: "TIME",
-  test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,
-  resolve: (str, _onError, { intAsBigInt }) => parseSexagesimal(str, intAsBigInt),
-  stringify: stringifySexagesimal
-};
-var floatTime = {
-  identify: (value2) => typeof value2 === "number",
-  default: true,
-  tag: "tag:yaml.org,2002:float",
-  format: "TIME",
-  test: /^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,
-  resolve: (str) => parseSexagesimal(str, false),
-  stringify: stringifySexagesimal
-};
-var timestamp = {
-  identify: (value2) => value2 instanceof Date,
-  default: true,
-  tag: "tag:yaml.org,2002:timestamp",
-  // If the time zone is omitted, the timestamp is assumed to be specified in UTC. The time part
-  // may be omitted altogether, resulting in a date format. In such a case, the time part is
-  // assumed to be 00:00:00Z (start of day, UTC).
-  test: RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),
-  resolve(str) {
-    const match2 = str.match(timestamp.test);
-    if (!match2)
-      throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");
-    const [, year, month, day, hour, minute, second] = match2.map(Number);
-    const millisec = match2[7] ? Number((match2[7] + "00").substr(1, 3)) : 0;
-    let date = Date.UTC(year, month - 1, day, hour || 0, minute || 0, second || 0, millisec);
-    const tz = match2[8];
-    if (tz && tz !== "Z") {
-      let d = parseSexagesimal(tz, false);
-      if (Math.abs(d) < 30)
-        d *= 60;
-      date -= 6e4 * d;
-    }
-    return new Date(date);
-  },
-  stringify: ({ value: value2 }) => value2.toISOString().replace(/((T00:00)?:00)?\.000Z$/, "")
-};
-var schema = [
-  map$1,
-  seq,
-  string,
-  nullTag,
-  trueTag,
-  falseTag,
-  intBin,
-  intOct,
-  int,
-  intHex,
-  floatNaN,
-  floatExp,
-  float,
-  binary,
-  omap,
-  pairs,
-  set,
-  intTime,
-  floatTime,
-  timestamp
-];
-var schemas = /* @__PURE__ */ new Map([
-  ["core", schema$2],
-  ["failsafe", [map$1, seq, string]],
-  ["json", schema$1],
-  ["yaml11", schema],
-  ["yaml-1.1", schema]
-]);
-var tagsByName = {
-  binary,
-  bool: boolTag,
-  float: float$1,
-  floatExp: floatExp$1,
-  floatNaN: floatNaN$1,
-  floatTime,
-  int: int$1,
-  intHex: intHex$1,
-  intOct: intOct$1,
-  intTime,
-  map: map$1,
-  null: nullTag,
-  omap,
-  pairs,
-  seq,
-  set,
-  timestamp
-};
-var coreKnownTags = {
-  "tag:yaml.org,2002:binary": binary,
-  "tag:yaml.org,2002:omap": omap,
-  "tag:yaml.org,2002:pairs": pairs,
-  "tag:yaml.org,2002:set": set,
-  "tag:yaml.org,2002:timestamp": timestamp
-};
-function getTags(customTags, schemaName) {
-  let tags = schemas.get(schemaName);
-  if (!tags) {
-    if (Array.isArray(customTags))
-      tags = [];
-    else {
-      const keys = Array.from(schemas.keys()).filter((key) => key !== "yaml11").map((key) => JSON.stringify(key)).join(", ");
-      throw new Error(`Unknown schema "${schemaName}"; use one of ${keys} or define customTags array`);
-    }
-  }
-  if (Array.isArray(customTags)) {
-    for (const tag of customTags)
-      tags = tags.concat(tag);
-  } else if (typeof customTags === "function") {
-    tags = customTags(tags.slice());
-  }
-  return tags.map((tag) => {
-    if (typeof tag !== "string")
-      return tag;
-    const tagObj = tagsByName[tag];
-    if (tagObj)
-      return tagObj;
-    const keys = Object.keys(tagsByName).map((key) => JSON.stringify(key)).join(", ");
-    throw new Error(`Unknown custom tag "${tag}"; use one of ${keys}`);
-  });
-}
-var sortMapEntriesByKey = (a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0;
-var Schema = class _Schema {
-  constructor({ compat, customTags, merge: merge3, resolveKnownTags, schema: schema2, sortMapEntries, toStringDefaults }) {
-    this.compat = Array.isArray(compat) ? getTags(compat, "compat") : compat ? getTags(null, compat) : null;
-    this.merge = !!merge3;
-    this.name = typeof schema2 === "string" && schema2 || "core";
-    this.knownTags = resolveKnownTags ? coreKnownTags : {};
-    this.tags = getTags(customTags, this.name);
-    this.toStringOptions = toStringDefaults ?? null;
-    Object.defineProperty(this, MAP, { value: map$1 });
-    Object.defineProperty(this, SCALAR$1, { value: string });
-    Object.defineProperty(this, SEQ, { value: seq });
-    this.sortMapEntries = typeof sortMapEntries === "function" ? sortMapEntries : sortMapEntries === true ? sortMapEntriesByKey : null;
-  }
-  clone() {
-    const copy = Object.create(_Schema.prototype, Object.getOwnPropertyDescriptors(this));
-    copy.tags = this.tags.slice();
-    return copy;
-  }
-};
-function stringifyDocument(doc, options2) {
-  var _a4;
-  const lines = [];
-  let hasDirectives = options2.directives === true;
-  if (options2.directives !== false && doc.directives) {
-    const dir = doc.directives.toString(doc);
-    if (dir) {
-      lines.push(dir);
-      hasDirectives = true;
-    } else if (doc.directives.docStart)
-      hasDirectives = true;
-  }
-  if (hasDirectives)
-    lines.push("---");
-  const ctx = createStringifyContext(doc, options2);
-  const { commentString } = ctx.options;
-  if (doc.commentBefore) {
-    if (lines.length !== 1)
-      lines.unshift("");
-    const cs = commentString(doc.commentBefore);
-    lines.unshift(indentComment(cs, ""));
-  }
-  let chompKeep = false;
-  let contentComment = null;
-  if (doc.contents) {
-    if (isNode$1(doc.contents)) {
-      if (doc.contents.spaceBefore && hasDirectives)
-        lines.push("");
-      if (doc.contents.commentBefore) {
-        const cs = commentString(doc.contents.commentBefore);
-        lines.push(indentComment(cs, ""));
-      }
-      ctx.forceBlockIndent = !!doc.comment;
-      contentComment = doc.contents.comment;
-    }
-    const onChompKeep = contentComment ? void 0 : () => chompKeep = true;
-    let body = stringify$2(doc.contents, ctx, () => contentComment = null, onChompKeep);
-    if (contentComment)
-      body += lineComment(body, "", commentString(contentComment));
-    if ((body[0] === "|" || body[0] === ">") && lines[lines.length - 1] === "---") {
-      lines[lines.length - 1] = `--- ${body}`;
-    } else
-      lines.push(body);
-  } else {
-    lines.push(stringify$2(doc.contents, ctx));
-  }
-  if ((_a4 = doc.directives) == null ? void 0 : _a4.docEnd) {
-    if (doc.comment) {
-      const cs = commentString(doc.comment);
-      if (cs.includes("\n")) {
-        lines.push("...");
-        lines.push(indentComment(cs, ""));
-      } else {
-        lines.push(`... ${cs}`);
-      }
-    } else {
-      lines.push("...");
-    }
-  } else {
-    let dc = doc.comment;
-    if (dc && chompKeep)
-      dc = dc.replace(/^\n+/, "");
-    if (dc) {
-      if ((!chompKeep || contentComment) && lines[lines.length - 1] !== "")
-        lines.push("");
-      lines.push(indentComment(commentString(dc), ""));
-    }
-  }
-  return lines.join("\n") + "\n";
-}
-var Document = class _Document {
-  constructor(value2, replacer, options2) {
-    this.commentBefore = null;
-    this.comment = null;
-    this.errors = [];
-    this.warnings = [];
-    Object.defineProperty(this, NODE_TYPE, { value: DOC });
-    let _replacer = null;
-    if (typeof replacer === "function" || Array.isArray(replacer)) {
-      _replacer = replacer;
-    } else if (options2 === void 0 && replacer) {
-      options2 = replacer;
-      replacer = void 0;
-    }
-    const opt = Object.assign({
-      intAsBigInt: false,
-      keepSourceTokens: false,
-      logLevel: "warn",
-      prettyErrors: true,
-      strict: true,
-      uniqueKeys: true,
-      version: "1.2"
-    }, options2);
-    this.options = opt;
-    let { version: version3 } = opt;
-    if (options2 == null ? void 0 : options2._directives) {
-      this.directives = options2._directives.atDocument();
-      if (this.directives.yaml.explicit)
-        version3 = this.directives.yaml.version;
-    } else
-      this.directives = new Directives({ version: version3 });
-    this.setSchema(version3, options2);
-    this.contents = value2 === void 0 ? null : this.createNode(value2, _replacer, options2);
-  }
-  /**
-   * Create a deep copy of this Document and its contents.
-   *
-   * Custom Node values that inherit from `Object` still refer to their original instances.
-   */
-  clone() {
-    const copy = Object.create(_Document.prototype, {
-      [NODE_TYPE]: { value: DOC }
-    });
-    copy.commentBefore = this.commentBefore;
-    copy.comment = this.comment;
-    copy.errors = this.errors.slice();
-    copy.warnings = this.warnings.slice();
-    copy.options = Object.assign({}, this.options);
-    if (this.directives)
-      copy.directives = this.directives.clone();
-    copy.schema = this.schema.clone();
-    copy.contents = isNode$1(this.contents) ? this.contents.clone(copy.schema) : this.contents;
-    if (this.range)
-      copy.range = this.range.slice();
-    return copy;
-  }
-  /** Adds a value to the document. */
-  add(value2) {
-    if (assertCollection(this.contents))
-      this.contents.add(value2);
-  }
-  /** Adds a value to the document. */
-  addIn(path3, value2) {
-    if (assertCollection(this.contents))
-      this.contents.addIn(path3, value2);
-  }
-  /**
-   * Create a new `Alias` node, ensuring that the target `node` has the required anchor.
-   *
-   * If `node` already has an anchor, `name` is ignored.
-   * Otherwise, the `node.anchor` value will be set to `name`,
-   * or if an anchor with that name is already present in the document,
-   * `name` will be used as a prefix for a new unique anchor.
-   * If `name` is undefined, the generated anchor will use 'a' as a prefix.
-   */
-  createAlias(node2, name2) {
-    if (!node2.anchor) {
-      const prev = anchorNames(this);
-      node2.anchor = // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
-      !name2 || prev.has(name2) ? findNewAnchor(name2 || "a", prev) : name2;
-    }
-    return new Alias(node2.anchor);
-  }
-  createNode(value2, replacer, options2) {
-    let _replacer = void 0;
-    if (typeof replacer === "function") {
-      value2 = replacer.call({ "": value2 }, "", value2);
-      _replacer = replacer;
-    } else if (Array.isArray(replacer)) {
-      const keyToStr = (v) => typeof v === "number" || v instanceof String || v instanceof Number;
-      const asStr = replacer.filter(keyToStr).map(String);
-      if (asStr.length > 0)
-        replacer = replacer.concat(asStr);
-      _replacer = replacer;
-    } else if (options2 === void 0 && replacer) {
-      options2 = replacer;
-      replacer = void 0;
-    }
-    const { aliasDuplicateObjects, anchorPrefix, flow, keepUndefined, onTagObj, tag } = options2 ?? {};
-    const { onAnchor, setAnchors, sourceObjects } = createNodeAnchors(
-      this,
-      // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
-      anchorPrefix || "a"
-    );
-    const ctx = {
-      aliasDuplicateObjects: aliasDuplicateObjects ?? true,
-      keepUndefined: keepUndefined ?? false,
-      onAnchor,
-      onTagObj,
-      replacer: _replacer,
-      schema: this.schema,
-      sourceObjects
-    };
-    const node2 = createNode(value2, tag, ctx);
-    if (flow && isCollection$1(node2))
-      node2.flow = true;
-    setAnchors();
-    return node2;
-  }
-  /**
-   * Convert a key and a value into a `Pair` using the current schema,
-   * recursively wrapping all values as `Scalar` or `Collection` nodes.
-   */
-  createPair(key, value2, options2 = {}) {
-    const k = this.createNode(key, null, options2);
-    const v = this.createNode(value2, null, options2);
-    return new Pair(k, v);
-  }
-  /**
-   * Removes a value from the document.
-   * @returns `true` if the item was found and removed.
-   */
-  delete(key) {
-    return assertCollection(this.contents) ? this.contents.delete(key) : false;
-  }
-  /**
-   * Removes a value from the document.
-   * @returns `true` if the item was found and removed.
-   */
-  deleteIn(path3) {
-    if (isEmptyPath(path3)) {
-      if (this.contents == null)
-        return false;
-      this.contents = null;
-      return true;
-    }
-    return assertCollection(this.contents) ? this.contents.deleteIn(path3) : false;
-  }
-  /**
-   * Returns item at `key`, or `undefined` if not found. By default unwraps
-   * scalar values from their surrounding node; to disable set `keepScalar` to
-   * `true` (collections are always returned intact).
-   */
-  get(key, keepScalar) {
-    return isCollection$1(this.contents) ? this.contents.get(key, keepScalar) : void 0;
-  }
-  /**
-   * Returns item at `path`, or `undefined` if not found. By default unwraps
-   * scalar values from their surrounding node; to disable set `keepScalar` to
-   * `true` (collections are always returned intact).
-   */
-  getIn(path3, keepScalar) {
-    if (isEmptyPath(path3))
-      return !keepScalar && isScalar$1(this.contents) ? this.contents.value : this.contents;
-    return isCollection$1(this.contents) ? this.contents.getIn(path3, keepScalar) : void 0;
-  }
-  /**
-   * Checks if the document includes a value with the key `key`.
-   */
-  has(key) {
-    return isCollection$1(this.contents) ? this.contents.has(key) : false;
-  }
-  /**
-   * Checks if the document includes a value at `path`.
-   */
-  hasIn(path3) {
-    if (isEmptyPath(path3))
-      return this.contents !== void 0;
-    return isCollection$1(this.contents) ? this.contents.hasIn(path3) : false;
-  }
-  /**
-   * Sets a value in this document. For `!!set`, `value` needs to be a
-   * boolean to add/remove the item from the set.
-   */
-  set(key, value2) {
-    if (this.contents == null) {
-      this.contents = collectionFromPath(this.schema, [key], value2);
-    } else if (assertCollection(this.contents)) {
-      this.contents.set(key, value2);
-    }
-  }
-  /**
-   * Sets a value in this document. For `!!set`, `value` needs to be a
-   * boolean to add/remove the item from the set.
-   */
-  setIn(path3, value2) {
-    if (isEmptyPath(path3)) {
-      this.contents = value2;
-    } else if (this.contents == null) {
-      this.contents = collectionFromPath(this.schema, Array.from(path3), value2);
-    } else if (assertCollection(this.contents)) {
-      this.contents.setIn(path3, value2);
-    }
-  }
-  /**
-   * Change the YAML version and schema used by the document.
-   * A `null` version disables support for directives, explicit tags, anchors, and aliases.
-   * It also requires the `schema` option to be given as a `Schema` instance value.
-   *
-   * Overrides all previously set schema options.
-   */
-  setSchema(version3, options2 = {}) {
-    if (typeof version3 === "number")
-      version3 = String(version3);
-    let opt;
-    switch (version3) {
-      case "1.1":
-        if (this.directives)
-          this.directives.yaml.version = "1.1";
-        else
-          this.directives = new Directives({ version: "1.1" });
-        opt = { merge: true, resolveKnownTags: false, schema: "yaml-1.1" };
-        break;
-      case "1.2":
-      case "next":
-        if (this.directives)
-          this.directives.yaml.version = version3;
-        else
-          this.directives = new Directives({ version: version3 });
-        opt = { merge: false, resolveKnownTags: true, schema: "core" };
-        break;
-      case null:
-        if (this.directives)
-          delete this.directives;
-        opt = null;
-        break;
-      default: {
-        const sv = JSON.stringify(version3);
-        throw new Error(`Expected '1.1', '1.2' or null as first argument, but found: ${sv}`);
-      }
-    }
-    if (options2.schema instanceof Object)
-      this.schema = options2.schema;
-    else if (opt)
-      this.schema = new Schema(Object.assign(opt, options2));
-    else
-      throw new Error(`With a null YAML version, the { schema: Schema } option is required`);
-  }
-  // json & jsonArg are only used from toJSON()
-  toJS({ json, jsonArg, mapAsMap, maxAliasCount, onAnchor, reviver } = {}) {
-    const ctx = {
-      anchors: /* @__PURE__ */ new Map(),
-      doc: this,
-      keep: !json,
-      mapAsMap: mapAsMap === true,
-      mapKeyWarned: false,
-      maxAliasCount: typeof maxAliasCount === "number" ? maxAliasCount : 100
-    };
-    const res = toJS(this.contents, jsonArg ?? "", ctx);
-    if (typeof onAnchor === "function")
-      for (const { count, res: res2 } of ctx.anchors.values())
-        onAnchor(res2, count);
-    return typeof reviver === "function" ? applyReviver(reviver, { "": res }, "", res) : res;
-  }
-  /**
-   * A JSON representation of the document `contents`.
-   *
-   * @param jsonArg Used by `JSON.stringify` to indicate the array index or
-   *   property name.
-   */
-  toJSON(jsonArg, onAnchor) {
-    return this.toJS({ json: true, jsonArg, mapAsMap: false, onAnchor });
-  }
-  /** A YAML representation of the document. */
-  toString(options2 = {}) {
-    if (this.errors.length > 0)
-      throw new Error("Document with errors cannot be stringified");
-    if ("indent" in options2 && (!Number.isInteger(options2.indent) || Number(options2.indent) <= 0)) {
-      const s = JSON.stringify(options2.indent);
-      throw new Error(`"indent" option must be a positive integer, not ${s}`);
-    }
-    return stringifyDocument(this, options2);
-  }
-};
-function assertCollection(contents) {
-  if (isCollection$1(contents))
-    return true;
-  throw new Error("Expected a YAML collection as document contents");
-}
-var YAMLError = class extends Error {
-  constructor(name2, pos, code, message) {
-    super();
-    this.name = name2;
-    this.code = code;
-    this.message = message;
-    this.pos = pos;
-  }
-};
-var YAMLParseError = class extends YAMLError {
-  constructor(pos, code, message) {
-    super("YAMLParseError", pos, code, message);
-  }
-};
-var YAMLWarning = class extends YAMLError {
-  constructor(pos, code, message) {
-    super("YAMLWarning", pos, code, message);
-  }
-};
-var prettifyError = (src2, lc) => (error2) => {
-  if (error2.pos[0] === -1)
-    return;
-  error2.linePos = error2.pos.map((pos) => lc.linePos(pos));
-  const { line, col } = error2.linePos[0];
-  error2.message += ` at line ${line}, column ${col}`;
-  let ci = col - 1;
-  let lineStr = src2.substring(lc.lineStarts[line - 1], lc.lineStarts[line]).replace(/[\n\r]+$/, "");
-  if (ci >= 60 && lineStr.length > 80) {
-    const trimStart = Math.min(ci - 39, lineStr.length - 79);
-    lineStr = "…" + lineStr.substring(trimStart);
-    ci -= trimStart - 1;
-  }
-  if (lineStr.length > 80)
-    lineStr = lineStr.substring(0, 79) + "…";
-  if (line > 1 && /^ *$/.test(lineStr.substring(0, ci))) {
-    let prev = src2.substring(lc.lineStarts[line - 2], lc.lineStarts[line - 1]);
-    if (prev.length > 80)
-      prev = prev.substring(0, 79) + "…\n";
-    lineStr = prev + lineStr;
-  }
-  if (/[^ ]/.test(lineStr)) {
-    let count = 1;
-    const end = error2.linePos[1];
-    if (end && end.line === line && end.col > col) {
-      count = Math.max(1, Math.min(end.col - col, 80 - ci));
-    }
-    const pointer = " ".repeat(ci) + "^".repeat(count);
-    error2.message += `:
-
-${lineStr}
-${pointer}
-`;
-  }
-};
-function resolveProps(tokens, { flow, indicator, next, offset: offset2, onError: onError2, parentIndent, startOnNewline }) {
-  let spaceBefore = false;
-  let atNewline = startOnNewline;
-  let hasSpace = startOnNewline;
-  let comment = "";
-  let commentSep = "";
-  let hasNewline = false;
-  let hasNewlineAfterProp = false;
-  let reqSpace = false;
-  let tab = null;
-  let anchor = null;
-  let tag = null;
-  let comma2 = null;
-  let found2 = null;
-  let start = null;
-  for (const token of tokens) {
-    if (reqSpace) {
-      if (token.type !== "space" && token.type !== "newline" && token.type !== "comma")
-        onError2(token.offset, "MISSING_CHAR", "Tags and anchors must be separated from the next token by white space");
-      reqSpace = false;
-    }
-    if (tab) {
-      if (atNewline && token.type !== "comment" && token.type !== "newline") {
-        onError2(tab, "TAB_AS_INDENT", "Tabs are not allowed as indentation");
-      }
-      tab = null;
-    }
-    switch (token.type) {
-      case "space":
-        if (!flow && (indicator !== "doc-start" || (next == null ? void 0 : next.type) !== "flow-collection") && token.source.includes("	")) {
-          tab = token;
-        }
-        hasSpace = true;
-        break;
-      case "comment": {
-        if (!hasSpace)
-          onError2(token, "MISSING_CHAR", "Comments must be separated from other tokens by white space characters");
-        const cb = token.source.substring(1) || " ";
-        if (!comment)
-          comment = cb;
-        else
-          comment += commentSep + cb;
-        commentSep = "";
-        atNewline = false;
-        break;
-      }
-      case "newline":
-        if (atNewline) {
-          if (comment)
-            comment += token.source;
-          else
-            spaceBefore = true;
-        } else
-          commentSep += token.source;
-        atNewline = true;
-        hasNewline = true;
-        if (anchor || tag)
-          hasNewlineAfterProp = true;
-        hasSpace = true;
-        break;
-      case "anchor":
-        if (anchor)
-          onError2(token, "MULTIPLE_ANCHORS", "A node can have at most one anchor");
-        if (token.source.endsWith(":"))
-          onError2(token.offset + token.source.length - 1, "BAD_ALIAS", "Anchor ending in : is ambiguous", true);
-        anchor = token;
-        if (start === null)
-          start = token.offset;
-        atNewline = false;
-        hasSpace = false;
-        reqSpace = true;
-        break;
-      case "tag": {
-        if (tag)
-          onError2(token, "MULTIPLE_TAGS", "A node can have at most one tag");
-        tag = token;
-        if (start === null)
-          start = token.offset;
-        atNewline = false;
-        hasSpace = false;
-        reqSpace = true;
-        break;
-      }
-      case indicator:
-        if (anchor || tag)
-          onError2(token, "BAD_PROP_ORDER", `Anchors and tags must be after the ${token.source} indicator`);
-        if (found2)
-          onError2(token, "UNEXPECTED_TOKEN", `Unexpected ${token.source} in ${flow ?? "collection"}`);
-        found2 = token;
-        atNewline = indicator === "seq-item-ind" || indicator === "explicit-key-ind";
-        hasSpace = false;
-        break;
-      case "comma":
-        if (flow) {
-          if (comma2)
-            onError2(token, "UNEXPECTED_TOKEN", `Unexpected , in ${flow}`);
-          comma2 = token;
-          atNewline = false;
-          hasSpace = false;
-          break;
-        }
-      default:
-        onError2(token, "UNEXPECTED_TOKEN", `Unexpected ${token.type} token`);
-        atNewline = false;
-        hasSpace = false;
-    }
-  }
-  const last = tokens[tokens.length - 1];
-  const end = last ? last.offset + last.source.length : offset2;
-  if (reqSpace && next && next.type !== "space" && next.type !== "newline" && next.type !== "comma" && (next.type !== "scalar" || next.source !== "")) {
-    onError2(next.offset, "MISSING_CHAR", "Tags and anchors must be separated from the next token by white space");
-  }
-  if (tab && (atNewline && tab.indent <= parentIndent || (next == null ? void 0 : next.type) === "block-map" || (next == null ? void 0 : next.type) === "block-seq"))
-    onError2(tab, "TAB_AS_INDENT", "Tabs are not allowed as indentation");
-  return {
-    comma: comma2,
-    found: found2,
-    spaceBefore,
-    comment,
-    hasNewline,
-    hasNewlineAfterProp,
-    anchor,
-    tag,
-    end,
-    start: start ?? end
-  };
-}
-function containsNewline(key) {
-  if (!key)
-    return null;
-  switch (key.type) {
-    case "alias":
-    case "scalar":
-    case "double-quoted-scalar":
-    case "single-quoted-scalar":
-      if (key.source.includes("\n"))
-        return true;
-      if (key.end) {
-        for (const st of key.end)
-          if (st.type === "newline")
-            return true;
-      }
-      return false;
-    case "flow-collection":
-      for (const it of key.items) {
-        for (const st of it.start)
-          if (st.type === "newline")
-            return true;
-        if (it.sep) {
-          for (const st of it.sep)
-            if (st.type === "newline")
-              return true;
-        }
-        if (containsNewline(it.key) || containsNewline(it.value))
-          return true;
-      }
-      return false;
-    default:
-      return true;
-  }
-}
-function flowIndentCheck(indent, fc, onError2) {
-  if ((fc == null ? void 0 : fc.type) === "flow-collection") {
-    const end = fc.end[0];
-    if (end.indent === indent && (end.source === "]" || end.source === "}") && containsNewline(fc)) {
-      const msg = "Flow end indicator should be more indented than parent";
-      onError2(end, "BAD_INDENT", msg, true);
-    }
-  }
-}
-function mapIncludes(ctx, items, search) {
-  const { uniqueKeys } = ctx.options;
-  if (uniqueKeys === false)
-    return false;
-  const isEqual = typeof uniqueKeys === "function" ? uniqueKeys : (a, b) => a === b || isScalar$1(a) && isScalar$1(b) && a.value === b.value && !(a.value === "<<" && ctx.schema.merge);
-  return items.some((pair) => isEqual(pair.key, search));
-}
-var startColMsg = "All mapping items must start at the same column";
-function resolveBlockMap({ composeNode: composeNode2, composeEmptyNode: composeEmptyNode2 }, ctx, bm, onError2, tag) {
-  var _a4;
-  const NodeClass = (tag == null ? void 0 : tag.nodeClass) ?? YAMLMap;
-  const map2 = new NodeClass(ctx.schema);
-  if (ctx.atRoot)
-    ctx.atRoot = false;
-  let offset2 = bm.offset;
-  let commentEnd = null;
-  for (const collItem of bm.items) {
-    const { start, key, sep: sep2, value: value2 } = collItem;
-    const keyProps = resolveProps(start, {
-      indicator: "explicit-key-ind",
-      next: key ?? (sep2 == null ? void 0 : sep2[0]),
-      offset: offset2,
-      onError: onError2,
-      parentIndent: bm.indent,
-      startOnNewline: true
-    });
-    const implicitKey = !keyProps.found;
-    if (implicitKey) {
-      if (key) {
-        if (key.type === "block-seq")
-          onError2(offset2, "BLOCK_AS_IMPLICIT_KEY", "A block sequence may not be used as an implicit map key");
-        else if ("indent" in key && key.indent !== bm.indent)
-          onError2(offset2, "BAD_INDENT", startColMsg);
-      }
-      if (!keyProps.anchor && !keyProps.tag && !sep2) {
-        commentEnd = keyProps.end;
-        if (keyProps.comment) {
-          if (map2.comment)
-            map2.comment += "\n" + keyProps.comment;
-          else
-            map2.comment = keyProps.comment;
-        }
-        continue;
-      }
-      if (keyProps.hasNewlineAfterProp || containsNewline(key)) {
-        onError2(key ?? start[start.length - 1], "MULTILINE_IMPLICIT_KEY", "Implicit keys need to be on a single line");
-      }
-    } else if (((_a4 = keyProps.found) == null ? void 0 : _a4.indent) !== bm.indent) {
-      onError2(offset2, "BAD_INDENT", startColMsg);
-    }
-    const keyStart = keyProps.end;
-    const keyNode = key ? composeNode2(ctx, key, keyProps, onError2) : composeEmptyNode2(ctx, keyStart, start, null, keyProps, onError2);
-    if (ctx.schema.compat)
-      flowIndentCheck(bm.indent, key, onError2);
-    if (mapIncludes(ctx, map2.items, keyNode))
-      onError2(keyStart, "DUPLICATE_KEY", "Map keys must be unique");
-    const valueProps = resolveProps(sep2 ?? [], {
-      indicator: "map-value-ind",
-      next: value2,
-      offset: keyNode.range[2],
-      onError: onError2,
-      parentIndent: bm.indent,
-      startOnNewline: !key || key.type === "block-scalar"
-    });
-    offset2 = valueProps.end;
-    if (valueProps.found) {
-      if (implicitKey) {
-        if ((value2 == null ? void 0 : value2.type) === "block-map" && !valueProps.hasNewline)
-          onError2(offset2, "BLOCK_AS_IMPLICIT_KEY", "Nested mappings are not allowed in compact mappings");
-        if (ctx.options.strict && keyProps.start < valueProps.found.offset - 1024)
-          onError2(keyNode.range, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit block mapping key");
-      }
-      const valueNode = value2 ? composeNode2(ctx, value2, valueProps, onError2) : composeEmptyNode2(ctx, offset2, sep2, null, valueProps, onError2);
-      if (ctx.schema.compat)
-        flowIndentCheck(bm.indent, value2, onError2);
-      offset2 = valueNode.range[2];
-      const pair = new Pair(keyNode, valueNode);
-      if (ctx.options.keepSourceTokens)
-        pair.srcToken = collItem;
-      map2.items.push(pair);
-    } else {
-      if (implicitKey)
-        onError2(keyNode.range, "MISSING_CHAR", "Implicit map keys need to be followed by map values");
-      if (valueProps.comment) {
-        if (keyNode.comment)
-          keyNode.comment += "\n" + valueProps.comment;
-        else
-          keyNode.comment = valueProps.comment;
-      }
-      const pair = new Pair(keyNode);
-      if (ctx.options.keepSourceTokens)
-        pair.srcToken = collItem;
-      map2.items.push(pair);
-    }
-  }
-  if (commentEnd && commentEnd < offset2)
-    onError2(commentEnd, "IMPOSSIBLE", "Map comment with trailing content");
-  map2.range = [bm.offset, offset2, commentEnd ?? offset2];
-  return map2;
-}
-function resolveBlockSeq({ composeNode: composeNode2, composeEmptyNode: composeEmptyNode2 }, ctx, bs, onError2, tag) {
-  const NodeClass = (tag == null ? void 0 : tag.nodeClass) ?? YAMLSeq;
-  const seq2 = new NodeClass(ctx.schema);
-  if (ctx.atRoot)
-    ctx.atRoot = false;
-  let offset2 = bs.offset;
-  let commentEnd = null;
-  for (const { start, value: value2 } of bs.items) {
-    const props = resolveProps(start, {
-      indicator: "seq-item-ind",
-      next: value2,
-      offset: offset2,
-      onError: onError2,
-      parentIndent: bs.indent,
-      startOnNewline: true
-    });
-    if (!props.found) {
-      if (props.anchor || props.tag || value2) {
-        if (value2 && value2.type === "block-seq")
-          onError2(props.end, "BAD_INDENT", "All sequence items must start at the same column");
-        else
-          onError2(offset2, "MISSING_CHAR", "Sequence item without - indicator");
-      } else {
-        commentEnd = props.end;
-        if (props.comment)
-          seq2.comment = props.comment;
-        continue;
-      }
-    }
-    const node2 = value2 ? composeNode2(ctx, value2, props, onError2) : composeEmptyNode2(ctx, props.end, start, null, props, onError2);
-    if (ctx.schema.compat)
-      flowIndentCheck(bs.indent, value2, onError2);
-    offset2 = node2.range[2];
-    seq2.items.push(node2);
-  }
-  seq2.range = [bs.offset, offset2, commentEnd ?? offset2];
-  return seq2;
-}
-function resolveEnd(end, offset2, reqSpace, onError2) {
-  let comment = "";
-  if (end) {
-    let hasSpace = false;
-    let sep2 = "";
-    for (const token of end) {
-      const { source, type } = token;
-      switch (type) {
-        case "space":
-          hasSpace = true;
-          break;
-        case "comment": {
-          if (reqSpace && !hasSpace)
-            onError2(token, "MISSING_CHAR", "Comments must be separated from other tokens by white space characters");
-          const cb = source.substring(1) || " ";
-          if (!comment)
-            comment = cb;
-          else
-            comment += sep2 + cb;
-          sep2 = "";
-          break;
-        }
-        case "newline":
-          if (comment)
-            sep2 += source;
-          hasSpace = true;
-          break;
-        default:
-          onError2(token, "UNEXPECTED_TOKEN", `Unexpected ${type} at node end`);
-      }
-      offset2 += source.length;
-    }
-  }
-  return { comment, offset: offset2 };
-}
-var blockMsg = "Block collections are not allowed within flow collections";
-var isBlock$1 = (token) => token && (token.type === "block-map" || token.type === "block-seq");
-function resolveFlowCollection({ composeNode: composeNode2, composeEmptyNode: composeEmptyNode2 }, ctx, fc, onError2, tag) {
-  const isMap2 = fc.start.source === "{";
-  const fcName = isMap2 ? "flow map" : "flow sequence";
-  const NodeClass = (tag == null ? void 0 : tag.nodeClass) ?? (isMap2 ? YAMLMap : YAMLSeq);
-  const coll = new NodeClass(ctx.schema);
-  coll.flow = true;
-  const atRoot = ctx.atRoot;
-  if (atRoot)
-    ctx.atRoot = false;
-  let offset2 = fc.offset + fc.start.source.length;
-  for (let i = 0; i < fc.items.length; ++i) {
-    const collItem = fc.items[i];
-    const { start, key, sep: sep2, value: value2 } = collItem;
-    const props = resolveProps(start, {
-      flow: fcName,
-      indicator: "explicit-key-ind",
-      next: key ?? (sep2 == null ? void 0 : sep2[0]),
-      offset: offset2,
-      onError: onError2,
-      parentIndent: fc.indent,
-      startOnNewline: false
-    });
-    if (!props.found) {
-      if (!props.anchor && !props.tag && !sep2 && !value2) {
-        if (i === 0 && props.comma)
-          onError2(props.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${fcName}`);
-        else if (i < fc.items.length - 1)
-          onError2(props.start, "UNEXPECTED_TOKEN", `Unexpected empty item in ${fcName}`);
-        if (props.comment) {
-          if (coll.comment)
-            coll.comment += "\n" + props.comment;
-          else
-            coll.comment = props.comment;
-        }
-        offset2 = props.end;
-        continue;
-      }
-      if (!isMap2 && ctx.options.strict && containsNewline(key))
-        onError2(
-          key,
-          // checked by containsNewline()
-          "MULTILINE_IMPLICIT_KEY",
-          "Implicit keys of flow sequence pairs need to be on a single line"
-        );
-    }
-    if (i === 0) {
-      if (props.comma)
-        onError2(props.comma, "UNEXPECTED_TOKEN", `Unexpected , in ${fcName}`);
-    } else {
-      if (!props.comma)
-        onError2(props.start, "MISSING_CHAR", `Missing , between ${fcName} items`);
-      if (props.comment) {
-        let prevItemComment = "";
-        loop: for (const st of start) {
-          switch (st.type) {
-            case "comma":
-            case "space":
-              break;
-            case "comment":
-              prevItemComment = st.source.substring(1);
-              break loop;
-            default:
-              break loop;
-          }
-        }
-        if (prevItemComment) {
-          let prev = coll.items[coll.items.length - 1];
-          if (isPair(prev))
-            prev = prev.value ?? prev.key;
-          if (prev.comment)
-            prev.comment += "\n" + prevItemComment;
-          else
-            prev.comment = prevItemComment;
-          props.comment = props.comment.substring(prevItemComment.length + 1);
-        }
-      }
-    }
-    if (!isMap2 && !sep2 && !props.found) {
-      const valueNode = value2 ? composeNode2(ctx, value2, props, onError2) : composeEmptyNode2(ctx, props.end, sep2, null, props, onError2);
-      coll.items.push(valueNode);
-      offset2 = valueNode.range[2];
-      if (isBlock$1(value2))
-        onError2(valueNode.range, "BLOCK_IN_FLOW", blockMsg);
-    } else {
-      const keyStart = props.end;
-      const keyNode = key ? composeNode2(ctx, key, props, onError2) : composeEmptyNode2(ctx, keyStart, start, null, props, onError2);
-      if (isBlock$1(key))
-        onError2(keyNode.range, "BLOCK_IN_FLOW", blockMsg);
-      const valueProps = resolveProps(sep2 ?? [], {
-        flow: fcName,
-        indicator: "map-value-ind",
-        next: value2,
-        offset: keyNode.range[2],
-        onError: onError2,
-        parentIndent: fc.indent,
-        startOnNewline: false
-      });
-      if (valueProps.found) {
-        if (!isMap2 && !props.found && ctx.options.strict) {
-          if (sep2)
-            for (const st of sep2) {
-              if (st === valueProps.found)
-                break;
-              if (st.type === "newline") {
-                onError2(st, "MULTILINE_IMPLICIT_KEY", "Implicit keys of flow sequence pairs need to be on a single line");
-                break;
-              }
-            }
-          if (props.start < valueProps.found.offset - 1024)
-            onError2(valueProps.found, "KEY_OVER_1024_CHARS", "The : indicator must be at most 1024 chars after the start of an implicit flow sequence key");
-        }
-      } else if (value2) {
-        if ("source" in value2 && value2.source && value2.source[0] === ":")
-          onError2(value2, "MISSING_CHAR", `Missing space after : in ${fcName}`);
-        else
-          onError2(valueProps.start, "MISSING_CHAR", `Missing , or : between ${fcName} items`);
-      }
-      const valueNode = value2 ? composeNode2(ctx, value2, valueProps, onError2) : valueProps.found ? composeEmptyNode2(ctx, valueProps.end, sep2, null, valueProps, onError2) : null;
-      if (valueNode) {
-        if (isBlock$1(value2))
-          onError2(valueNode.range, "BLOCK_IN_FLOW", blockMsg);
-      } else if (valueProps.comment) {
-        if (keyNode.comment)
-          keyNode.comment += "\n" + valueProps.comment;
-        else
-          keyNode.comment = valueProps.comment;
-      }
-      const pair = new Pair(keyNode, valueNode);
-      if (ctx.options.keepSourceTokens)
-        pair.srcToken = collItem;
-      if (isMap2) {
-        const map2 = coll;
-        if (mapIncludes(ctx, map2.items, keyNode))
-          onError2(keyStart, "DUPLICATE_KEY", "Map keys must be unique");
-        map2.items.push(pair);
-      } else {
-        const map2 = new YAMLMap(ctx.schema);
-        map2.flow = true;
-        map2.items.push(pair);
-        coll.items.push(map2);
-      }
-      offset2 = valueNode ? valueNode.range[2] : valueProps.end;
-    }
-  }
-  const expectedEnd = isMap2 ? "}" : "]";
-  const [ce, ...ee] = fc.end;
-  let cePos = offset2;
-  if (ce && ce.source === expectedEnd)
-    cePos = ce.offset + ce.source.length;
-  else {
-    const name2 = fcName[0].toUpperCase() + fcName.substring(1);
-    const msg = atRoot ? `${name2} must end with a ${expectedEnd}` : `${name2} in block collection must be sufficiently indented and end with a ${expectedEnd}`;
-    onError2(offset2, atRoot ? "MISSING_CHAR" : "BAD_INDENT", msg);
-    if (ce && ce.source.length !== 1)
-      ee.unshift(ce);
-  }
-  if (ee.length > 0) {
-    const end = resolveEnd(ee, cePos, ctx.options.strict, onError2);
-    if (end.comment) {
-      if (coll.comment)
-        coll.comment += "\n" + end.comment;
-      else
-        coll.comment = end.comment;
-    }
-    coll.range = [fc.offset, cePos, end.offset];
-  } else {
-    coll.range = [fc.offset, cePos, cePos];
-  }
-  return coll;
-}
-function resolveCollection(CN2, ctx, token, onError2, tagName, tag) {
-  const coll = token.type === "block-map" ? resolveBlockMap(CN2, ctx, token, onError2, tag) : token.type === "block-seq" ? resolveBlockSeq(CN2, ctx, token, onError2, tag) : resolveFlowCollection(CN2, ctx, token, onError2, tag);
-  const Coll = coll.constructor;
-  if (tagName === "!" || tagName === Coll.tagName) {
-    coll.tag = Coll.tagName;
-    return coll;
-  }
-  if (tagName)
-    coll.tag = tagName;
-  return coll;
-}
-function composeCollection(CN2, ctx, token, tagToken, onError2) {
-  var _a4;
-  const tagName = !tagToken ? null : ctx.directives.tagName(tagToken.source, (msg) => onError2(tagToken, "TAG_RESOLVE_FAILED", msg));
-  const expType = token.type === "block-map" ? "map" : token.type === "block-seq" ? "seq" : token.start.source === "{" ? "map" : "seq";
-  if (!tagToken || !tagName || tagName === "!" || tagName === YAMLMap.tagName && expType === "map" || tagName === YAMLSeq.tagName && expType === "seq" || !expType) {
-    return resolveCollection(CN2, ctx, token, onError2, tagName);
-  }
-  let tag = ctx.schema.tags.find((t2) => t2.tag === tagName && t2.collection === expType);
-  if (!tag) {
-    const kt = ctx.schema.knownTags[tagName];
-    if (kt && kt.collection === expType) {
-      ctx.schema.tags.push(Object.assign({}, kt, { default: false }));
-      tag = kt;
-    } else {
-      if (kt == null ? void 0 : kt.collection) {
-        onError2(tagToken, "BAD_COLLECTION_TYPE", `${kt.tag} used for ${expType} collection, but expects ${kt.collection}`, true);
-      } else {
-        onError2(tagToken, "TAG_RESOLVE_FAILED", `Unresolved tag: ${tagName}`, true);
-      }
-      return resolveCollection(CN2, ctx, token, onError2, tagName);
-    }
-  }
-  const coll = resolveCollection(CN2, ctx, token, onError2, tagName, tag);
-  const res = ((_a4 = tag.resolve) == null ? void 0 : _a4.call(tag, coll, (msg) => onError2(tagToken, "TAG_RESOLVE_FAILED", msg), ctx.options)) ?? coll;
-  const node2 = isNode$1(res) ? res : new Scalar(res);
-  node2.range = coll.range;
-  node2.tag = tagName;
-  if (tag == null ? void 0 : tag.format)
-    node2.format = tag.format;
-  return node2;
-}
-function resolveBlockScalar(ctx, scalar, onError2) {
-  const start = scalar.offset;
-  const header = parseBlockScalarHeader(scalar, ctx.options.strict, onError2);
-  if (!header)
-    return { value: "", type: null, comment: "", range: [start, start, start] };
-  const type = header.mode === ">" ? Scalar.BLOCK_FOLDED : Scalar.BLOCK_LITERAL;
-  const lines = scalar.source ? splitLines(scalar.source) : [];
-  let chompStart = lines.length;
-  for (let i = lines.length - 1; i >= 0; --i) {
-    const content = lines[i][1];
-    if (content === "" || content === "\r")
-      chompStart = i;
-    else
-      break;
-  }
-  if (chompStart === 0) {
-    const value3 = header.chomp === "+" && lines.length > 0 ? "\n".repeat(Math.max(1, lines.length - 1)) : "";
-    let end2 = start + header.length;
-    if (scalar.source)
-      end2 += scalar.source.length;
-    return { value: value3, type, comment: header.comment, range: [start, end2, end2] };
-  }
-  let trimIndent = scalar.indent + header.indent;
-  let offset2 = scalar.offset + header.length;
-  let contentStart = 0;
-  for (let i = 0; i < chompStart; ++i) {
-    const [indent, content] = lines[i];
-    if (content === "" || content === "\r") {
-      if (header.indent === 0 && indent.length > trimIndent)
-        trimIndent = indent.length;
-    } else {
-      if (indent.length < trimIndent) {
-        const message = "Block scalars with more-indented leading empty lines must use an explicit indentation indicator";
-        onError2(offset2 + indent.length, "MISSING_CHAR", message);
-      }
-      if (header.indent === 0)
-        trimIndent = indent.length;
-      contentStart = i;
-      if (trimIndent === 0 && !ctx.atRoot) {
-        const message = "Block scalar values in collections must be indented";
-        onError2(offset2, "BAD_INDENT", message);
-      }
-      break;
-    }
-    offset2 += indent.length + content.length + 1;
-  }
-  for (let i = lines.length - 1; i >= chompStart; --i) {
-    if (lines[i][0].length > trimIndent)
-      chompStart = i + 1;
-  }
-  let value2 = "";
-  let sep2 = "";
-  let prevMoreIndented = false;
-  for (let i = 0; i < contentStart; ++i)
-    value2 += lines[i][0].slice(trimIndent) + "\n";
-  for (let i = contentStart; i < chompStart; ++i) {
-    let [indent, content] = lines[i];
-    offset2 += indent.length + content.length + 1;
-    const crlf = content[content.length - 1] === "\r";
-    if (crlf)
-      content = content.slice(0, -1);
-    if (content && indent.length < trimIndent) {
-      const src2 = header.indent ? "explicit indentation indicator" : "first line";
-      const message = `Block scalar lines must not be less indented than their ${src2}`;
-      onError2(offset2 - content.length - (crlf ? 2 : 1), "BAD_INDENT", message);
-      indent = "";
-    }
-    if (type === Scalar.BLOCK_LITERAL) {
-      value2 += sep2 + indent.slice(trimIndent) + content;
-      sep2 = "\n";
-    } else if (indent.length > trimIndent || content[0] === "	") {
-      if (sep2 === " ")
-        sep2 = "\n";
-      else if (!prevMoreIndented && sep2 === "\n")
-        sep2 = "\n\n";
-      value2 += sep2 + indent.slice(trimIndent) + content;
-      sep2 = "\n";
-      prevMoreIndented = true;
-    } else if (content === "") {
-      if (sep2 === "\n")
-        value2 += "\n";
-      else
-        sep2 = "\n";
-    } else {
-      value2 += sep2 + content;
-      sep2 = " ";
-      prevMoreIndented = false;
-    }
-  }
-  switch (header.chomp) {
-    case "-":
-      break;
-    case "+":
-      for (let i = chompStart; i < lines.length; ++i)
-        value2 += "\n" + lines[i][0].slice(trimIndent);
-      if (value2[value2.length - 1] !== "\n")
-        value2 += "\n";
-      break;
-    default:
-      value2 += "\n";
-  }
-  const end = start + header.length + scalar.source.length;
-  return { value: value2, type, comment: header.comment, range: [start, end, end] };
-}
-function parseBlockScalarHeader({ offset: offset2, props }, strict, onError2) {
-  if (props[0].type !== "block-scalar-header") {
-    onError2(props[0], "IMPOSSIBLE", "Block scalar header not found");
-    return null;
-  }
-  const { source } = props[0];
-  const mode2 = source[0];
-  let indent = 0;
-  let chomp = "";
-  let error2 = -1;
-  for (let i = 1; i < source.length; ++i) {
-    const ch = source[i];
-    if (!chomp && (ch === "-" || ch === "+"))
-      chomp = ch;
-    else {
-      const n2 = Number(ch);
-      if (!indent && n2)
-        indent = n2;
-      else if (error2 === -1)
-        error2 = offset2 + i;
-    }
-  }
-  if (error2 !== -1)
-    onError2(error2, "UNEXPECTED_TOKEN", `Block scalar header includes extra characters: ${source}`);
-  let hasSpace = false;
-  let comment = "";
-  let length = source.length;
-  for (let i = 1; i < props.length; ++i) {
-    const token = props[i];
-    switch (token.type) {
-      case "space":
-        hasSpace = true;
-      case "newline":
-        length += token.source.length;
-        break;
-      case "comment":
-        if (strict && !hasSpace) {
-          const message = "Comments must be separated from other tokens by white space characters";
-          onError2(token, "MISSING_CHAR", message);
-        }
-        length += token.source.length;
-        comment = token.source.substring(1);
-        break;
-      case "error":
-        onError2(token, "UNEXPECTED_TOKEN", token.message);
-        length += token.source.length;
-        break;
-      default: {
-        const message = `Unexpected token in block scalar header: ${token.type}`;
-        onError2(token, "UNEXPECTED_TOKEN", message);
-        const ts = token.source;
-        if (ts && typeof ts === "string")
-          length += ts.length;
-      }
-    }
-  }
-  return { mode: mode2, indent, chomp, comment, length };
-}
-function splitLines(source) {
-  const split = source.split(/\n( *)/);
-  const first2 = split[0];
-  const m = first2.match(/^( *)/);
-  const line0 = (m == null ? void 0 : m[1]) ? [m[1], first2.slice(m[1].length)] : ["", first2];
-  const lines = [line0];
-  for (let i = 1; i < split.length; i += 2)
-    lines.push([split[i], split[i + 1]]);
-  return lines;
-}
-function resolveFlowScalar(scalar, strict, onError2) {
-  const { offset: offset2, type, source, end } = scalar;
-  let _type2;
-  let value2;
-  const _onError = (rel, code, msg) => onError2(offset2 + rel, code, msg);
-  switch (type) {
-    case "scalar":
-      _type2 = Scalar.PLAIN;
-      value2 = plainValue(source, _onError);
-      break;
-    case "single-quoted-scalar":
-      _type2 = Scalar.QUOTE_SINGLE;
-      value2 = singleQuotedValue(source, _onError);
-      break;
-    case "double-quoted-scalar":
-      _type2 = Scalar.QUOTE_DOUBLE;
-      value2 = doubleQuotedValue(source, _onError);
-      break;
-    default:
-      onError2(scalar, "UNEXPECTED_TOKEN", `Expected a flow scalar value, but found: ${type}`);
-      return {
-        value: "",
-        type: null,
-        comment: "",
-        range: [offset2, offset2 + source.length, offset2 + source.length]
-      };
-  }
-  const valueEnd = offset2 + source.length;
-  const re = resolveEnd(end, valueEnd, strict, onError2);
-  return {
-    value: value2,
-    type: _type2,
-    comment: re.comment,
-    range: [offset2, valueEnd, re.offset]
-  };
-}
-function plainValue(source, onError2) {
-  let badChar = "";
-  switch (source[0]) {
-    case "	":
-      badChar = "a tab character";
-      break;
-    case ",":
-      badChar = "flow indicator character ,";
-      break;
-    case "%":
-      badChar = "directive indicator character %";
-      break;
-    case "|":
-    case ">": {
-      badChar = `block scalar indicator ${source[0]}`;
-      break;
-    }
-    case "@":
-    case "`": {
-      badChar = `reserved character ${source[0]}`;
-      break;
-    }
-  }
-  if (badChar)
-    onError2(0, "BAD_SCALAR_START", `Plain value cannot start with ${badChar}`);
-  return foldLines(source);
-}
-function singleQuotedValue(source, onError2) {
-  if (source[source.length - 1] !== "'" || source.length === 1)
-    onError2(source.length, "MISSING_CHAR", "Missing closing 'quote");
-  return foldLines(source.slice(1, -1)).replace(/''/g, "'");
-}
-function foldLines(source) {
-  let first2, line;
-  try {
-    first2 = new RegExp("(.*?)(? wsStart ? source.slice(wsStart, i + 1) : ch;
-    } else {
-      res += ch;
-    }
-  }
-  if (source[source.length - 1] !== '"' || source.length === 1)
-    onError2(source.length, "MISSING_CHAR", 'Missing closing "quote');
-  return res;
-}
-function foldNewline(source, offset2) {
-  let fold = "";
-  let ch = source[offset2 + 1];
-  while (ch === " " || ch === "	" || ch === "\n" || ch === "\r") {
-    if (ch === "\r" && source[offset2 + 2] !== "\n")
-      break;
-    if (ch === "\n")
-      fold += "\n";
-    offset2 += 1;
-    ch = source[offset2 + 1];
-  }
-  if (!fold)
-    fold = " ";
-  return { fold, offset: offset2 };
-}
-var escapeCodes = {
-  "0": "\0",
-  // null character
-  a: "\x07",
-  // bell character
-  b: "\b",
-  // backspace
-  e: "\x1B",
-  // escape character
-  f: "\f",
-  // form feed
-  n: "\n",
-  // line feed
-  r: "\r",
-  // carriage return
-  t: "	",
-  // horizontal tab
-  v: "\v",
-  // vertical tab
-  N: "…",
-  // Unicode next line
-  _: " ",
-  // Unicode non-breaking space
-  L: "\u2028",
-  // Unicode line separator
-  P: "\u2029",
-  // Unicode paragraph separator
-  " ": " ",
-  '"': '"',
-  "/": "/",
-  "\\": "\\",
-  "	": "	"
-};
-function parseCharCode(source, offset2, length, onError2) {
-  const cc = source.substr(offset2, length);
-  const ok = cc.length === length && /^[0-9a-fA-F]+$/.test(cc);
-  const code = ok ? parseInt(cc, 16) : NaN;
-  if (isNaN(code)) {
-    const raw = source.substr(offset2 - 2, length + 2);
-    onError2(offset2 - 2, "BAD_DQ_ESCAPE", `Invalid escape sequence ${raw}`);
-    return raw;
-  }
-  return String.fromCodePoint(code);
-}
-function composeScalar(ctx, token, tagToken, onError2) {
-  const { value: value2, type, comment, range: range2 } = token.type === "block-scalar" ? resolveBlockScalar(ctx, token, onError2) : resolveFlowScalar(token, ctx.options.strict, onError2);
-  const tagName = tagToken ? ctx.directives.tagName(tagToken.source, (msg) => onError2(tagToken, "TAG_RESOLVE_FAILED", msg)) : null;
-  const tag = tagToken && tagName ? findScalarTagByName(ctx.schema, value2, tagName, tagToken, onError2) : token.type === "scalar" ? findScalarTagByTest(ctx, value2, token, onError2) : ctx.schema[SCALAR$1];
-  let scalar;
-  try {
-    const res = tag.resolve(value2, (msg) => onError2(tagToken ?? token, "TAG_RESOLVE_FAILED", msg), ctx.options);
-    scalar = isScalar$1(res) ? res : new Scalar(res);
-  } catch (error2) {
-    const msg = error2 instanceof Error ? error2.message : String(error2);
-    onError2(tagToken ?? token, "TAG_RESOLVE_FAILED", msg);
-    scalar = new Scalar(value2);
-  }
-  scalar.range = range2;
-  scalar.source = value2;
-  if (type)
-    scalar.type = type;
-  if (tagName)
-    scalar.tag = tagName;
-  if (tag.format)
-    scalar.format = tag.format;
-  if (comment)
-    scalar.comment = comment;
-  return scalar;
-}
-function findScalarTagByName(schema2, value2, tagName, tagToken, onError2) {
-  var _a4;
-  if (tagName === "!")
-    return schema2[SCALAR$1];
-  const matchWithTest = [];
-  for (const tag of schema2.tags) {
-    if (!tag.collection && tag.tag === tagName) {
-      if (tag.default && tag.test)
-        matchWithTest.push(tag);
-      else
-        return tag;
-    }
-  }
-  for (const tag of matchWithTest)
-    if ((_a4 = tag.test) == null ? void 0 : _a4.test(value2))
-      return tag;
-  const kt = schema2.knownTags[tagName];
-  if (kt && !kt.collection) {
-    schema2.tags.push(Object.assign({}, kt, { default: false, test: void 0 }));
-    return kt;
-  }
-  onError2(tagToken, "TAG_RESOLVE_FAILED", `Unresolved tag: ${tagName}`, tagName !== "tag:yaml.org,2002:str");
-  return schema2[SCALAR$1];
-}
-function findScalarTagByTest({ directives, schema: schema2 }, value2, token, onError2) {
-  const tag = schema2.tags.find((tag2) => {
-    var _a4;
-    return tag2.default && ((_a4 = tag2.test) == null ? void 0 : _a4.test(value2));
-  }) || schema2[SCALAR$1];
-  if (schema2.compat) {
-    const compat = schema2.compat.find((tag2) => {
-      var _a4;
-      return tag2.default && ((_a4 = tag2.test) == null ? void 0 : _a4.test(value2));
-    }) ?? schema2[SCALAR$1];
-    if (tag.tag !== compat.tag) {
-      const ts = directives.tagString(tag.tag);
-      const cs = directives.tagString(compat.tag);
-      const msg = `Value may be parsed as either ${ts} or ${cs}`;
-      onError2(token, "TAG_RESOLVE_FAILED", msg, true);
-    }
-  }
-  return tag;
-}
-function emptyScalarPosition(offset2, before, pos) {
-  if (before) {
-    if (pos === null)
-      pos = before.length;
-    for (let i = pos - 1; i >= 0; --i) {
-      let st = before[i];
-      switch (st.type) {
-        case "space":
-        case "comment":
-        case "newline":
-          offset2 -= st.source.length;
-          continue;
-      }
-      st = before[++i];
-      while ((st == null ? void 0 : st.type) === "space") {
-        offset2 += st.source.length;
-        st = before[++i];
-      }
-      break;
-    }
-  }
-  return offset2;
-}
-var CN = { composeNode, composeEmptyNode };
-function composeNode(ctx, token, props, onError2) {
-  const { spaceBefore, comment, anchor, tag } = props;
-  let node2;
-  let isSrcToken = true;
-  switch (token.type) {
-    case "alias":
-      node2 = composeAlias(ctx, token, onError2);
-      if (anchor || tag)
-        onError2(token, "ALIAS_PROPS", "An alias node must not specify any properties");
-      break;
-    case "scalar":
-    case "single-quoted-scalar":
-    case "double-quoted-scalar":
-    case "block-scalar":
-      node2 = composeScalar(ctx, token, tag, onError2);
-      if (anchor)
-        node2.anchor = anchor.source.substring(1);
-      break;
-    case "block-map":
-    case "block-seq":
-    case "flow-collection":
-      node2 = composeCollection(CN, ctx, token, tag, onError2);
-      if (anchor)
-        node2.anchor = anchor.source.substring(1);
-      break;
-    default: {
-      const message = token.type === "error" ? token.message : `Unsupported token (type: ${token.type})`;
-      onError2(token, "UNEXPECTED_TOKEN", message);
-      node2 = composeEmptyNode(ctx, token.offset, void 0, null, props, onError2);
-      isSrcToken = false;
-    }
-  }
-  if (anchor && node2.anchor === "")
-    onError2(anchor, "BAD_ALIAS", "Anchor cannot be an empty string");
-  if (spaceBefore)
-    node2.spaceBefore = true;
-  if (comment) {
-    if (token.type === "scalar" && token.source === "")
-      node2.comment = comment;
-    else
-      node2.commentBefore = comment;
-  }
-  if (ctx.options.keepSourceTokens && isSrcToken)
-    node2.srcToken = token;
-  return node2;
-}
-function composeEmptyNode(ctx, offset2, before, pos, { spaceBefore, comment, anchor, tag, end }, onError2) {
-  const token = {
-    type: "scalar",
-    offset: emptyScalarPosition(offset2, before, pos),
-    indent: -1,
-    source: ""
-  };
-  const node2 = composeScalar(ctx, token, tag, onError2);
-  if (anchor) {
-    node2.anchor = anchor.source.substring(1);
-    if (node2.anchor === "")
-      onError2(anchor, "BAD_ALIAS", "Anchor cannot be an empty string");
-  }
-  if (spaceBefore)
-    node2.spaceBefore = true;
-  if (comment) {
-    node2.comment = comment;
-    node2.range[2] = end;
-  }
-  return node2;
-}
-function composeAlias({ options: options2 }, { offset: offset2, source, end }, onError2) {
-  const alias2 = new Alias(source.substring(1));
-  if (alias2.source === "")
-    onError2(offset2, "BAD_ALIAS", "Alias cannot be an empty string");
-  if (alias2.source.endsWith(":"))
-    onError2(offset2 + source.length - 1, "BAD_ALIAS", "Alias ending in : is ambiguous", true);
-  const valueEnd = offset2 + source.length;
-  const re = resolveEnd(end, valueEnd, options2.strict, onError2);
-  alias2.range = [offset2, valueEnd, re.offset];
-  if (re.comment)
-    alias2.comment = re.comment;
-  return alias2;
-}
-function composeDoc(options2, directives, { offset: offset2, start, value: value2, end }, onError2) {
-  const opts = Object.assign({ _directives: directives }, options2);
-  const doc = new Document(void 0, opts);
-  const ctx = {
-    atRoot: true,
-    directives: doc.directives,
-    options: doc.options,
-    schema: doc.schema
-  };
-  const props = resolveProps(start, {
-    indicator: "doc-start",
-    next: value2 ?? (end == null ? void 0 : end[0]),
-    offset: offset2,
-    onError: onError2,
-    parentIndent: 0,
-    startOnNewline: true
-  });
-  if (props.found) {
-    doc.directives.docStart = true;
-    if (value2 && (value2.type === "block-map" || value2.type === "block-seq") && !props.hasNewline)
-      onError2(props.end, "MISSING_CHAR", "Block collection cannot start on same line with directives-end marker");
-  }
-  doc.contents = value2 ? composeNode(ctx, value2, props, onError2) : composeEmptyNode(ctx, props.end, start, null, props, onError2);
-  const contentEnd = doc.contents.range[2];
-  const re = resolveEnd(end, contentEnd, false, onError2);
-  if (re.comment)
-    doc.comment = re.comment;
-  doc.range = [offset2, contentEnd, re.offset];
-  return doc;
-}
-function getErrorPos(src2) {
-  if (typeof src2 === "number")
-    return [src2, src2 + 1];
-  if (Array.isArray(src2))
-    return src2.length === 2 ? src2 : [src2[0], src2[1]];
-  const { offset: offset2, source } = src2;
-  return [offset2, offset2 + (typeof source === "string" ? source.length : 1)];
-}
-function parsePrelude(prelude) {
-  var _a4;
-  let comment = "";
-  let atComment = false;
-  let afterEmptyLine = false;
-  for (let i = 0; i < prelude.length; ++i) {
-    const source = prelude[i];
-    switch (source[0]) {
-      case "#":
-        comment += (comment === "" ? "" : afterEmptyLine ? "\n\n" : "\n") + (source.substring(1) || " ");
-        atComment = true;
-        afterEmptyLine = false;
-        break;
-      case "%":
-        if (((_a4 = prelude[i + 1]) == null ? void 0 : _a4[0]) !== "#")
-          i += 1;
-        atComment = false;
-        break;
-      default:
-        if (!atComment)
-          afterEmptyLine = true;
-        atComment = false;
-    }
-  }
-  return { comment, afterEmptyLine };
-}
-var Composer = class {
-  constructor(options2 = {}) {
-    this.doc = null;
-    this.atDirectives = false;
-    this.prelude = [];
-    this.errors = [];
-    this.warnings = [];
-    this.onError = (source, code, message, warning) => {
-      const pos = getErrorPos(source);
-      if (warning)
-        this.warnings.push(new YAMLWarning(pos, code, message));
-      else
-        this.errors.push(new YAMLParseError(pos, code, message));
-    };
-    this.directives = new Directives({ version: options2.version || "1.2" });
-    this.options = options2;
-  }
-  decorate(doc, afterDoc) {
-    const { comment, afterEmptyLine } = parsePrelude(this.prelude);
-    if (comment) {
-      const dc = doc.contents;
-      if (afterDoc) {
-        doc.comment = doc.comment ? `${doc.comment}
-${comment}` : comment;
-      } else if (afterEmptyLine || doc.directives.docStart || !dc) {
-        doc.commentBefore = comment;
-      } else if (isCollection$1(dc) && !dc.flow && dc.items.length > 0) {
-        let it = dc.items[0];
-        if (isPair(it))
-          it = it.key;
-        const cb = it.commentBefore;
-        it.commentBefore = cb ? `${comment}
-${cb}` : comment;
-      } else {
-        const cb = dc.commentBefore;
-        dc.commentBefore = cb ? `${comment}
-${cb}` : comment;
-      }
-    }
-    if (afterDoc) {
-      Array.prototype.push.apply(doc.errors, this.errors);
-      Array.prototype.push.apply(doc.warnings, this.warnings);
-    } else {
-      doc.errors = this.errors;
-      doc.warnings = this.warnings;
-    }
-    this.prelude = [];
-    this.errors = [];
-    this.warnings = [];
-  }
-  /**
-   * Current stream status information.
-   *
-   * Mostly useful at the end of input for an empty stream.
-   */
-  streamInfo() {
-    return {
-      comment: parsePrelude(this.prelude).comment,
-      directives: this.directives,
-      errors: this.errors,
-      warnings: this.warnings
-    };
-  }
-  /**
-   * Compose tokens into documents.
-   *
-   * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.
-   * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.
-   */
-  *compose(tokens, forceDoc = false, endOffset = -1) {
-    for (const token of tokens)
-      yield* this.next(token);
-    yield* this.end(forceDoc, endOffset);
-  }
-  /** Advance the composer by one CST token. */
-  *next(token) {
-    switch (token.type) {
-      case "directive":
-        this.directives.add(token.source, (offset2, message, warning) => {
-          const pos = getErrorPos(token);
-          pos[0] += offset2;
-          this.onError(pos, "BAD_DIRECTIVE", message, warning);
-        });
-        this.prelude.push(token.source);
-        this.atDirectives = true;
-        break;
-      case "document": {
-        const doc = composeDoc(this.options, this.directives, token, this.onError);
-        if (this.atDirectives && !doc.directives.docStart)
-          this.onError(token, "MISSING_CHAR", "Missing directives-end/doc-start indicator line");
-        this.decorate(doc, false);
-        if (this.doc)
-          yield this.doc;
-        this.doc = doc;
-        this.atDirectives = false;
-        break;
-      }
-      case "byte-order-mark":
-      case "space":
-        break;
-      case "comment":
-      case "newline":
-        this.prelude.push(token.source);
-        break;
-      case "error": {
-        const msg = token.source ? `${token.message}: ${JSON.stringify(token.source)}` : token.message;
-        const error2 = new YAMLParseError(getErrorPos(token), "UNEXPECTED_TOKEN", msg);
-        if (this.atDirectives || !this.doc)
-          this.errors.push(error2);
-        else
-          this.doc.errors.push(error2);
-        break;
-      }
-      case "doc-end": {
-        if (!this.doc) {
-          const msg = "Unexpected doc-end without preceding document";
-          this.errors.push(new YAMLParseError(getErrorPos(token), "UNEXPECTED_TOKEN", msg));
-          break;
-        }
-        this.doc.directives.docEnd = true;
-        const end = resolveEnd(token.end, token.offset + token.source.length, this.doc.options.strict, this.onError);
-        this.decorate(this.doc, true);
-        if (end.comment) {
-          const dc = this.doc.comment;
-          this.doc.comment = dc ? `${dc}
-${end.comment}` : end.comment;
-        }
-        this.doc.range[2] = end.offset;
-        break;
-      }
-      default:
-        this.errors.push(new YAMLParseError(getErrorPos(token), "UNEXPECTED_TOKEN", `Unsupported token ${token.type}`));
-    }
-  }
-  /**
-   * Call at end of input to yield any remaining document.
-   *
-   * @param forceDoc - If the stream contains no document, still emit a final document including any comments and directives that would be applied to a subsequent document.
-   * @param endOffset - Should be set if `forceDoc` is also set, to set the document range end and to indicate errors correctly.
-   */
-  *end(forceDoc = false, endOffset = -1) {
-    if (this.doc) {
-      this.decorate(this.doc, true);
-      yield this.doc;
-      this.doc = null;
-    } else if (forceDoc) {
-      const opts = Object.assign({ _directives: this.directives }, this.options);
-      const doc = new Document(void 0, opts);
-      if (this.atDirectives)
-        this.onError(endOffset, "MISSING_CHAR", "Missing directives-end indicator line");
-      doc.range = [0, endOffset, endOffset];
-      this.decorate(doc, false);
-      yield doc;
-    }
-  }
-};
-function resolveAsScalar(token, strict = true, onError2) {
-  if (token) {
-    const _onError = (pos, code, message) => {
-      const offset2 = typeof pos === "number" ? pos : Array.isArray(pos) ? pos[0] : pos.offset;
-      if (onError2)
-        onError2(offset2, code, message);
-      else
-        throw new YAMLParseError([offset2, offset2 + 1], code, message);
-    };
-    switch (token.type) {
-      case "scalar":
-      case "single-quoted-scalar":
-      case "double-quoted-scalar":
-        return resolveFlowScalar(token, strict, _onError);
-      case "block-scalar":
-        return resolveBlockScalar({ options: { strict } }, token, _onError);
-    }
-  }
-  return null;
-}
-function createScalarToken(value2, context) {
-  const { implicitKey = false, indent, inFlow = false, offset: offset2 = -1, type = "PLAIN" } = context;
-  const source = stringifyString({ type, value: value2 }, {
-    implicitKey,
-    indent: indent > 0 ? " ".repeat(indent) : "",
-    inFlow,
-    options: { blockQuote: true, lineWidth: -1 }
-  });
-  const end = context.end ?? [
-    { type: "newline", offset: -1, indent, source: "\n" }
-  ];
-  switch (source[0]) {
-    case "|":
-    case ">": {
-      const he = source.indexOf("\n");
-      const head = source.substring(0, he);
-      const body = source.substring(he + 1) + "\n";
-      const props = [
-        { type: "block-scalar-header", offset: offset2, indent, source: head }
-      ];
-      if (!addEndtoBlockProps(props, end))
-        props.push({ type: "newline", offset: -1, indent, source: "\n" });
-      return { type: "block-scalar", offset: offset2, indent, props, source: body };
-    }
-    case '"':
-      return { type: "double-quoted-scalar", offset: offset2, indent, source, end };
-    case "'":
-      return { type: "single-quoted-scalar", offset: offset2, indent, source, end };
-    default:
-      return { type: "scalar", offset: offset2, indent, source, end };
-  }
-}
-function setScalarValue(token, value2, context = {}) {
-  let { afterKey = false, implicitKey = false, inFlow = false, type } = context;
-  let indent = "indent" in token ? token.indent : null;
-  if (afterKey && typeof indent === "number")
-    indent += 2;
-  if (!type)
-    switch (token.type) {
-      case "single-quoted-scalar":
-        type = "QUOTE_SINGLE";
-        break;
-      case "double-quoted-scalar":
-        type = "QUOTE_DOUBLE";
-        break;
-      case "block-scalar": {
-        const header = token.props[0];
-        if (header.type !== "block-scalar-header")
-          throw new Error("Invalid block scalar header");
-        type = header.source[0] === ">" ? "BLOCK_FOLDED" : "BLOCK_LITERAL";
-        break;
-      }
-      default:
-        type = "PLAIN";
-    }
-  const source = stringifyString({ type, value: value2 }, {
-    implicitKey: implicitKey || indent === null,
-    indent: indent !== null && indent > 0 ? " ".repeat(indent) : "",
-    inFlow,
-    options: { blockQuote: true, lineWidth: -1 }
-  });
-  switch (source[0]) {
-    case "|":
-    case ">":
-      setBlockScalarValue(token, source);
-      break;
-    case '"':
-      setFlowScalarValue(token, source, "double-quoted-scalar");
-      break;
-    case "'":
-      setFlowScalarValue(token, source, "single-quoted-scalar");
-      break;
-    default:
-      setFlowScalarValue(token, source, "scalar");
-  }
-}
-function setBlockScalarValue(token, source) {
-  const he = source.indexOf("\n");
-  const head = source.substring(0, he);
-  const body = source.substring(he + 1) + "\n";
-  if (token.type === "block-scalar") {
-    const header = token.props[0];
-    if (header.type !== "block-scalar-header")
-      throw new Error("Invalid block scalar header");
-    header.source = head;
-    token.source = body;
-  } else {
-    const { offset: offset2 } = token;
-    const indent = "indent" in token ? token.indent : -1;
-    const props = [
-      { type: "block-scalar-header", offset: offset2, indent, source: head }
-    ];
-    if (!addEndtoBlockProps(props, "end" in token ? token.end : void 0))
-      props.push({ type: "newline", offset: -1, indent, source: "\n" });
-    for (const key of Object.keys(token))
-      if (key !== "type" && key !== "offset")
-        delete token[key];
-    Object.assign(token, { type: "block-scalar", indent, props, source: body });
-  }
-}
-function addEndtoBlockProps(props, end) {
-  if (end)
-    for (const st of end)
-      switch (st.type) {
-        case "space":
-        case "comment":
-          props.push(st);
-          break;
-        case "newline":
-          props.push(st);
-          return true;
-      }
-  return false;
-}
-function setFlowScalarValue(token, source, type) {
-  switch (token.type) {
-    case "scalar":
-    case "double-quoted-scalar":
-    case "single-quoted-scalar":
-      token.type = type;
-      token.source = source;
-      break;
-    case "block-scalar": {
-      const end = token.props.slice(1);
-      let oa = source.length;
-      if (token.props[0].type === "block-scalar-header")
-        oa -= token.props[0].source.length;
-      for (const tok of end)
-        tok.offset += oa;
-      delete token.props;
-      Object.assign(token, { type, source, end });
-      break;
-    }
-    case "block-map":
-    case "block-seq": {
-      const offset2 = token.offset + source.length;
-      const nl = { type: "newline", offset: offset2, indent: token.indent, source: "\n" };
-      delete token.items;
-      Object.assign(token, { type, source, end: [nl] });
-      break;
-    }
-    default: {
-      const indent = "indent" in token ? token.indent : -1;
-      const end = "end" in token && Array.isArray(token.end) ? token.end.filter((st) => st.type === "space" || st.type === "comment" || st.type === "newline") : [];
-      for (const key of Object.keys(token))
-        if (key !== "type" && key !== "offset")
-          delete token[key];
-      Object.assign(token, { type, indent, source, end });
-    }
-  }
-}
-var stringify$1 = (cst2) => "type" in cst2 ? stringifyToken(cst2) : stringifyItem(cst2);
-function stringifyToken(token) {
-  switch (token.type) {
-    case "block-scalar": {
-      let res = "";
-      for (const tok of token.props)
-        res += stringifyToken(tok);
-      return res + token.source;
-    }
-    case "block-map":
-    case "block-seq": {
-      let res = "";
-      for (const item of token.items)
-        res += stringifyItem(item);
-      return res;
-    }
-    case "flow-collection": {
-      let res = token.start.source;
-      for (const item of token.items)
-        res += stringifyItem(item);
-      for (const st of token.end)
-        res += st.source;
-      return res;
-    }
-    case "document": {
-      let res = stringifyItem(token);
-      if (token.end)
-        for (const st of token.end)
-          res += st.source;
-      return res;
-    }
-    default: {
-      let res = token.source;
-      if ("end" in token && token.end)
-        for (const st of token.end)
-          res += st.source;
-      return res;
-    }
-  }
-}
-function stringifyItem({ start, key, sep: sep2, value: value2 }) {
-  let res = "";
-  for (const st of start)
-    res += st.source;
-  if (key)
-    res += stringifyToken(key);
-  if (sep2)
-    for (const st of sep2)
-      res += st.source;
-  if (value2)
-    res += stringifyToken(value2);
-  return res;
-}
-var BREAK = Symbol("break visit");
-var SKIP = Symbol("skip children");
-var REMOVE = Symbol("remove item");
-function visit(cst2, visitor) {
-  if ("type" in cst2 && cst2.type === "document")
-    cst2 = { start: cst2.start, value: cst2.value };
-  _visit(Object.freeze([]), cst2, visitor);
-}
-visit.BREAK = BREAK;
-visit.SKIP = SKIP;
-visit.REMOVE = REMOVE;
-visit.itemAtPath = (cst2, path3) => {
-  let item = cst2;
-  for (const [field, index] of path3) {
-    const tok = item == null ? void 0 : item[field];
-    if (tok && "items" in tok) {
-      item = tok.items[index];
-    } else
-      return void 0;
-  }
-  return item;
-};
-visit.parentCollection = (cst2, path3) => {
-  const parent = visit.itemAtPath(cst2, path3.slice(0, -1));
-  const field = path3[path3.length - 1][0];
-  const coll = parent == null ? void 0 : parent[field];
-  if (coll && "items" in coll)
-    return coll;
-  throw new Error("Parent collection not found");
-};
-function _visit(path3, item, visitor) {
-  let ctrl = visitor(item, path3);
-  if (typeof ctrl === "symbol")
-    return ctrl;
-  for (const field of ["key", "value"]) {
-    const token = item[field];
-    if (token && "items" in token) {
-      for (let i = 0; i < token.items.length; ++i) {
-        const ci = _visit(Object.freeze(path3.concat([[field, i]])), token.items[i], visitor);
-        if (typeof ci === "number")
-          i = ci - 1;
-        else if (ci === BREAK)
-          return BREAK;
-        else if (ci === REMOVE) {
-          token.items.splice(i, 1);
-          i -= 1;
-        }
-      }
-      if (typeof ctrl === "function" && field === "key")
-        ctrl = ctrl(item, path3);
-    }
-  }
-  return typeof ctrl === "function" ? ctrl(item, path3) : ctrl;
-}
-var BOM = "\uFEFF";
-var DOCUMENT = "";
-var FLOW_END = "";
-var SCALAR = "";
-var isCollection = (token) => !!token && "items" in token;
-var isScalar = (token) => !!token && (token.type === "scalar" || token.type === "single-quoted-scalar" || token.type === "double-quoted-scalar" || token.type === "block-scalar");
-function prettyToken(token) {
-  switch (token) {
-    case BOM:
-      return "";
-    case DOCUMENT:
-      return "";
-    case FLOW_END:
-      return "";
-    case SCALAR:
-      return "";
-    default:
-      return JSON.stringify(token);
-  }
-}
-function tokenType(source) {
-  switch (source) {
-    case BOM:
-      return "byte-order-mark";
-    case DOCUMENT:
-      return "doc-mode";
-    case FLOW_END:
-      return "flow-error-end";
-    case SCALAR:
-      return "scalar";
-    case "---":
-      return "doc-start";
-    case "...":
-      return "doc-end";
-    case "":
-    case "\n":
-    case "\r\n":
-      return "newline";
-    case "-":
-      return "seq-item-ind";
-    case "?":
-      return "explicit-key-ind";
-    case ":":
-      return "map-value-ind";
-    case "{":
-      return "flow-map-start";
-    case "}":
-      return "flow-map-end";
-    case "[":
-      return "flow-seq-start";
-    case "]":
-      return "flow-seq-end";
-    case ",":
-      return "comma";
-  }
-  switch (source[0]) {
-    case " ":
-    case "	":
-      return "space";
-    case "#":
-      return "comment";
-    case "%":
-      return "directive-line";
-    case "*":
-      return "alias";
-    case "&":
-      return "anchor";
-    case "!":
-      return "tag";
-    case "'":
-      return "single-quoted-scalar";
-    case '"':
-      return "double-quoted-scalar";
-    case "|":
-    case ">":
-      return "block-scalar-header";
-  }
-  return null;
-}
-var cst = {
-  __proto__: null,
-  BOM,
-  DOCUMENT,
-  FLOW_END,
-  SCALAR,
-  createScalarToken,
-  isCollection,
-  isScalar,
-  prettyToken,
-  resolveAsScalar,
-  setScalarValue,
-  stringify: stringify$1,
-  tokenType,
-  visit
-};
-function isEmpty(ch) {
-  switch (ch) {
-    case void 0:
-    case " ":
-    case "\n":
-    case "\r":
-    case "	":
-      return true;
-    default:
-      return false;
-  }
-}
-var hexDigits = new Set("0123456789ABCDEFabcdef");
-var tagChars = new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()");
-var flowIndicatorChars = new Set(",[]{}");
-var invalidAnchorChars = new Set(" ,[]{}\n\r	");
-var isNotAnchorChar = (ch) => !ch || invalidAnchorChars.has(ch);
-var Lexer = class {
-  constructor() {
-    this.atEnd = false;
-    this.blockScalarIndent = -1;
-    this.blockScalarKeep = false;
-    this.buffer = "";
-    this.flowKey = false;
-    this.flowLevel = 0;
-    this.indentNext = 0;
-    this.indentValue = 0;
-    this.lineEndPos = null;
-    this.next = null;
-    this.pos = 0;
-  }
-  /**
-   * Generate YAML tokens from the `source` string. If `incomplete`,
-   * a part of the last line may be left as a buffer for the next call.
-   *
-   * @returns A generator of lexical tokens
-   */
-  *lex(source, incomplete = false) {
-    if (source) {
-      if (typeof source !== "string")
-        throw TypeError("source is not a string");
-      this.buffer = this.buffer ? this.buffer + source : source;
-      this.lineEndPos = null;
-    }
-    this.atEnd = !incomplete;
-    let next = this.next ?? "stream";
-    while (next && (incomplete || this.hasChars(1)))
-      next = yield* this.parseNext(next);
-  }
-  atLineEnd() {
-    let i = this.pos;
-    let ch = this.buffer[i];
-    while (ch === " " || ch === "	")
-      ch = this.buffer[++i];
-    if (!ch || ch === "#" || ch === "\n")
-      return true;
-    if (ch === "\r")
-      return this.buffer[i + 1] === "\n";
-    return false;
-  }
-  charAt(n2) {
-    return this.buffer[this.pos + n2];
-  }
-  continueScalar(offset2) {
-    let ch = this.buffer[offset2];
-    if (this.indentNext > 0) {
-      let indent = 0;
-      while (ch === " ")
-        ch = this.buffer[++indent + offset2];
-      if (ch === "\r") {
-        const next = this.buffer[indent + offset2 + 1];
-        if (next === "\n" || !next && !this.atEnd)
-          return offset2 + indent + 1;
-      }
-      return ch === "\n" || indent >= this.indentNext || !ch && !this.atEnd ? offset2 + indent : -1;
-    }
-    if (ch === "-" || ch === ".") {
-      const dt = this.buffer.substr(offset2, 3);
-      if ((dt === "---" || dt === "...") && isEmpty(this.buffer[offset2 + 3]))
-        return -1;
-    }
-    return offset2;
-  }
-  getLine() {
-    let end = this.lineEndPos;
-    if (typeof end !== "number" || end !== -1 && end < this.pos) {
-      end = this.buffer.indexOf("\n", this.pos);
-      this.lineEndPos = end;
-    }
-    if (end === -1)
-      return this.atEnd ? this.buffer.substring(this.pos) : null;
-    if (this.buffer[end - 1] === "\r")
-      end -= 1;
-    return this.buffer.substring(this.pos, end);
-  }
-  hasChars(n2) {
-    return this.pos + n2 <= this.buffer.length;
-  }
-  setNext(state) {
-    this.buffer = this.buffer.substring(this.pos);
-    this.pos = 0;
-    this.lineEndPos = null;
-    this.next = state;
-    return null;
-  }
-  peek(n2) {
-    return this.buffer.substr(this.pos, n2);
-  }
-  *parseNext(next) {
-    switch (next) {
-      case "stream":
-        return yield* this.parseStream();
-      case "line-start":
-        return yield* this.parseLineStart();
-      case "block-start":
-        return yield* this.parseBlockStart();
-      case "doc":
-        return yield* this.parseDocument();
-      case "flow":
-        return yield* this.parseFlowCollection();
-      case "quoted-scalar":
-        return yield* this.parseQuotedScalar();
-      case "block-scalar":
-        return yield* this.parseBlockScalar();
-      case "plain-scalar":
-        return yield* this.parsePlainScalar();
-    }
-  }
-  *parseStream() {
-    let line = this.getLine();
-    if (line === null)
-      return this.setNext("stream");
-    if (line[0] === BOM) {
-      yield* this.pushCount(1);
-      line = line.substring(1);
-    }
-    if (line[0] === "%") {
-      let dirEnd = line.length;
-      let cs = line.indexOf("#");
-      while (cs !== -1) {
-        const ch = line[cs - 1];
-        if (ch === " " || ch === "	") {
-          dirEnd = cs - 1;
-          break;
-        } else {
-          cs = line.indexOf("#", cs + 1);
-        }
-      }
-      while (true) {
-        const ch = line[dirEnd - 1];
-        if (ch === " " || ch === "	")
-          dirEnd -= 1;
-        else
-          break;
-      }
-      const n2 = (yield* this.pushCount(dirEnd)) + (yield* this.pushSpaces(true));
-      yield* this.pushCount(line.length - n2);
-      this.pushNewline();
-      return "stream";
-    }
-    if (this.atLineEnd()) {
-      const sp = yield* this.pushSpaces(true);
-      yield* this.pushCount(line.length - sp);
-      yield* this.pushNewline();
-      return "stream";
-    }
-    yield DOCUMENT;
-    return yield* this.parseLineStart();
-  }
-  *parseLineStart() {
-    const ch = this.charAt(0);
-    if (!ch && !this.atEnd)
-      return this.setNext("line-start");
-    if (ch === "-" || ch === ".") {
-      if (!this.atEnd && !this.hasChars(4))
-        return this.setNext("line-start");
-      const s = this.peek(3);
-      if (s === "---" && isEmpty(this.charAt(3))) {
-        yield* this.pushCount(3);
-        this.indentValue = 0;
-        this.indentNext = 0;
-        return "doc";
-      } else if (s === "..." && isEmpty(this.charAt(3))) {
-        yield* this.pushCount(3);
-        return "stream";
-      }
-    }
-    this.indentValue = yield* this.pushSpaces(false);
-    if (this.indentNext > this.indentValue && !isEmpty(this.charAt(1)))
-      this.indentNext = this.indentValue;
-    return yield* this.parseBlockStart();
-  }
-  *parseBlockStart() {
-    const [ch0, ch1] = this.peek(2);
-    if (!ch1 && !this.atEnd)
-      return this.setNext("block-start");
-    if ((ch0 === "-" || ch0 === "?" || ch0 === ":") && isEmpty(ch1)) {
-      const n2 = (yield* this.pushCount(1)) + (yield* this.pushSpaces(true));
-      this.indentNext = this.indentValue + 1;
-      this.indentValue += n2;
-      return yield* this.parseBlockStart();
-    }
-    return "doc";
-  }
-  *parseDocument() {
-    yield* this.pushSpaces(true);
-    const line = this.getLine();
-    if (line === null)
-      return this.setNext("doc");
-    let n2 = yield* this.pushIndicators();
-    switch (line[n2]) {
-      case "#":
-        yield* this.pushCount(line.length - n2);
-      case void 0:
-        yield* this.pushNewline();
-        return yield* this.parseLineStart();
-      case "{":
-      case "[":
-        yield* this.pushCount(1);
-        this.flowKey = false;
-        this.flowLevel = 1;
-        return "flow";
-      case "}":
-      case "]":
-        yield* this.pushCount(1);
-        return "doc";
-      case "*":
-        yield* this.pushUntil(isNotAnchorChar);
-        return "doc";
-      case '"':
-      case "'":
-        return yield* this.parseQuotedScalar();
-      case "|":
-      case ">":
-        n2 += yield* this.parseBlockScalarHeader();
-        n2 += yield* this.pushSpaces(true);
-        yield* this.pushCount(line.length - n2);
-        yield* this.pushNewline();
-        return yield* this.parseBlockScalar();
-      default:
-        return yield* this.parsePlainScalar();
-    }
-  }
-  *parseFlowCollection() {
-    let nl, sp;
-    let indent = -1;
-    do {
-      nl = yield* this.pushNewline();
-      if (nl > 0) {
-        sp = yield* this.pushSpaces(false);
-        this.indentValue = indent = sp;
-      } else {
-        sp = 0;
-      }
-      sp += yield* this.pushSpaces(true);
-    } while (nl + sp > 0);
-    const line = this.getLine();
-    if (line === null)
-      return this.setNext("flow");
-    if (indent !== -1 && indent < this.indentNext && line[0] !== "#" || indent === 0 && (line.startsWith("---") || line.startsWith("...")) && isEmpty(line[3])) {
-      const atFlowEndMarker = indent === this.indentNext - 1 && this.flowLevel === 1 && (line[0] === "]" || line[0] === "}");
-      if (!atFlowEndMarker) {
-        this.flowLevel = 0;
-        yield FLOW_END;
-        return yield* this.parseLineStart();
-      }
-    }
-    let n2 = 0;
-    while (line[n2] === ",") {
-      n2 += yield* this.pushCount(1);
-      n2 += yield* this.pushSpaces(true);
-      this.flowKey = false;
-    }
-    n2 += yield* this.pushIndicators();
-    switch (line[n2]) {
-      case void 0:
-        return "flow";
-      case "#":
-        yield* this.pushCount(line.length - n2);
-        return "flow";
-      case "{":
-      case "[":
-        yield* this.pushCount(1);
-        this.flowKey = false;
-        this.flowLevel += 1;
-        return "flow";
-      case "}":
-      case "]":
-        yield* this.pushCount(1);
-        this.flowKey = true;
-        this.flowLevel -= 1;
-        return this.flowLevel ? "flow" : "doc";
-      case "*":
-        yield* this.pushUntil(isNotAnchorChar);
-        return "flow";
-      case '"':
-      case "'":
-        this.flowKey = true;
-        return yield* this.parseQuotedScalar();
-      case ":": {
-        const next = this.charAt(1);
-        if (this.flowKey || isEmpty(next) || next === ",") {
-          this.flowKey = false;
-          yield* this.pushCount(1);
-          yield* this.pushSpaces(true);
-          return "flow";
-        }
-      }
-      default:
-        this.flowKey = false;
-        return yield* this.parsePlainScalar();
-    }
-  }
-  *parseQuotedScalar() {
-    const quote3 = this.charAt(0);
-    let end = this.buffer.indexOf(quote3, this.pos + 1);
-    if (quote3 === "'") {
-      while (end !== -1 && this.buffer[end + 1] === "'")
-        end = this.buffer.indexOf("'", end + 2);
-    } else {
-      while (end !== -1) {
-        let n2 = 0;
-        while (this.buffer[end - 1 - n2] === "\\")
-          n2 += 1;
-        if (n2 % 2 === 0)
-          break;
-        end = this.buffer.indexOf('"', end + 1);
-      }
-    }
-    const qb = this.buffer.substring(0, end);
-    let nl = qb.indexOf("\n", this.pos);
-    if (nl !== -1) {
-      while (nl !== -1) {
-        const cs = this.continueScalar(nl + 1);
-        if (cs === -1)
-          break;
-        nl = qb.indexOf("\n", cs);
-      }
-      if (nl !== -1) {
-        end = nl - (qb[nl - 1] === "\r" ? 2 : 1);
-      }
-    }
-    if (end === -1) {
-      if (!this.atEnd)
-        return this.setNext("quoted-scalar");
-      end = this.buffer.length;
-    }
-    yield* this.pushToIndex(end + 1, false);
-    return this.flowLevel ? "flow" : "doc";
-  }
-  *parseBlockScalarHeader() {
-    this.blockScalarIndent = -1;
-    this.blockScalarKeep = false;
-    let i = this.pos;
-    while (true) {
-      const ch = this.buffer[++i];
-      if (ch === "+")
-        this.blockScalarKeep = true;
-      else if (ch > "0" && ch <= "9")
-        this.blockScalarIndent = Number(ch) - 1;
-      else if (ch !== "-")
-        break;
-    }
-    return yield* this.pushUntil((ch) => isEmpty(ch) || ch === "#");
-  }
-  *parseBlockScalar() {
-    let nl = this.pos - 1;
-    let indent = 0;
-    let ch;
-    loop: for (let i2 = this.pos; ch = this.buffer[i2]; ++i2) {
-      switch (ch) {
-        case " ":
-          indent += 1;
-          break;
-        case "\n":
-          nl = i2;
-          indent = 0;
-          break;
-        case "\r": {
-          const next = this.buffer[i2 + 1];
-          if (!next && !this.atEnd)
-            return this.setNext("block-scalar");
-          if (next === "\n")
-            break;
-        }
-        default:
-          break loop;
-      }
-    }
-    if (!ch && !this.atEnd)
-      return this.setNext("block-scalar");
-    if (indent >= this.indentNext) {
-      if (this.blockScalarIndent === -1)
-        this.indentNext = indent;
-      else {
-        this.indentNext = this.blockScalarIndent + (this.indentNext === 0 ? 1 : this.indentNext);
-      }
-      do {
-        const cs = this.continueScalar(nl + 1);
-        if (cs === -1)
-          break;
-        nl = this.buffer.indexOf("\n", cs);
-      } while (nl !== -1);
-      if (nl === -1) {
-        if (!this.atEnd)
-          return this.setNext("block-scalar");
-        nl = this.buffer.length;
-      }
-    }
-    let i = nl + 1;
-    ch = this.buffer[i];
-    while (ch === " ")
-      ch = this.buffer[++i];
-    if (ch === "	") {
-      while (ch === "	" || ch === " " || ch === "\r" || ch === "\n")
-        ch = this.buffer[++i];
-      nl = i - 1;
-    } else if (!this.blockScalarKeep) {
-      do {
-        let i2 = nl - 1;
-        let ch2 = this.buffer[i2];
-        if (ch2 === "\r")
-          ch2 = this.buffer[--i2];
-        const lastChar = i2;
-        while (ch2 === " ")
-          ch2 = this.buffer[--i2];
-        if (ch2 === "\n" && i2 >= this.pos && i2 + 1 + indent > lastChar)
-          nl = i2;
-        else
-          break;
-      } while (true);
-    }
-    yield SCALAR;
-    yield* this.pushToIndex(nl + 1, true);
-    return yield* this.parseLineStart();
-  }
-  *parsePlainScalar() {
-    const inFlow = this.flowLevel > 0;
-    let end = this.pos - 1;
-    let i = this.pos - 1;
-    let ch;
-    while (ch = this.buffer[++i]) {
-      if (ch === ":") {
-        const next = this.buffer[i + 1];
-        if (isEmpty(next) || inFlow && flowIndicatorChars.has(next))
-          break;
-        end = i;
-      } else if (isEmpty(ch)) {
-        let next = this.buffer[i + 1];
-        if (ch === "\r") {
-          if (next === "\n") {
-            i += 1;
-            ch = "\n";
-            next = this.buffer[i + 1];
-          } else
-            end = i;
-        }
-        if (next === "#" || inFlow && flowIndicatorChars.has(next))
-          break;
-        if (ch === "\n") {
-          const cs = this.continueScalar(i + 1);
-          if (cs === -1)
-            break;
-          i = Math.max(i, cs - 2);
-        }
-      } else {
-        if (inFlow && flowIndicatorChars.has(ch))
-          break;
-        end = i;
-      }
-    }
-    if (!ch && !this.atEnd)
-      return this.setNext("plain-scalar");
-    yield SCALAR;
-    yield* this.pushToIndex(end + 1, true);
-    return inFlow ? "flow" : "doc";
-  }
-  *pushCount(n2) {
-    if (n2 > 0) {
-      yield this.buffer.substr(this.pos, n2);
-      this.pos += n2;
-      return n2;
-    }
-    return 0;
-  }
-  *pushToIndex(i, allowEmpty) {
-    const s = this.buffer.slice(this.pos, i);
-    if (s) {
-      yield s;
-      this.pos += s.length;
-      return s.length;
-    } else if (allowEmpty)
-      yield "";
-    return 0;
-  }
-  *pushIndicators() {
-    switch (this.charAt(0)) {
-      case "!":
-        return (yield* this.pushTag()) + (yield* this.pushSpaces(true)) + (yield* this.pushIndicators());
-      case "&":
-        return (yield* this.pushUntil(isNotAnchorChar)) + (yield* this.pushSpaces(true)) + (yield* this.pushIndicators());
-      case "-":
-      case "?":
-      case ":": {
-        const inFlow = this.flowLevel > 0;
-        const ch1 = this.charAt(1);
-        if (isEmpty(ch1) || inFlow && flowIndicatorChars.has(ch1)) {
-          if (!inFlow)
-            this.indentNext = this.indentValue + 1;
-          else if (this.flowKey)
-            this.flowKey = false;
-          return (yield* this.pushCount(1)) + (yield* this.pushSpaces(true)) + (yield* this.pushIndicators());
-        }
-      }
-    }
-    return 0;
-  }
-  *pushTag() {
-    if (this.charAt(1) === "<") {
-      let i = this.pos + 2;
-      let ch = this.buffer[i];
-      while (!isEmpty(ch) && ch !== ">")
-        ch = this.buffer[++i];
-      return yield* this.pushToIndex(ch === ">" ? i + 1 : i, false);
-    } else {
-      let i = this.pos + 1;
-      let ch = this.buffer[i];
-      while (ch) {
-        if (tagChars.has(ch))
-          ch = this.buffer[++i];
-        else if (ch === "%" && hexDigits.has(this.buffer[i + 1]) && hexDigits.has(this.buffer[i + 2])) {
-          ch = this.buffer[i += 3];
-        } else
-          break;
-      }
-      return yield* this.pushToIndex(i, false);
-    }
-  }
-  *pushNewline() {
-    const ch = this.buffer[this.pos];
-    if (ch === "\n")
-      return yield* this.pushCount(1);
-    else if (ch === "\r" && this.charAt(1) === "\n")
-      return yield* this.pushCount(2);
-    else
-      return 0;
-  }
-  *pushSpaces(allowTabs) {
-    let i = this.pos - 1;
-    let ch;
-    do {
-      ch = this.buffer[++i];
-    } while (ch === " " || allowTabs && ch === "	");
-    const n2 = i - this.pos;
-    if (n2 > 0) {
-      yield this.buffer.substr(this.pos, n2);
-      this.pos = i;
-    }
-    return n2;
-  }
-  *pushUntil(test) {
-    let i = this.pos;
-    let ch = this.buffer[i];
-    while (!test(ch))
-      ch = this.buffer[++i];
-    return yield* this.pushToIndex(i, false);
-  }
-};
-var LineCounter = class {
-  constructor() {
-    this.lineStarts = [];
-    this.addNewLine = (offset2) => this.lineStarts.push(offset2);
-    this.linePos = (offset2) => {
-      let low = 0;
-      let high = this.lineStarts.length;
-      while (low < high) {
-        const mid = low + high >> 1;
-        if (this.lineStarts[mid] < offset2)
-          low = mid + 1;
-        else
-          high = mid;
-      }
-      if (this.lineStarts[low] === offset2)
-        return { line: low + 1, col: 1 };
-      if (low === 0)
-        return { line: 0, col: offset2 };
-      const start = this.lineStarts[low - 1];
-      return { line: low, col: offset2 - start + 1 };
-    };
-  }
-};
-function includesToken(list, type) {
-  for (let i = 0; i < list.length; ++i)
-    if (list[i].type === type)
-      return true;
-  return false;
-}
-function findNonEmptyIndex(list) {
-  for (let i = 0; i < list.length; ++i) {
-    switch (list[i].type) {
-      case "space":
-      case "comment":
-      case "newline":
-        break;
-      default:
-        return i;
-    }
-  }
-  return -1;
-}
-function isFlowToken(token) {
-  switch (token == null ? void 0 : token.type) {
-    case "alias":
-    case "scalar":
-    case "single-quoted-scalar":
-    case "double-quoted-scalar":
-    case "flow-collection":
-      return true;
-    default:
-      return false;
-  }
-}
-function getPrevProps(parent) {
-  switch (parent.type) {
-    case "document":
-      return parent.start;
-    case "block-map": {
-      const it = parent.items[parent.items.length - 1];
-      return it.sep ?? it.start;
-    }
-    case "block-seq":
-      return parent.items[parent.items.length - 1].start;
-    default:
-      return [];
-  }
-}
-function getFirstKeyStartProps(prev) {
-  var _a4;
-  if (prev.length === 0)
-    return [];
-  let i = prev.length;
-  loop: while (--i >= 0) {
-    switch (prev[i].type) {
-      case "doc-start":
-      case "explicit-key-ind":
-      case "map-value-ind":
-      case "seq-item-ind":
-      case "newline":
-        break loop;
-    }
-  }
-  while (((_a4 = prev[++i]) == null ? void 0 : _a4.type) === "space") {
-  }
-  return prev.splice(i, prev.length);
-}
-function fixFlowSeqItems(fc) {
-  if (fc.start.type === "flow-seq-start") {
-    for (const it of fc.items) {
-      if (it.sep && !it.value && !includesToken(it.start, "explicit-key-ind") && !includesToken(it.sep, "map-value-ind")) {
-        if (it.key)
-          it.value = it.key;
-        delete it.key;
-        if (isFlowToken(it.value)) {
-          if (it.value.end)
-            Array.prototype.push.apply(it.value.end, it.sep);
-          else
-            it.value.end = it.sep;
-        } else
-          Array.prototype.push.apply(it.start, it.sep);
-        delete it.sep;
-      }
-    }
-  }
-}
-var Parser = class {
-  /**
-   * @param onNewLine - If defined, called separately with the start position of
-   *   each new line (in `parse()`, including the start of input).
-   */
-  constructor(onNewLine) {
-    this.atNewLine = true;
-    this.atScalar = false;
-    this.indent = 0;
-    this.offset = 0;
-    this.onKeyLine = false;
-    this.stack = [];
-    this.source = "";
-    this.type = "";
-    this.lexer = new Lexer();
-    this.onNewLine = onNewLine;
-  }
-  /**
-   * Parse `source` as a YAML stream.
-   * If `incomplete`, a part of the last line may be left as a buffer for the next call.
-   *
-   * Errors are not thrown, but yielded as `{ type: 'error', message }` tokens.
-   *
-   * @returns A generator of tokens representing each directive, document, and other structure.
-   */
-  *parse(source, incomplete = false) {
-    if (this.onNewLine && this.offset === 0)
-      this.onNewLine(0);
-    for (const lexeme of this.lexer.lex(source, incomplete))
-      yield* this.next(lexeme);
-    if (!incomplete)
-      yield* this.end();
-  }
-  /**
-   * Advance the parser by the `source` of one lexical token.
-   */
-  *next(source) {
-    this.source = source;
-    if (this.atScalar) {
-      this.atScalar = false;
-      yield* this.step();
-      this.offset += source.length;
-      return;
-    }
-    const type = tokenType(source);
-    if (!type) {
-      const message = `Not a YAML token: ${source}`;
-      yield* this.pop({ type: "error", offset: this.offset, message, source });
-      this.offset += source.length;
-    } else if (type === "scalar") {
-      this.atNewLine = false;
-      this.atScalar = true;
-      this.type = "scalar";
-    } else {
-      this.type = type;
-      yield* this.step();
-      switch (type) {
-        case "newline":
-          this.atNewLine = true;
-          this.indent = 0;
-          if (this.onNewLine)
-            this.onNewLine(this.offset + source.length);
-          break;
-        case "space":
-          if (this.atNewLine && source[0] === " ")
-            this.indent += source.length;
-          break;
-        case "explicit-key-ind":
-        case "map-value-ind":
-        case "seq-item-ind":
-          if (this.atNewLine)
-            this.indent += source.length;
-          break;
-        case "doc-mode":
-        case "flow-error-end":
-          return;
-        default:
-          this.atNewLine = false;
-      }
-      this.offset += source.length;
-    }
-  }
-  /** Call at end of input to push out any remaining constructions */
-  *end() {
-    while (this.stack.length > 0)
-      yield* this.pop();
-  }
-  get sourceToken() {
-    const st = {
-      type: this.type,
-      offset: this.offset,
-      indent: this.indent,
-      source: this.source
-    };
-    return st;
-  }
-  *step() {
-    const top = this.peek(1);
-    if (this.type === "doc-end" && (!top || top.type !== "doc-end")) {
-      while (this.stack.length > 0)
-        yield* this.pop();
-      this.stack.push({
-        type: "doc-end",
-        offset: this.offset,
-        source: this.source
-      });
-      return;
-    }
-    if (!top)
-      return yield* this.stream();
-    switch (top.type) {
-      case "document":
-        return yield* this.document(top);
-      case "alias":
-      case "scalar":
-      case "single-quoted-scalar":
-      case "double-quoted-scalar":
-        return yield* this.scalar(top);
-      case "block-scalar":
-        return yield* this.blockScalar(top);
-      case "block-map":
-        return yield* this.blockMap(top);
-      case "block-seq":
-        return yield* this.blockSequence(top);
-      case "flow-collection":
-        return yield* this.flowCollection(top);
-      case "doc-end":
-        return yield* this.documentEnd(top);
-    }
-    yield* this.pop();
-  }
-  peek(n2) {
-    return this.stack[this.stack.length - n2];
-  }
-  *pop(error2) {
-    const token = error2 ?? this.stack.pop();
-    if (!token) {
-      const message = "Tried to pop an empty stack";
-      yield { type: "error", offset: this.offset, source: "", message };
-    } else if (this.stack.length === 0) {
-      yield token;
-    } else {
-      const top = this.peek(1);
-      if (token.type === "block-scalar") {
-        token.indent = "indent" in top ? top.indent : 0;
-      } else if (token.type === "flow-collection" && top.type === "document") {
-        token.indent = 0;
-      }
-      if (token.type === "flow-collection")
-        fixFlowSeqItems(token);
-      switch (top.type) {
-        case "document":
-          top.value = token;
-          break;
-        case "block-scalar":
-          top.props.push(token);
-          break;
-        case "block-map": {
-          const it = top.items[top.items.length - 1];
-          if (it.value) {
-            top.items.push({ start: [], key: token, sep: [] });
-            this.onKeyLine = true;
-            return;
-          } else if (it.sep) {
-            it.value = token;
-          } else {
-            Object.assign(it, { key: token, sep: [] });
-            this.onKeyLine = !it.explicitKey;
-            return;
-          }
-          break;
-        }
-        case "block-seq": {
-          const it = top.items[top.items.length - 1];
-          if (it.value)
-            top.items.push({ start: [], value: token });
-          else
-            it.value = token;
-          break;
-        }
-        case "flow-collection": {
-          const it = top.items[top.items.length - 1];
-          if (!it || it.value)
-            top.items.push({ start: [], key: token, sep: [] });
-          else if (it.sep)
-            it.value = token;
-          else
-            Object.assign(it, { key: token, sep: [] });
-          return;
-        }
-        default:
-          yield* this.pop();
-          yield* this.pop(token);
-      }
-      if ((top.type === "document" || top.type === "block-map" || top.type === "block-seq") && (token.type === "block-map" || token.type === "block-seq")) {
-        const last = token.items[token.items.length - 1];
-        if (last && !last.sep && !last.value && last.start.length > 0 && findNonEmptyIndex(last.start) === -1 && (token.indent === 0 || last.start.every((st) => st.type !== "comment" || st.indent < token.indent))) {
-          if (top.type === "document")
-            top.end = last.start;
-          else
-            top.items.push({ start: last.start });
-          token.items.splice(-1, 1);
-        }
-      }
-    }
-  }
-  *stream() {
-    switch (this.type) {
-      case "directive-line":
-        yield { type: "directive", offset: this.offset, source: this.source };
-        return;
-      case "byte-order-mark":
-      case "space":
-      case "comment":
-      case "newline":
-        yield this.sourceToken;
-        return;
-      case "doc-mode":
-      case "doc-start": {
-        const doc = {
-          type: "document",
-          offset: this.offset,
-          start: []
-        };
-        if (this.type === "doc-start")
-          doc.start.push(this.sourceToken);
-        this.stack.push(doc);
-        return;
-      }
-    }
-    yield {
-      type: "error",
-      offset: this.offset,
-      message: `Unexpected ${this.type} token in YAML stream`,
-      source: this.source
-    };
-  }
-  *document(doc) {
-    if (doc.value)
-      return yield* this.lineEnd(doc);
-    switch (this.type) {
-      case "doc-start": {
-        if (findNonEmptyIndex(doc.start) !== -1) {
-          yield* this.pop();
-          yield* this.step();
-        } else
-          doc.start.push(this.sourceToken);
-        return;
-      }
-      case "anchor":
-      case "tag":
-      case "space":
-      case "comment":
-      case "newline":
-        doc.start.push(this.sourceToken);
-        return;
-    }
-    const bv = this.startBlockValue(doc);
-    if (bv)
-      this.stack.push(bv);
-    else {
-      yield {
-        type: "error",
-        offset: this.offset,
-        message: `Unexpected ${this.type} token in YAML document`,
-        source: this.source
-      };
-    }
-  }
-  *scalar(scalar) {
-    if (this.type === "map-value-ind") {
-      const prev = getPrevProps(this.peek(2));
-      const start = getFirstKeyStartProps(prev);
-      let sep2;
-      if (scalar.end) {
-        sep2 = scalar.end;
-        sep2.push(this.sourceToken);
-        delete scalar.end;
-      } else
-        sep2 = [this.sourceToken];
-      const map2 = {
-        type: "block-map",
-        offset: scalar.offset,
-        indent: scalar.indent,
-        items: [{ start, key: scalar, sep: sep2 }]
-      };
-      this.onKeyLine = true;
-      this.stack[this.stack.length - 1] = map2;
-    } else
-      yield* this.lineEnd(scalar);
-  }
-  *blockScalar(scalar) {
-    switch (this.type) {
-      case "space":
-      case "comment":
-      case "newline":
-        scalar.props.push(this.sourceToken);
-        return;
-      case "scalar":
-        scalar.source = this.source;
-        this.atNewLine = true;
-        this.indent = 0;
-        if (this.onNewLine) {
-          let nl = this.source.indexOf("\n") + 1;
-          while (nl !== 0) {
-            this.onNewLine(this.offset + nl);
-            nl = this.source.indexOf("\n", nl) + 1;
-          }
-        }
-        yield* this.pop();
-        break;
-      default:
-        yield* this.pop();
-        yield* this.step();
-    }
-  }
-  *blockMap(map2) {
-    var _a4;
-    const it = map2.items[map2.items.length - 1];
-    switch (this.type) {
-      case "newline":
-        this.onKeyLine = false;
-        if (it.value) {
-          const end = "end" in it.value ? it.value.end : void 0;
-          const last = Array.isArray(end) ? end[end.length - 1] : void 0;
-          if ((last == null ? void 0 : last.type) === "comment")
-            end == null ? void 0 : end.push(this.sourceToken);
-          else
-            map2.items.push({ start: [this.sourceToken] });
-        } else if (it.sep) {
-          it.sep.push(this.sourceToken);
-        } else {
-          it.start.push(this.sourceToken);
-        }
-        return;
-      case "space":
-      case "comment":
-        if (it.value) {
-          map2.items.push({ start: [this.sourceToken] });
-        } else if (it.sep) {
-          it.sep.push(this.sourceToken);
-        } else {
-          if (this.atIndentedComment(it.start, map2.indent)) {
-            const prev = map2.items[map2.items.length - 2];
-            const end = (_a4 = prev == null ? void 0 : prev.value) == null ? void 0 : _a4.end;
-            if (Array.isArray(end)) {
-              Array.prototype.push.apply(end, it.start);
-              end.push(this.sourceToken);
-              map2.items.pop();
-              return;
-            }
-          }
-          it.start.push(this.sourceToken);
-        }
-        return;
-    }
-    if (this.indent >= map2.indent) {
-      const atMapIndent = !this.onKeyLine && this.indent === map2.indent;
-      const atNextItem = atMapIndent && (it.sep || it.explicitKey) && this.type !== "seq-item-ind";
-      let start = [];
-      if (atNextItem && it.sep && !it.value) {
-        const nl = [];
-        for (let i = 0; i < it.sep.length; ++i) {
-          const st = it.sep[i];
-          switch (st.type) {
-            case "newline":
-              nl.push(i);
-              break;
-            case "space":
-              break;
-            case "comment":
-              if (st.indent > map2.indent)
-                nl.length = 0;
-              break;
-            default:
-              nl.length = 0;
-          }
-        }
-        if (nl.length >= 2)
-          start = it.sep.splice(nl[1]);
-      }
-      switch (this.type) {
-        case "anchor":
-        case "tag":
-          if (atNextItem || it.value) {
-            start.push(this.sourceToken);
-            map2.items.push({ start });
-            this.onKeyLine = true;
-          } else if (it.sep) {
-            it.sep.push(this.sourceToken);
-          } else {
-            it.start.push(this.sourceToken);
-          }
-          return;
-        case "explicit-key-ind":
-          if (!it.sep && !it.explicitKey) {
-            it.start.push(this.sourceToken);
-            it.explicitKey = true;
-          } else if (atNextItem || it.value) {
-            start.push(this.sourceToken);
-            map2.items.push({ start, explicitKey: true });
-          } else {
-            this.stack.push({
-              type: "block-map",
-              offset: this.offset,
-              indent: this.indent,
-              items: [{ start: [this.sourceToken], explicitKey: true }]
-            });
-          }
-          this.onKeyLine = true;
-          return;
-        case "map-value-ind":
-          if (it.explicitKey) {
-            if (!it.sep) {
-              if (includesToken(it.start, "newline")) {
-                Object.assign(it, { key: null, sep: [this.sourceToken] });
-              } else {
-                const start2 = getFirstKeyStartProps(it.start);
-                this.stack.push({
-                  type: "block-map",
-                  offset: this.offset,
-                  indent: this.indent,
-                  items: [{ start: start2, key: null, sep: [this.sourceToken] }]
-                });
-              }
-            } else if (it.value) {
-              map2.items.push({ start: [], key: null, sep: [this.sourceToken] });
-            } else if (includesToken(it.sep, "map-value-ind")) {
-              this.stack.push({
-                type: "block-map",
-                offset: this.offset,
-                indent: this.indent,
-                items: [{ start, key: null, sep: [this.sourceToken] }]
-              });
-            } else if (isFlowToken(it.key) && !includesToken(it.sep, "newline")) {
-              const start2 = getFirstKeyStartProps(it.start);
-              const key = it.key;
-              const sep2 = it.sep;
-              sep2.push(this.sourceToken);
-              delete it.key, delete it.sep;
-              this.stack.push({
-                type: "block-map",
-                offset: this.offset,
-                indent: this.indent,
-                items: [{ start: start2, key, sep: sep2 }]
-              });
-            } else if (start.length > 0) {
-              it.sep = it.sep.concat(start, this.sourceToken);
-            } else {
-              it.sep.push(this.sourceToken);
-            }
-          } else {
-            if (!it.sep) {
-              Object.assign(it, { key: null, sep: [this.sourceToken] });
-            } else if (it.value || atNextItem) {
-              map2.items.push({ start, key: null, sep: [this.sourceToken] });
-            } else if (includesToken(it.sep, "map-value-ind")) {
-              this.stack.push({
-                type: "block-map",
-                offset: this.offset,
-                indent: this.indent,
-                items: [{ start: [], key: null, sep: [this.sourceToken] }]
-              });
-            } else {
-              it.sep.push(this.sourceToken);
-            }
-          }
-          this.onKeyLine = true;
-          return;
-        case "alias":
-        case "scalar":
-        case "single-quoted-scalar":
-        case "double-quoted-scalar": {
-          const fs2 = this.flowScalar(this.type);
-          if (atNextItem || it.value) {
-            map2.items.push({ start, key: fs2, sep: [] });
-            this.onKeyLine = true;
-          } else if (it.sep) {
-            this.stack.push(fs2);
-          } else {
-            Object.assign(it, { key: fs2, sep: [] });
-            this.onKeyLine = true;
-          }
-          return;
-        }
-        default: {
-          const bv = this.startBlockValue(map2);
-          if (bv) {
-            if (atMapIndent && bv.type !== "block-seq") {
-              map2.items.push({ start });
-            }
-            this.stack.push(bv);
-            return;
-          }
-        }
-      }
-    }
-    yield* this.pop();
-    yield* this.step();
-  }
-  *blockSequence(seq2) {
-    var _a4;
-    const it = seq2.items[seq2.items.length - 1];
-    switch (this.type) {
-      case "newline":
-        if (it.value) {
-          const end = "end" in it.value ? it.value.end : void 0;
-          const last = Array.isArray(end) ? end[end.length - 1] : void 0;
-          if ((last == null ? void 0 : last.type) === "comment")
-            end == null ? void 0 : end.push(this.sourceToken);
-          else
-            seq2.items.push({ start: [this.sourceToken] });
-        } else
-          it.start.push(this.sourceToken);
-        return;
-      case "space":
-      case "comment":
-        if (it.value)
-          seq2.items.push({ start: [this.sourceToken] });
-        else {
-          if (this.atIndentedComment(it.start, seq2.indent)) {
-            const prev = seq2.items[seq2.items.length - 2];
-            const end = (_a4 = prev == null ? void 0 : prev.value) == null ? void 0 : _a4.end;
-            if (Array.isArray(end)) {
-              Array.prototype.push.apply(end, it.start);
-              end.push(this.sourceToken);
-              seq2.items.pop();
-              return;
-            }
-          }
-          it.start.push(this.sourceToken);
-        }
-        return;
-      case "anchor":
-      case "tag":
-        if (it.value || this.indent <= seq2.indent)
-          break;
-        it.start.push(this.sourceToken);
-        return;
-      case "seq-item-ind":
-        if (this.indent !== seq2.indent)
-          break;
-        if (it.value || includesToken(it.start, "seq-item-ind"))
-          seq2.items.push({ start: [this.sourceToken] });
-        else
-          it.start.push(this.sourceToken);
-        return;
-    }
-    if (this.indent > seq2.indent) {
-      const bv = this.startBlockValue(seq2);
-      if (bv) {
-        this.stack.push(bv);
-        return;
-      }
-    }
-    yield* this.pop();
-    yield* this.step();
-  }
-  *flowCollection(fc) {
-    const it = fc.items[fc.items.length - 1];
-    if (this.type === "flow-error-end") {
-      let top;
-      do {
-        yield* this.pop();
-        top = this.peek(1);
-      } while (top && top.type === "flow-collection");
-    } else if (fc.end.length === 0) {
-      switch (this.type) {
-        case "comma":
-        case "explicit-key-ind":
-          if (!it || it.sep)
-            fc.items.push({ start: [this.sourceToken] });
-          else
-            it.start.push(this.sourceToken);
-          return;
-        case "map-value-ind":
-          if (!it || it.value)
-            fc.items.push({ start: [], key: null, sep: [this.sourceToken] });
-          else if (it.sep)
-            it.sep.push(this.sourceToken);
-          else
-            Object.assign(it, { key: null, sep: [this.sourceToken] });
-          return;
-        case "space":
-        case "comment":
-        case "newline":
-        case "anchor":
-        case "tag":
-          if (!it || it.value)
-            fc.items.push({ start: [this.sourceToken] });
-          else if (it.sep)
-            it.sep.push(this.sourceToken);
-          else
-            it.start.push(this.sourceToken);
-          return;
-        case "alias":
-        case "scalar":
-        case "single-quoted-scalar":
-        case "double-quoted-scalar": {
-          const fs2 = this.flowScalar(this.type);
-          if (!it || it.value)
-            fc.items.push({ start: [], key: fs2, sep: [] });
-          else if (it.sep)
-            this.stack.push(fs2);
-          else
-            Object.assign(it, { key: fs2, sep: [] });
-          return;
-        }
-        case "flow-map-end":
-        case "flow-seq-end":
-          fc.end.push(this.sourceToken);
-          return;
-      }
-      const bv = this.startBlockValue(fc);
-      if (bv)
-        this.stack.push(bv);
-      else {
-        yield* this.pop();
-        yield* this.step();
-      }
-    } else {
-      const parent = this.peek(2);
-      if (parent.type === "block-map" && (this.type === "map-value-ind" && parent.indent === fc.indent || this.type === "newline" && !parent.items[parent.items.length - 1].sep)) {
-        yield* this.pop();
-        yield* this.step();
-      } else if (this.type === "map-value-ind" && parent.type !== "flow-collection") {
-        const prev = getPrevProps(parent);
-        const start = getFirstKeyStartProps(prev);
-        fixFlowSeqItems(fc);
-        const sep2 = fc.end.splice(1, fc.end.length);
-        sep2.push(this.sourceToken);
-        const map2 = {
-          type: "block-map",
-          offset: fc.offset,
-          indent: fc.indent,
-          items: [{ start, key: fc, sep: sep2 }]
-        };
-        this.onKeyLine = true;
-        this.stack[this.stack.length - 1] = map2;
-      } else {
-        yield* this.lineEnd(fc);
-      }
-    }
-  }
-  flowScalar(type) {
-    if (this.onNewLine) {
-      let nl = this.source.indexOf("\n") + 1;
-      while (nl !== 0) {
-        this.onNewLine(this.offset + nl);
-        nl = this.source.indexOf("\n", nl) + 1;
-      }
-    }
-    return {
-      type,
-      offset: this.offset,
-      indent: this.indent,
-      source: this.source
-    };
-  }
-  startBlockValue(parent) {
-    switch (this.type) {
-      case "alias":
-      case "scalar":
-      case "single-quoted-scalar":
-      case "double-quoted-scalar":
-        return this.flowScalar(this.type);
-      case "block-scalar-header":
-        return {
-          type: "block-scalar",
-          offset: this.offset,
-          indent: this.indent,
-          props: [this.sourceToken],
-          source: ""
-        };
-      case "flow-map-start":
-      case "flow-seq-start":
-        return {
-          type: "flow-collection",
-          offset: this.offset,
-          indent: this.indent,
-          start: this.sourceToken,
-          items: [],
-          end: []
-        };
-      case "seq-item-ind":
-        return {
-          type: "block-seq",
-          offset: this.offset,
-          indent: this.indent,
-          items: [{ start: [this.sourceToken] }]
-        };
-      case "explicit-key-ind": {
-        this.onKeyLine = true;
-        const prev = getPrevProps(parent);
-        const start = getFirstKeyStartProps(prev);
-        start.push(this.sourceToken);
-        return {
-          type: "block-map",
-          offset: this.offset,
-          indent: this.indent,
-          items: [{ start, explicitKey: true }]
-        };
-      }
-      case "map-value-ind": {
-        this.onKeyLine = true;
-        const prev = getPrevProps(parent);
-        const start = getFirstKeyStartProps(prev);
-        return {
-          type: "block-map",
-          offset: this.offset,
-          indent: this.indent,
-          items: [{ start, key: null, sep: [this.sourceToken] }]
-        };
-      }
-    }
-    return null;
-  }
-  atIndentedComment(start, indent) {
-    if (this.type !== "comment")
-      return false;
-    if (this.indent <= indent)
-      return false;
-    return start.every((st) => st.type === "newline" || st.type === "space");
-  }
-  *documentEnd(docEnd) {
-    if (this.type !== "doc-mode") {
-      if (docEnd.end)
-        docEnd.end.push(this.sourceToken);
-      else
-        docEnd.end = [this.sourceToken];
-      if (this.type === "newline")
-        yield* this.pop();
-    }
-  }
-  *lineEnd(token) {
-    switch (this.type) {
-      case "comma":
-      case "doc-start":
-      case "doc-end":
-      case "flow-seq-end":
-      case "flow-map-end":
-      case "map-value-ind":
-        yield* this.pop();
-        yield* this.step();
-        break;
-      case "newline":
-        this.onKeyLine = false;
-      case "space":
-      case "comment":
-      default:
-        if (token.end)
-          token.end.push(this.sourceToken);
-        else
-          token.end = [this.sourceToken];
-        if (this.type === "newline")
-          yield* this.pop();
-    }
-  }
-};
-function parseOptions(options2) {
-  const prettyErrors = options2.prettyErrors !== false;
-  const lineCounter = options2.lineCounter || prettyErrors && new LineCounter() || null;
-  return { lineCounter, prettyErrors };
-}
-function parseAllDocuments(source, options2 = {}) {
-  const { lineCounter, prettyErrors } = parseOptions(options2);
-  const parser = new Parser(lineCounter == null ? void 0 : lineCounter.addNewLine);
-  const composer = new Composer(options2);
-  const docs = Array.from(composer.compose(parser.parse(source)));
-  if (prettyErrors && lineCounter)
-    for (const doc of docs) {
-      doc.errors.forEach(prettifyError(source, lineCounter));
-      doc.warnings.forEach(prettifyError(source, lineCounter));
-    }
-  if (docs.length > 0)
-    return docs;
-  return Object.assign([], { empty: true }, composer.streamInfo());
-}
-function parseDocument(source, options2 = {}) {
-  const { lineCounter, prettyErrors } = parseOptions(options2);
-  const parser = new Parser(lineCounter == null ? void 0 : lineCounter.addNewLine);
-  const composer = new Composer(options2);
-  let doc = null;
-  for (const _doc of composer.compose(parser.parse(source), true, source.length)) {
-    if (!doc)
-      doc = _doc;
-    else if (doc.options.logLevel !== "silent") {
-      doc.errors.push(new YAMLParseError(_doc.range.slice(0, 2), "MULTIPLE_DOCS", "Source contains multiple documents; please use YAML.parseAllDocuments()"));
-      break;
-    }
-  }
-  if (prettyErrors && lineCounter) {
-    doc.errors.forEach(prettifyError(source, lineCounter));
-    doc.warnings.forEach(prettifyError(source, lineCounter));
-  }
-  return doc;
-}
-function parse$a(src2, reviver, options2) {
-  let _reviver = void 0;
-  if (typeof reviver === "function") {
-    _reviver = reviver;
-  } else if (options2 === void 0 && reviver && typeof reviver === "object") {
-    options2 = reviver;
-  }
-  const doc = parseDocument(src2, options2);
-  if (!doc)
-    return null;
-  doc.warnings.forEach((warning) => warn(doc.options.logLevel, warning));
-  if (doc.errors.length > 0) {
-    if (doc.options.logLevel !== "silent")
-      throw doc.errors[0];
-    else
-      doc.errors = [];
-  }
-  return doc.toJS(Object.assign({ reviver: _reviver }, options2));
-}
-function stringify(value2, replacer, options2) {
-  let _replacer = null;
-  if (typeof replacer === "function" || Array.isArray(replacer)) {
-    _replacer = replacer;
-  } else if (options2 === void 0 && replacer) {
-    options2 = replacer;
-  }
-  if (typeof options2 === "string")
-    options2 = options2.length;
-  if (typeof options2 === "number") {
-    const indent = Math.round(options2);
-    options2 = indent < 1 ? void 0 : indent > 8 ? { indent: 8 } : { indent };
-  }
-  if (value2 === void 0) {
-    const { keepUndefined } = options2 ?? replacer ?? {};
-    if (!keepUndefined)
-      return void 0;
-  }
-  return new Document(value2, _replacer, options2).toString(options2);
-}
-var YAML = {
-  __proto__: null,
-  Alias,
-  CST: cst,
-  Composer,
-  Document,
-  Lexer,
-  LineCounter,
-  Pair,
-  Parser,
-  Scalar,
-  Schema,
-  YAMLError,
-  YAMLMap,
-  YAMLParseError,
-  YAMLSeq,
-  YAMLWarning,
-  isAlias,
-  isCollection: isCollection$1,
-  isDocument,
-  isMap,
-  isNode: isNode$1,
-  isPair,
-  isScalar: isScalar$1,
-  isSeq,
-  parse: parse$a,
-  parseAllDocuments,
-  parseDocument,
-  stringify,
-  visit: visit$1,
-  visitAsync
-};
-var browser$2 = {
-  __proto__: null,
-  Alias,
-  CST: cst,
-  Composer,
-  Document,
-  Lexer,
-  LineCounter,
-  Pair,
-  Parser,
-  Scalar,
-  Schema,
-  YAMLError,
-  YAMLMap,
-  YAMLParseError,
-  YAMLSeq,
-  YAMLWarning,
-  default: YAML,
-  isAlias,
-  isCollection: isCollection$1,
-  isDocument,
-  isMap,
-  isNode: isNode$1,
-  isPair,
-  isScalar: isScalar$1,
-  isSeq,
-  parse: parse$a,
-  parseAllDocuments,
-  parseDocument,
-  stringify,
-  visit: visit$1,
-  visitAsync
-};
-var require$$3 = getAugmentedNamespace(browser$2);
-var { createRequire, createRequireFromPath } = import_module.default;
-function req$2(name2, rootFile) {
-  const create = createRequire || createRequireFromPath;
-  const require3 = create(rootFile);
-  return require3(name2);
-}
-var req_1 = req$2;
-var req$1 = req_1;
-var options = (config2, file) => {
-  if (config2.parser && typeof config2.parser === "string") {
-    try {
-      config2.parser = req$1(config2.parser, file);
-    } catch (err2) {
-      throw new Error(`Loading PostCSS Parser failed: ${err2.message}
-
-(@${file})`);
-    }
-  }
-  if (config2.syntax && typeof config2.syntax === "string") {
-    try {
-      config2.syntax = req$1(config2.syntax, file);
-    } catch (err2) {
-      throw new Error(`Loading PostCSS Syntax failed: ${err2.message}
-
-(@${file})`);
-    }
-  }
-  if (config2.stringifier && typeof config2.stringifier === "string") {
-    try {
-      config2.stringifier = req$1(config2.stringifier, file);
-    } catch (err2) {
-      throw new Error(`Loading PostCSS Stringifier failed: ${err2.message}
-
-(@${file})`);
-    }
-  }
-  if (config2.plugins) {
-    delete config2.plugins;
-  }
-  return config2;
-};
-var options_1 = options;
-var req = req_1;
-var load = (plugin, options2, file) => {
-  try {
-    if (options2 === null || options2 === void 0 || Object.keys(options2).length === 0) {
-      return req(plugin, file);
-    } else {
-      return req(plugin, file)(options2);
-    }
-  } catch (err2) {
-    throw new Error(`Loading PostCSS Plugin failed: ${err2.message}
-
-(@${file})`);
-  }
-};
-var plugins = (config2, file) => {
-  let plugins2 = [];
-  if (Array.isArray(config2.plugins)) {
-    plugins2 = config2.plugins.filter(Boolean);
-  } else {
-    plugins2 = Object.keys(config2.plugins).filter((plugin) => {
-      return config2.plugins[plugin] !== false ? plugin : "";
-    }).map((plugin) => {
-      return load(plugin, config2.plugins[plugin], file);
-    });
-  }
-  if (plugins2.length && plugins2.length > 0) {
-    plugins2.forEach((plugin, i) => {
-      if (plugin.default) {
-        plugin = plugin.default;
-      }
-      if (plugin.postcss === true) {
-        plugin = plugin();
-      } else if (plugin.postcss) {
-        plugin = plugin.postcss;
-      }
-      if (
-        // eslint-disable-next-line
-        !(typeof plugin === "object" && Array.isArray(plugin.plugins) || typeof plugin === "object" && plugin.postcssPlugin || typeof plugin === "function")
-      ) {
-        throw new TypeError(`Invalid PostCSS Plugin found at: plugins[${i}]
-
-(@${file})`);
-      }
-    });
-  }
-  return plugins2;
-};
-var plugins_1 = plugins;
-var resolve2 = import_path.default.resolve;
-var url$4 = import_url.default;
-var config$1 = src$2;
-var yaml = require$$3;
-var loadOptions = options_1;
-var loadPlugins = plugins_1;
-var interopRequireDefault = (obj) => obj && obj.__esModule ? obj : { default: obj };
-var processResult = (ctx, result) => {
-  const file = result.filepath || "";
-  let config2 = interopRequireDefault(result.config).default || {};
-  if (typeof config2 === "function") {
-    config2 = config2(ctx);
-  } else {
-    config2 = Object.assign({}, config2, ctx);
-  }
-  if (!config2.plugins) {
-    config2.plugins = [];
-  }
-  return {
-    plugins: loadPlugins(config2, file),
-    options: loadOptions(config2, file),
-    file
-  };
-};
-var createContext = (ctx) => {
-  ctx = Object.assign({
-    cwd: process.cwd(),
-    env: "development"
-  }, ctx);
-  if (!ctx.env) {
-    process.env.NODE_ENV = "development";
-  }
-  return ctx;
-};
-var importDefault = async (filepath) => {
-  const module = await import(url$4.pathToFileURL(filepath).href);
-  return module.default;
-};
-var addTypeScriptLoader = (options2 = {}, loader) => {
-  const moduleName = "postcss";
-  return {
-    ...options2,
-    searchPlaces: [
-      ...options2.searchPlaces || [],
-      "package.json",
-      `.${moduleName}rc`,
-      `.${moduleName}rc.json`,
-      `.${moduleName}rc.yaml`,
-      `.${moduleName}rc.yml`,
-      `.${moduleName}rc.ts`,
-      `.${moduleName}rc.cts`,
-      `.${moduleName}rc.js`,
-      `.${moduleName}rc.cjs`,
-      `.${moduleName}rc.mjs`,
-      `${moduleName}.config.ts`,
-      `${moduleName}.config.cts`,
-      `${moduleName}.config.js`,
-      `${moduleName}.config.cjs`,
-      `${moduleName}.config.mjs`
-    ],
-    loaders: {
-      ...options2.loaders,
-      ".yaml": (filepath, content) => yaml.parse(content),
-      ".yml": (filepath, content) => yaml.parse(content),
-      ".js": importDefault,
-      ".cjs": importDefault,
-      ".mjs": importDefault,
-      ".ts": loader,
-      ".cts": loader
-    }
-  };
-};
-var withTypeScriptLoader = (rcFunc) => {
-  return (ctx, path3, options2) => {
-    return rcFunc(ctx, path3, addTypeScriptLoader(options2, (configFile) => {
-      let registerer = { enabled() {
-      } };
-      try {
-        registerer = __require2("ts-node").register({
-          // transpile to cjs even if compilerOptions.module in tsconfig is not Node16/NodeNext.
-          moduleTypes: { "**/*.cts": "cjs" }
-        });
-        return __require2(configFile);
-      } catch (err2) {
-        if (err2.code === "MODULE_NOT_FOUND") {
-          throw new Error(
-            `'ts-node' is required for the TypeScript configuration files. Make sure it is installed
-Error: ${err2.message}`
-          );
-        }
-        throw err2;
-      } finally {
-        registerer.enabled(false);
-      }
-    }));
-  };
-};
-var rc = withTypeScriptLoader((ctx, path3, options2) => {
-  ctx = createContext(ctx);
-  path3 = path3 ? resolve2(path3) : process.cwd();
-  return config$1.lilconfig("postcss", options2).search(path3).then((result) => {
-    if (!result) {
-      throw new Error(`No PostCSS Config found in: ${path3}`);
-    }
-    return processResult(ctx, result);
-  });
-});
-var src$1 = rc;
-var postcssrc = getDefaultExportFromCjs(src$1);
-var HashbangComment;
-var Identifier;
-var JSXIdentifier;
-var JSXPunctuator;
-var JSXString;
-var JSXText;
-var KeywordsWithExpressionAfter;
-var KeywordsWithNoLineTerminatorAfter;
-var LineTerminatorSequence;
-var MultiLineComment;
-var Newline;
-var NumericLiteral;
-var Punctuator;
-var RegularExpressionLiteral;
-var SingleLineComment;
-var StringLiteral;
-var Template;
-var TokensNotPrecedingObjectLiteral;
-var TokensPrecedingExpression;
-var WhiteSpace;
-RegularExpressionLiteral = /\/(?![*\/])(?:\[(?:[^\]\\\n\r\u2028\u2029]+|\\.)*\]|[^\/\\\n\r\u2028\u2029]+|\\.)*(\/[$_\u200C\u200D\p{ID_Continue}]*|\\)?/yu;
-Punctuator = /--|\+\+|=>|\.{3}|\??\.(?!\d)|(?:&&|\|\||\?\?|[+\-%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2}|\/(?![\/*]))=?|[?~,:;[\](){}]/y;
-Identifier = /(\x23?)(?=[$_\p{ID_Start}\\])(?:[$_\u200C\u200D\p{ID_Continue}]+|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+/yu;
-StringLiteral = /(['"])(?:[^'"\\\n\r]+|(?!\1)['"]|\\(?:\r\n|[^]))*(\1)?/y;
-NumericLiteral = /(?:0[xX][\da-fA-F](?:_?[\da-fA-F])*|0[oO][0-7](?:_?[0-7])*|0[bB][01](?:_?[01])*)n?|0n|[1-9](?:_?\d)*n|(?:(?:0(?!\d)|0\d*[89]\d*|[1-9](?:_?\d)*)(?:\.(?:\d(?:_?\d)*)?)?|\.\d(?:_?\d)*)(?:[eE][+-]?\d(?:_?\d)*)?|0[0-7]+/y;
-Template = /[`}](?:[^`\\$]+|\\[^]|\$(?!\{))*(`|\$\{)?/y;
-WhiteSpace = /[\t\v\f\ufeff\p{Zs}]+/yu;
-LineTerminatorSequence = /\r?\n|[\r\u2028\u2029]/y;
-MultiLineComment = /\/\*(?:[^*]+|\*(?!\/))*(\*\/)?/y;
-SingleLineComment = /\/\/.*/y;
-HashbangComment = /^#!.*/;
-JSXPunctuator = /[<>.:={}]|\/(?![\/*])/y;
-JSXIdentifier = /[$_\p{ID_Start}][$_\u200C\u200D\p{ID_Continue}-]*/yu;
-JSXString = /(['"])(?:[^'"]+|(?!\1)['"])*(\1)?/y;
-JSXText = /[^<>{}]+/y;
-TokensPrecedingExpression = /^(?:[\/+-]|\.{3}|\?(?:InterpolationIn(?:JSX|Template)|NoLineTerminatorHere|NonExpressionParenEnd|UnaryIncDec))?$|[{}([,;<>=*%&|^!~?:]$/;
-TokensNotPrecedingObjectLiteral = /^(?:=>|[;\]){}]|else|\?(?:NoLineTerminatorHere|NonExpressionParenEnd))?$/;
-KeywordsWithExpressionAfter = /^(?:await|case|default|delete|do|else|instanceof|new|return|throw|typeof|void|yield)$/;
-KeywordsWithNoLineTerminatorAfter = /^(?:return|throw|yield)$/;
-Newline = RegExp(LineTerminatorSequence.source);
-var jsTokens_1 = function* (input, { jsx = false } = {}) {
-  var braces2, firstCodePoint, isExpression, lastIndex, lastSignificantToken, length, match2, mode2, nextLastIndex, nextLastSignificantToken, parenNesting, postfixIncDec, punctuator, stack;
-  ({ length } = input);
-  lastIndex = 0;
-  lastSignificantToken = "";
-  stack = [
-    { tag: "JS" }
-  ];
-  braces2 = [];
-  parenNesting = 0;
-  postfixIncDec = false;
-  if (match2 = HashbangComment.exec(input)) {
-    yield {
-      type: "HashbangComment",
-      value: match2[0]
-    };
-    lastIndex = match2[0].length;
-  }
-  while (lastIndex < length) {
-    mode2 = stack[stack.length - 1];
-    switch (mode2.tag) {
-      case "JS":
-      case "JSNonExpressionParen":
-      case "InterpolationInTemplate":
-      case "InterpolationInJSX":
-        if (input[lastIndex] === "/" && (TokensPrecedingExpression.test(lastSignificantToken) || KeywordsWithExpressionAfter.test(lastSignificantToken))) {
-          RegularExpressionLiteral.lastIndex = lastIndex;
-          if (match2 = RegularExpressionLiteral.exec(input)) {
-            lastIndex = RegularExpressionLiteral.lastIndex;
-            lastSignificantToken = match2[0];
-            postfixIncDec = true;
-            yield {
-              type: "RegularExpressionLiteral",
-              value: match2[0],
-              closed: match2[1] !== void 0 && match2[1] !== "\\"
-            };
-            continue;
-          }
-        }
-        Punctuator.lastIndex = lastIndex;
-        if (match2 = Punctuator.exec(input)) {
-          punctuator = match2[0];
-          nextLastIndex = Punctuator.lastIndex;
-          nextLastSignificantToken = punctuator;
-          switch (punctuator) {
-            case "(":
-              if (lastSignificantToken === "?NonExpressionParenKeyword") {
-                stack.push({
-                  tag: "JSNonExpressionParen",
-                  nesting: parenNesting
-                });
-              }
-              parenNesting++;
-              postfixIncDec = false;
-              break;
-            case ")":
-              parenNesting--;
-              postfixIncDec = true;
-              if (mode2.tag === "JSNonExpressionParen" && parenNesting === mode2.nesting) {
-                stack.pop();
-                nextLastSignificantToken = "?NonExpressionParenEnd";
-                postfixIncDec = false;
-              }
-              break;
-            case "{":
-              Punctuator.lastIndex = 0;
-              isExpression = !TokensNotPrecedingObjectLiteral.test(lastSignificantToken) && (TokensPrecedingExpression.test(lastSignificantToken) || KeywordsWithExpressionAfter.test(lastSignificantToken));
-              braces2.push(isExpression);
-              postfixIncDec = false;
-              break;
-            case "}":
-              switch (mode2.tag) {
-                case "InterpolationInTemplate":
-                  if (braces2.length === mode2.nesting) {
-                    Template.lastIndex = lastIndex;
-                    match2 = Template.exec(input);
-                    lastIndex = Template.lastIndex;
-                    lastSignificantToken = match2[0];
-                    if (match2[1] === "${") {
-                      lastSignificantToken = "?InterpolationInTemplate";
-                      postfixIncDec = false;
-                      yield {
-                        type: "TemplateMiddle",
-                        value: match2[0]
-                      };
-                    } else {
-                      stack.pop();
-                      postfixIncDec = true;
-                      yield {
-                        type: "TemplateTail",
-                        value: match2[0],
-                        closed: match2[1] === "`"
-                      };
-                    }
-                    continue;
-                  }
-                  break;
-                case "InterpolationInJSX":
-                  if (braces2.length === mode2.nesting) {
-                    stack.pop();
-                    lastIndex += 1;
-                    lastSignificantToken = "}";
-                    yield {
-                      type: "JSXPunctuator",
-                      value: "}"
-                    };
-                    continue;
-                  }
-              }
-              postfixIncDec = braces2.pop();
-              nextLastSignificantToken = postfixIncDec ? "?ExpressionBraceEnd" : "}";
-              break;
-            case "]":
-              postfixIncDec = true;
-              break;
-            case "++":
-            case "--":
-              nextLastSignificantToken = postfixIncDec ? "?PostfixIncDec" : "?UnaryIncDec";
-              break;
-            case "<":
-              if (jsx && (TokensPrecedingExpression.test(lastSignificantToken) || KeywordsWithExpressionAfter.test(lastSignificantToken))) {
-                stack.push({ tag: "JSXTag" });
-                lastIndex += 1;
-                lastSignificantToken = "<";
-                yield {
-                  type: "JSXPunctuator",
-                  value: punctuator
-                };
-                continue;
-              }
-              postfixIncDec = false;
-              break;
-            default:
-              postfixIncDec = false;
-          }
-          lastIndex = nextLastIndex;
-          lastSignificantToken = nextLastSignificantToken;
-          yield {
-            type: "Punctuator",
-            value: punctuator
-          };
-          continue;
-        }
-        Identifier.lastIndex = lastIndex;
-        if (match2 = Identifier.exec(input)) {
-          lastIndex = Identifier.lastIndex;
-          nextLastSignificantToken = match2[0];
-          switch (match2[0]) {
-            case "for":
-            case "if":
-            case "while":
-            case "with":
-              if (lastSignificantToken !== "." && lastSignificantToken !== "?.") {
-                nextLastSignificantToken = "?NonExpressionParenKeyword";
-              }
-          }
-          lastSignificantToken = nextLastSignificantToken;
-          postfixIncDec = !KeywordsWithExpressionAfter.test(match2[0]);
-          yield {
-            type: match2[1] === "#" ? "PrivateIdentifier" : "IdentifierName",
-            value: match2[0]
-          };
-          continue;
-        }
-        StringLiteral.lastIndex = lastIndex;
-        if (match2 = StringLiteral.exec(input)) {
-          lastIndex = StringLiteral.lastIndex;
-          lastSignificantToken = match2[0];
-          postfixIncDec = true;
-          yield {
-            type: "StringLiteral",
-            value: match2[0],
-            closed: match2[2] !== void 0
-          };
-          continue;
-        }
-        NumericLiteral.lastIndex = lastIndex;
-        if (match2 = NumericLiteral.exec(input)) {
-          lastIndex = NumericLiteral.lastIndex;
-          lastSignificantToken = match2[0];
-          postfixIncDec = true;
-          yield {
-            type: "NumericLiteral",
-            value: match2[0]
-          };
-          continue;
-        }
-        Template.lastIndex = lastIndex;
-        if (match2 = Template.exec(input)) {
-          lastIndex = Template.lastIndex;
-          lastSignificantToken = match2[0];
-          if (match2[1] === "${") {
-            lastSignificantToken = "?InterpolationInTemplate";
-            stack.push({
-              tag: "InterpolationInTemplate",
-              nesting: braces2.length
-            });
-            postfixIncDec = false;
-            yield {
-              type: "TemplateHead",
-              value: match2[0]
-            };
-          } else {
-            postfixIncDec = true;
-            yield {
-              type: "NoSubstitutionTemplate",
-              value: match2[0],
-              closed: match2[1] === "`"
-            };
-          }
-          continue;
-        }
-        break;
-      case "JSXTag":
-      case "JSXTagEnd":
-        JSXPunctuator.lastIndex = lastIndex;
-        if (match2 = JSXPunctuator.exec(input)) {
-          lastIndex = JSXPunctuator.lastIndex;
-          nextLastSignificantToken = match2[0];
-          switch (match2[0]) {
-            case "<":
-              stack.push({ tag: "JSXTag" });
-              break;
-            case ">":
-              stack.pop();
-              if (lastSignificantToken === "/" || mode2.tag === "JSXTagEnd") {
-                nextLastSignificantToken = "?JSX";
-                postfixIncDec = true;
-              } else {
-                stack.push({ tag: "JSXChildren" });
-              }
-              break;
-            case "{":
-              stack.push({
-                tag: "InterpolationInJSX",
-                nesting: braces2.length
-              });
-              nextLastSignificantToken = "?InterpolationInJSX";
-              postfixIncDec = false;
-              break;
-            case "/":
-              if (lastSignificantToken === "<") {
-                stack.pop();
-                if (stack[stack.length - 1].tag === "JSXChildren") {
-                  stack.pop();
-                }
-                stack.push({ tag: "JSXTagEnd" });
-              }
-          }
-          lastSignificantToken = nextLastSignificantToken;
-          yield {
-            type: "JSXPunctuator",
-            value: match2[0]
-          };
-          continue;
-        }
-        JSXIdentifier.lastIndex = lastIndex;
-        if (match2 = JSXIdentifier.exec(input)) {
-          lastIndex = JSXIdentifier.lastIndex;
-          lastSignificantToken = match2[0];
-          yield {
-            type: "JSXIdentifier",
-            value: match2[0]
-          };
-          continue;
-        }
-        JSXString.lastIndex = lastIndex;
-        if (match2 = JSXString.exec(input)) {
-          lastIndex = JSXString.lastIndex;
-          lastSignificantToken = match2[0];
-          yield {
-            type: "JSXString",
-            value: match2[0],
-            closed: match2[2] !== void 0
-          };
-          continue;
-        }
-        break;
-      case "JSXChildren":
-        JSXText.lastIndex = lastIndex;
-        if (match2 = JSXText.exec(input)) {
-          lastIndex = JSXText.lastIndex;
-          lastSignificantToken = match2[0];
-          yield {
-            type: "JSXText",
-            value: match2[0]
-          };
-          continue;
-        }
-        switch (input[lastIndex]) {
-          case "<":
-            stack.push({ tag: "JSXTag" });
-            lastIndex++;
-            lastSignificantToken = "<";
-            yield {
-              type: "JSXPunctuator",
-              value: "<"
-            };
-            continue;
-          case "{":
-            stack.push({
-              tag: "InterpolationInJSX",
-              nesting: braces2.length
-            });
-            lastIndex++;
-            lastSignificantToken = "?InterpolationInJSX";
-            postfixIncDec = false;
-            yield {
-              type: "JSXPunctuator",
-              value: "{"
-            };
-            continue;
-        }
-    }
-    WhiteSpace.lastIndex = lastIndex;
-    if (match2 = WhiteSpace.exec(input)) {
-      lastIndex = WhiteSpace.lastIndex;
-      yield {
-        type: "WhiteSpace",
-        value: match2[0]
-      };
-      continue;
-    }
-    LineTerminatorSequence.lastIndex = lastIndex;
-    if (match2 = LineTerminatorSequence.exec(input)) {
-      lastIndex = LineTerminatorSequence.lastIndex;
-      postfixIncDec = false;
-      if (KeywordsWithNoLineTerminatorAfter.test(lastSignificantToken)) {
-        lastSignificantToken = "?NoLineTerminatorHere";
-      }
-      yield {
-        type: "LineTerminatorSequence",
-        value: match2[0]
-      };
-      continue;
-    }
-    MultiLineComment.lastIndex = lastIndex;
-    if (match2 = MultiLineComment.exec(input)) {
-      lastIndex = MultiLineComment.lastIndex;
-      if (Newline.test(match2[0])) {
-        postfixIncDec = false;
-        if (KeywordsWithNoLineTerminatorAfter.test(lastSignificantToken)) {
-          lastSignificantToken = "?NoLineTerminatorHere";
-        }
-      }
-      yield {
-        type: "MultiLineComment",
-        value: match2[0],
-        closed: match2[1] !== void 0
-      };
-      continue;
-    }
-    SingleLineComment.lastIndex = lastIndex;
-    if (match2 = SingleLineComment.exec(input)) {
-      lastIndex = SingleLineComment.lastIndex;
-      postfixIncDec = false;
-      yield {
-        type: "SingleLineComment",
-        value: match2[0]
-      };
-      continue;
-    }
-    firstCodePoint = String.fromCodePoint(input.codePointAt(lastIndex));
-    lastIndex += firstCodePoint.length;
-    lastSignificantToken = firstCodePoint;
-    postfixIncDec = false;
-    yield {
-      type: mode2.tag.startsWith("JSX") ? "JSXInvalid" : "Invalid",
-      value: firstCodePoint
-    };
-  }
-  return void 0;
-};
-var jsTokens = getDefaultExportFromCjs(jsTokens_1);
-function stripLiteralJsTokens(code, options2) {
-  const FILL = " ";
-  const FILL_COMMENT = " ";
-  let result = "";
-  const tokens = [];
-  for (const token of jsTokens(code, { jsx: false })) {
-    tokens.push(token);
-    if (token.type === "SingleLineComment") {
-      result += FILL_COMMENT.repeat(token.value.length);
-      continue;
-    }
-    if (token.type === "MultiLineComment") {
-      result += token.value.replace(/[^\n]/g, FILL_COMMENT);
-      continue;
-    }
-    if (token.type === "StringLiteral") {
-      if (!token.closed) {
-        result += token.value;
-        continue;
-      }
-      const body = token.value.slice(1, -1);
-      {
-        result += token.value[0] + FILL.repeat(body.length) + token.value[token.value.length - 1];
-        continue;
-      }
-    }
-    if (token.type === "NoSubstitutionTemplate") {
-      const body = token.value.slice(1, -1);
-      {
-        result += `\`${body.replace(/[^\n]/g, FILL)}\``;
-        continue;
-      }
-    }
-    if (token.type === "RegularExpressionLiteral") {
-      const body = token.value;
-      {
-        result += body.replace(/\/(.*)\/(\w?)$/g, (_, $1, $2) => `/${FILL.repeat($1.length)}/${$2}`);
-        continue;
-      }
-    }
-    if (token.type === "TemplateHead") {
-      const body = token.value.slice(1, -2);
-      {
-        result += `\`${body.replace(/[^\n]/g, FILL)}\${`;
-        continue;
-      }
-    }
-    if (token.type === "TemplateTail") {
-      const body = token.value.slice(0, -2);
-      {
-        result += `}${body.replace(/[^\n]/g, FILL)}\``;
-        continue;
-      }
-    }
-    if (token.type === "TemplateMiddle") {
-      const body = token.value.slice(1, -2);
-      {
-        result += `}${body.replace(/[^\n]/g, FILL)}\${`;
-        continue;
-      }
-    }
-    result += token.value;
-  }
-  return {
-    result,
-    tokens
-  };
-}
-function stripLiteral(code, options2) {
-  return stripLiteralDetailed(code).result;
-}
-function stripLiteralDetailed(code, options2) {
-  return stripLiteralJsTokens(code);
-}
-var main$1 = { exports: {} };
-var name = "dotenv";
-var version$1 = "16.4.5";
-var description = "Loads environment variables from .env file";
-var main = "lib/main.js";
-var types = "lib/main.d.ts";
-var exports = {
-  ".": {
-    types: "./lib/main.d.ts",
-    require: "./lib/main.js",
-    "default": "./lib/main.js"
-  },
-  "./config": "./config.js",
-  "./config.js": "./config.js",
-  "./lib/env-options": "./lib/env-options.js",
-  "./lib/env-options.js": "./lib/env-options.js",
-  "./lib/cli-options": "./lib/cli-options.js",
-  "./lib/cli-options.js": "./lib/cli-options.js",
-  "./package.json": "./package.json"
-};
-var scripts = {
-  "dts-check": "tsc --project tests/types/tsconfig.json",
-  lint: "standard",
-  "lint-readme": "standard-markdown",
-  pretest: "npm run lint && npm run dts-check",
-  test: "tap tests/*.js --100 -Rspec",
-  "test:coverage": "tap --coverage-report=lcov",
-  prerelease: "npm test",
-  release: "standard-version"
-};
-var repository = {
-  type: "git",
-  url: "git://github.com/motdotla/dotenv.git"
-};
-var funding = "https://dotenvx.com";
-var keywords = [
-  "dotenv",
-  "env",
-  ".env",
-  "environment",
-  "variables",
-  "config",
-  "settings"
-];
-var readmeFilename = "README.md";
-var license = "BSD-2-Clause";
-var devDependencies = {
-  "@definitelytyped/dtslint": "^0.0.133",
-  "@types/node": "^18.11.3",
-  decache: "^4.6.1",
-  sinon: "^14.0.1",
-  standard: "^17.0.0",
-  "standard-markdown": "^7.1.0",
-  "standard-version": "^9.5.0",
-  tap: "^16.3.0",
-  tar: "^6.1.11",
-  typescript: "^4.8.4"
-};
-var engines = {
-  node: ">=12"
-};
-var browser$1 = {
-  fs: false
-};
-var require$$4 = {
-  name,
-  version: version$1,
-  description,
-  main,
-  types,
-  exports,
-  scripts,
-  repository,
-  funding,
-  keywords,
-  readmeFilename,
-  license,
-  devDependencies,
-  engines,
-  browser: browser$1
-};
-var fs$9 = import_fs.default;
-var path$9 = import_path.default;
-var os$2 = import_os.default;
-var crypto$1 = import_crypto.default;
-var packageJson = require$$4;
-var version2 = packageJson.version;
-var LINE = /(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;
-function parse$9(src2) {
-  const obj = {};
-  let lines = src2.toString();
-  lines = lines.replace(/\r\n?/mg, "\n");
-  let match2;
-  while ((match2 = LINE.exec(lines)) != null) {
-    const key = match2[1];
-    let value2 = match2[2] || "";
-    value2 = value2.trim();
-    const maybeQuote = value2[0];
-    value2 = value2.replace(/^(['"`])([\s\S]*)\1$/mg, "$2");
-    if (maybeQuote === '"') {
-      value2 = value2.replace(/\\n/g, "\n");
-      value2 = value2.replace(/\\r/g, "\r");
-    }
-    obj[key] = value2;
-  }
-  return obj;
-}
-function _parseVault(options2) {
-  const vaultPath = _vaultPath(options2);
-  const result = DotenvModule.configDotenv({ path: vaultPath });
-  if (!result.parsed) {
-    const err2 = new Error(`MISSING_DATA: Cannot parse ${vaultPath} for an unknown reason`);
-    err2.code = "MISSING_DATA";
-    throw err2;
-  }
-  const keys = _dotenvKey(options2).split(",");
-  const length = keys.length;
-  let decrypted;
-  for (let i = 0; i < length; i++) {
-    try {
-      const key = keys[i].trim();
-      const attrs = _instructions(result, key);
-      decrypted = DotenvModule.decrypt(attrs.ciphertext, attrs.key);
-      break;
-    } catch (error2) {
-      if (i + 1 >= length) {
-        throw error2;
-      }
-    }
-  }
-  return DotenvModule.parse(decrypted);
-}
-function _log(message) {
-  console.log(`[dotenv@${version2}][INFO] ${message}`);
-}
-function _warn(message) {
-  console.log(`[dotenv@${version2}][WARN] ${message}`);
-}
-function _debug(message) {
-  console.log(`[dotenv@${version2}][DEBUG] ${message}`);
-}
-function _dotenvKey(options2) {
-  if (options2 && options2.DOTENV_KEY && options2.DOTENV_KEY.length > 0) {
-    return options2.DOTENV_KEY;
-  }
-  if (process.env.DOTENV_KEY && process.env.DOTENV_KEY.length > 0) {
-    return process.env.DOTENV_KEY;
-  }
-  return "";
-}
-function _instructions(result, dotenvKey) {
-  let uri;
-  try {
-    uri = new URL(dotenvKey);
-  } catch (error2) {
-    if (error2.code === "ERR_INVALID_URL") {
-      const err2 = new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenvx.com/vault/.env.vault?environment=development");
-      err2.code = "INVALID_DOTENV_KEY";
-      throw err2;
-    }
-    throw error2;
-  }
-  const key = uri.password;
-  if (!key) {
-    const err2 = new Error("INVALID_DOTENV_KEY: Missing key part");
-    err2.code = "INVALID_DOTENV_KEY";
-    throw err2;
-  }
-  const environment = uri.searchParams.get("environment");
-  if (!environment) {
-    const err2 = new Error("INVALID_DOTENV_KEY: Missing environment part");
-    err2.code = "INVALID_DOTENV_KEY";
-    throw err2;
-  }
-  const environmentKey = `DOTENV_VAULT_${environment.toUpperCase()}`;
-  const ciphertext = result.parsed[environmentKey];
-  if (!ciphertext) {
-    const err2 = new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${environmentKey} in your .env.vault file.`);
-    err2.code = "NOT_FOUND_DOTENV_ENVIRONMENT";
-    throw err2;
-  }
-  return { ciphertext, key };
-}
-function _vaultPath(options2) {
-  let possibleVaultPath = null;
-  if (options2 && options2.path && options2.path.length > 0) {
-    if (Array.isArray(options2.path)) {
-      for (const filepath of options2.path) {
-        if (fs$9.existsSync(filepath)) {
-          possibleVaultPath = filepath.endsWith(".vault") ? filepath : `${filepath}.vault`;
-        }
-      }
-    } else {
-      possibleVaultPath = options2.path.endsWith(".vault") ? options2.path : `${options2.path}.vault`;
-    }
-  } else {
-    possibleVaultPath = path$9.resolve(process.cwd(), ".env.vault");
-  }
-  if (fs$9.existsSync(possibleVaultPath)) {
-    return possibleVaultPath;
-  }
-  return null;
-}
-function _resolveHome(envPath) {
-  return envPath[0] === "~" ? path$9.join(os$2.homedir(), envPath.slice(1)) : envPath;
-}
-function _configVault(options2) {
-  _log("Loading env from encrypted .env.vault");
-  const parsed = DotenvModule._parseVault(options2);
-  let processEnv = process.env;
-  if (options2 && options2.processEnv != null) {
-    processEnv = options2.processEnv;
-  }
-  DotenvModule.populate(processEnv, parsed, options2);
-  return { parsed };
-}
-function configDotenv(options2) {
-  const dotenvPath = path$9.resolve(process.cwd(), ".env");
-  let encoding = "utf8";
-  const debug2 = Boolean(options2 && options2.debug);
-  if (options2 && options2.encoding) {
-    encoding = options2.encoding;
-  } else {
-    if (debug2) {
-      _debug("No encoding is specified. UTF-8 is used by default");
-    }
-  }
-  let optionPaths = [dotenvPath];
-  if (options2 && options2.path) {
-    if (!Array.isArray(options2.path)) {
-      optionPaths = [_resolveHome(options2.path)];
-    } else {
-      optionPaths = [];
-      for (const filepath of options2.path) {
-        optionPaths.push(_resolveHome(filepath));
-      }
-    }
-  }
-  let lastError;
-  const parsedAll = {};
-  for (const path3 of optionPaths) {
-    try {
-      const parsed = DotenvModule.parse(fs$9.readFileSync(path3, { encoding }));
-      DotenvModule.populate(parsedAll, parsed, options2);
-    } catch (e2) {
-      if (debug2) {
-        _debug(`Failed to load ${path3} ${e2.message}`);
-      }
-      lastError = e2;
-    }
-  }
-  let processEnv = process.env;
-  if (options2 && options2.processEnv != null) {
-    processEnv = options2.processEnv;
-  }
-  DotenvModule.populate(processEnv, parsedAll, options2);
-  if (lastError) {
-    return { parsed: parsedAll, error: lastError };
-  } else {
-    return { parsed: parsedAll };
-  }
-}
-function config(options2) {
-  if (_dotenvKey(options2).length === 0) {
-    return DotenvModule.configDotenv(options2);
-  }
-  const vaultPath = _vaultPath(options2);
-  if (!vaultPath) {
-    _warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${vaultPath}. Did you forget to build it?`);
-    return DotenvModule.configDotenv(options2);
-  }
-  return DotenvModule._configVault(options2);
-}
-function decrypt(encrypted, keyStr) {
-  const key = Buffer.from(keyStr.slice(-64), "hex");
-  let ciphertext = Buffer.from(encrypted, "base64");
-  const nonce = ciphertext.subarray(0, 12);
-  const authTag = ciphertext.subarray(-16);
-  ciphertext = ciphertext.subarray(12, -16);
-  try {
-    const aesgcm = crypto$1.createDecipheriv("aes-256-gcm", key, nonce);
-    aesgcm.setAuthTag(authTag);
-    return `${aesgcm.update(ciphertext)}${aesgcm.final()}`;
-  } catch (error2) {
-    const isRange = error2 instanceof RangeError;
-    const invalidKeyLength = error2.message === "Invalid key length";
-    const decryptionFailed = error2.message === "Unsupported state or unable to authenticate data";
-    if (isRange || invalidKeyLength) {
-      const err2 = new Error("INVALID_DOTENV_KEY: It must be 64 characters long (or more)");
-      err2.code = "INVALID_DOTENV_KEY";
-      throw err2;
-    } else if (decryptionFailed) {
-      const err2 = new Error("DECRYPTION_FAILED: Please check your DOTENV_KEY");
-      err2.code = "DECRYPTION_FAILED";
-      throw err2;
-    } else {
-      throw error2;
-    }
-  }
-}
-function populate(processEnv, parsed, options2 = {}) {
-  const debug2 = Boolean(options2 && options2.debug);
-  const override = Boolean(options2 && options2.override);
-  if (typeof parsed !== "object") {
-    const err2 = new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");
-    err2.code = "OBJECT_REQUIRED";
-    throw err2;
-  }
-  for (const key of Object.keys(parsed)) {
-    if (Object.prototype.hasOwnProperty.call(processEnv, key)) {
-      if (override === true) {
-        processEnv[key] = parsed[key];
-      }
-      if (debug2) {
-        if (override === true) {
-          _debug(`"${key}" is already defined and WAS overwritten`);
-        } else {
-          _debug(`"${key}" is already defined and was NOT overwritten`);
-        }
-      }
-    } else {
-      processEnv[key] = parsed[key];
-    }
-  }
-}
-var DotenvModule = {
-  configDotenv,
-  _configVault,
-  _parseVault,
-  config,
-  decrypt,
-  parse: parse$9,
-  populate
-};
-main$1.exports.configDotenv = DotenvModule.configDotenv;
-main$1.exports._configVault = DotenvModule._configVault;
-main$1.exports._parseVault = DotenvModule._parseVault;
-main$1.exports.config = DotenvModule.config;
-main$1.exports.decrypt = DotenvModule.decrypt;
-var parse_1$1 = main$1.exports.parse = DotenvModule.parse;
-main$1.exports.populate = DotenvModule.populate;
-main$1.exports = DotenvModule;
-var DOTENV_SUBSTITUTION_REGEX = /(\\)?(\$)(?!\()(\{?)([\w.]+)(?::?-((?:\$\{(?:\$\{(?:\$\{[^}]*\}|[^}])*}|[^}])*}|[^}])+))?(\}?)/gi;
-function _resolveEscapeSequences(value2) {
-  return value2.replace(/\\\$/g, "$");
-}
-function interpolate(value2, processEnv, parsed) {
-  return value2.replace(DOTENV_SUBSTITUTION_REGEX, (match2, escaped2, dollarSign, openBrace, key, defaultValue, closeBrace) => {
-    if (escaped2 === "\\") {
-      return match2.slice(1);
-    } else {
-      if (processEnv[key]) {
-        if (processEnv[key] === parsed[key]) {
-          return processEnv[key];
-        } else {
-          return interpolate(processEnv[key], processEnv, parsed);
-        }
-      }
-      if (parsed[key]) {
-        if (parsed[key] === value2) {
-          return parsed[key];
-        } else {
-          return interpolate(parsed[key], processEnv, parsed);
-        }
-      }
-      if (defaultValue) {
-        if (defaultValue.startsWith("$")) {
-          return interpolate(defaultValue, processEnv, parsed);
-        } else {
-          return defaultValue;
-        }
-      }
-      return "";
-    }
-  });
-}
-function expand(options2) {
-  let processEnv = process.env;
-  if (options2 && options2.processEnv != null) {
-    processEnv = options2.processEnv;
-  }
-  for (const key in options2.parsed) {
-    let value2 = options2.parsed[key];
-    const inProcessEnv = Object.prototype.hasOwnProperty.call(processEnv, key);
-    if (inProcessEnv) {
-      if (processEnv[key] === options2.parsed[key]) {
-        value2 = interpolate(value2, processEnv, options2.parsed);
-      } else {
-        value2 = processEnv[key];
-      }
-    } else {
-      value2 = interpolate(value2, processEnv, options2.parsed);
-    }
-    options2.parsed[key] = _resolveEscapeSequences(value2);
-  }
-  for (const processKey in options2.parsed) {
-    processEnv[processKey] = options2.parsed[processKey];
-  }
-  return options2;
-}
-var expand_1 = expand;
-function getEnvFilesForMode(mode2, envDir) {
-  return [
-    /** default file */
-    `.env`,
-    /** local file */
-    `.env.local`,
-    /** mode file */
-    `.env.${mode2}`,
-    /** mode local file */
-    `.env.${mode2}.local`
-  ].map((file) => normalizePath$3(import_node_path3.default.join(envDir, file)));
-}
-function loadEnv(mode2, envDir, prefixes = "VITE_") {
-  if (mode2 === "local") {
-    throw new Error(
-      `"local" cannot be used as a mode name because it conflicts with the .local postfix for .env files.`
-    );
-  }
-  prefixes = arraify(prefixes);
-  const env2 = {};
-  const envFiles = getEnvFilesForMode(mode2, envDir);
-  const parsed = Object.fromEntries(
-    envFiles.flatMap((filePath) => {
-      var _a4;
-      if (!((_a4 = tryStatSync(filePath)) == null ? void 0 : _a4.isFile())) return [];
-      return Object.entries(parse_1$1(import_node_fs2.default.readFileSync(filePath)));
-    })
-  );
-  if (parsed.NODE_ENV && process.env.VITE_USER_NODE_ENV === void 0) {
-    process.env.VITE_USER_NODE_ENV = parsed.NODE_ENV;
-  }
-  if (parsed.BROWSER && process.env.BROWSER === void 0) {
-    process.env.BROWSER = parsed.BROWSER;
-  }
-  if (parsed.BROWSER_ARGS && process.env.BROWSER_ARGS === void 0) {
-    process.env.BROWSER_ARGS = parsed.BROWSER_ARGS;
-  }
-  const processEnv = { ...process.env };
-  expand_1({ parsed, processEnv });
-  for (const [key, value2] of Object.entries(parsed)) {
-    if (prefixes.some((prefix) => key.startsWith(prefix))) {
-      env2[key] = value2;
-    }
-  }
-  for (const key in process.env) {
-    if (prefixes.some((prefix) => key.startsWith(prefix))) {
-      env2[key] = process.env[key];
-    }
-  }
-  return env2;
-}
-function resolveEnvPrefix({
-  envPrefix = "VITE_"
-}) {
-  envPrefix = arraify(envPrefix);
-  if (envPrefix.includes("")) {
-    throw new Error(
-      `envPrefix option contains value '', which could lead unexpected exposure of sensitive information.`
-    );
-  }
-  return envPrefix;
-}
-var modulePreloadPolyfillId = "vite/modulepreload-polyfill";
-var resolvedModulePreloadPolyfillId = "\0" + modulePreloadPolyfillId + ".js";
-function modulePreloadPolyfillPlugin(config2) {
-  const skip = config2.command !== "build" || config2.build.ssr;
-  let polyfillString;
-  return {
-    name: "vite:modulepreload-polyfill",
-    resolveId(id) {
-      if (id === modulePreloadPolyfillId) {
-        return resolvedModulePreloadPolyfillId;
-      }
-    },
-    load(id) {
-      if (id === resolvedModulePreloadPolyfillId) {
-        if (skip) {
-          return "";
-        }
-        if (!polyfillString) {
-          polyfillString = `${isModernFlag}&&(${polyfill.toString()}());`;
-        }
-        return { code: polyfillString, moduleSideEffects: true };
-      }
-    }
-  };
-}
-function polyfill() {
-  const relList = document.createElement("link").relList;
-  if (relList && relList.supports && relList.supports("modulepreload")) {
-    return;
-  }
-  for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
-    processPreload(link);
-  }
-  new MutationObserver((mutations) => {
-    for (const mutation of mutations) {
-      if (mutation.type !== "childList") {
-        continue;
-      }
-      for (const node2 of mutation.addedNodes) {
-        if (node2.tagName === "LINK" && node2.rel === "modulepreload")
-          processPreload(node2);
-      }
-    }
-  }).observe(document, { childList: true, subtree: true });
-  function getFetchOpts(link) {
-    const fetchOpts = {};
-    if (link.integrity) fetchOpts.integrity = link.integrity;
-    if (link.referrerPolicy) fetchOpts.referrerPolicy = link.referrerPolicy;
-    if (link.crossOrigin === "use-credentials")
-      fetchOpts.credentials = "include";
-    else if (link.crossOrigin === "anonymous") fetchOpts.credentials = "omit";
-    else fetchOpts.credentials = "same-origin";
-    return fetchOpts;
-  }
-  function processPreload(link) {
-    if (link.ep)
-      return;
-    link.ep = true;
-    const fetchOpts = getFetchOpts(link);
-    fetch(link.href, fetchOpts);
-  }
-}
-var htmlProxyRE$1 = /\?html-proxy=?(?:&inline-css)?(?:&style-attr)?&index=(\d+)\.(js|css)$/;
-var isHtmlProxyRE = /\?html-proxy\b/;
-var inlineCSSRE$1 = /__VITE_INLINE_CSS__([a-z\d]{8}_\d+)__/g;
-var inlineImportRE = new RegExp(`(?]*type\s*=\s*(?:"importmap"|'importmap'|importmap)[^>]*>.*?<\/script>/is;
-var moduleScriptRE = /[ \t]*]*type\s*=\s*(?:"module"|'module'|module)[^>]*>/i;
-var modulePreloadLinkRE = /[ \t]*]*rel\s*=\s*(?:"modulepreload"|'modulepreload'|modulepreload)[\s\S]*?\/>/i;
-var importMapAppendRE = new RegExp(
-  [moduleScriptRE, modulePreloadLinkRE].map((r2) => r2.source).join("|"),
-  "i"
-);
-var isHTMLProxy = (id) => isHtmlProxyRE.test(id);
-var isHTMLRequest = (request) => htmlLangRE.test(request);
-var htmlProxyMap = /* @__PURE__ */ new WeakMap();
-var htmlProxyResult = /* @__PURE__ */ new Map();
-function htmlInlineProxyPlugin(config2) {
-  htmlProxyMap.set(config2, /* @__PURE__ */ new Map());
-  return {
-    name: "vite:html-inline-proxy",
-    resolveId(id) {
-      if (isHTMLProxy(id)) {
-        return id;
-      }
-    },
-    load(id) {
-      var _a4;
-      const proxyMatch = id.match(htmlProxyRE$1);
-      if (proxyMatch) {
-        const index = Number(proxyMatch[1]);
-        const file = cleanUrl(id);
-        const url2 = file.replace(normalizePath$3(config2.root), "");
-        const result = (_a4 = htmlProxyMap.get(config2).get(url2)) == null ? void 0 : _a4[index];
-        if (result) {
-          return result;
-        } else {
-          throw new Error(`No matching HTML proxy module found from ${id}`);
-        }
-      }
-    }
-  };
-}
-function addToHTMLProxyCache(config2, filePath, index, result) {
-  if (!htmlProxyMap.get(config2)) {
-    htmlProxyMap.set(config2, /* @__PURE__ */ new Map());
-  }
-  if (!htmlProxyMap.get(config2).get(filePath)) {
-    htmlProxyMap.get(config2).set(filePath, []);
-  }
-  htmlProxyMap.get(config2).get(filePath)[index] = result;
-}
-function addToHTMLProxyTransformResult(hash2, code) {
-  htmlProxyResult.set(hash2, code);
-}
-var assetAttrsConfig = {
-  link: ["href"],
-  video: ["src", "poster"],
-  source: ["src", "srcset"],
-  img: ["src", "srcset"],
-  image: ["xlink:href", "href"],
-  use: ["xlink:href", "href"]
-};
-var noInlineLinkRels = /* @__PURE__ */ new Set([
-  "icon",
-  "apple-touch-icon",
-  "apple-touch-startup-image",
-  "manifest"
-]);
-var isAsyncScriptMap = /* @__PURE__ */ new WeakMap();
-function nodeIsElement(node2) {
-  return node2.nodeName[0] !== "#";
-}
-function traverseNodes(node2, visitor) {
-  visitor(node2);
-  if (nodeIsElement(node2) || node2.nodeName === "#document" || node2.nodeName === "#document-fragment") {
-    node2.childNodes.forEach((childNode) => traverseNodes(childNode, visitor));
-  }
-}
-async function traverseHtml(html, filePath, visitor) {
-  const { parse: parse4 } = await import("./dep-D-7KCb9p-QLXNKUUS.js");
-  const ast = parse4(html, {
-    scriptingEnabled: false,
-    // parse inside