@jadujoel/web-audio-clip-node 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -3
- package/dist/audio/version.d.ts +1 -1
- package/dist/audio/version.js +1 -1
- package/dist/lib.bundle.js +6 -0
- package/dist/lib.bundle.js.map +7 -0
- package/examples/cdn-vanilla/README.md +5 -5
- package/examples/cdn-vanilla/index.html +10 -2
- package/examples/esm-bundler/node_modules/.package-lock.json +1168 -0
- package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/README.md +3 -0
- package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/bin/esbuild +0 -0
- package/examples/esm-bundler/node_modules/@esbuild/darwin-arm64/package.json +20 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/LICENSE +21 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/README.md +91 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/ClipNode.d.ts +86 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/ClipNode.js +312 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-code.d.ts +1 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-code.js +2 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-kernel.d.ts +43 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor-kernel.js +861 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor.d.ts +1 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/processor.js +80 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/types.d.ts +192 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/types.js +9 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/utils.d.ts +22 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/utils.js +128 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/version.d.ts +1 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/version.js +2 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/workletUrl.d.ts +6 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/audio/workletUrl.js +17 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/AudioControl.d.ts +28 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/AudioControl.js +99 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ContextMenu.d.ts +17 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ContextMenu.js +73 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ControlSection.d.ts +26 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/ControlSection.js +74 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DetuneControl.d.ts +10 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DetuneControl.js +44 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DisplayPanel.d.ts +14 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/DisplayPanel.js +6 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/FilterControl.d.ts +12 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/FilterControl.js +48 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/GainControl.d.ts +10 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/GainControl.js +44 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PanControl.d.ts +10 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PanControl.js +50 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlaybackRateControl.d.ts +10 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlaybackRateControl.js +44 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlayheadSlider.d.ts +13 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/PlayheadSlider.js +20 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/SnappableSlider.d.ts +18 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/SnappableSlider.js +174 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/TransportButtons.d.ts +14 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/components/TransportButtons.js +9 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/controlDefs.d.ts +31 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/controlDefs.js +211 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/formatValueText.d.ts +2 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/formatValueText.js +80 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/linkedControlPairs.d.ts +20 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/controls/linkedControlPairs.js +51 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/cache.d.ts +1 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/cache.js +17 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/fileStore.d.ts +6 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/data/fileStore.js +39 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/hooks/useClipNode.d.ts +31 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/hooks/useClipNode.js +338 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib-react.d.ts +15 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib-react.js +17 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib.d.ts +16 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/lib.js +16 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/processor.js +4 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/processor.js.map +12 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/store/clipStore.d.ts +63 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/store/clipStore.js +71 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/dist/styles.css +739 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/README.md +10 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/cdn-vanilla/README.md +13 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/cdn-vanilla/index.html +61 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/README.md +8 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/index.html +12 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/package.json +15 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/esm-bundler/src/main.ts +43 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/README.md +10 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/index.html +12 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/package.json +21 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/src/App.tsx +20 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react/src/main.tsx +9 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/README.md +11 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/index.html +12 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/package.json +16 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/public/.gitkeep +1 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/self-hosted/src/main.ts +46 -0
- package/examples/esm-bundler/node_modules/@jadujoel/web-audio-clip-node/package.json +88 -0
- package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/README.md +3 -0
- package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/package.json +22 -0
- package/examples/esm-bundler/node_modules/@rollup/rollup-darwin-arm64/rollup.darwin-arm64.node +0 -0
- package/examples/esm-bundler/node_modules/@types/estree/LICENSE +21 -0
- package/examples/esm-bundler/node_modules/@types/estree/README.md +15 -0
- package/examples/esm-bundler/node_modules/@types/estree/flow.d.ts +167 -0
- package/examples/esm-bundler/node_modules/@types/estree/index.d.ts +694 -0
- package/examples/esm-bundler/node_modules/@types/estree/package.json +27 -0
- package/examples/esm-bundler/node_modules/esbuild/LICENSE.md +21 -0
- package/examples/esm-bundler/node_modules/esbuild/README.md +3 -0
- package/examples/esm-bundler/node_modules/esbuild/bin/esbuild +0 -0
- package/examples/esm-bundler/node_modules/esbuild/install.js +289 -0
- package/examples/esm-bundler/node_modules/esbuild/lib/main.d.ts +716 -0
- package/examples/esm-bundler/node_modules/esbuild/lib/main.js +2242 -0
- package/examples/esm-bundler/node_modules/esbuild/package.json +49 -0
- package/examples/esm-bundler/node_modules/fdir/LICENSE +7 -0
- package/examples/esm-bundler/node_modules/fdir/README.md +91 -0
- package/examples/esm-bundler/node_modules/fdir/dist/index.cjs +588 -0
- package/examples/esm-bundler/node_modules/fdir/dist/index.d.cts +155 -0
- package/examples/esm-bundler/node_modules/fdir/dist/index.d.mts +155 -0
- package/examples/esm-bundler/node_modules/fdir/dist/index.mjs +570 -0
- package/examples/esm-bundler/node_modules/fdir/package.json +103 -0
- package/examples/esm-bundler/node_modules/nanoid/LICENSE +20 -0
- package/examples/esm-bundler/node_modules/nanoid/README.md +39 -0
- package/examples/esm-bundler/node_modules/nanoid/async/index.browser.cjs +69 -0
- package/examples/esm-bundler/node_modules/nanoid/async/index.browser.js +34 -0
- package/examples/esm-bundler/node_modules/nanoid/async/index.cjs +71 -0
- package/examples/esm-bundler/node_modules/nanoid/async/index.d.ts +56 -0
- package/examples/esm-bundler/node_modules/nanoid/async/index.js +35 -0
- package/examples/esm-bundler/node_modules/nanoid/async/index.native.js +26 -0
- package/examples/esm-bundler/node_modules/nanoid/async/package.json +12 -0
- package/examples/esm-bundler/node_modules/nanoid/bin/nanoid.cjs +55 -0
- package/examples/esm-bundler/node_modules/nanoid/index.browser.cjs +72 -0
- package/examples/esm-bundler/node_modules/nanoid/index.browser.js +34 -0
- package/examples/esm-bundler/node_modules/nanoid/index.cjs +85 -0
- package/examples/esm-bundler/node_modules/nanoid/index.d.cts +91 -0
- package/examples/esm-bundler/node_modules/nanoid/index.d.ts +91 -0
- package/examples/esm-bundler/node_modules/nanoid/index.js +45 -0
- package/examples/esm-bundler/node_modules/nanoid/nanoid.js +1 -0
- package/examples/esm-bundler/node_modules/nanoid/non-secure/index.cjs +34 -0
- package/examples/esm-bundler/node_modules/nanoid/non-secure/index.d.ts +33 -0
- package/examples/esm-bundler/node_modules/nanoid/non-secure/index.js +21 -0
- package/examples/esm-bundler/node_modules/nanoid/non-secure/package.json +6 -0
- package/examples/esm-bundler/node_modules/nanoid/package.json +89 -0
- package/examples/esm-bundler/node_modules/nanoid/url-alphabet/index.cjs +7 -0
- package/examples/esm-bundler/node_modules/nanoid/url-alphabet/index.js +3 -0
- package/examples/esm-bundler/node_modules/nanoid/url-alphabet/package.json +6 -0
- package/examples/esm-bundler/node_modules/picocolors/LICENSE +15 -0
- package/examples/esm-bundler/node_modules/picocolors/README.md +21 -0
- package/examples/esm-bundler/node_modules/picocolors/package.json +25 -0
- package/examples/esm-bundler/node_modules/picocolors/picocolors.browser.js +4 -0
- package/examples/esm-bundler/node_modules/picocolors/picocolors.d.ts +5 -0
- package/examples/esm-bundler/node_modules/picocolors/picocolors.js +75 -0
- package/examples/esm-bundler/node_modules/picocolors/types.d.ts +51 -0
- package/examples/esm-bundler/node_modules/picomatch/LICENSE +21 -0
- package/examples/esm-bundler/node_modules/picomatch/README.md +749 -0
- package/examples/esm-bundler/node_modules/picomatch/index.js +17 -0
- package/examples/esm-bundler/node_modules/picomatch/lib/constants.js +184 -0
- package/examples/esm-bundler/node_modules/picomatch/lib/parse.js +1386 -0
- package/examples/esm-bundler/node_modules/picomatch/lib/picomatch.js +349 -0
- package/examples/esm-bundler/node_modules/picomatch/lib/scan.js +391 -0
- package/examples/esm-bundler/node_modules/picomatch/lib/utils.js +72 -0
- package/examples/esm-bundler/node_modules/picomatch/package.json +82 -0
- package/examples/esm-bundler/node_modules/picomatch/posix.js +3 -0
- package/examples/esm-bundler/node_modules/postcss/LICENSE +20 -0
- package/examples/esm-bundler/node_modules/postcss/README.md +28 -0
- package/examples/esm-bundler/node_modules/postcss/lib/at-rule.d.ts +139 -0
- package/examples/esm-bundler/node_modules/postcss/lib/at-rule.js +25 -0
- package/examples/esm-bundler/node_modules/postcss/lib/comment.d.ts +67 -0
- package/examples/esm-bundler/node_modules/postcss/lib/comment.js +13 -0
- package/examples/esm-bundler/node_modules/postcss/lib/container.d.ts +478 -0
- package/examples/esm-bundler/node_modules/postcss/lib/container.js +447 -0
- package/examples/esm-bundler/node_modules/postcss/lib/css-syntax-error.d.ts +247 -0
- package/examples/esm-bundler/node_modules/postcss/lib/css-syntax-error.js +133 -0
- package/examples/esm-bundler/node_modules/postcss/lib/declaration.d.ts +150 -0
- package/examples/esm-bundler/node_modules/postcss/lib/declaration.js +24 -0
- package/examples/esm-bundler/node_modules/postcss/lib/document.d.ts +68 -0
- package/examples/esm-bundler/node_modules/postcss/lib/document.js +33 -0
- package/examples/esm-bundler/node_modules/postcss/lib/fromJSON.d.ts +9 -0
- package/examples/esm-bundler/node_modules/postcss/lib/fromJSON.js +54 -0
- package/examples/esm-bundler/node_modules/postcss/lib/input.d.ts +226 -0
- package/examples/esm-bundler/node_modules/postcss/lib/input.js +273 -0
- package/examples/esm-bundler/node_modules/postcss/lib/lazy-result.d.ts +189 -0
- package/examples/esm-bundler/node_modules/postcss/lib/lazy-result.js +550 -0
- package/examples/esm-bundler/node_modules/postcss/lib/list.d.ts +60 -0
- package/examples/esm-bundler/node_modules/postcss/lib/list.js +58 -0
- package/examples/esm-bundler/node_modules/postcss/lib/map-generator.js +376 -0
- package/examples/esm-bundler/node_modules/postcss/lib/no-work-result.d.ts +45 -0
- package/examples/esm-bundler/node_modules/postcss/lib/no-work-result.js +137 -0
- package/examples/esm-bundler/node_modules/postcss/lib/node.d.ts +555 -0
- package/examples/esm-bundler/node_modules/postcss/lib/node.js +449 -0
- package/examples/esm-bundler/node_modules/postcss/lib/parse.d.ts +9 -0
- package/examples/esm-bundler/node_modules/postcss/lib/parse.js +42 -0
- package/examples/esm-bundler/node_modules/postcss/lib/parser.js +611 -0
- package/examples/esm-bundler/node_modules/postcss/lib/postcss.d.mts +66 -0
- package/examples/esm-bundler/node_modules/postcss/lib/postcss.d.ts +456 -0
- package/examples/esm-bundler/node_modules/postcss/lib/postcss.js +101 -0
- package/examples/esm-bundler/node_modules/postcss/lib/postcss.mjs +30 -0
- package/examples/esm-bundler/node_modules/postcss/lib/previous-map.d.ts +80 -0
- package/examples/esm-bundler/node_modules/postcss/lib/previous-map.js +145 -0
- package/examples/esm-bundler/node_modules/postcss/lib/processor.d.ts +114 -0
- package/examples/esm-bundler/node_modules/postcss/lib/processor.js +67 -0
- package/examples/esm-bundler/node_modules/postcss/lib/result.d.ts +204 -0
- package/examples/esm-bundler/node_modules/postcss/lib/result.js +42 -0
- package/examples/esm-bundler/node_modules/postcss/lib/root.d.ts +86 -0
- package/examples/esm-bundler/node_modules/postcss/lib/root.js +61 -0
- package/examples/esm-bundler/node_modules/postcss/lib/rule.d.ts +126 -0
- package/examples/esm-bundler/node_modules/postcss/lib/rule.js +27 -0
- package/examples/esm-bundler/node_modules/postcss/lib/stringifier.d.ts +45 -0
- package/examples/esm-bundler/node_modules/postcss/lib/stringifier.js +353 -0
- package/examples/esm-bundler/node_modules/postcss/lib/stringify.d.ts +9 -0
- package/examples/esm-bundler/node_modules/postcss/lib/stringify.js +11 -0
- package/examples/esm-bundler/node_modules/postcss/lib/symbols.js +5 -0
- package/examples/esm-bundler/node_modules/postcss/lib/terminal-highlight.js +70 -0
- package/examples/esm-bundler/node_modules/postcss/lib/tokenize.js +266 -0
- package/examples/esm-bundler/node_modules/postcss/lib/warn-once.js +13 -0
- package/examples/esm-bundler/node_modules/postcss/lib/warning.d.ts +146 -0
- package/examples/esm-bundler/node_modules/postcss/lib/warning.js +37 -0
- package/examples/esm-bundler/node_modules/postcss/package.json +88 -0
- package/examples/esm-bundler/node_modules/rollup/LICENSE.md +679 -0
- package/examples/esm-bundler/node_modules/rollup/README.md +134 -0
- package/examples/esm-bundler/node_modules/rollup/dist/bin/rollup +1912 -0
- package/examples/esm-bundler/node_modules/rollup/dist/es/getLogFilter.js +64 -0
- package/examples/esm-bundler/node_modules/rollup/dist/es/package.json +1 -0
- package/examples/esm-bundler/node_modules/rollup/dist/es/parseAst.js +12 -0
- package/examples/esm-bundler/node_modules/rollup/dist/es/rollup.js +17 -0
- package/examples/esm-bundler/node_modules/rollup/dist/es/shared/node-entry.js +24463 -0
- package/examples/esm-bundler/node_modules/rollup/dist/es/shared/parseAst.js +2124 -0
- package/examples/esm-bundler/node_modules/rollup/dist/es/shared/watch.js +9909 -0
- package/examples/esm-bundler/node_modules/rollup/dist/getLogFilter.d.ts +5 -0
- package/examples/esm-bundler/node_modules/rollup/dist/getLogFilter.js +69 -0
- package/examples/esm-bundler/node_modules/rollup/dist/loadConfigFile.d.ts +20 -0
- package/examples/esm-bundler/node_modules/rollup/dist/loadConfigFile.js +29 -0
- package/examples/esm-bundler/node_modules/rollup/dist/native.js +161 -0
- package/examples/esm-bundler/node_modules/rollup/dist/parseAst.d.ts +4 -0
- package/examples/esm-bundler/node_modules/rollup/dist/parseAst.js +22 -0
- package/examples/esm-bundler/node_modules/rollup/dist/rollup.d.ts +1225 -0
- package/examples/esm-bundler/node_modules/rollup/dist/rollup.js +127 -0
- package/examples/esm-bundler/node_modules/rollup/dist/shared/fsevents-importer.js +37 -0
- package/examples/esm-bundler/node_modules/rollup/dist/shared/index.js +9615 -0
- package/examples/esm-bundler/node_modules/rollup/dist/shared/loadConfigFile.js +572 -0
- package/examples/esm-bundler/node_modules/rollup/dist/shared/parseAst.js +2361 -0
- package/examples/esm-bundler/node_modules/rollup/dist/shared/rollup.js +24385 -0
- package/examples/esm-bundler/node_modules/rollup/dist/shared/watch-cli.js +542 -0
- package/examples/esm-bundler/node_modules/rollup/dist/shared/watch.js +324 -0
- package/examples/esm-bundler/node_modules/rollup/package.json +289 -0
- package/examples/esm-bundler/node_modules/source-map-js/LICENSE +28 -0
- package/examples/esm-bundler/node_modules/source-map-js/README.md +765 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/array-set.js +121 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/base64.js +67 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-consumer.d.ts +1 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-generator.d.ts +1 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/source-node.d.ts +1 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/source-node.js +413 -0
- package/examples/esm-bundler/node_modules/source-map-js/lib/util.js +594 -0
- package/examples/esm-bundler/node_modules/source-map-js/package.json +71 -0
- package/examples/esm-bundler/node_modules/source-map-js/source-map.d.ts +104 -0
- package/examples/esm-bundler/node_modules/source-map-js/source-map.js +8 -0
- package/examples/esm-bundler/node_modules/tinyglobby/LICENSE +21 -0
- package/examples/esm-bundler/node_modules/tinyglobby/README.md +25 -0
- package/examples/esm-bundler/node_modules/tinyglobby/dist/index.cjs +334 -0
- package/examples/esm-bundler/node_modules/tinyglobby/dist/index.d.cts +148 -0
- package/examples/esm-bundler/node_modules/tinyglobby/dist/index.d.mts +148 -0
- package/examples/esm-bundler/node_modules/tinyglobby/dist/index.mjs +306 -0
- package/examples/esm-bundler/node_modules/tinyglobby/package.json +73 -0
- package/examples/esm-bundler/node_modules/vite/LICENSE.md +2406 -0
- package/examples/esm-bundler/node_modules/vite/README.md +20 -0
- package/examples/esm-bundler/node_modules/vite/bin/openChrome.applescript +95 -0
- package/examples/esm-bundler/node_modules/vite/bin/vite.js +79 -0
- package/examples/esm-bundler/node_modules/vite/client.d.ts +279 -0
- package/examples/esm-bundler/node_modules/vite/dist/client/client.mjs +1134 -0
- package/examples/esm-bundler/node_modules/vite/dist/client/env.mjs +24 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-3RmXg9uo.js +553 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-4-IQbZQm.js +822 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-CvfTChi5.js +8218 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-Dq2t6Dq0.js +49565 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/chunks/dep-lpEPC2f9.js +7113 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/cli.js +949 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/constants.js +149 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/index.d.ts +4227 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/index.js +194 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/module-runner.d.ts +290 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/module-runner.js +1311 -0
- package/examples/esm-bundler/node_modules/vite/dist/node/moduleRunnerTransport.d-DJ_mE5sf.d.ts +87 -0
- package/examples/esm-bundler/node_modules/vite/dist/node-cjs/publicUtils.cjs +3987 -0
- package/examples/esm-bundler/node_modules/vite/index.cjs +96 -0
- package/examples/esm-bundler/node_modules/vite/index.d.cts +6 -0
- package/examples/esm-bundler/node_modules/vite/misc/false.js +1 -0
- package/examples/esm-bundler/node_modules/vite/misc/true.js +1 -0
- package/examples/esm-bundler/node_modules/vite/package.json +204 -0
- package/examples/esm-bundler/node_modules/vite/types/customEvent.d.ts +45 -0
- package/examples/esm-bundler/node_modules/vite/types/hmrPayload.d.ts +74 -0
- package/examples/esm-bundler/node_modules/vite/types/hot.d.ts +39 -0
- package/examples/esm-bundler/node_modules/vite/types/import-meta.d.ts +5 -0
- package/examples/esm-bundler/node_modules/vite/types/importGlob.d.ts +75 -0
- package/examples/esm-bundler/node_modules/vite/types/importMeta.d.ts +31 -0
- package/examples/esm-bundler/node_modules/vite/types/internal/cssPreprocessorOptions.d.ts +63 -0
- package/examples/esm-bundler/node_modules/vite/types/internal/lightningcssOptions.d.ts +18 -0
- package/examples/esm-bundler/node_modules/vite/types/metadata.d.ts +35 -0
- package/examples/esm-bundler/node_modules/vite/types/package.json +4 -0
- package/examples/esm-bundler/package-lock.json +1127 -0
- package/examples/esm-bundler/src/main.ts +22 -22
- package/examples/react/README.md +2 -2
- package/examples/react/package.json +3 -5
- package/examples/self-hosted/src/main.ts +24 -24
- package/package.json +2 -1
- /package/examples/{react → esm-bundler/node_modules/@jadujoel/web-audio-clip-node/examples/react}/vite.config.ts +0 -0
|
@@ -0,0 +1,1311 @@
|
|
|
1
|
+
const VALID_ID_PREFIX = "/@id/", NULL_BYTE_PLACEHOLDER = "__x00__";
|
|
2
|
+
let SOURCEMAPPING_URL = "sourceMa";
|
|
3
|
+
SOURCEMAPPING_URL += "ppingURL";
|
|
4
|
+
const ERR_OUTDATED_OPTIMIZED_DEP = "ERR_OUTDATED_OPTIMIZED_DEP", isWindows = typeof process < "u" && process.platform === "win32";
|
|
5
|
+
function unwrapId(id) {
|
|
6
|
+
return id.startsWith(VALID_ID_PREFIX) ? id.slice(VALID_ID_PREFIX.length).replace(NULL_BYTE_PLACEHOLDER, "\0") : id;
|
|
7
|
+
}
|
|
8
|
+
const windowsSlashRE = /\\/g;
|
|
9
|
+
function slash(p) {
|
|
10
|
+
return p.replace(windowsSlashRE, "/");
|
|
11
|
+
}
|
|
12
|
+
const postfixRE = /[?#].*$/;
|
|
13
|
+
function cleanUrl(url) {
|
|
14
|
+
return url.replace(postfixRE, "");
|
|
15
|
+
}
|
|
16
|
+
function isPrimitive(value) {
|
|
17
|
+
return !value || typeof value != "object" && typeof value != "function";
|
|
18
|
+
}
|
|
19
|
+
const AsyncFunction = async function() {
|
|
20
|
+
}.constructor;
|
|
21
|
+
let asyncFunctionDeclarationPaddingLineCount;
|
|
22
|
+
function getAsyncFunctionDeclarationPaddingLineCount() {
|
|
23
|
+
if (typeof asyncFunctionDeclarationPaddingLineCount > "u") {
|
|
24
|
+
const body = "/*code*/", source = new AsyncFunction("a", "b", body).toString();
|
|
25
|
+
asyncFunctionDeclarationPaddingLineCount = source.slice(0, source.indexOf(body)).split(`
|
|
26
|
+
`).length - 1;
|
|
27
|
+
}
|
|
28
|
+
return asyncFunctionDeclarationPaddingLineCount;
|
|
29
|
+
}
|
|
30
|
+
function promiseWithResolvers() {
|
|
31
|
+
let resolve2, reject;
|
|
32
|
+
return { promise: new Promise((_resolve, _reject) => {
|
|
33
|
+
resolve2 = _resolve, reject = _reject;
|
|
34
|
+
}), resolve: resolve2, reject };
|
|
35
|
+
}
|
|
36
|
+
const _DRIVE_LETTER_START_RE = /^[A-Za-z]:\//;
|
|
37
|
+
function normalizeWindowsPath(input = "") {
|
|
38
|
+
return input && input.replace(/\\/g, "/").replace(_DRIVE_LETTER_START_RE, (r) => r.toUpperCase());
|
|
39
|
+
}
|
|
40
|
+
const _IS_ABSOLUTE_RE = /^[/\\](?![/\\])|^[/\\]{2}(?!\.)|^[A-Za-z]:[/\\]/, _DRIVE_LETTER_RE = /^[A-Za-z]:$/;
|
|
41
|
+
function cwd() {
|
|
42
|
+
return typeof process < "u" && typeof process.cwd == "function" ? process.cwd().replace(/\\/g, "/") : "/";
|
|
43
|
+
}
|
|
44
|
+
const resolve = function(...arguments_) {
|
|
45
|
+
arguments_ = arguments_.map((argument) => normalizeWindowsPath(argument));
|
|
46
|
+
let resolvedPath = "", resolvedAbsolute = !1;
|
|
47
|
+
for (let index = arguments_.length - 1; index >= -1 && !resolvedAbsolute; index--) {
|
|
48
|
+
const path = index >= 0 ? arguments_[index] : cwd();
|
|
49
|
+
!path || path.length === 0 || (resolvedPath = `${path}/${resolvedPath}`, resolvedAbsolute = isAbsolute(path));
|
|
50
|
+
}
|
|
51
|
+
return resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute), resolvedAbsolute && !isAbsolute(resolvedPath) ? `/${resolvedPath}` : resolvedPath.length > 0 ? resolvedPath : ".";
|
|
52
|
+
};
|
|
53
|
+
function normalizeString(path, allowAboveRoot) {
|
|
54
|
+
let res = "", lastSegmentLength = 0, lastSlash = -1, dots = 0, char = null;
|
|
55
|
+
for (let index = 0; index <= path.length; ++index) {
|
|
56
|
+
if (index < path.length)
|
|
57
|
+
char = path[index];
|
|
58
|
+
else {
|
|
59
|
+
if (char === "/")
|
|
60
|
+
break;
|
|
61
|
+
char = "/";
|
|
62
|
+
}
|
|
63
|
+
if (char === "/") {
|
|
64
|
+
if (!(lastSlash === index - 1 || dots === 1)) if (dots === 2) {
|
|
65
|
+
if (res.length < 2 || lastSegmentLength !== 2 || res[res.length - 1] !== "." || res[res.length - 2] !== ".") {
|
|
66
|
+
if (res.length > 2) {
|
|
67
|
+
const lastSlashIndex = res.lastIndexOf("/");
|
|
68
|
+
lastSlashIndex === -1 ? (res = "", lastSegmentLength = 0) : (res = res.slice(0, lastSlashIndex), lastSegmentLength = res.length - 1 - res.lastIndexOf("/")), lastSlash = index, dots = 0;
|
|
69
|
+
continue;
|
|
70
|
+
} else if (res.length > 0) {
|
|
71
|
+
res = "", lastSegmentLength = 0, lastSlash = index, dots = 0;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
allowAboveRoot && (res += res.length > 0 ? "/.." : "..", lastSegmentLength = 2);
|
|
76
|
+
} else
|
|
77
|
+
res.length > 0 ? res += `/${path.slice(lastSlash + 1, index)}` : res = path.slice(lastSlash + 1, index), lastSegmentLength = index - lastSlash - 1;
|
|
78
|
+
lastSlash = index, dots = 0;
|
|
79
|
+
} else char === "." && dots !== -1 ? ++dots : dots = -1;
|
|
80
|
+
}
|
|
81
|
+
return res;
|
|
82
|
+
}
|
|
83
|
+
const isAbsolute = function(p) {
|
|
84
|
+
return _IS_ABSOLUTE_RE.test(p);
|
|
85
|
+
}, dirname = function(p) {
|
|
86
|
+
const segments = normalizeWindowsPath(p).replace(/\/$/, "").split("/").slice(0, -1);
|
|
87
|
+
return segments.length === 1 && _DRIVE_LETTER_RE.test(segments[0]) && (segments[0] += "/"), segments.join("/") || (isAbsolute(p) ? "/" : ".");
|
|
88
|
+
}, decodeBase64 = typeof atob < "u" ? atob : (str) => Buffer.from(str, "base64").toString("utf-8"), CHAR_FORWARD_SLASH = 47, CHAR_BACKWARD_SLASH = 92, percentRegEx = /%/g, backslashRegEx = /\\/g, newlineRegEx = /\n/g, carriageReturnRegEx = /\r/g, tabRegEx = /\t/g, questionRegex = /\?/g, hashRegex = /#/g;
|
|
89
|
+
function encodePathChars(filepath) {
|
|
90
|
+
return filepath.indexOf("%") !== -1 && (filepath = filepath.replace(percentRegEx, "%25")), !isWindows && filepath.indexOf("\\") !== -1 && (filepath = filepath.replace(backslashRegEx, "%5C")), filepath.indexOf(`
|
|
91
|
+
`) !== -1 && (filepath = filepath.replace(newlineRegEx, "%0A")), filepath.indexOf("\r") !== -1 && (filepath = filepath.replace(carriageReturnRegEx, "%0D")), filepath.indexOf(" ") !== -1 && (filepath = filepath.replace(tabRegEx, "%09")), filepath;
|
|
92
|
+
}
|
|
93
|
+
const posixDirname = dirname, posixResolve = resolve;
|
|
94
|
+
function posixPathToFileHref(posixPath) {
|
|
95
|
+
let resolved = posixResolve(posixPath);
|
|
96
|
+
const filePathLast = posixPath.charCodeAt(posixPath.length - 1);
|
|
97
|
+
return (filePathLast === CHAR_FORWARD_SLASH || isWindows && filePathLast === CHAR_BACKWARD_SLASH) && resolved[resolved.length - 1] !== "/" && (resolved += "/"), resolved = encodePathChars(resolved), resolved.indexOf("?") !== -1 && (resolved = resolved.replace(questionRegex, "%3F")), resolved.indexOf("#") !== -1 && (resolved = resolved.replace(hashRegex, "%23")), new URL(`file://${resolved}`).href;
|
|
98
|
+
}
|
|
99
|
+
function toWindowsPath(path) {
|
|
100
|
+
return path.replace(/\//g, "\\");
|
|
101
|
+
}
|
|
102
|
+
const comma = 44, chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", intToChar = new Uint8Array(64), charToInt = new Uint8Array(128);
|
|
103
|
+
for (let i = 0; i < chars.length; i++) {
|
|
104
|
+
const c = chars.charCodeAt(i);
|
|
105
|
+
intToChar[i] = c, charToInt[c] = i;
|
|
106
|
+
}
|
|
107
|
+
function decodeInteger(reader, relative) {
|
|
108
|
+
let value = 0, shift = 0, integer = 0;
|
|
109
|
+
do {
|
|
110
|
+
const c = reader.next();
|
|
111
|
+
integer = charToInt[c], value |= (integer & 31) << shift, shift += 5;
|
|
112
|
+
} while (integer & 32);
|
|
113
|
+
const shouldNegate = value & 1;
|
|
114
|
+
return value >>>= 1, shouldNegate && (value = -2147483648 | -value), relative + value;
|
|
115
|
+
}
|
|
116
|
+
function hasMoreVlq(reader, max) {
|
|
117
|
+
return reader.pos >= max ? !1 : reader.peek() !== comma;
|
|
118
|
+
}
|
|
119
|
+
class StringReader {
|
|
120
|
+
constructor(buffer) {
|
|
121
|
+
this.pos = 0, this.buffer = buffer;
|
|
122
|
+
}
|
|
123
|
+
next() {
|
|
124
|
+
return this.buffer.charCodeAt(this.pos++);
|
|
125
|
+
}
|
|
126
|
+
peek() {
|
|
127
|
+
return this.buffer.charCodeAt(this.pos);
|
|
128
|
+
}
|
|
129
|
+
indexOf(char) {
|
|
130
|
+
const { buffer, pos } = this, idx = buffer.indexOf(char, pos);
|
|
131
|
+
return idx === -1 ? buffer.length : idx;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
function decode(mappings) {
|
|
135
|
+
const { length } = mappings, reader = new StringReader(mappings), decoded = [];
|
|
136
|
+
let genColumn = 0, sourcesIndex = 0, sourceLine = 0, sourceColumn = 0, namesIndex = 0;
|
|
137
|
+
do {
|
|
138
|
+
const semi = reader.indexOf(";"), line = [];
|
|
139
|
+
let sorted = !0, lastCol = 0;
|
|
140
|
+
for (genColumn = 0; reader.pos < semi; ) {
|
|
141
|
+
let seg;
|
|
142
|
+
genColumn = decodeInteger(reader, genColumn), genColumn < lastCol && (sorted = !1), lastCol = genColumn, hasMoreVlq(reader, semi) ? (sourcesIndex = decodeInteger(reader, sourcesIndex), sourceLine = decodeInteger(reader, sourceLine), sourceColumn = decodeInteger(reader, sourceColumn), hasMoreVlq(reader, semi) ? (namesIndex = decodeInteger(reader, namesIndex), seg = [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]) : seg = [genColumn, sourcesIndex, sourceLine, sourceColumn]) : seg = [genColumn], line.push(seg), reader.pos++;
|
|
143
|
+
}
|
|
144
|
+
sorted || sort(line), decoded.push(line), reader.pos = semi + 1;
|
|
145
|
+
} while (reader.pos <= length);
|
|
146
|
+
return decoded;
|
|
147
|
+
}
|
|
148
|
+
function sort(line) {
|
|
149
|
+
line.sort(sortComparator);
|
|
150
|
+
}
|
|
151
|
+
function sortComparator(a, b) {
|
|
152
|
+
return a[0] - b[0];
|
|
153
|
+
}
|
|
154
|
+
const COLUMN = 0, SOURCES_INDEX = 1, SOURCE_LINE = 2, SOURCE_COLUMN = 3, NAMES_INDEX = 4;
|
|
155
|
+
let found = !1;
|
|
156
|
+
function binarySearch(haystack, needle, low, high) {
|
|
157
|
+
for (; low <= high; ) {
|
|
158
|
+
const mid = low + (high - low >> 1), cmp = haystack[mid][COLUMN] - needle;
|
|
159
|
+
if (cmp === 0)
|
|
160
|
+
return found = !0, mid;
|
|
161
|
+
cmp < 0 ? low = mid + 1 : high = mid - 1;
|
|
162
|
+
}
|
|
163
|
+
return found = !1, low - 1;
|
|
164
|
+
}
|
|
165
|
+
function upperBound(haystack, needle, index) {
|
|
166
|
+
for (let i = index + 1; i < haystack.length && haystack[i][COLUMN] === needle; index = i++)
|
|
167
|
+
;
|
|
168
|
+
return index;
|
|
169
|
+
}
|
|
170
|
+
function lowerBound(haystack, needle, index) {
|
|
171
|
+
for (let i = index - 1; i >= 0 && haystack[i][COLUMN] === needle; index = i--)
|
|
172
|
+
;
|
|
173
|
+
return index;
|
|
174
|
+
}
|
|
175
|
+
function memoizedBinarySearch(haystack, needle, state, key) {
|
|
176
|
+
const { lastKey, lastNeedle, lastIndex } = state;
|
|
177
|
+
let low = 0, high = haystack.length - 1;
|
|
178
|
+
if (key === lastKey) {
|
|
179
|
+
if (needle === lastNeedle)
|
|
180
|
+
return found = lastIndex !== -1 && haystack[lastIndex][COLUMN] === needle, lastIndex;
|
|
181
|
+
needle >= lastNeedle ? low = lastIndex === -1 ? 0 : lastIndex : high = lastIndex;
|
|
182
|
+
}
|
|
183
|
+
return state.lastKey = key, state.lastNeedle = needle, state.lastIndex = binarySearch(haystack, needle, low, high);
|
|
184
|
+
}
|
|
185
|
+
const LINE_GTR_ZERO = "`line` must be greater than 0 (lines start at line 1)", COL_GTR_EQ_ZERO = "`column` must be greater than or equal to 0 (columns start at column 0)", LEAST_UPPER_BOUND = -1, GREATEST_LOWER_BOUND = 1;
|
|
186
|
+
function cast(map) {
|
|
187
|
+
return map;
|
|
188
|
+
}
|
|
189
|
+
function decodedMappings(map) {
|
|
190
|
+
var _a;
|
|
191
|
+
return (_a = map)._decoded || (_a._decoded = decode(map._encoded));
|
|
192
|
+
}
|
|
193
|
+
function originalPositionFor(map, needle) {
|
|
194
|
+
let { line, column, bias } = needle;
|
|
195
|
+
if (line--, line < 0)
|
|
196
|
+
throw new Error(LINE_GTR_ZERO);
|
|
197
|
+
if (column < 0)
|
|
198
|
+
throw new Error(COL_GTR_EQ_ZERO);
|
|
199
|
+
const decoded = decodedMappings(map);
|
|
200
|
+
if (line >= decoded.length)
|
|
201
|
+
return OMapping(null, null, null, null);
|
|
202
|
+
const segments = decoded[line], index = traceSegmentInternal(segments, map._decodedMemo, line, column, bias || GREATEST_LOWER_BOUND);
|
|
203
|
+
if (index === -1)
|
|
204
|
+
return OMapping(null, null, null, null);
|
|
205
|
+
const segment = segments[index];
|
|
206
|
+
if (segment.length === 1)
|
|
207
|
+
return OMapping(null, null, null, null);
|
|
208
|
+
const { names, resolvedSources } = map;
|
|
209
|
+
return OMapping(resolvedSources[segment[SOURCES_INDEX]], segment[SOURCE_LINE] + 1, segment[SOURCE_COLUMN], segment.length === 5 ? names[segment[NAMES_INDEX]] : null);
|
|
210
|
+
}
|
|
211
|
+
function OMapping(source, line, column, name) {
|
|
212
|
+
return { source, line, column, name };
|
|
213
|
+
}
|
|
214
|
+
function traceSegmentInternal(segments, memo, line, column, bias) {
|
|
215
|
+
let index = memoizedBinarySearch(segments, column, memo, line);
|
|
216
|
+
return found ? index = (bias === LEAST_UPPER_BOUND ? upperBound : lowerBound)(segments, column, index) : bias === LEAST_UPPER_BOUND && index++, index === -1 || index === segments.length ? -1 : index;
|
|
217
|
+
}
|
|
218
|
+
class DecodedMap {
|
|
219
|
+
constructor(map, from) {
|
|
220
|
+
this.map = map;
|
|
221
|
+
const { mappings, names, sources } = map;
|
|
222
|
+
this.version = map.version, this.names = names || [], this._encoded = mappings || "", this._decodedMemo = memoizedState(), this.url = from, this.resolvedSources = (sources || []).map(
|
|
223
|
+
(s) => posixResolve(s || "", from)
|
|
224
|
+
);
|
|
225
|
+
}
|
|
226
|
+
_encoded;
|
|
227
|
+
_decoded;
|
|
228
|
+
_decodedMemo;
|
|
229
|
+
url;
|
|
230
|
+
version;
|
|
231
|
+
names = [];
|
|
232
|
+
resolvedSources;
|
|
233
|
+
}
|
|
234
|
+
function memoizedState() {
|
|
235
|
+
return {
|
|
236
|
+
lastKey: -1,
|
|
237
|
+
lastNeedle: -1,
|
|
238
|
+
lastIndex: -1
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
function getOriginalPosition(map, needle) {
|
|
242
|
+
const result = originalPositionFor(map, needle);
|
|
243
|
+
return result.column == null ? null : result;
|
|
244
|
+
}
|
|
245
|
+
const MODULE_RUNNER_SOURCEMAPPING_REGEXP = new RegExp(
|
|
246
|
+
`//# ${SOURCEMAPPING_URL}=data:application/json;base64,(.+)`
|
|
247
|
+
);
|
|
248
|
+
class EvaluatedModuleNode {
|
|
249
|
+
constructor(id, url) {
|
|
250
|
+
this.id = id, this.url = url, this.file = cleanUrl(id);
|
|
251
|
+
}
|
|
252
|
+
importers = /* @__PURE__ */ new Set();
|
|
253
|
+
imports = /* @__PURE__ */ new Set();
|
|
254
|
+
evaluated = !1;
|
|
255
|
+
meta;
|
|
256
|
+
promise;
|
|
257
|
+
exports;
|
|
258
|
+
file;
|
|
259
|
+
map;
|
|
260
|
+
}
|
|
261
|
+
class EvaluatedModules {
|
|
262
|
+
idToModuleMap = /* @__PURE__ */ new Map();
|
|
263
|
+
fileToModulesMap = /* @__PURE__ */ new Map();
|
|
264
|
+
urlToIdModuleMap = /* @__PURE__ */ new Map();
|
|
265
|
+
/**
|
|
266
|
+
* Returns the module node by the resolved module ID. Usually, module ID is
|
|
267
|
+
* the file system path with query and/or hash. It can also be a virtual module.
|
|
268
|
+
*
|
|
269
|
+
* Module runner graph will have 1 to 1 mapping with the server module graph.
|
|
270
|
+
* @param id Resolved module ID
|
|
271
|
+
*/
|
|
272
|
+
getModuleById(id) {
|
|
273
|
+
return this.idToModuleMap.get(id);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Returns all modules related to the file system path. Different modules
|
|
277
|
+
* might have different query parameters or hash, so it's possible to have
|
|
278
|
+
* multiple modules for the same file.
|
|
279
|
+
* @param file The file system path of the module
|
|
280
|
+
*/
|
|
281
|
+
getModulesByFile(file) {
|
|
282
|
+
return this.fileToModulesMap.get(file);
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Returns the module node by the URL that was used in the import statement.
|
|
286
|
+
* Unlike module graph on the server, the URL is not resolved and is used as is.
|
|
287
|
+
* @param url Server URL that was used in the import statement
|
|
288
|
+
*/
|
|
289
|
+
getModuleByUrl(url) {
|
|
290
|
+
return this.urlToIdModuleMap.get(unwrapId(url));
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Ensure that module is in the graph. If the module is already in the graph,
|
|
294
|
+
* it will return the existing module node. Otherwise, it will create a new
|
|
295
|
+
* module node and add it to the graph.
|
|
296
|
+
* @param id Resolved module ID
|
|
297
|
+
* @param url URL that was used in the import statement
|
|
298
|
+
*/
|
|
299
|
+
ensureModule(id, url) {
|
|
300
|
+
if (id = normalizeModuleId(id), this.idToModuleMap.has(id)) {
|
|
301
|
+
const moduleNode2 = this.idToModuleMap.get(id);
|
|
302
|
+
return this.urlToIdModuleMap.set(url, moduleNode2), moduleNode2;
|
|
303
|
+
}
|
|
304
|
+
const moduleNode = new EvaluatedModuleNode(id, url);
|
|
305
|
+
this.idToModuleMap.set(id, moduleNode), this.urlToIdModuleMap.set(url, moduleNode);
|
|
306
|
+
const fileModules = this.fileToModulesMap.get(moduleNode.file) || /* @__PURE__ */ new Set();
|
|
307
|
+
return fileModules.add(moduleNode), this.fileToModulesMap.set(moduleNode.file, fileModules), moduleNode;
|
|
308
|
+
}
|
|
309
|
+
invalidateModule(node) {
|
|
310
|
+
node.evaluated = !1, node.meta = void 0, node.map = void 0, node.promise = void 0, node.exports = void 0, node.imports.clear();
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* Extracts the inlined source map from the module code and returns the decoded
|
|
314
|
+
* source map. If the source map is not inlined, it will return null.
|
|
315
|
+
* @param id Resolved module ID
|
|
316
|
+
*/
|
|
317
|
+
getModuleSourceMapById(id) {
|
|
318
|
+
const mod = this.getModuleById(id);
|
|
319
|
+
if (!mod) return null;
|
|
320
|
+
if (mod.map) return mod.map;
|
|
321
|
+
if (!mod.meta || !("code" in mod.meta)) return null;
|
|
322
|
+
const mapString = MODULE_RUNNER_SOURCEMAPPING_REGEXP.exec(
|
|
323
|
+
mod.meta.code
|
|
324
|
+
)?.[1];
|
|
325
|
+
return mapString ? (mod.map = new DecodedMap(JSON.parse(decodeBase64(mapString)), mod.file), mod.map) : null;
|
|
326
|
+
}
|
|
327
|
+
clear() {
|
|
328
|
+
this.idToModuleMap.clear(), this.fileToModulesMap.clear(), this.urlToIdModuleMap.clear();
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
const prefixedBuiltins = /* @__PURE__ */ new Set([
|
|
332
|
+
"node:sea",
|
|
333
|
+
"node:sqlite",
|
|
334
|
+
"node:test",
|
|
335
|
+
"node:test/reporters"
|
|
336
|
+
]);
|
|
337
|
+
function normalizeModuleId(file) {
|
|
338
|
+
return prefixedBuiltins.has(file) ? file : slash(file).replace(/^\/@fs\//, isWindows ? "" : "/").replace(/^node:/, "").replace(/^\/+/, "/").replace(/^file:\//, "/");
|
|
339
|
+
}
|
|
340
|
+
class HMRContext {
|
|
341
|
+
constructor(hmrClient, ownerPath) {
|
|
342
|
+
this.hmrClient = hmrClient, this.ownerPath = ownerPath, hmrClient.dataMap.has(ownerPath) || hmrClient.dataMap.set(ownerPath, {});
|
|
343
|
+
const mod = hmrClient.hotModulesMap.get(ownerPath);
|
|
344
|
+
mod && (mod.callbacks = []);
|
|
345
|
+
const staleListeners = hmrClient.ctxToListenersMap.get(ownerPath);
|
|
346
|
+
if (staleListeners)
|
|
347
|
+
for (const [event, staleFns] of staleListeners) {
|
|
348
|
+
const listeners = hmrClient.customListenersMap.get(event);
|
|
349
|
+
listeners && hmrClient.customListenersMap.set(
|
|
350
|
+
event,
|
|
351
|
+
listeners.filter((l) => !staleFns.includes(l))
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
this.newListeners = /* @__PURE__ */ new Map(), hmrClient.ctxToListenersMap.set(ownerPath, this.newListeners);
|
|
355
|
+
}
|
|
356
|
+
newListeners;
|
|
357
|
+
get data() {
|
|
358
|
+
return this.hmrClient.dataMap.get(this.ownerPath);
|
|
359
|
+
}
|
|
360
|
+
accept(deps, callback) {
|
|
361
|
+
if (typeof deps == "function" || !deps)
|
|
362
|
+
this.acceptDeps([this.ownerPath], ([mod]) => deps?.(mod));
|
|
363
|
+
else if (typeof deps == "string")
|
|
364
|
+
this.acceptDeps([deps], ([mod]) => callback?.(mod));
|
|
365
|
+
else if (Array.isArray(deps))
|
|
366
|
+
this.acceptDeps(deps, callback);
|
|
367
|
+
else
|
|
368
|
+
throw new Error("invalid hot.accept() usage.");
|
|
369
|
+
}
|
|
370
|
+
// export names (first arg) are irrelevant on the client side, they're
|
|
371
|
+
// extracted in the server for propagation
|
|
372
|
+
acceptExports(_, callback) {
|
|
373
|
+
this.acceptDeps([this.ownerPath], ([mod]) => callback?.(mod));
|
|
374
|
+
}
|
|
375
|
+
dispose(cb) {
|
|
376
|
+
this.hmrClient.disposeMap.set(this.ownerPath, cb);
|
|
377
|
+
}
|
|
378
|
+
prune(cb) {
|
|
379
|
+
this.hmrClient.pruneMap.set(this.ownerPath, cb);
|
|
380
|
+
}
|
|
381
|
+
// Kept for backward compatibility (#11036)
|
|
382
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
383
|
+
decline() {
|
|
384
|
+
}
|
|
385
|
+
invalidate(message) {
|
|
386
|
+
const firstInvalidatedBy = this.hmrClient.currentFirstInvalidatedBy ?? this.ownerPath;
|
|
387
|
+
this.hmrClient.notifyListeners("vite:invalidate", {
|
|
388
|
+
path: this.ownerPath,
|
|
389
|
+
message,
|
|
390
|
+
firstInvalidatedBy
|
|
391
|
+
}), this.send("vite:invalidate", {
|
|
392
|
+
path: this.ownerPath,
|
|
393
|
+
message,
|
|
394
|
+
firstInvalidatedBy
|
|
395
|
+
}), this.hmrClient.logger.debug(
|
|
396
|
+
`invalidate ${this.ownerPath}${message ? `: ${message}` : ""}`
|
|
397
|
+
);
|
|
398
|
+
}
|
|
399
|
+
on(event, cb) {
|
|
400
|
+
const addToMap = (map) => {
|
|
401
|
+
const existing = map.get(event) || [];
|
|
402
|
+
existing.push(cb), map.set(event, existing);
|
|
403
|
+
};
|
|
404
|
+
addToMap(this.hmrClient.customListenersMap), addToMap(this.newListeners);
|
|
405
|
+
}
|
|
406
|
+
off(event, cb) {
|
|
407
|
+
const removeFromMap = (map) => {
|
|
408
|
+
const existing = map.get(event);
|
|
409
|
+
if (existing === void 0)
|
|
410
|
+
return;
|
|
411
|
+
const pruned = existing.filter((l) => l !== cb);
|
|
412
|
+
if (pruned.length === 0) {
|
|
413
|
+
map.delete(event);
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
map.set(event, pruned);
|
|
417
|
+
};
|
|
418
|
+
removeFromMap(this.hmrClient.customListenersMap), removeFromMap(this.newListeners);
|
|
419
|
+
}
|
|
420
|
+
send(event, data) {
|
|
421
|
+
this.hmrClient.send({ type: "custom", event, data });
|
|
422
|
+
}
|
|
423
|
+
acceptDeps(deps, callback = () => {
|
|
424
|
+
}) {
|
|
425
|
+
const mod = this.hmrClient.hotModulesMap.get(this.ownerPath) || {
|
|
426
|
+
id: this.ownerPath,
|
|
427
|
+
callbacks: []
|
|
428
|
+
};
|
|
429
|
+
mod.callbacks.push({
|
|
430
|
+
deps,
|
|
431
|
+
fn: callback
|
|
432
|
+
}), this.hmrClient.hotModulesMap.set(this.ownerPath, mod);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
class HMRClient {
|
|
436
|
+
constructor(logger, transport, importUpdatedModule) {
|
|
437
|
+
this.logger = logger, this.transport = transport, this.importUpdatedModule = importUpdatedModule;
|
|
438
|
+
}
|
|
439
|
+
hotModulesMap = /* @__PURE__ */ new Map();
|
|
440
|
+
disposeMap = /* @__PURE__ */ new Map();
|
|
441
|
+
pruneMap = /* @__PURE__ */ new Map();
|
|
442
|
+
dataMap = /* @__PURE__ */ new Map();
|
|
443
|
+
customListenersMap = /* @__PURE__ */ new Map();
|
|
444
|
+
ctxToListenersMap = /* @__PURE__ */ new Map();
|
|
445
|
+
currentFirstInvalidatedBy;
|
|
446
|
+
async notifyListeners(event, data) {
|
|
447
|
+
const cbs = this.customListenersMap.get(event);
|
|
448
|
+
cbs && await Promise.allSettled(cbs.map((cb) => cb(data)));
|
|
449
|
+
}
|
|
450
|
+
send(payload) {
|
|
451
|
+
this.transport.send(payload).catch((err) => {
|
|
452
|
+
this.logger.error(err);
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
clear() {
|
|
456
|
+
this.hotModulesMap.clear(), this.disposeMap.clear(), this.pruneMap.clear(), this.dataMap.clear(), this.customListenersMap.clear(), this.ctxToListenersMap.clear();
|
|
457
|
+
}
|
|
458
|
+
// After an HMR update, some modules are no longer imported on the page
|
|
459
|
+
// but they may have left behind side effects that need to be cleaned up
|
|
460
|
+
// (e.g. style injections)
|
|
461
|
+
async prunePaths(paths) {
|
|
462
|
+
await Promise.all(
|
|
463
|
+
paths.map((path) => {
|
|
464
|
+
const disposer = this.disposeMap.get(path);
|
|
465
|
+
if (disposer) return disposer(this.dataMap.get(path));
|
|
466
|
+
})
|
|
467
|
+
), paths.forEach((path) => {
|
|
468
|
+
const fn = this.pruneMap.get(path);
|
|
469
|
+
fn && fn(this.dataMap.get(path));
|
|
470
|
+
});
|
|
471
|
+
}
|
|
472
|
+
warnFailedUpdate(err, path) {
|
|
473
|
+
(!(err instanceof Error) || !err.message.includes("fetch")) && this.logger.error(err), this.logger.error(
|
|
474
|
+
`Failed to reload ${path}. This could be due to syntax errors or importing non-existent modules. (see errors above)`
|
|
475
|
+
);
|
|
476
|
+
}
|
|
477
|
+
updateQueue = [];
|
|
478
|
+
pendingUpdateQueue = !1;
|
|
479
|
+
/**
|
|
480
|
+
* buffer multiple hot updates triggered by the same src change
|
|
481
|
+
* so that they are invoked in the same order they were sent.
|
|
482
|
+
* (otherwise the order may be inconsistent because of the http request round trip)
|
|
483
|
+
*/
|
|
484
|
+
async queueUpdate(payload) {
|
|
485
|
+
if (this.updateQueue.push(this.fetchUpdate(payload)), !this.pendingUpdateQueue) {
|
|
486
|
+
this.pendingUpdateQueue = !0, await Promise.resolve(), this.pendingUpdateQueue = !1;
|
|
487
|
+
const loading = [...this.updateQueue];
|
|
488
|
+
this.updateQueue = [], (await Promise.all(loading)).forEach((fn) => fn && fn());
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
async fetchUpdate(update) {
|
|
492
|
+
const { path, acceptedPath, firstInvalidatedBy } = update, mod = this.hotModulesMap.get(path);
|
|
493
|
+
if (!mod)
|
|
494
|
+
return;
|
|
495
|
+
let fetchedModule;
|
|
496
|
+
const isSelfUpdate = path === acceptedPath, qualifiedCallbacks = mod.callbacks.filter(
|
|
497
|
+
({ deps }) => deps.includes(acceptedPath)
|
|
498
|
+
);
|
|
499
|
+
if (isSelfUpdate || qualifiedCallbacks.length > 0) {
|
|
500
|
+
const disposer = this.disposeMap.get(acceptedPath);
|
|
501
|
+
disposer && await disposer(this.dataMap.get(acceptedPath));
|
|
502
|
+
try {
|
|
503
|
+
fetchedModule = await this.importUpdatedModule(update);
|
|
504
|
+
} catch (e) {
|
|
505
|
+
this.warnFailedUpdate(e, acceptedPath);
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
return () => {
|
|
509
|
+
try {
|
|
510
|
+
this.currentFirstInvalidatedBy = firstInvalidatedBy;
|
|
511
|
+
for (const { deps, fn } of qualifiedCallbacks)
|
|
512
|
+
fn(
|
|
513
|
+
deps.map(
|
|
514
|
+
(dep) => dep === acceptedPath ? fetchedModule : void 0
|
|
515
|
+
)
|
|
516
|
+
);
|
|
517
|
+
const loggedPath = isSelfUpdate ? path : `${acceptedPath} via ${path}`;
|
|
518
|
+
this.logger.debug(`hot updated: ${loggedPath}`);
|
|
519
|
+
} finally {
|
|
520
|
+
this.currentFirstInvalidatedBy = void 0;
|
|
521
|
+
}
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
function analyzeImportedModDifference(mod, rawId, moduleType, metadata) {
|
|
526
|
+
if (!metadata?.isDynamicImport && metadata?.importedNames?.length) {
|
|
527
|
+
const missingBindings = metadata.importedNames.filter((s) => !(s in mod));
|
|
528
|
+
if (missingBindings.length) {
|
|
529
|
+
const lastBinding = missingBindings[missingBindings.length - 1];
|
|
530
|
+
throw moduleType === "module" ? new SyntaxError(
|
|
531
|
+
`[vite] The requested module '${rawId}' does not provide an export named '${lastBinding}'`
|
|
532
|
+
) : new SyntaxError(`[vite] Named export '${lastBinding}' not found. The requested module '${rawId}' is a CommonJS module, which may not support all module.exports as named exports.
|
|
533
|
+
CommonJS modules can always be imported via the default export, for example using:
|
|
534
|
+
|
|
535
|
+
import pkg from '${rawId}';
|
|
536
|
+
const {${missingBindings.join(", ")}} = pkg;
|
|
537
|
+
`);
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
let urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict", nanoid = (size = 21) => {
|
|
542
|
+
let id = "", i = size | 0;
|
|
543
|
+
for (; i--; )
|
|
544
|
+
id += urlAlphabet[Math.random() * 64 | 0];
|
|
545
|
+
return id;
|
|
546
|
+
};
|
|
547
|
+
function reviveInvokeError(e) {
|
|
548
|
+
const error = new Error(e.message || "Unknown invoke error");
|
|
549
|
+
return Object.assign(error, e, {
|
|
550
|
+
// pass the whole error instead of just the stacktrace
|
|
551
|
+
// so that it gets formatted nicely with console.log
|
|
552
|
+
runnerError: new Error("RunnerError")
|
|
553
|
+
}), error;
|
|
554
|
+
}
|
|
555
|
+
const createInvokeableTransport = (transport) => {
|
|
556
|
+
if (transport.invoke)
|
|
557
|
+
return {
|
|
558
|
+
...transport,
|
|
559
|
+
async invoke(name, data) {
|
|
560
|
+
const result = await transport.invoke({
|
|
561
|
+
type: "custom",
|
|
562
|
+
event: "vite:invoke",
|
|
563
|
+
data: {
|
|
564
|
+
id: "send",
|
|
565
|
+
name,
|
|
566
|
+
data
|
|
567
|
+
}
|
|
568
|
+
});
|
|
569
|
+
if ("error" in result)
|
|
570
|
+
throw reviveInvokeError(result.error);
|
|
571
|
+
return result.result;
|
|
572
|
+
}
|
|
573
|
+
};
|
|
574
|
+
if (!transport.send || !transport.connect)
|
|
575
|
+
throw new Error(
|
|
576
|
+
"transport must implement send and connect when invoke is not implemented"
|
|
577
|
+
);
|
|
578
|
+
const rpcPromises = /* @__PURE__ */ new Map();
|
|
579
|
+
return {
|
|
580
|
+
...transport,
|
|
581
|
+
connect({ onMessage, onDisconnection }) {
|
|
582
|
+
return transport.connect({
|
|
583
|
+
onMessage(payload) {
|
|
584
|
+
if (payload.type === "custom" && payload.event === "vite:invoke") {
|
|
585
|
+
const data = payload.data;
|
|
586
|
+
if (data.id.startsWith("response:")) {
|
|
587
|
+
const invokeId = data.id.slice(9), promise = rpcPromises.get(invokeId);
|
|
588
|
+
if (!promise) return;
|
|
589
|
+
promise.timeoutId && clearTimeout(promise.timeoutId), rpcPromises.delete(invokeId);
|
|
590
|
+
const { error, result } = data.data;
|
|
591
|
+
error ? promise.reject(error) : promise.resolve(result);
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
onMessage(payload);
|
|
596
|
+
},
|
|
597
|
+
onDisconnection
|
|
598
|
+
});
|
|
599
|
+
},
|
|
600
|
+
disconnect() {
|
|
601
|
+
return rpcPromises.forEach((promise) => {
|
|
602
|
+
promise.reject(
|
|
603
|
+
new Error(
|
|
604
|
+
`transport was disconnected, cannot call ${JSON.stringify(promise.name)}`
|
|
605
|
+
)
|
|
606
|
+
);
|
|
607
|
+
}), rpcPromises.clear(), transport.disconnect?.();
|
|
608
|
+
},
|
|
609
|
+
send(data) {
|
|
610
|
+
return transport.send(data);
|
|
611
|
+
},
|
|
612
|
+
async invoke(name, data) {
|
|
613
|
+
const promiseId = nanoid(), wrappedData = {
|
|
614
|
+
type: "custom",
|
|
615
|
+
event: "vite:invoke",
|
|
616
|
+
data: {
|
|
617
|
+
name,
|
|
618
|
+
id: `send:${promiseId}`,
|
|
619
|
+
data
|
|
620
|
+
}
|
|
621
|
+
}, sendPromise = transport.send(wrappedData), { promise, resolve: resolve2, reject } = promiseWithResolvers(), timeout = transport.timeout ?? 6e4;
|
|
622
|
+
let timeoutId;
|
|
623
|
+
timeout > 0 && (timeoutId = setTimeout(() => {
|
|
624
|
+
rpcPromises.delete(promiseId), reject(
|
|
625
|
+
new Error(
|
|
626
|
+
`transport invoke timed out after ${timeout}ms (data: ${JSON.stringify(wrappedData)})`
|
|
627
|
+
)
|
|
628
|
+
);
|
|
629
|
+
}, timeout), timeoutId?.unref?.()), rpcPromises.set(promiseId, { resolve: resolve2, reject, name, timeoutId }), sendPromise && sendPromise.catch((err) => {
|
|
630
|
+
clearTimeout(timeoutId), rpcPromises.delete(promiseId), reject(err);
|
|
631
|
+
});
|
|
632
|
+
try {
|
|
633
|
+
return await promise;
|
|
634
|
+
} catch (err) {
|
|
635
|
+
throw reviveInvokeError(err);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
};
|
|
639
|
+
}, normalizeModuleRunnerTransport = (transport) => {
|
|
640
|
+
const invokeableTransport = createInvokeableTransport(transport);
|
|
641
|
+
let isConnected = !invokeableTransport.connect, connectingPromise;
|
|
642
|
+
return {
|
|
643
|
+
...transport,
|
|
644
|
+
...invokeableTransport.connect ? {
|
|
645
|
+
async connect(onMessage) {
|
|
646
|
+
if (isConnected) return;
|
|
647
|
+
if (connectingPromise) {
|
|
648
|
+
await connectingPromise;
|
|
649
|
+
return;
|
|
650
|
+
}
|
|
651
|
+
const maybePromise = invokeableTransport.connect({
|
|
652
|
+
onMessage: onMessage ?? (() => {
|
|
653
|
+
}),
|
|
654
|
+
onDisconnection() {
|
|
655
|
+
isConnected = !1;
|
|
656
|
+
}
|
|
657
|
+
});
|
|
658
|
+
maybePromise && (connectingPromise = maybePromise, await connectingPromise, connectingPromise = void 0), isConnected = !0;
|
|
659
|
+
}
|
|
660
|
+
} : {},
|
|
661
|
+
...invokeableTransport.disconnect ? {
|
|
662
|
+
async disconnect() {
|
|
663
|
+
isConnected && (connectingPromise && await connectingPromise, isConnected = !1, await invokeableTransport.disconnect());
|
|
664
|
+
}
|
|
665
|
+
} : {},
|
|
666
|
+
async send(data) {
|
|
667
|
+
if (invokeableTransport.send) {
|
|
668
|
+
if (!isConnected)
|
|
669
|
+
if (connectingPromise)
|
|
670
|
+
await connectingPromise;
|
|
671
|
+
else
|
|
672
|
+
throw new Error("send was called before connect");
|
|
673
|
+
await invokeableTransport.send(data);
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
async invoke(name, data) {
|
|
677
|
+
if (!isConnected)
|
|
678
|
+
if (connectingPromise)
|
|
679
|
+
await connectingPromise;
|
|
680
|
+
else
|
|
681
|
+
throw new Error("invoke was called before connect");
|
|
682
|
+
return invokeableTransport.invoke(name, data);
|
|
683
|
+
}
|
|
684
|
+
};
|
|
685
|
+
}, createWebSocketModuleRunnerTransport = (options) => {
|
|
686
|
+
const pingInterval = options.pingInterval ?? 3e4;
|
|
687
|
+
let ws, pingIntervalId;
|
|
688
|
+
return {
|
|
689
|
+
async connect({ onMessage, onDisconnection }) {
|
|
690
|
+
const socket = options.createConnection();
|
|
691
|
+
socket.addEventListener("message", async ({ data }) => {
|
|
692
|
+
onMessage(JSON.parse(data));
|
|
693
|
+
});
|
|
694
|
+
let isOpened = socket.readyState === socket.OPEN;
|
|
695
|
+
isOpened || await new Promise((resolve2, reject) => {
|
|
696
|
+
socket.addEventListener(
|
|
697
|
+
"open",
|
|
698
|
+
() => {
|
|
699
|
+
isOpened = !0, resolve2();
|
|
700
|
+
},
|
|
701
|
+
{ once: !0 }
|
|
702
|
+
), socket.addEventListener("close", async () => {
|
|
703
|
+
if (!isOpened) {
|
|
704
|
+
reject(new Error("WebSocket closed without opened."));
|
|
705
|
+
return;
|
|
706
|
+
}
|
|
707
|
+
onMessage({
|
|
708
|
+
type: "custom",
|
|
709
|
+
event: "vite:ws:disconnect",
|
|
710
|
+
data: { webSocket: socket }
|
|
711
|
+
}), onDisconnection();
|
|
712
|
+
});
|
|
713
|
+
}), onMessage({
|
|
714
|
+
type: "custom",
|
|
715
|
+
event: "vite:ws:connect",
|
|
716
|
+
data: { webSocket: socket }
|
|
717
|
+
}), ws = socket, pingIntervalId = setInterval(() => {
|
|
718
|
+
socket.readyState === socket.OPEN && socket.send(JSON.stringify({ type: "ping" }));
|
|
719
|
+
}, pingInterval);
|
|
720
|
+
},
|
|
721
|
+
disconnect() {
|
|
722
|
+
clearInterval(pingIntervalId), ws?.close();
|
|
723
|
+
},
|
|
724
|
+
send(data) {
|
|
725
|
+
ws.send(JSON.stringify(data));
|
|
726
|
+
}
|
|
727
|
+
};
|
|
728
|
+
}, ssrModuleExportsKey = "__vite_ssr_exports__", ssrImportKey = "__vite_ssr_import__", ssrDynamicImportKey = "__vite_ssr_dynamic_import__", ssrExportAllKey = "__vite_ssr_exportAll__", ssrImportMetaKey = "__vite_ssr_import_meta__", noop = () => {
|
|
729
|
+
}, silentConsole = {
|
|
730
|
+
debug: noop,
|
|
731
|
+
error: noop
|
|
732
|
+
}, hmrLogger = {
|
|
733
|
+
debug: (...msg) => console.log("[vite]", ...msg),
|
|
734
|
+
error: (error) => console.log("[vite]", error)
|
|
735
|
+
};
|
|
736
|
+
function createHMRHandler(handler) {
|
|
737
|
+
const queue = new Queue();
|
|
738
|
+
return (payload) => queue.enqueue(() => handler(payload));
|
|
739
|
+
}
|
|
740
|
+
class Queue {
|
|
741
|
+
queue = [];
|
|
742
|
+
pending = !1;
|
|
743
|
+
enqueue(promise) {
|
|
744
|
+
return new Promise((resolve2, reject) => {
|
|
745
|
+
this.queue.push({
|
|
746
|
+
promise,
|
|
747
|
+
resolve: resolve2,
|
|
748
|
+
reject
|
|
749
|
+
}), this.dequeue();
|
|
750
|
+
});
|
|
751
|
+
}
|
|
752
|
+
dequeue() {
|
|
753
|
+
if (this.pending)
|
|
754
|
+
return !1;
|
|
755
|
+
const item = this.queue.shift();
|
|
756
|
+
return item ? (this.pending = !0, item.promise().then(item.resolve).catch(item.reject).finally(() => {
|
|
757
|
+
this.pending = !1, this.dequeue();
|
|
758
|
+
}), !0) : !1;
|
|
759
|
+
}
|
|
760
|
+
}
|
|
761
|
+
function createHMRHandlerForRunner(runner) {
|
|
762
|
+
return createHMRHandler(async (payload) => {
|
|
763
|
+
const hmrClient = runner.hmrClient;
|
|
764
|
+
if (!(!hmrClient || runner.isClosed()))
|
|
765
|
+
switch (payload.type) {
|
|
766
|
+
case "connected":
|
|
767
|
+
hmrClient.logger.debug("connected.");
|
|
768
|
+
break;
|
|
769
|
+
case "update":
|
|
770
|
+
await hmrClient.notifyListeners("vite:beforeUpdate", payload), await Promise.all(
|
|
771
|
+
payload.updates.map(async (update) => {
|
|
772
|
+
if (update.type === "js-update")
|
|
773
|
+
return update.acceptedPath = unwrapId(update.acceptedPath), update.path = unwrapId(update.path), hmrClient.queueUpdate(update);
|
|
774
|
+
hmrClient.logger.error("css hmr is not supported in runner mode.");
|
|
775
|
+
})
|
|
776
|
+
), await hmrClient.notifyListeners("vite:afterUpdate", payload);
|
|
777
|
+
break;
|
|
778
|
+
case "custom": {
|
|
779
|
+
await hmrClient.notifyListeners(payload.event, payload.data);
|
|
780
|
+
break;
|
|
781
|
+
}
|
|
782
|
+
case "full-reload": {
|
|
783
|
+
const { triggeredBy } = payload, clearEntrypointUrls = triggeredBy ? getModulesEntrypoints(
|
|
784
|
+
runner,
|
|
785
|
+
getModulesByFile(runner, slash(triggeredBy))
|
|
786
|
+
) : findAllEntrypoints(runner);
|
|
787
|
+
if (!clearEntrypointUrls.size) break;
|
|
788
|
+
hmrClient.logger.debug("program reload"), await hmrClient.notifyListeners("vite:beforeFullReload", payload), runner.evaluatedModules.clear();
|
|
789
|
+
for (const url of clearEntrypointUrls)
|
|
790
|
+
try {
|
|
791
|
+
await runner.import(url);
|
|
792
|
+
} catch (err) {
|
|
793
|
+
err.code !== ERR_OUTDATED_OPTIMIZED_DEP && hmrClient.logger.error(
|
|
794
|
+
`An error happened during full reload
|
|
795
|
+
${err.message}
|
|
796
|
+
${err.stack}`
|
|
797
|
+
);
|
|
798
|
+
}
|
|
799
|
+
break;
|
|
800
|
+
}
|
|
801
|
+
case "prune":
|
|
802
|
+
await hmrClient.notifyListeners("vite:beforePrune", payload), await hmrClient.prunePaths(payload.paths);
|
|
803
|
+
break;
|
|
804
|
+
case "error": {
|
|
805
|
+
await hmrClient.notifyListeners("vite:error", payload);
|
|
806
|
+
const err = payload.err;
|
|
807
|
+
hmrClient.logger.error(
|
|
808
|
+
`Internal Server Error
|
|
809
|
+
${err.message}
|
|
810
|
+
${err.stack}`
|
|
811
|
+
);
|
|
812
|
+
break;
|
|
813
|
+
}
|
|
814
|
+
case "ping":
|
|
815
|
+
break;
|
|
816
|
+
default:
|
|
817
|
+
return payload;
|
|
818
|
+
}
|
|
819
|
+
});
|
|
820
|
+
}
|
|
821
|
+
function getModulesByFile(runner, file) {
|
|
822
|
+
const nodes = runner.evaluatedModules.getModulesByFile(file);
|
|
823
|
+
return nodes ? [...nodes].map((node) => node.id) : [];
|
|
824
|
+
}
|
|
825
|
+
function getModulesEntrypoints(runner, modules, visited = /* @__PURE__ */ new Set(), entrypoints = /* @__PURE__ */ new Set()) {
|
|
826
|
+
for (const moduleId of modules) {
|
|
827
|
+
if (visited.has(moduleId)) continue;
|
|
828
|
+
visited.add(moduleId);
|
|
829
|
+
const module = runner.evaluatedModules.getModuleById(moduleId);
|
|
830
|
+
if (module) {
|
|
831
|
+
if (!module.importers.size) {
|
|
832
|
+
entrypoints.add(module.url);
|
|
833
|
+
continue;
|
|
834
|
+
}
|
|
835
|
+
for (const importer of module.importers)
|
|
836
|
+
getModulesEntrypoints(runner, [importer], visited, entrypoints);
|
|
837
|
+
}
|
|
838
|
+
}
|
|
839
|
+
return entrypoints;
|
|
840
|
+
}
|
|
841
|
+
function findAllEntrypoints(runner, entrypoints = /* @__PURE__ */ new Set()) {
|
|
842
|
+
for (const mod of runner.evaluatedModules.idToModuleMap.values())
|
|
843
|
+
mod.importers.size || entrypoints.add(mod.url);
|
|
844
|
+
return entrypoints;
|
|
845
|
+
}
|
|
846
|
+
const sourceMapCache = {}, fileContentsCache = {}, evaluatedModulesCache = /* @__PURE__ */ new Set(), retrieveFileHandlers = /* @__PURE__ */ new Set(), retrieveSourceMapHandlers = /* @__PURE__ */ new Set(), createExecHandlers = (handlers) => (...args) => {
|
|
847
|
+
for (const handler of handlers) {
|
|
848
|
+
const result = handler(...args);
|
|
849
|
+
if (result) return result;
|
|
850
|
+
}
|
|
851
|
+
return null;
|
|
852
|
+
}, retrieveFileFromHandlers = createExecHandlers(retrieveFileHandlers), retrieveSourceMapFromHandlers = createExecHandlers(
|
|
853
|
+
retrieveSourceMapHandlers
|
|
854
|
+
);
|
|
855
|
+
let overridden = !1;
|
|
856
|
+
const originalPrepare = Error.prepareStackTrace;
|
|
857
|
+
function resetInterceptor(runner, options) {
|
|
858
|
+
evaluatedModulesCache.delete(runner.evaluatedModules), options.retrieveFile && retrieveFileHandlers.delete(options.retrieveFile), options.retrieveSourceMap && retrieveSourceMapHandlers.delete(options.retrieveSourceMap), evaluatedModulesCache.size === 0 && (Error.prepareStackTrace = originalPrepare, overridden = !1);
|
|
859
|
+
}
|
|
860
|
+
function interceptStackTrace(runner, options = {}) {
|
|
861
|
+
return overridden || (Error.prepareStackTrace = prepareStackTrace, overridden = !0), evaluatedModulesCache.add(runner.evaluatedModules), options.retrieveFile && retrieveFileHandlers.add(options.retrieveFile), options.retrieveSourceMap && retrieveSourceMapHandlers.add(options.retrieveSourceMap), () => resetInterceptor(runner, options);
|
|
862
|
+
}
|
|
863
|
+
function supportRelativeURL(file, url) {
|
|
864
|
+
if (!file) return url;
|
|
865
|
+
const dir = posixDirname(slash(file)), match = /^\w+:\/\/[^/]*/.exec(dir);
|
|
866
|
+
let protocol = match ? match[0] : "";
|
|
867
|
+
const startPath = dir.slice(protocol.length);
|
|
868
|
+
return protocol && /^\/\w:/.test(startPath) ? (protocol += "/", protocol + slash(posixResolve(startPath, url))) : protocol + posixResolve(startPath, url);
|
|
869
|
+
}
|
|
870
|
+
function getRunnerSourceMap(position) {
|
|
871
|
+
for (const moduleGraph of evaluatedModulesCache) {
|
|
872
|
+
const sourceMap = moduleGraph.getModuleSourceMapById(position.source);
|
|
873
|
+
if (sourceMap)
|
|
874
|
+
return {
|
|
875
|
+
url: position.source,
|
|
876
|
+
map: sourceMap,
|
|
877
|
+
vite: !0
|
|
878
|
+
};
|
|
879
|
+
}
|
|
880
|
+
return null;
|
|
881
|
+
}
|
|
882
|
+
function retrieveFile(path) {
|
|
883
|
+
if (path in fileContentsCache) return fileContentsCache[path];
|
|
884
|
+
const content = retrieveFileFromHandlers(path);
|
|
885
|
+
return typeof content == "string" ? (fileContentsCache[path] = content, content) : null;
|
|
886
|
+
}
|
|
887
|
+
function retrieveSourceMapURL(source) {
|
|
888
|
+
const fileData = retrieveFile(source);
|
|
889
|
+
if (!fileData) return null;
|
|
890
|
+
const re = /\/\/[@#]\s*sourceMappingURL=([^\s'"]+)\s*$|\/\*[@#]\s*sourceMappingURL=[^\s*'"]+\s*\*\/\s*$/gm;
|
|
891
|
+
let lastMatch, match;
|
|
892
|
+
for (; match = re.exec(fileData); ) lastMatch = match;
|
|
893
|
+
return lastMatch ? lastMatch[1] : null;
|
|
894
|
+
}
|
|
895
|
+
const reSourceMap = /^data:application\/json[^,]+base64,/;
|
|
896
|
+
function retrieveSourceMap(source) {
|
|
897
|
+
const urlAndMap = retrieveSourceMapFromHandlers(source);
|
|
898
|
+
if (urlAndMap) return urlAndMap;
|
|
899
|
+
let sourceMappingURL = retrieveSourceMapURL(source);
|
|
900
|
+
if (!sourceMappingURL) return null;
|
|
901
|
+
let sourceMapData;
|
|
902
|
+
if (reSourceMap.test(sourceMappingURL)) {
|
|
903
|
+
const rawData = sourceMappingURL.slice(sourceMappingURL.indexOf(",") + 1);
|
|
904
|
+
sourceMapData = Buffer.from(rawData, "base64").toString(), sourceMappingURL = source;
|
|
905
|
+
} else
|
|
906
|
+
sourceMappingURL = supportRelativeURL(source, sourceMappingURL), sourceMapData = retrieveFile(sourceMappingURL);
|
|
907
|
+
return sourceMapData ? {
|
|
908
|
+
url: sourceMappingURL,
|
|
909
|
+
map: sourceMapData
|
|
910
|
+
} : null;
|
|
911
|
+
}
|
|
912
|
+
function mapSourcePosition(position) {
|
|
913
|
+
if (!position.source) return position;
|
|
914
|
+
let sourceMap = getRunnerSourceMap(position);
|
|
915
|
+
if (sourceMap || (sourceMap = sourceMapCache[position.source]), !sourceMap) {
|
|
916
|
+
const urlAndMap = retrieveSourceMap(position.source);
|
|
917
|
+
if (urlAndMap && urlAndMap.map) {
|
|
918
|
+
const url = urlAndMap.url;
|
|
919
|
+
sourceMap = sourceMapCache[position.source] = {
|
|
920
|
+
url,
|
|
921
|
+
map: new DecodedMap(
|
|
922
|
+
typeof urlAndMap.map == "string" ? JSON.parse(urlAndMap.map) : urlAndMap.map,
|
|
923
|
+
url
|
|
924
|
+
)
|
|
925
|
+
};
|
|
926
|
+
const contents = sourceMap.map?.map.sourcesContent;
|
|
927
|
+
sourceMap.map && contents && sourceMap.map.resolvedSources.forEach((source, i) => {
|
|
928
|
+
const content = contents[i];
|
|
929
|
+
if (content && source && url) {
|
|
930
|
+
const contentUrl = supportRelativeURL(url, source);
|
|
931
|
+
fileContentsCache[contentUrl] = content;
|
|
932
|
+
}
|
|
933
|
+
});
|
|
934
|
+
} else
|
|
935
|
+
sourceMap = sourceMapCache[position.source] = {
|
|
936
|
+
url: null,
|
|
937
|
+
map: null
|
|
938
|
+
};
|
|
939
|
+
}
|
|
940
|
+
if (sourceMap.map && sourceMap.url) {
|
|
941
|
+
const originalPosition = getOriginalPosition(sourceMap.map, position);
|
|
942
|
+
if (originalPosition && originalPosition.source != null)
|
|
943
|
+
return originalPosition.source = supportRelativeURL(
|
|
944
|
+
sourceMap.url,
|
|
945
|
+
originalPosition.source
|
|
946
|
+
), sourceMap.vite && (originalPosition._vite = !0), originalPosition;
|
|
947
|
+
}
|
|
948
|
+
return position;
|
|
949
|
+
}
|
|
950
|
+
function mapEvalOrigin(origin) {
|
|
951
|
+
let match = /^eval at ([^(]+) \((.+):(\d+):(\d+)\)$/.exec(origin);
|
|
952
|
+
if (match) {
|
|
953
|
+
const position = mapSourcePosition({
|
|
954
|
+
name: null,
|
|
955
|
+
source: match[2],
|
|
956
|
+
line: +match[3],
|
|
957
|
+
column: +match[4] - 1
|
|
958
|
+
});
|
|
959
|
+
return `eval at ${match[1]} (${position.source}:${position.line}:${position.column + 1})`;
|
|
960
|
+
}
|
|
961
|
+
return match = /^eval at ([^(]+) \((.+)\)$/.exec(origin), match ? `eval at ${match[1]} (${mapEvalOrigin(match[2])})` : origin;
|
|
962
|
+
}
|
|
963
|
+
function CallSiteToString() {
|
|
964
|
+
let fileName, fileLocation = "";
|
|
965
|
+
if (this.isNative())
|
|
966
|
+
fileLocation = "native";
|
|
967
|
+
else {
|
|
968
|
+
fileName = this.getScriptNameOrSourceURL(), !fileName && this.isEval() && (fileLocation = this.getEvalOrigin(), fileLocation += ", "), fileName ? fileLocation += fileName : fileLocation += "<anonymous>";
|
|
969
|
+
const lineNumber = this.getLineNumber();
|
|
970
|
+
if (lineNumber != null) {
|
|
971
|
+
fileLocation += `:${lineNumber}`;
|
|
972
|
+
const columnNumber = this.getColumnNumber();
|
|
973
|
+
columnNumber && (fileLocation += `:${columnNumber}`);
|
|
974
|
+
}
|
|
975
|
+
}
|
|
976
|
+
let line = "";
|
|
977
|
+
const functionName = this.getFunctionName();
|
|
978
|
+
let addSuffix = !0;
|
|
979
|
+
const isConstructor = this.isConstructor();
|
|
980
|
+
if (this.isToplevel() || isConstructor)
|
|
981
|
+
isConstructor ? line += `new ${functionName || "<anonymous>"}` : functionName ? line += functionName : (line += fileLocation, addSuffix = !1);
|
|
982
|
+
else {
|
|
983
|
+
let typeName = this.getTypeName();
|
|
984
|
+
typeName === "[object Object]" && (typeName = "null");
|
|
985
|
+
const methodName = this.getMethodName();
|
|
986
|
+
functionName ? (typeName && functionName.indexOf(typeName) !== 0 && (line += `${typeName}.`), line += functionName, methodName && functionName.indexOf(`.${methodName}`) !== functionName.length - methodName.length - 1 && (line += ` [as ${methodName}]`)) : line += `${typeName}.${methodName || "<anonymous>"}`;
|
|
987
|
+
}
|
|
988
|
+
return addSuffix && (line += ` (${fileLocation})`), line;
|
|
989
|
+
}
|
|
990
|
+
function cloneCallSite(frame) {
|
|
991
|
+
const object = {};
|
|
992
|
+
return Object.getOwnPropertyNames(Object.getPrototypeOf(frame)).forEach((name) => {
|
|
993
|
+
const key = name;
|
|
994
|
+
object[key] = /^(?:is|get)/.test(name) ? function() {
|
|
995
|
+
return frame[key].call(frame);
|
|
996
|
+
} : frame[key];
|
|
997
|
+
}), object.toString = CallSiteToString, object;
|
|
998
|
+
}
|
|
999
|
+
function wrapCallSite(frame, state) {
|
|
1000
|
+
if (state === void 0 && (state = { nextPosition: null, curPosition: null }), frame.isNative())
|
|
1001
|
+
return state.curPosition = null, frame;
|
|
1002
|
+
const source = frame.getFileName() || frame.getScriptNameOrSourceURL();
|
|
1003
|
+
if (source) {
|
|
1004
|
+
const line = frame.getLineNumber();
|
|
1005
|
+
let column = frame.getColumnNumber() - 1;
|
|
1006
|
+
const headerLength = 62;
|
|
1007
|
+
line === 1 && column > headerLength && !frame.isEval() && (column -= headerLength);
|
|
1008
|
+
const position = mapSourcePosition({
|
|
1009
|
+
name: null,
|
|
1010
|
+
source,
|
|
1011
|
+
line,
|
|
1012
|
+
column
|
|
1013
|
+
});
|
|
1014
|
+
state.curPosition = position, frame = cloneCallSite(frame);
|
|
1015
|
+
const originalFunctionName = frame.getFunctionName;
|
|
1016
|
+
return frame.getFunctionName = function() {
|
|
1017
|
+
const name = state.nextPosition == null ? originalFunctionName() : state.nextPosition.name || originalFunctionName();
|
|
1018
|
+
return name === "eval" && "_vite" in position ? null : name;
|
|
1019
|
+
}, frame.getFileName = function() {
|
|
1020
|
+
return position.source ?? void 0;
|
|
1021
|
+
}, frame.getLineNumber = function() {
|
|
1022
|
+
return position.line;
|
|
1023
|
+
}, frame.getColumnNumber = function() {
|
|
1024
|
+
return position.column + 1;
|
|
1025
|
+
}, frame.getScriptNameOrSourceURL = function() {
|
|
1026
|
+
return position.source;
|
|
1027
|
+
}, frame;
|
|
1028
|
+
}
|
|
1029
|
+
let origin = frame.isEval() && frame.getEvalOrigin();
|
|
1030
|
+
return origin && (origin = mapEvalOrigin(origin), frame = cloneCallSite(frame), frame.getEvalOrigin = function() {
|
|
1031
|
+
return origin || void 0;
|
|
1032
|
+
}), frame;
|
|
1033
|
+
}
|
|
1034
|
+
function prepareStackTrace(error, stack) {
|
|
1035
|
+
const name = error.name || "Error", message = error.message || "", errorString = `${name}: ${message}`, state = { nextPosition: null, curPosition: null }, processedStack = [];
|
|
1036
|
+
for (let i = stack.length - 1; i >= 0; i--)
|
|
1037
|
+
processedStack.push(`
|
|
1038
|
+
at ${wrapCallSite(stack[i], state)}`), state.nextPosition = state.curPosition;
|
|
1039
|
+
return state.curPosition = state.nextPosition = null, errorString + processedStack.reverse().join("");
|
|
1040
|
+
}
|
|
1041
|
+
function enableSourceMapSupport(runner) {
|
|
1042
|
+
if (runner.options.sourcemapInterceptor === "node") {
|
|
1043
|
+
if (typeof process > "u")
|
|
1044
|
+
throw new TypeError(
|
|
1045
|
+
`Cannot use "sourcemapInterceptor: 'node'" because global "process" variable is not available.`
|
|
1046
|
+
);
|
|
1047
|
+
if (typeof process.setSourceMapsEnabled != "function")
|
|
1048
|
+
throw new TypeError(
|
|
1049
|
+
`Cannot use "sourcemapInterceptor: 'node'" because "process.setSourceMapsEnabled" function is not available. Please use Node >= 16.6.0.`
|
|
1050
|
+
);
|
|
1051
|
+
const isEnabledAlready = process.sourceMapsEnabled ?? !1;
|
|
1052
|
+
return process.setSourceMapsEnabled(!0), () => !isEnabledAlready && process.setSourceMapsEnabled(!1);
|
|
1053
|
+
}
|
|
1054
|
+
return interceptStackTrace(
|
|
1055
|
+
runner,
|
|
1056
|
+
typeof runner.options.sourcemapInterceptor == "object" ? runner.options.sourcemapInterceptor : void 0
|
|
1057
|
+
);
|
|
1058
|
+
}
|
|
1059
|
+
class ESModulesEvaluator {
|
|
1060
|
+
startOffset = getAsyncFunctionDeclarationPaddingLineCount();
|
|
1061
|
+
async runInlinedModule(context, code) {
|
|
1062
|
+
await new AsyncFunction(
|
|
1063
|
+
ssrModuleExportsKey,
|
|
1064
|
+
ssrImportMetaKey,
|
|
1065
|
+
ssrImportKey,
|
|
1066
|
+
ssrDynamicImportKey,
|
|
1067
|
+
ssrExportAllKey,
|
|
1068
|
+
// source map should already be inlined by Vite
|
|
1069
|
+
'"use strict";' + code
|
|
1070
|
+
)(
|
|
1071
|
+
context[ssrModuleExportsKey],
|
|
1072
|
+
context[ssrImportMetaKey],
|
|
1073
|
+
context[ssrImportKey],
|
|
1074
|
+
context[ssrDynamicImportKey],
|
|
1075
|
+
context[ssrExportAllKey]
|
|
1076
|
+
), Object.seal(context[ssrModuleExportsKey]);
|
|
1077
|
+
}
|
|
1078
|
+
runExternalModule(filepath) {
|
|
1079
|
+
return import(filepath);
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
class ModuleRunner {
|
|
1083
|
+
constructor(options, evaluator = new ESModulesEvaluator(), debug) {
|
|
1084
|
+
if (this.options = options, this.evaluator = evaluator, this.debug = debug, this.evaluatedModules = options.evaluatedModules ?? new EvaluatedModules(), this.transport = normalizeModuleRunnerTransport(options.transport), options.hmr !== !1) {
|
|
1085
|
+
const optionsHmr = options.hmr ?? !0, resolvedHmrLogger = optionsHmr === !0 || optionsHmr.logger === void 0 ? hmrLogger : optionsHmr.logger === !1 ? silentConsole : optionsHmr.logger;
|
|
1086
|
+
if (this.hmrClient = new HMRClient(
|
|
1087
|
+
resolvedHmrLogger,
|
|
1088
|
+
this.transport,
|
|
1089
|
+
({ acceptedPath }) => this.import(acceptedPath)
|
|
1090
|
+
), !this.transport.connect)
|
|
1091
|
+
throw new Error(
|
|
1092
|
+
"HMR is not supported by this runner transport, but `hmr` option was set to true"
|
|
1093
|
+
);
|
|
1094
|
+
this.transport.connect(createHMRHandlerForRunner(this));
|
|
1095
|
+
} else
|
|
1096
|
+
this.transport.connect?.();
|
|
1097
|
+
options.sourcemapInterceptor !== !1 && (this.resetSourceMapSupport = enableSourceMapSupport(this));
|
|
1098
|
+
}
|
|
1099
|
+
evaluatedModules;
|
|
1100
|
+
hmrClient;
|
|
1101
|
+
envProxy = new Proxy({}, {
|
|
1102
|
+
get(_, p) {
|
|
1103
|
+
throw new Error(
|
|
1104
|
+
`[module runner] Dynamic access of "import.meta.env" is not supported. Please, use "import.meta.env.${String(p)}" instead.`
|
|
1105
|
+
);
|
|
1106
|
+
}
|
|
1107
|
+
});
|
|
1108
|
+
transport;
|
|
1109
|
+
resetSourceMapSupport;
|
|
1110
|
+
concurrentModuleNodePromises = /* @__PURE__ */ new Map();
|
|
1111
|
+
closed = !1;
|
|
1112
|
+
/**
|
|
1113
|
+
* URL to execute. Accepts file path, server path or id relative to the root.
|
|
1114
|
+
*/
|
|
1115
|
+
async import(url) {
|
|
1116
|
+
const fetchedModule = await this.cachedModule(url);
|
|
1117
|
+
return await this.cachedRequest(url, fetchedModule);
|
|
1118
|
+
}
|
|
1119
|
+
/**
|
|
1120
|
+
* Clear all caches including HMR listeners.
|
|
1121
|
+
*/
|
|
1122
|
+
clearCache() {
|
|
1123
|
+
this.evaluatedModules.clear(), this.hmrClient?.clear();
|
|
1124
|
+
}
|
|
1125
|
+
/**
|
|
1126
|
+
* Clears all caches, removes all HMR listeners, and resets source map support.
|
|
1127
|
+
* This method doesn't stop the HMR connection.
|
|
1128
|
+
*/
|
|
1129
|
+
async close() {
|
|
1130
|
+
this.resetSourceMapSupport?.(), this.clearCache(), this.hmrClient = void 0, this.closed = !0, await this.transport.disconnect?.();
|
|
1131
|
+
}
|
|
1132
|
+
/**
|
|
1133
|
+
* Returns `true` if the runtime has been closed by calling `close()` method.
|
|
1134
|
+
*/
|
|
1135
|
+
isClosed() {
|
|
1136
|
+
return this.closed;
|
|
1137
|
+
}
|
|
1138
|
+
processImport(exports, fetchResult, metadata) {
|
|
1139
|
+
if (!("externalize" in fetchResult))
|
|
1140
|
+
return exports;
|
|
1141
|
+
const { url, type } = fetchResult;
|
|
1142
|
+
return type !== "module" && type !== "commonjs" || analyzeImportedModDifference(exports, url, type, metadata), exports;
|
|
1143
|
+
}
|
|
1144
|
+
isCircularModule(mod) {
|
|
1145
|
+
for (const importedFile of mod.imports)
|
|
1146
|
+
if (mod.importers.has(importedFile))
|
|
1147
|
+
return !0;
|
|
1148
|
+
return !1;
|
|
1149
|
+
}
|
|
1150
|
+
isCircularImport(importers, moduleUrl, visited = /* @__PURE__ */ new Set()) {
|
|
1151
|
+
for (const importer of importers) {
|
|
1152
|
+
if (visited.has(importer))
|
|
1153
|
+
continue;
|
|
1154
|
+
if (visited.add(importer), importer === moduleUrl)
|
|
1155
|
+
return !0;
|
|
1156
|
+
const mod = this.evaluatedModules.getModuleById(importer);
|
|
1157
|
+
if (mod && mod.importers.size && this.isCircularImport(mod.importers, moduleUrl, visited))
|
|
1158
|
+
return !0;
|
|
1159
|
+
}
|
|
1160
|
+
return !1;
|
|
1161
|
+
}
|
|
1162
|
+
async cachedRequest(url, mod, callstack = [], metadata) {
|
|
1163
|
+
const meta = mod.meta, moduleId = meta.id, { importers } = mod, importee = callstack[callstack.length - 1];
|
|
1164
|
+
if (importee && importers.add(importee), (callstack.includes(moduleId) || this.isCircularModule(mod) || this.isCircularImport(importers, moduleId)) && mod.exports)
|
|
1165
|
+
return this.processImport(mod.exports, meta, metadata);
|
|
1166
|
+
let debugTimer;
|
|
1167
|
+
this.debug && (debugTimer = setTimeout(() => {
|
|
1168
|
+
const getStack = () => `stack:
|
|
1169
|
+
${[...callstack, moduleId].reverse().map((p) => ` - ${p}`).join(`
|
|
1170
|
+
`)}`;
|
|
1171
|
+
this.debug(
|
|
1172
|
+
`[module runner] module ${moduleId} takes over 2s to load.
|
|
1173
|
+
${getStack()}`
|
|
1174
|
+
);
|
|
1175
|
+
}, 2e3));
|
|
1176
|
+
try {
|
|
1177
|
+
if (mod.promise)
|
|
1178
|
+
return this.processImport(await mod.promise, meta, metadata);
|
|
1179
|
+
const promise = this.directRequest(url, mod, callstack);
|
|
1180
|
+
return mod.promise = promise, mod.evaluated = !1, this.processImport(await promise, meta, metadata);
|
|
1181
|
+
} finally {
|
|
1182
|
+
mod.evaluated = !0, debugTimer && clearTimeout(debugTimer);
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
async cachedModule(url, importer) {
|
|
1186
|
+
let cached = this.concurrentModuleNodePromises.get(url);
|
|
1187
|
+
if (cached)
|
|
1188
|
+
this.debug?.("[module runner] using cached module info for", url);
|
|
1189
|
+
else {
|
|
1190
|
+
const cachedModule = this.evaluatedModules.getModuleByUrl(url);
|
|
1191
|
+
cached = this.getModuleInformation(url, importer, cachedModule).finally(
|
|
1192
|
+
() => {
|
|
1193
|
+
this.concurrentModuleNodePromises.delete(url);
|
|
1194
|
+
}
|
|
1195
|
+
), this.concurrentModuleNodePromises.set(url, cached);
|
|
1196
|
+
}
|
|
1197
|
+
return cached;
|
|
1198
|
+
}
|
|
1199
|
+
async getModuleInformation(url, importer, cachedModule) {
|
|
1200
|
+
if (this.closed)
|
|
1201
|
+
throw new Error("Vite module runner has been closed.");
|
|
1202
|
+
this.debug?.("[module runner] fetching", url);
|
|
1203
|
+
const isCached = !!(typeof cachedModule == "object" && cachedModule.meta), fetchedModule = (
|
|
1204
|
+
// fast return for established externalized pattern
|
|
1205
|
+
url.startsWith("data:") ? { externalize: url, type: "builtin" } : await this.transport.invoke("fetchModule", [
|
|
1206
|
+
url,
|
|
1207
|
+
importer,
|
|
1208
|
+
{
|
|
1209
|
+
cached: isCached,
|
|
1210
|
+
startOffset: this.evaluator.startOffset
|
|
1211
|
+
}
|
|
1212
|
+
])
|
|
1213
|
+
);
|
|
1214
|
+
if ("cache" in fetchedModule) {
|
|
1215
|
+
if (!cachedModule || !cachedModule.meta)
|
|
1216
|
+
throw new Error(
|
|
1217
|
+
`Module "${url}" was mistakenly invalidated during fetch phase.`
|
|
1218
|
+
);
|
|
1219
|
+
return cachedModule;
|
|
1220
|
+
}
|
|
1221
|
+
const moduleId = "externalize" in fetchedModule ? fetchedModule.externalize : fetchedModule.id, moduleUrl = "url" in fetchedModule ? fetchedModule.url : url, module = this.evaluatedModules.ensureModule(moduleId, moduleUrl);
|
|
1222
|
+
return "invalidate" in fetchedModule && fetchedModule.invalidate && this.evaluatedModules.invalidateModule(module), fetchedModule.url = moduleUrl, fetchedModule.id = moduleId, module.meta = fetchedModule, module;
|
|
1223
|
+
}
|
|
1224
|
+
// override is allowed, consider this a public API
|
|
1225
|
+
async directRequest(url, mod, _callstack) {
|
|
1226
|
+
const fetchResult = mod.meta, moduleId = fetchResult.id, callstack = [..._callstack, moduleId], request = async (dep, metadata) => {
|
|
1227
|
+
const importer = "file" in fetchResult && fetchResult.file || moduleId, depMod = await this.cachedModule(dep, importer);
|
|
1228
|
+
return depMod.importers.add(moduleId), mod.imports.add(depMod.id), this.cachedRequest(dep, depMod, callstack, metadata);
|
|
1229
|
+
}, dynamicRequest = async (dep) => (dep = String(dep), dep[0] === "." && (dep = posixResolve(posixDirname(url), dep)), request(dep, { isDynamicImport: !0 }));
|
|
1230
|
+
if ("externalize" in fetchResult) {
|
|
1231
|
+
const { externalize } = fetchResult;
|
|
1232
|
+
this.debug?.("[module runner] externalizing", externalize);
|
|
1233
|
+
const exports2 = await this.evaluator.runExternalModule(externalize);
|
|
1234
|
+
return mod.exports = exports2, exports2;
|
|
1235
|
+
}
|
|
1236
|
+
const { code, file } = fetchResult;
|
|
1237
|
+
if (code == null) {
|
|
1238
|
+
const importer = callstack[callstack.length - 2];
|
|
1239
|
+
throw new Error(
|
|
1240
|
+
`[module runner] Failed to load "${url}"${importer ? ` imported from ${importer}` : ""}`
|
|
1241
|
+
);
|
|
1242
|
+
}
|
|
1243
|
+
const modulePath = cleanUrl(file || moduleId), href = posixPathToFileHref(modulePath), filename = modulePath, dirname2 = posixDirname(modulePath), meta = {
|
|
1244
|
+
filename: isWindows ? toWindowsPath(filename) : filename,
|
|
1245
|
+
dirname: isWindows ? toWindowsPath(dirname2) : dirname2,
|
|
1246
|
+
url: href,
|
|
1247
|
+
env: this.envProxy,
|
|
1248
|
+
resolve(_id, _parent) {
|
|
1249
|
+
throw new Error(
|
|
1250
|
+
'[module runner] "import.meta.resolve" is not supported.'
|
|
1251
|
+
);
|
|
1252
|
+
},
|
|
1253
|
+
// should be replaced during transformation
|
|
1254
|
+
glob() {
|
|
1255
|
+
throw new Error(
|
|
1256
|
+
'[module runner] "import.meta.glob" is statically replaced during file transformation. Make sure to reference it by the full name.'
|
|
1257
|
+
);
|
|
1258
|
+
}
|
|
1259
|
+
}, exports = /* @__PURE__ */ Object.create(null);
|
|
1260
|
+
Object.defineProperty(exports, Symbol.toStringTag, {
|
|
1261
|
+
value: "Module",
|
|
1262
|
+
enumerable: !1,
|
|
1263
|
+
configurable: !1
|
|
1264
|
+
}), mod.exports = exports;
|
|
1265
|
+
let hotContext;
|
|
1266
|
+
this.hmrClient && Object.defineProperty(meta, "hot", {
|
|
1267
|
+
enumerable: !0,
|
|
1268
|
+
get: () => {
|
|
1269
|
+
if (!this.hmrClient)
|
|
1270
|
+
throw new Error("[module runner] HMR client was closed.");
|
|
1271
|
+
return this.debug?.("[module runner] creating hmr context for", mod.url), hotContext ||= new HMRContext(this.hmrClient, mod.url), hotContext;
|
|
1272
|
+
},
|
|
1273
|
+
set: (value) => {
|
|
1274
|
+
hotContext = value;
|
|
1275
|
+
}
|
|
1276
|
+
});
|
|
1277
|
+
const context = {
|
|
1278
|
+
[ssrImportKey]: request,
|
|
1279
|
+
[ssrDynamicImportKey]: dynamicRequest,
|
|
1280
|
+
[ssrModuleExportsKey]: exports,
|
|
1281
|
+
[ssrExportAllKey]: (obj) => exportAll(exports, obj),
|
|
1282
|
+
[ssrImportMetaKey]: meta
|
|
1283
|
+
};
|
|
1284
|
+
return this.debug?.("[module runner] executing", href), await this.evaluator.runInlinedModule(context, code, mod), exports;
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
function exportAll(exports, sourceModule) {
|
|
1288
|
+
if (exports !== sourceModule && !(isPrimitive(sourceModule) || Array.isArray(sourceModule) || sourceModule instanceof Promise)) {
|
|
1289
|
+
for (const key in sourceModule)
|
|
1290
|
+
if (key !== "default" && key !== "__esModule" && !(key in exports))
|
|
1291
|
+
try {
|
|
1292
|
+
Object.defineProperty(exports, key, {
|
|
1293
|
+
enumerable: !0,
|
|
1294
|
+
configurable: !0,
|
|
1295
|
+
get: () => sourceModule[key]
|
|
1296
|
+
});
|
|
1297
|
+
} catch {
|
|
1298
|
+
}
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1301
|
+
export {
|
|
1302
|
+
ESModulesEvaluator,
|
|
1303
|
+
EvaluatedModules,
|
|
1304
|
+
ModuleRunner,
|
|
1305
|
+
createWebSocketModuleRunnerTransport,
|
|
1306
|
+
ssrDynamicImportKey,
|
|
1307
|
+
ssrExportAllKey,
|
|
1308
|
+
ssrImportKey,
|
|
1309
|
+
ssrImportMetaKey,
|
|
1310
|
+
ssrModuleExportsKey
|
|
1311
|
+
};
|