@sitecore/sc-contenthub-blok 1.0.32 → 2.0.1
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/node_modules/@babel/code-frame/package.json +2 -2
- package/node_modules/@babel/generator/lib/buffer.js +11 -8
- package/node_modules/@babel/generator/lib/buffer.js.map +1 -1
- package/node_modules/@babel/generator/lib/node/index.js +22 -8
- package/node_modules/@babel/generator/lib/node/index.js.map +1 -1
- package/node_modules/@babel/generator/lib/printer.js +2 -1
- package/node_modules/@babel/generator/lib/printer.js.map +1 -1
- package/node_modules/@babel/generator/lib/source-map.js +3 -1
- package/node_modules/@babel/generator/lib/source-map.js.map +1 -1
- package/node_modules/@babel/generator/package.json +6 -6
- package/node_modules/@babel/helper-globals/package.json +1 -1
- package/node_modules/@babel/helper-module-imports/package.json +4 -4
- package/node_modules/@babel/helper-string-parser/package.json +1 -1
- package/node_modules/@babel/helper-validator-identifier/package.json +1 -1
- package/node_modules/@babel/parser/lib/index.js +19 -7
- package/node_modules/@babel/parser/lib/index.js.map +1 -1
- package/node_modules/@babel/parser/package.json +7 -7
- package/node_modules/@babel/parser/typings/babel-parser.d.ts +1 -1
- package/node_modules/@babel/runtime/package.json +1 -1
- package/node_modules/@babel/template/package.json +4 -4
- package/node_modules/@babel/traverse/lib/path/family.js.map +1 -1
- package/node_modules/@babel/traverse/lib/visitors.js +1 -1
- package/node_modules/@babel/traverse/package.json +9 -9
- package/node_modules/@babel/types/lib/ast-types/generated/index.js.map +1 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js +2 -1
- package/node_modules/@babel/types/lib/builders/generated/lowercase.js.map +1 -1
- package/node_modules/@babel/types/lib/definitions/core.js +11 -1
- package/node_modules/@babel/types/lib/definitions/core.js.map +1 -1
- package/node_modules/@babel/types/lib/index-legacy.d.ts +4 -5
- package/node_modules/@babel/types/lib/index.d.ts +5 -6
- package/node_modules/@babel/types/lib/index.js.flow +4 -5
- package/node_modules/@babel/types/package.json +6 -6
- package/node_modules/@mui/core-downloads-tracker/LICENSE +1 -1
- package/node_modules/@mui/core-downloads-tracker/package.json +1 -1
- package/node_modules/@mui/material/Accordion/Accordion.d.mts +2 -2
- package/node_modules/@mui/material/Accordion/Accordion.d.ts +2 -2
- package/node_modules/@mui/material/Accordion/Accordion.js +3 -2
- package/node_modules/@mui/material/Accordion/Accordion.mjs +3 -2
- package/node_modules/@mui/material/AccordionSummary/AccordionSummary.js +27 -29
- package/node_modules/@mui/material/AccordionSummary/AccordionSummary.mjs +27 -29
- package/node_modules/@mui/material/Autocomplete/Autocomplete.d.mts +12 -1
- package/node_modules/@mui/material/Autocomplete/Autocomplete.d.ts +12 -1
- package/node_modules/@mui/material/Autocomplete/Autocomplete.js +48 -22
- package/node_modules/@mui/material/Autocomplete/Autocomplete.mjs +48 -22
- package/node_modules/@mui/material/Autocomplete/autocompleteClasses.d.mts +2 -0
- package/node_modules/@mui/material/Autocomplete/autocompleteClasses.d.ts +2 -0
- package/node_modules/@mui/material/Autocomplete/autocompleteClasses.js +1 -1
- package/node_modules/@mui/material/Autocomplete/autocompleteClasses.mjs +1 -1
- package/node_modules/@mui/material/Avatar/Avatar.js +2 -0
- package/node_modules/@mui/material/Avatar/Avatar.mjs +2 -0
- package/node_modules/@mui/material/Backdrop/Backdrop.d.mts +2 -2
- package/node_modules/@mui/material/Backdrop/Backdrop.d.ts +2 -2
- package/node_modules/@mui/material/Badge/Badge.js +28 -24
- package/node_modules/@mui/material/Badge/Badge.mjs +28 -24
- package/node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction.js +6 -2
- package/node_modules/@mui/material/BottomNavigationAction/BottomNavigationAction.mjs +6 -2
- package/node_modules/@mui/material/Button/Button.js +11 -15
- package/node_modules/@mui/material/Button/Button.mjs +11 -15
- package/node_modules/@mui/material/ButtonBase/ButtonBase.js +1 -1
- package/node_modules/@mui/material/ButtonBase/ButtonBase.mjs +1 -1
- package/node_modules/@mui/material/ButtonBase/Ripple.js +21 -11
- package/node_modules/@mui/material/ButtonBase/Ripple.mjs +21 -11
- package/node_modules/@mui/material/ButtonBase/TouchRipple.js +252 -108
- package/node_modules/@mui/material/ButtonBase/TouchRipple.mjs +253 -109
- package/node_modules/@mui/material/ButtonGroup/ButtonGroup.js +3 -3
- package/node_modules/@mui/material/ButtonGroup/ButtonGroup.mjs +3 -3
- package/node_modules/@mui/material/CHANGELOG.md +286 -0
- package/node_modules/@mui/material/CardActionArea/CardActionArea.js +2 -1
- package/node_modules/@mui/material/CardActionArea/CardActionArea.mjs +2 -1
- package/node_modules/@mui/material/Checkbox/Checkbox.js +3 -1
- package/node_modules/@mui/material/Checkbox/Checkbox.mjs +3 -1
- package/node_modules/@mui/material/Chip/Chip.js +2 -1
- package/node_modules/@mui/material/Chip/Chip.mjs +2 -1
- package/node_modules/@mui/material/CircularProgress/CircularProgress.js +85 -55
- package/node_modules/@mui/material/CircularProgress/CircularProgress.mjs +84 -55
- package/node_modules/@mui/material/ClickAwayListener/ClickAwayListener.js +1 -1
- package/node_modules/@mui/material/ClickAwayListener/ClickAwayListener.mjs +1 -1
- package/node_modules/@mui/material/Collapse/Collapse.d.mts +15 -3
- package/node_modules/@mui/material/Collapse/Collapse.d.ts +15 -3
- package/node_modules/@mui/material/Collapse/Collapse.js +44 -31
- package/node_modules/@mui/material/Collapse/Collapse.mjs +43 -30
- package/node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.d.mts +1 -1
- package/node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.d.ts +1 -1
- package/node_modules/@mui/material/Dialog/Dialog.d.mts +2 -2
- package/node_modules/@mui/material/Dialog/Dialog.d.ts +2 -2
- package/node_modules/@mui/material/Dialog/Dialog.js +2 -0
- package/node_modules/@mui/material/Dialog/Dialog.mjs +2 -0
- package/node_modules/@mui/material/Drawer/Drawer.d.mts +2 -2
- package/node_modules/@mui/material/Drawer/Drawer.d.ts +2 -2
- package/node_modules/@mui/material/Fab/Fab.js +2 -1
- package/node_modules/@mui/material/Fab/Fab.mjs +2 -1
- package/node_modules/@mui/material/Fade/Fade.d.mts +15 -2
- package/node_modules/@mui/material/Fade/Fade.d.ts +15 -2
- package/node_modules/@mui/material/Fade/Fade.js +46 -19
- package/node_modules/@mui/material/Fade/Fade.mjs +45 -18
- package/node_modules/@mui/material/FilledInput/FilledInput.js +11 -4
- package/node_modules/@mui/material/FilledInput/FilledInput.mjs +11 -4
- package/node_modules/@mui/material/FormControlLabel/formControlLabelClasses.d.mts +2 -0
- package/node_modules/@mui/material/FormControlLabel/formControlLabelClasses.d.ts +2 -0
- package/node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js +1 -1
- package/node_modules/@mui/material/FormControlLabel/formControlLabelClasses.mjs +1 -1
- package/node_modules/@mui/material/Grow/Grow.d.mts +15 -2
- package/node_modules/@mui/material/Grow/Grow.d.ts +15 -2
- package/node_modules/@mui/material/Grow/Grow.js +45 -28
- package/node_modules/@mui/material/Grow/Grow.mjs +44 -27
- package/node_modules/@mui/material/IconButton/IconButton.js +2 -1
- package/node_modules/@mui/material/IconButton/IconButton.mjs +2 -1
- package/node_modules/@mui/material/InitColorSchemeScript/InitColorSchemeScript.d.mts +6 -6
- package/node_modules/@mui/material/InitColorSchemeScript/InitColorSchemeScript.d.ts +6 -6
- package/node_modules/@mui/material/Input/Input.js +3 -2
- package/node_modules/@mui/material/Input/Input.mjs +3 -2
- package/node_modules/@mui/material/InputBase/InputBase.js +3 -1
- package/node_modules/@mui/material/InputBase/InputBase.mjs +3 -1
- package/node_modules/@mui/material/InputLabel/InputLabel.js +2 -1
- package/node_modules/@mui/material/InputLabel/InputLabel.mjs +2 -1
- package/node_modules/@mui/material/LICENSE +1 -1
- package/node_modules/@mui/material/LinearProgress/LinearProgress.js +187 -120
- package/node_modules/@mui/material/LinearProgress/LinearProgress.mjs +186 -120
- package/node_modules/@mui/material/ListItem/ListItem.d.mts +2 -1
- package/node_modules/@mui/material/ListItem/ListItem.d.ts +2 -1
- package/node_modules/@mui/material/ListItem/ListItem.js +3 -2
- package/node_modules/@mui/material/ListItem/ListItem.mjs +3 -2
- package/node_modules/@mui/material/ListItemButton/ListItemButton.d.mts +1 -1
- package/node_modules/@mui/material/ListItemButton/ListItemButton.d.ts +1 -1
- package/node_modules/@mui/material/ListItemButton/ListItemButton.js +2 -1
- package/node_modules/@mui/material/ListItemButton/ListItemButton.mjs +2 -1
- package/node_modules/@mui/material/Menu/Menu.d.mts +1 -1
- package/node_modules/@mui/material/Menu/Menu.d.ts +1 -1
- package/node_modules/@mui/material/MenuItem/MenuItem.d.mts +1 -0
- package/node_modules/@mui/material/MenuItem/MenuItem.d.ts +1 -0
- package/node_modules/@mui/material/MenuItem/MenuItem.js +7 -0
- package/node_modules/@mui/material/MenuItem/MenuItem.mjs +7 -0
- package/node_modules/@mui/material/MenuList/MenuList.js +6 -2
- package/node_modules/@mui/material/MenuList/MenuList.mjs +6 -2
- package/node_modules/@mui/material/MobileStepper/MobileStepper.js +2 -1
- package/node_modules/@mui/material/MobileStepper/MobileStepper.mjs +2 -1
- package/node_modules/@mui/material/Modal/Modal.js +2 -1
- package/node_modules/@mui/material/Modal/Modal.mjs +2 -1
- package/node_modules/@mui/material/Modal/ModalManager.js +19 -30
- package/node_modules/@mui/material/Modal/ModalManager.mjs +19 -30
- package/node_modules/@mui/material/Modal/useModal.js +7 -0
- package/node_modules/@mui/material/Modal/useModal.mjs +7 -0
- package/node_modules/@mui/material/Modal/useModal.types.d.mts +5 -0
- package/node_modules/@mui/material/Modal/useModal.types.d.ts +5 -0
- package/node_modules/@mui/material/NativeSelect/NativeSelectInput.js +32 -3
- package/node_modules/@mui/material/NativeSelect/NativeSelectInput.mjs +32 -3
- package/node_modules/@mui/material/NoSsr/NoSsr.js +1 -0
- package/node_modules/@mui/material/NoSsr/NoSsr.mjs +1 -0
- package/node_modules/@mui/material/OutlinedInput/NotchedOutline.js +4 -3
- package/node_modules/@mui/material/OutlinedInput/NotchedOutline.mjs +4 -3
- package/node_modules/@mui/material/OutlinedInput/OutlinedInput.js +7 -1
- package/node_modules/@mui/material/OutlinedInput/OutlinedInput.mjs +7 -1
- package/node_modules/@mui/material/PaginationItem/PaginationItem.js +2 -1
- package/node_modules/@mui/material/PaginationItem/PaginationItem.mjs +2 -1
- package/node_modules/@mui/material/Paper/Paper.js +2 -1
- package/node_modules/@mui/material/Paper/Paper.mjs +2 -1
- package/node_modules/@mui/material/Popover/Popover.d.mts +1 -1
- package/node_modules/@mui/material/Popover/Popover.d.ts +1 -1
- package/node_modules/@mui/material/Popper/BasePopper.js +1 -6
- package/node_modules/@mui/material/Popper/BasePopper.mjs +1 -6
- package/node_modules/@mui/material/README.md +3 -2
- package/node_modules/@mui/material/Radio/Radio.js +3 -0
- package/node_modules/@mui/material/Radio/Radio.mjs +3 -0
- package/node_modules/@mui/material/Radio/RadioButtonIcon.js +3 -2
- package/node_modules/@mui/material/Radio/RadioButtonIcon.mjs +3 -2
- package/node_modules/@mui/material/Rating/Rating.js +4 -3
- package/node_modules/@mui/material/Rating/Rating.mjs +4 -3
- package/node_modules/@mui/material/Select/SelectInput.js +118 -25
- package/node_modules/@mui/material/Select/SelectInput.mjs +118 -25
- package/node_modules/@mui/material/Select/utils/SelectFocusSourceContext.d.mts +2 -2
- package/node_modules/@mui/material/Select/utils/SelectFocusSourceContext.d.ts +2 -2
- package/node_modules/@mui/material/Select/utils/closedTypeahead.js +73 -0
- package/node_modules/@mui/material/Select/utils/closedTypeahead.mjs +63 -0
- package/node_modules/@mui/material/Skeleton/Skeleton.js +22 -2
- package/node_modules/@mui/material/Skeleton/Skeleton.mjs +22 -2
- package/node_modules/@mui/material/Slide/Slide.d.mts +15 -2
- package/node_modules/@mui/material/Slide/Slide.d.ts +15 -2
- package/node_modules/@mui/material/Slide/Slide.js +53 -25
- package/node_modules/@mui/material/Slide/Slide.mjs +52 -24
- package/node_modules/@mui/material/Slider/Slider.js +4 -3
- package/node_modules/@mui/material/Slider/Slider.mjs +4 -3
- package/node_modules/@mui/material/Slider/SliderValueLabel.d.mts +2 -2
- package/node_modules/@mui/material/Slider/SliderValueLabel.d.ts +2 -2
- package/node_modules/@mui/material/Slider/useSlider.js +1 -1
- package/node_modules/@mui/material/Slider/useSlider.mjs +1 -1
- package/node_modules/@mui/material/Snackbar/Snackbar.d.mts +2 -2
- package/node_modules/@mui/material/Snackbar/Snackbar.d.ts +2 -2
- package/node_modules/@mui/material/SpeedDial/SpeedDial.d.mts +1 -1
- package/node_modules/@mui/material/SpeedDial/SpeedDial.d.ts +1 -1
- package/node_modules/@mui/material/SpeedDial/SpeedDial.js +6 -2
- package/node_modules/@mui/material/SpeedDial/SpeedDial.mjs +6 -2
- package/node_modules/@mui/material/SpeedDialAction/SpeedDialAction.js +11 -2
- package/node_modules/@mui/material/SpeedDialAction/SpeedDialAction.mjs +12 -3
- package/node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon.js +40 -37
- package/node_modules/@mui/material/SpeedDialIcon/SpeedDialIcon.mjs +40 -37
- package/node_modules/@mui/material/Stack/Stack.d.mts +1 -1
- package/node_modules/@mui/material/Stack/Stack.d.ts +1 -1
- package/node_modules/@mui/material/Stack/Stack.js +1 -1
- package/node_modules/@mui/material/Stack/Stack.mjs +1 -1
- package/node_modules/@mui/material/Step/Step.js +47 -15
- package/node_modules/@mui/material/Step/Step.mjs +47 -15
- package/node_modules/@mui/material/Step/StepContext.d.mts +1 -1
- package/node_modules/@mui/material/Step/StepContext.d.ts +1 -1
- package/node_modules/@mui/material/StepButton/StepButton.js +9 -3
- package/node_modules/@mui/material/StepButton/StepButton.mjs +9 -3
- package/node_modules/@mui/material/StepConnector/StepConnector.js +10 -0
- package/node_modules/@mui/material/StepConnector/StepConnector.mjs +10 -0
- package/node_modules/@mui/material/StepContent/StepContent.d.mts +2 -2
- package/node_modules/@mui/material/StepContent/StepContent.d.ts +2 -2
- package/node_modules/@mui/material/StepContent/StepContent.js +26 -2
- package/node_modules/@mui/material/StepContent/StepContent.mjs +26 -2
- package/node_modules/@mui/material/StepIcon/StepIcon.js +2 -1
- package/node_modules/@mui/material/StepIcon/StepIcon.mjs +2 -1
- package/node_modules/@mui/material/StepLabel/StepLabel.js +52 -7
- package/node_modules/@mui/material/StepLabel/StepLabel.mjs +52 -7
- package/node_modules/@mui/material/Stepper/Stepper.d.mts +2 -0
- package/node_modules/@mui/material/Stepper/Stepper.d.ts +2 -0
- package/node_modules/@mui/material/Stepper/Stepper.js +20 -2
- package/node_modules/@mui/material/Stepper/Stepper.mjs +20 -2
- package/node_modules/@mui/material/Stepper/StepperContext.d.mts +1 -1
- package/node_modules/@mui/material/Stepper/StepperContext.d.ts +1 -1
- package/node_modules/@mui/material/SvgIcon/SvgIcon.js +2 -1
- package/node_modules/@mui/material/SvgIcon/SvgIcon.mjs +2 -1
- package/node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer.js +14 -3
- package/node_modules/@mui/material/SwipeableDrawer/SwipeableDrawer.mjs +14 -3
- package/node_modules/@mui/material/Switch/Switch.js +3 -2
- package/node_modules/@mui/material/Switch/Switch.mjs +3 -2
- package/node_modules/@mui/material/TablePagination/TablePagination.js +10 -3
- package/node_modules/@mui/material/TablePagination/TablePagination.mjs +9 -2
- package/node_modules/@mui/material/TableSortLabel/TableSortLabel.js +2 -1
- package/node_modules/@mui/material/TableSortLabel/TableSortLabel.mjs +2 -1
- package/node_modules/@mui/material/Tabs/Tabs.js +15 -3
- package/node_modules/@mui/material/Tabs/Tabs.mjs +15 -3
- package/node_modules/@mui/material/ToggleButton/RovingToggleButton.d.mts +13 -0
- package/node_modules/@mui/material/ToggleButton/RovingToggleButton.d.ts +13 -0
- package/node_modules/@mui/material/ToggleButton/RovingToggleButton.js +37 -0
- package/node_modules/@mui/material/ToggleButton/RovingToggleButton.mjs +31 -0
- package/node_modules/@mui/material/ToggleButton/ToggleButton.js +14 -2
- package/node_modules/@mui/material/ToggleButton/ToggleButton.mjs +14 -2
- package/node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.js +33 -13
- package/node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroup.mjs +33 -13
- package/node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupContext.d.mts +1 -0
- package/node_modules/@mui/material/ToggleButtonGroup/ToggleButtonGroupContext.d.ts +1 -0
- package/node_modules/@mui/material/Tooltip/Tooltip.d.mts +2 -2
- package/node_modules/@mui/material/Tooltip/Tooltip.d.ts +2 -2
- package/node_modules/@mui/material/Tooltip/Tooltip.js +5 -2
- package/node_modules/@mui/material/Tooltip/Tooltip.mjs +5 -2
- package/node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.js +42 -8
- package/node_modules/@mui/material/Unstable_TrapFocus/FocusTrap.mjs +42 -8
- package/node_modules/@mui/material/Zoom/Zoom.d.mts +15 -2
- package/node_modules/@mui/material/Zoom/Zoom.d.ts +15 -2
- package/node_modules/@mui/material/Zoom/Zoom.js +43 -16
- package/node_modules/@mui/material/Zoom/Zoom.mjs +42 -15
- package/node_modules/@mui/material/index.js +1 -1
- package/node_modules/@mui/material/index.mjs +1 -1
- package/node_modules/@mui/material/internal/SwitchBase.js +1 -1
- package/node_modules/@mui/material/internal/SwitchBase.mjs +1 -1
- package/node_modules/@mui/material/internal/Transition.d.mts +34 -0
- package/node_modules/@mui/material/internal/Transition.d.ts +34 -0
- package/node_modules/@mui/material/internal/Transition.js +463 -0
- package/node_modules/@mui/material/internal/Transition.mjs +455 -0
- package/node_modules/@mui/material/internal/react-transition-group.d.mts +16 -0
- package/node_modules/@mui/material/internal/react-transition-group.d.ts +16 -0
- package/node_modules/@mui/material/locale/zhCN.js +21 -0
- package/node_modules/@mui/material/locale/zhCN.mjs +21 -0
- package/node_modules/@mui/material/package.json +11 -8
- package/node_modules/@mui/material/styles/ThemeProvider.d.mts +1 -1
- package/node_modules/@mui/material/styles/ThemeProvider.d.ts +1 -1
- package/node_modules/@mui/material/styles/ThemeProviderWithVars.d.mts +8 -8
- package/node_modules/@mui/material/styles/ThemeProviderWithVars.d.ts +8 -8
- package/node_modules/@mui/material/styles/createGetSelector.d.mts +5 -5
- package/node_modules/@mui/material/styles/createGetSelector.d.ts +5 -5
- package/node_modules/@mui/material/styles/createMotion.d.mts +8 -0
- package/node_modules/@mui/material/styles/createMotion.d.ts +8 -0
- package/node_modules/@mui/material/styles/createMotion.js +13 -0
- package/node_modules/@mui/material/styles/createMotion.mjs +7 -0
- package/node_modules/@mui/material/styles/createThemeFoundation.d.mts +2 -0
- package/node_modules/@mui/material/styles/createThemeFoundation.d.ts +2 -0
- package/node_modules/@mui/material/styles/createThemeNoVars.d.mts +3 -0
- package/node_modules/@mui/material/styles/createThemeNoVars.d.ts +3 -0
- package/node_modules/@mui/material/styles/createThemeNoVars.js +5 -0
- package/node_modules/@mui/material/styles/createThemeNoVars.mjs +5 -0
- package/node_modules/@mui/material/styles/createTransitions.d.mts +6 -2
- package/node_modules/@mui/material/styles/createTransitions.d.ts +6 -2
- package/node_modules/@mui/material/styles/createTransitions.js +12 -4
- package/node_modules/@mui/material/styles/createTransitions.mjs +12 -4
- package/node_modules/@mui/material/styles/enhanceHighContrast.d.mts +70 -0
- package/node_modules/@mui/material/styles/enhanceHighContrast.d.ts +70 -0
- package/node_modules/@mui/material/styles/enhanceHighContrast.js +502 -0
- package/node_modules/@mui/material/styles/enhanceHighContrast.mjs +495 -0
- package/node_modules/@mui/material/styles/identifier.d.mts +1 -1
- package/node_modules/@mui/material/styles/identifier.d.ts +1 -1
- package/node_modules/@mui/material/styles/index.d.mts +2 -0
- package/node_modules/@mui/material/styles/index.d.ts +2 -0
- package/node_modules/@mui/material/styles/index.js +8 -0
- package/node_modules/@mui/material/styles/index.mjs +1 -0
- package/node_modules/@mui/material/styles/reducedMotion.d.mts +7 -0
- package/node_modules/@mui/material/styles/reducedMotion.d.ts +7 -0
- package/node_modules/@mui/material/styles/reducedMotion.js +21 -0
- package/node_modules/@mui/material/styles/reducedMotion.mjs +14 -0
- package/node_modules/@mui/material/styles/shouldSkipGeneratingVar.js +1 -1
- package/node_modules/@mui/material/styles/shouldSkipGeneratingVar.mjs +1 -1
- package/node_modules/@mui/material/styles/stringifyTheme.js +1 -0
- package/node_modules/@mui/material/styles/stringifyTheme.mjs +1 -0
- package/node_modules/@mui/material/transitions/index.d.mts +1 -1
- package/node_modules/@mui/material/transitions/index.d.ts +1 -1
- package/node_modules/@mui/material/transitions/index.js +0 -11
- package/node_modules/@mui/material/transitions/index.mjs +1 -1
- package/node_modules/@mui/material/transitions/transition.d.mts +1 -12
- package/node_modules/@mui/material/transitions/transition.d.ts +1 -12
- package/node_modules/@mui/material/transitions/types.d.mts +73 -0
- package/node_modules/@mui/material/transitions/types.d.ts +73 -0
- package/node_modules/@mui/material/transitions/useReducedMotion.d.mts +14 -0
- package/node_modules/@mui/material/transitions/useReducedMotion.d.ts +14 -0
- package/node_modules/@mui/material/transitions/useReducedMotion.js +117 -0
- package/node_modules/@mui/material/transitions/useReducedMotion.mjs +110 -0
- package/node_modules/@mui/material/transitions/utils.d.mts +34 -2
- package/node_modules/@mui/material/transitions/utils.d.ts +34 -2
- package/node_modules/@mui/material/transitions/utils.js +33 -4
- package/node_modules/@mui/material/transitions/utils.mjs +31 -4
- package/node_modules/@mui/material/useAutocomplete/useAutocomplete.d.mts +8 -1
- package/node_modules/@mui/material/useAutocomplete/useAutocomplete.d.ts +8 -1
- package/node_modules/@mui/material/useAutocomplete/useAutocomplete.js +76 -13
- package/node_modules/@mui/material/useAutocomplete/useAutocomplete.mjs +76 -13
- package/node_modules/@mui/material/useScrollTrigger/useScrollTrigger.js +2 -1
- package/node_modules/@mui/material/useScrollTrigger/useScrollTrigger.mjs +2 -1
- package/node_modules/@mui/material/utils/memoTheme.d.mts +1 -1
- package/node_modules/@mui/material/utils/memoTheme.d.ts +1 -1
- package/node_modules/@mui/material/utils/types.d.mts +1 -1
- package/node_modules/@mui/material/utils/types.d.ts +1 -1
- package/node_modules/@mui/material/utils/useSlot.d.mts +1 -1
- package/node_modules/@mui/material/utils/useSlot.d.ts +1 -1
- package/node_modules/@mui/material/version/index.js +2 -2
- package/node_modules/@mui/material/version/index.mjs +2 -2
- package/node_modules/@mui/material/zero-styled/index.d.mts +1 -1
- package/node_modules/@mui/material/zero-styled/index.d.ts +1 -1
- package/node_modules/@mui/private-theming/CHANGELOG.md +263 -0
- package/node_modules/@mui/private-theming/LICENSE +1 -1
- package/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.d.mts +9 -2
- package/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.d.ts +9 -2
- package/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js +2 -2
- package/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.mjs +3 -4
- package/node_modules/@mui/private-theming/ThemeProvider/index.d.mts +1 -1
- package/node_modules/@mui/private-theming/ThemeProvider/index.d.ts +1 -1
- package/node_modules/@mui/private-theming/ThemeProvider/index.mjs +1 -0
- package/node_modules/@mui/private-theming/ThemeProvider/nested.d.mts +2 -0
- package/node_modules/@mui/private-theming/ThemeProvider/nested.d.ts +2 -0
- package/node_modules/@mui/private-theming/index.d.mts +1 -2
- package/node_modules/@mui/private-theming/index.d.ts +1 -2
- package/node_modules/@mui/private-theming/index.js +1 -1
- package/node_modules/@mui/private-theming/index.mjs +1 -1
- package/node_modules/@mui/private-theming/package.json +3 -3
- package/node_modules/@mui/private-theming/useTheme/ThemeContext.d.mts +3 -0
- package/node_modules/@mui/private-theming/useTheme/ThemeContext.d.ts +3 -0
- package/node_modules/@mui/private-theming/useTheme/index.d.mts +1 -2
- package/node_modules/@mui/private-theming/useTheme/index.d.ts +1 -2
- package/node_modules/@mui/private-theming/useTheme/useTheme.d.mts +1 -1
- package/node_modules/@mui/private-theming/useTheme/useTheme.d.ts +1 -1
- package/node_modules/@mui/styled-engine/CHANGELOG.md +395 -1245
- package/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.d.mts +2 -2
- package/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.d.ts +2 -2
- package/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js +1 -1
- package/node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.mjs +1 -1
- package/node_modules/@mui/styled-engine/GlobalStyles/index.d.mts +1 -1
- package/node_modules/@mui/styled-engine/GlobalStyles/index.d.ts +1 -1
- package/node_modules/@mui/styled-engine/LICENSE +1 -1
- package/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js +10 -2
- package/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.mjs +11 -4
- package/node_modules/@mui/styled-engine/StyledEngineProvider/index.d.mts +1 -1
- package/node_modules/@mui/styled-engine/StyledEngineProvider/index.d.ts +1 -1
- package/node_modules/@mui/styled-engine/index.d.mts +13 -28
- package/node_modules/@mui/styled-engine/index.d.ts +13 -28
- package/node_modules/@mui/styled-engine/index.js +28 -4
- package/node_modules/@mui/styled-engine/index.mjs +30 -3
- package/node_modules/@mui/styled-engine/package.json +2 -2
- package/node_modules/@mui/system/Box/Box.d.mts +15 -19
- package/node_modules/@mui/system/Box/Box.d.ts +15 -19
- package/node_modules/@mui/system/Box/Box.js +16 -1
- package/node_modules/@mui/system/Box/Box.mjs +17 -1
- package/node_modules/@mui/system/Box/index.js +12 -2
- package/node_modules/@mui/system/Box/index.mjs +1 -0
- package/node_modules/@mui/system/CHANGELOG.md +263 -0
- package/node_modules/@mui/system/Container/index.d.mts +1 -1
- package/node_modules/@mui/system/Container/index.d.ts +1 -1
- package/node_modules/@mui/system/DefaultPropsProvider/DefaultPropsProvider.d.mts +1 -1
- package/node_modules/@mui/system/DefaultPropsProvider/DefaultPropsProvider.d.ts +1 -1
- package/node_modules/@mui/system/GlobalStyles/GlobalStyles.d.mts +1 -1
- package/node_modules/@mui/system/GlobalStyles/GlobalStyles.d.ts +1 -1
- package/node_modules/@mui/system/Grid/Grid.js +0 -1
- package/node_modules/@mui/system/Grid/Grid.mjs +0 -1
- package/node_modules/@mui/system/Grid/GridProps.d.mts +0 -1
- package/node_modules/@mui/system/Grid/GridProps.d.ts +0 -1
- package/node_modules/@mui/system/Grid/gridGenerator.d.mts +2 -2
- package/node_modules/@mui/system/Grid/gridGenerator.d.ts +2 -2
- package/node_modules/@mui/system/InitColorSchemeScript/InitColorSchemeScript.d.mts +3 -1
- package/node_modules/@mui/system/InitColorSchemeScript/InitColorSchemeScript.d.ts +3 -1
- package/node_modules/@mui/system/InitColorSchemeScript/InitColorSchemeScript.js +34 -1
- package/node_modules/@mui/system/InitColorSchemeScript/InitColorSchemeScript.mjs +33 -1
- package/node_modules/@mui/system/LICENSE +1 -1
- package/node_modules/@mui/system/Stack/Stack.js +1 -1
- package/node_modules/@mui/system/Stack/Stack.mjs +1 -1
- package/node_modules/@mui/system/Stack/StackProps.d.mts +1 -1
- package/node_modules/@mui/system/Stack/StackProps.d.ts +1 -1
- package/node_modules/@mui/system/ThemeProvider/ThemeProvider.d.mts +9 -6
- package/node_modules/@mui/system/ThemeProvider/ThemeProvider.d.ts +9 -6
- package/node_modules/@mui/system/ThemeProvider/ThemeProvider.js +3 -2
- package/node_modules/@mui/system/ThemeProvider/ThemeProvider.mjs +3 -2
- package/node_modules/@mui/system/ThemeProvider/index.d.mts +1 -1
- package/node_modules/@mui/system/ThemeProvider/index.d.ts +1 -1
- package/node_modules/@mui/system/ThemeProvider/useLayerOrder.d.mts +1 -1
- package/node_modules/@mui/system/ThemeProvider/useLayerOrder.d.ts +1 -1
- package/node_modules/@mui/system/borders/borders.d.mts +14 -12
- package/node_modules/@mui/system/borders/borders.d.ts +14 -12
- package/node_modules/@mui/system/borders/borders.js +2 -4
- package/node_modules/@mui/system/borders/borders.mjs +3 -4
- package/node_modules/@mui/system/breakpoints/breakpoints.d.mts +13 -16
- package/node_modules/@mui/system/breakpoints/breakpoints.d.ts +13 -16
- package/node_modules/@mui/system/breakpoints/breakpoints.js +17 -16
- package/node_modules/@mui/system/breakpoints/breakpoints.mjs +17 -16
- package/node_modules/@mui/system/compose/compose.d.mts +3 -10
- package/node_modules/@mui/system/compose/compose.d.ts +3 -10
- package/node_modules/@mui/system/compose/compose.js +0 -2
- package/node_modules/@mui/system/compose/compose.mjs +0 -2
- package/node_modules/@mui/system/createBox/createBox.d.mts +4 -4
- package/node_modules/@mui/system/createBox/createBox.d.ts +4 -4
- package/node_modules/@mui/system/createBreakpoints/createBreakpoints.d.mts +3 -54
- package/node_modules/@mui/system/createBreakpoints/createBreakpoints.d.ts +3 -54
- package/node_modules/@mui/system/createBreakpoints/createBreakpoints.js +6 -8
- package/node_modules/@mui/system/createBreakpoints/createBreakpoints.mjs +6 -8
- package/node_modules/@mui/system/createBreakpoints/index.d.mts +0 -1
- package/node_modules/@mui/system/createBreakpoints/index.d.ts +0 -1
- package/node_modules/@mui/system/createTheme/createSpacing.d.mts +1 -1
- package/node_modules/@mui/system/createTheme/createSpacing.d.ts +1 -1
- package/node_modules/@mui/system/createTheme/shape.d.mts +2 -2
- package/node_modules/@mui/system/createTheme/shape.d.ts +2 -2
- package/node_modules/@mui/system/cssGrid/cssGrid.d.mts +13 -13
- package/node_modules/@mui/system/cssGrid/cssGrid.d.ts +13 -13
- package/node_modules/@mui/system/cssGrid/cssGrid.js +0 -8
- package/node_modules/@mui/system/cssGrid/cssGrid.mjs +0 -9
- package/node_modules/@mui/system/cssVars/createCssVarsProvider.js +2 -2
- package/node_modules/@mui/system/cssVars/createCssVarsProvider.mjs +2 -2
- package/node_modules/@mui/system/cssVars/cssVarsParser.js +10 -2
- package/node_modules/@mui/system/cssVars/cssVarsParser.mjs +10 -2
- package/node_modules/@mui/system/cssVars/useCurrentColorScheme.js +1 -0
- package/node_modules/@mui/system/cssVars/useCurrentColorScheme.mjs +1 -0
- package/node_modules/@mui/system/display/display.d.mts +49 -1
- package/node_modules/@mui/system/display/display.d.ts +49 -1
- package/node_modules/@mui/system/display/display.js +2 -1
- package/node_modules/@mui/system/display/display.mjs +2 -1
- package/node_modules/@mui/system/flexbox/flexbox.d.mts +14 -14
- package/node_modules/@mui/system/flexbox/flexbox.d.ts +14 -14
- package/node_modules/@mui/system/getThemeValue/getThemeValue.d.mts +2 -1
- package/node_modules/@mui/system/getThemeValue/getThemeValue.d.ts +2 -1
- package/node_modules/@mui/system/getThemeValue/getThemeValue.js +6 -2
- package/node_modules/@mui/system/getThemeValue/getThemeValue.mjs +7 -3
- package/node_modules/@mui/system/index.js +1 -1
- package/node_modules/@mui/system/index.mjs +1 -1
- package/node_modules/@mui/system/memoTheme.d.mts +1 -1
- package/node_modules/@mui/system/memoTheme.d.ts +1 -1
- package/node_modules/@mui/system/memoize/memoize.d.mts +1 -1
- package/node_modules/@mui/system/memoize/memoize.d.ts +1 -1
- package/node_modules/@mui/system/package.json +62 -62
- package/node_modules/@mui/system/palette/palette.d.mts +4 -3
- package/node_modules/@mui/system/palette/palette.d.ts +4 -3
- package/node_modules/@mui/system/palette/palette.js +1 -0
- package/node_modules/@mui/system/palette/palette.mjs +2 -0
- package/node_modules/@mui/system/positions/positions.d.mts +49 -1
- package/node_modules/@mui/system/positions/positions.d.ts +49 -1
- package/node_modules/@mui/system/positions/positions.js +2 -1
- package/node_modules/@mui/system/positions/positions.mjs +2 -1
- package/node_modules/@mui/system/propsToClassKey/propsToClassKey.d.mts +5 -0
- package/node_modules/@mui/system/propsToClassKey/propsToClassKey.d.ts +5 -0
- package/node_modules/@mui/system/propsToClassKey/propsToClassKey.js +1 -1
- package/node_modules/@mui/system/propsToClassKey/propsToClassKey.mjs +1 -1
- package/node_modules/@mui/system/shadows/shadows.d.mts +4 -4
- package/node_modules/@mui/system/shadows/shadows.d.ts +4 -4
- package/node_modules/@mui/system/sizing/sizing.d.mts +10 -10
- package/node_modules/@mui/system/sizing/sizing.d.ts +10 -10
- package/node_modules/@mui/system/sizing/sizing.js +7 -2
- package/node_modules/@mui/system/sizing/sizing.mjs +5 -1
- package/node_modules/@mui/system/spacing/spacing.d.mts +10 -14
- package/node_modules/@mui/system/spacing/spacing.d.ts +10 -14
- package/node_modules/@mui/system/spacing/spacing.js +17 -13
- package/node_modules/@mui/system/spacing/spacing.mjs +16 -9
- package/node_modules/@mui/system/styleFunctionSx/defaultSxConfig.d.mts +1 -1
- package/node_modules/@mui/system/styleFunctionSx/defaultSxConfig.d.ts +1 -1
- package/node_modules/@mui/system/styleFunctionSx/extendSxProp.d.mts +4 -2
- package/node_modules/@mui/system/styleFunctionSx/extendSxProp.d.ts +4 -2
- package/node_modules/@mui/system/styled/styled.d.mts +1 -1
- package/node_modules/@mui/system/styled/styled.d.ts +1 -1
- package/node_modules/@mui/system/typography/typography.d.mts +10 -10
- package/node_modules/@mui/system/typography/typography.d.ts +10 -10
- package/node_modules/@mui/system/useTheme/useTheme.d.mts +4 -2
- package/node_modules/@mui/system/useTheme/useTheme.d.ts +4 -2
- package/node_modules/@mui/system/useThemeProps/getThemeProps.d.mts +2 -2
- package/node_modules/@mui/system/useThemeProps/getThemeProps.d.ts +2 -2
- package/node_modules/@mui/system/useThemeProps/index.d.mts +1 -1
- package/node_modules/@mui/system/useThemeProps/index.d.ts +1 -1
- package/node_modules/@mui/system/useThemeProps/useThemeProps.js +7 -6
- package/node_modules/@mui/system/useThemeProps/useThemeProps.mjs +7 -6
- package/node_modules/@mui/system/useThemeWithoutDefault/useThemeWithoutDefault.d.mts +2 -1
- package/node_modules/@mui/system/useThemeWithoutDefault/useThemeWithoutDefault.d.ts +2 -1
- package/node_modules/@mui/system/useThemeWithoutDefault/useThemeWithoutDefault.js +2 -2
- package/node_modules/@mui/system/useThemeWithoutDefault/useThemeWithoutDefault.mjs +2 -2
- package/node_modules/@mui/system/version/index.js +3 -3
- package/node_modules/@mui/system/version/index.mjs +3 -3
- package/node_modules/@mui/types/CHANGELOG.md +395 -1245
- package/node_modules/@mui/types/LICENSE +1 -1
- package/node_modules/@mui/types/index.d.mts +1 -1
- package/node_modules/@mui/types/index.d.ts +1 -1
- package/node_modules/@mui/types/index.js +1 -1
- package/node_modules/@mui/types/index.mjs +1 -1
- package/node_modules/@mui/types/package.json +2 -2
- package/node_modules/@mui/utils/CHANGELOG.md +263 -0
- package/node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.d.mts +2 -1
- package/node_modules/@mui/utils/ClassNameGenerator/ClassNameGenerator.d.ts +2 -1
- package/node_modules/@mui/utils/LICENSE +1 -1
- package/node_modules/@mui/utils/elementAcceptingRef/elementAcceptingRef.js +1 -1
- package/node_modules/@mui/utils/elementAcceptingRef/elementAcceptingRef.mjs +1 -1
- package/node_modules/@mui/utils/elementTypeAcceptingRef/elementTypeAcceptingRef.js +1 -1
- package/node_modules/@mui/utils/elementTypeAcceptingRef/elementTypeAcceptingRef.mjs +1 -1
- package/node_modules/@mui/utils/fastDeepAssign/fastDeepAssign.js +6 -1
- package/node_modules/@mui/utils/fastDeepAssign/fastDeepAssign.mjs +6 -1
- package/node_modules/@mui/utils/getDisplayName/getDisplayName.d.mts +1 -1
- package/node_modules/@mui/utils/getDisplayName/getDisplayName.d.ts +1 -1
- package/node_modules/@mui/utils/getDisplayName/getDisplayName.js +1 -1
- package/node_modules/@mui/utils/getDisplayName/getDisplayName.mjs +1 -1
- package/node_modules/@mui/utils/index.d.mts +1 -0
- package/node_modules/@mui/utils/index.d.ts +1 -0
- package/node_modules/@mui/utils/index.js +9 -1
- package/node_modules/@mui/utils/index.mjs +2 -1
- package/node_modules/@mui/utils/isHostComponent/isHostComponent.d.mts +1 -1
- package/node_modules/@mui/utils/isHostComponent/isHostComponent.d.ts +1 -1
- package/node_modules/@mui/utils/isMuiElement/isMuiElement.js +1 -1
- package/node_modules/@mui/utils/isMuiElement/isMuiElement.mjs +1 -1
- package/node_modules/@mui/utils/package.json +18 -4
- package/node_modules/@mui/utils/types/DataAttributes.d.mts +45 -0
- package/node_modules/@mui/utils/types/DataAttributes.d.ts +45 -0
- package/node_modules/@mui/utils/types/DataAttributes.js +5 -0
- package/node_modules/@mui/utils/types/DataAttributes.mjs +1 -0
- package/node_modules/@mui/utils/types/index.d.mts +4 -2
- package/node_modules/@mui/utils/types/index.d.ts +4 -2
- package/node_modules/@mui/utils/useEventCallback/useEventCallback.d.mts +1 -1
- package/node_modules/@mui/utils/useEventCallback/useEventCallback.d.ts +1 -1
- package/node_modules/@mui/utils/useEventCallback/useEventCallback.js +1 -1
- package/node_modules/@mui/utils/useEventCallback/useEventCallback.mjs +1 -1
- package/node_modules/@mui/utils/useForkRef/useForkRef.js +2 -2
- package/node_modules/@mui/utils/useForkRef/useForkRef.mjs +2 -2
- package/node_modules/@mui/utils/useId/useId.js +1 -0
- package/node_modules/@mui/utils/useId/useId.mjs +1 -0
- package/node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.js +2 -2
- package/node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.mjs +2 -2
- package/node_modules/@mui/utils/useRovingTabIndex/useRovingTabIndex.d.mts +1 -1
- package/node_modules/@mui/utils/useRovingTabIndex/useRovingTabIndex.d.ts +1 -1
- package/node_modules/@mui/utils/useRovingTabIndex/useRovingTabIndex.js +7 -5
- package/node_modules/@mui/utils/useRovingTabIndex/useRovingTabIndex.mjs +7 -5
- package/node_modules/@mui/utils/useValueAsRef/index.d.mts +1 -0
- package/node_modules/@mui/utils/useValueAsRef/index.d.ts +1 -0
- package/node_modules/@mui/utils/useValueAsRef/index.js +13 -0
- package/node_modules/@mui/utils/useValueAsRef/index.mjs +1 -0
- package/node_modules/@mui/utils/useValueAsRef/useValueAsRef.d.mts +14 -0
- package/node_modules/@mui/utils/useValueAsRef/useValueAsRef.d.ts +14 -0
- package/node_modules/@mui/utils/useValueAsRef/useValueAsRef.js +35 -0
- package/node_modules/@mui/utils/useValueAsRef/useValueAsRef.mjs +29 -0
- package/node_modules/react-is/package.json +3 -3
- package/package.json +3 -3
- /package/node_modules/@mui/material/transitions/{transition.js → types.js} +0 -0
- /package/node_modules/@mui/material/transitions/{transition.mjs → types.mjs} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_buffer","require","_index","_nodes","_t","_tokenMap","_types2","isExpression","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumMember","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","commentIsNewline","c","type","test","value","Printer","constructor","format","map","tokens","originalCode","tokenContext","TokenContext","normal","_tokens","_originalCode","_currentNode","_currentTypeId","_indent","_indentRepeat","_insideAux","_noLineTerminator","_noLineTerminatorAfterNode","_printAuxAfterOnNextUserNode","_printedComments","Set","_lastCommentLine","_innerCommentsState","_flags","tokenMap","_boundGetRawIdentifier","_printSemicolonBeforeNextNode","_printSemicolonBeforeNextToken","indent","style","length","_inputMap","_buf","Buffer","preserveFormat","compact","concise","retainLines","retainFunctionParens","auxiliaryCommentBefore","auxiliaryCommentAfter","enterDelimited","oldNoLineTerminatorAfterNode","generate","ast","TokenMap","_getRawIdentifier","bind","print","_maybeAddAuxComment","get","flags","dedent","semicolon","force","node","start","end","endMatches","getCurrentLine","indexes","getIndexes","_catchUpTo","loc","_appendChar","_queue","rightBrace","minified","removeLastSemicolon","sourceWithOffset","token","rightParens","space","_space","lastCp","getLastChar","word","str","noLineTerminatorAfter","forInOrInitHeadAccumulatePassThroughMask","_maybePrintInnerComments","_catchUpToCurrentToken","lastChar","charCodeAt","_append","setLastChar","number","isNonDecimalLiteral","secondChar","Number","isInteger","maybeNewline","occurrenceCount","mayNeedSpace","strFirst","tokenChar","char","newline","i","getNewlineCount","j","_newline","endsWith","checkQueue","_last","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","_queuedChar","findMatching","_maybeIndent","append","noIndent","appendChar","queue","_shouldIndent","catchUp","line","count","column","index","spacesCount","getCurrentColumn","spaces","slice","replace","repeat","printTerminatorless","resetTokenContext","trailingCommentsLineOffset","_node$leadingComments","_node$leadingComments2","extra","changedFlags","_compact","nodeInfo","generatorInfosMap","undefined","ReferenceError","JSON","stringify","name","printMethod","nodeId","needsParens","parent","parentId","oldInAux","oldTokenContext","forInOrInitHeadAccumulate","parenthesized","shouldPrintParens","parentNeedsParens","leadingComments","callee","indentParenthesized","some","isLastChild","_node$trailingComment","trailingComments","_printLeadingComments","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","_printComment","getPossibleRaw","raw","rawValue","printJoin","nodes","statement","separator","printTrailingSeparator","_nodes$0$loc","startLine","len","hasContent","call","lastCommentLine","_nodes$loc","offset","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","nextTokenStr","nextTokenOccurrenceCount","_this$tokenMap","state","printInnerComments","nextToken","hasSpace","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","shouldPrintTrailingComma","listEnd","listEndIndex","findLastIndex","matchesOriginal","String","fromCharCode","_shouldPrintComment","ignore","has","commentTok","find","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","val","adjustMultilineComment","_comment$loc","newlineRegex","RegExp","indentSize","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","_default","exports","default","last"],"sources":["../src/printer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport Buffer from \"./buffer.ts\";\nimport type { Loc, Pos } from \"./buffer.ts\";\nimport { isLastChild, parentNeedsParens } from \"./node/index.ts\";\nimport { generatorInfosMap } from \"./nodes.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumMember,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport { TokenMap } from \"./token-map.ts\";\n\nimport type { GeneratorOptions } from \"./index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport type { Token } from \"@babel/parser\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nfunction commentIsNewline(c: t.Comment) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\n\nimport { TokenContext } from \"./node/index.ts\";\nimport { _getRawIdentifier } from \"./generators/types.ts\";\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nconst enum PRINTER_FLAGS {\n EMPTY = 0,\n PRESERVE_FORMAT = 1 << 0,\n COMPACT = 1 << 1,\n CONCISE = 1 << 2,\n RETAIN_LINES = 1 << 3,\n RETAIN_FUNCTION_PARENS = 1 << 4,\n AUX_COMMENTS = 1 << 5,\n}\n\nconst enum LAST_CHAR_KINDS {\n EMPTY = 0,\n NORMAL = -1,\n INTEGER = -2,\n WORD = -3,\n}\n\nconst enum INNER_COMMENTS_STATE {\n DISALLOWED = 0,\n ALLOWED = 1,\n PRINTED = 2,\n\n WITH_INDENT = 4,\n MASK = 3,\n}\n\nconst enum PRINT_COMMENTS_RESULT {\n PRINTED_NONE = 0,\n PRINTED_SOME = 1,\n PRINTED_ALL = 2,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n preserveFormat: boolean | undefined;\n retainLines: boolean | undefined;\n retainFunctionParens: boolean | undefined;\n comments: boolean | undefined;\n auxiliaryCommentBefore: string | undefined;\n auxiliaryCommentAfter: string | undefined;\n compact: boolean | \"auto\" | undefined;\n minified: boolean | undefined;\n concise: boolean | undefined;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n * @deprecated Removed in Babel 8.\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface PrintSequenceOptions {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer, occurrenceCount: number, last: boolean) => void;\n statement?: boolean;\n indent?: boolean;\n printTrailingSeparator?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(\n format: Format,\n map: SourceMap | null,\n tokens: Token[] | null = null,\n originalCode: string | null = null,\n ) {\n this.format = format;\n\n this._tokens = tokens;\n this._originalCode = originalCode;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap || null;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n\n const {\n preserveFormat,\n compact,\n concise,\n retainLines,\n retainFunctionParens,\n } = format;\n if (preserveFormat) {\n this._flags |= PRINTER_FLAGS.PRESERVE_FORMAT;\n }\n if (compact) {\n this._flags |= PRINTER_FLAGS.COMPACT;\n }\n if (concise) {\n this._flags |= PRINTER_FLAGS.CONCISE;\n }\n if (retainLines) {\n this._flags |= PRINTER_FLAGS.RETAIN_LINES;\n }\n if (retainFunctionParens) {\n this._flags |= PRINTER_FLAGS.RETAIN_FUNCTION_PARENS;\n }\n if (format.auxiliaryCommentBefore || format.auxiliaryCommentAfter) {\n this._flags |= PRINTER_FLAGS.AUX_COMMENTS;\n }\n }\n declare _inputMap: TraceMap | null;\n\n declare format: Format;\n\n enterDelimited() {\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (oldNoLineTerminatorAfterNode !== null) {\n this._noLineTerminatorAfterNode = null;\n }\n return oldNoLineTerminatorAfterNode;\n }\n\n tokenContext: number = TokenContext.normal;\n\n _tokens: Token[] | null = null;\n _originalCode: string | null = null;\n\n declare _buf: Buffer;\n _currentNode: t.Node | null = null;\n _currentTypeId: number | null = null;\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _noLineTerminator: boolean = false;\n _noLineTerminatorAfterNode: t.Node | null = null;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _lastCommentLine = 0;\n _innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n _flags = PRINTER_FLAGS.EMPTY;\n\n tokenMap: TokenMap | null = null;\n\n _boundGetRawIdentifier: ((node: t.Identifier) => string) | null = null;\n\n generate(ast: t.Node) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens!, this._originalCode!);\n this._boundGetRawIdentifier = _getRawIdentifier.bind(this);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent += this._indentRepeat;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent -= this._indentRepeat;\n }\n\n /**\n * If the next token is on the same line, we must first print a semicolon.\n * This option is only used in `preserveFormat` node, for semicolons that\n * might have omitted due to them being absent in the original code (thanks\n * to ASI).\n *\n * We need both *NextToken and *NextNode because we only want to insert the\n * semicolon when the next token starts a new node, and not in cases like\n * foo} (where } is not starting a new node). So we first set *NextNode, and\n * then the print() method will move it to *NextToken.\n */\n _printSemicolonBeforeNextNode: number = -1;\n _printSemicolonBeforeNextToken: number = -1;\n\n /**\n * Add a semicolon to the buffer.\n */\n semicolon(force: boolean = false): void {\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n const node = this._currentNode!;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap!.endMatches(node, \";\")) {\n // no semicolon\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap!.getIndexes(this._currentNode!)!;\n this._catchUpTo(this._tokens![indexes[indexes.length - 1]].loc.start);\n }\n }\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this._flags & (PRINTER_FLAGS.PRESERVE_FORMAT | PRINTER_FLAGS.COMPACT)) {\n return;\n }\n\n if (force) {\n this._space();\n } else {\n const lastCp = this.getLastChar(true);\n if (\n lastCp !== 0 &&\n lastCp !== charCodes.space &&\n lastCp !== charCodes.lineFeed\n ) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str);\n\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) this._catchUpToCurrentToken(str);\n\n const lastChar = this.getLastChar();\n\n if (\n lastChar === LAST_CHAR_KINDS.INTEGER ||\n lastChar === LAST_CHAR_KINDS.WORD ||\n // prevent concatenating words and creating // comment out of division and regex\n (lastChar === charCodes.slash && str.charCodeAt(0) === charCodes.slash)\n ) {\n this._space();\n }\n this._append(str, false);\n\n this.setLastChar(-3);\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted immediately after them.\n if (\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot\n ) {\n this.setLastChar(LAST_CHAR_KINDS.INTEGER);\n }\n }\n\n /**\n * Writes a simple token.\n *\n * @param {string} str The string to append.\n * @param {boolean} [maybeNewline=false] Wether `str` might potentially\n * contain a line terminator or not.\n * @param {number} [occurrenceCount=0] The occurrence count of this token in\n * the current node. This is used when printing in `preserveFormat` mode,\n * to know which token we should map to (for example, to disambiguate the\n * commas in an array literal).\n */\n token(\n str: string,\n maybeNewline = false,\n occurrenceCount = 0,\n mayNeedSpace: boolean = false,\n ): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str, occurrenceCount);\n\n const flags = this._flags;\n\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._catchUpToCurrentToken(str, occurrenceCount);\n }\n\n if (mayNeedSpace) {\n const strFirst = str.charCodeAt(0);\n if (\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n (((strFirst === charCodes.dash && str === \"--\") ||\n // Needs spaces to avoid changing a! == 0 to a!== 0\n strFirst === charCodes.equalsTo) &&\n this.getLastChar() === charCodes.exclamationMark) ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign &&\n this.getLastChar() === charCodes.plusSign) ||\n (strFirst === charCodes.dash &&\n this.getLastChar() === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot &&\n this.getLastChar() === LAST_CHAR_KINDS.INTEGER)\n ) {\n this._space();\n }\n }\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n\n tokenChar(char: number, occurrenceCount = 0): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(char, occurrenceCount);\n\n const flags = this._flags;\n\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._catchUpToCurrentToken(char, occurrenceCount);\n }\n\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign &&\n this.getLastChar() === charCodes.plusSign) ||\n (char === charCodes.dash && this.getLastChar() === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this.getLastChar() === LAST_CHAR_KINDS.INTEGER)\n ) {\n this._space();\n }\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n * This function checks the number of newlines in the queue and subtracts them.\n * It currently has some limitations.\n * @see {Buffer#getNewlineCount}\n */\n newline(i: number = 1, flags = this._flags): void {\n if (i <= 0) return;\n\n if (flags & (PRINTER_FLAGS.RETAIN_LINES | PRINTER_FLAGS.COMPACT)) {\n return;\n }\n\n if (flags & PRINTER_FLAGS.CONCISE) {\n this.space();\n return;\n }\n\n if (i > 2) i = 2; // Max two lines\n\n i -= this._buf.getNewlineCount();\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar(true) === char;\n }\n\n getLastChar(checkQueue?: boolean): number {\n return this._buf.getLastChar(checkQueue);\n }\n\n setLastChar(char: number) {\n this._buf._last = char;\n }\n\n exactSource(loc: Loc | null | undefined, cb: () => void) {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | null | undefined,\n columnOffset: number,\n ): void {\n if (!loc || this.format.preserveFormat) return;\n\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n\n sourceIdentifierName(identifierName: string, pos?: Pos): void {\n if (!this._buf._canMarkIdName) return;\n\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n // Drop trailing spaces when a newline is inserted.\n if (this._buf._queuedChar === charCodes.space) this._buf._queuedChar = 0;\n\n this._appendChar(charCodes.lineFeed, true);\n }\n\n _catchUpToCurrentToken(\n str: string | number,\n occurrenceCount: number = 0,\n ): void {\n // Assert: this.tokenMap\n\n const token = this.tokenMap!.findMatching(\n this._currentNode!,\n str,\n occurrenceCount,\n );\n if (token) this._catchUpTo(token.loc.start);\n\n if (\n this._printSemicolonBeforeNextToken !== -1 &&\n this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()\n ) {\n this._appendChar(charCodes.semicolon, true);\n }\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeIndent();\n\n this._buf.append(str, maybeNewline);\n }\n\n _appendChar(char: number, noIndent?: boolean): void {\n if (!noIndent) {\n this._maybeIndent();\n }\n\n this._buf.appendChar(char);\n }\n\n _queue(char: typeof charCodes.space | typeof charCodes.semicolon): void {\n this._buf.queue(char);\n\n this.setLastChar(-1);\n }\n\n _maybeIndent(): void {\n const indent = this._shouldIndent();\n if (indent > 0) {\n this._buf._appendChar(-1, indent, false);\n }\n }\n\n _shouldIndent() {\n // we've got a newline before us so prepend on the indentation\n return this.endsWith(charCodes.lineFeed) ? this._indent : 0;\n }\n\n catchUp(line: number) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n const flags = this._flags;\n if ((flags & PRINTER_FLAGS.PRESERVE_FORMAT) === 0) {\n if (flags & PRINTER_FLAGS.RETAIN_LINES && loc?.[prop]) {\n this.catchUp(loc[prop].line);\n }\n return;\n }\n\n // catch up to this nodes newline if we're behind\n const pos = loc?.[prop];\n if (pos != null) this._catchUpTo(pos);\n }\n\n _catchUpTo({ line, column, index }: Pos) {\n const count = line - this._buf.getCurrentLine();\n if (count > 0 && this._noLineTerminator) {\n // We cannot inject new lines when _noLineTemrinator is set\n // to `true`, or we would generate invalid code.\n return;\n }\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n\n const spacesCount =\n count > 0 ? column : column - this._buf.getCurrentColumn();\n if (spacesCount > 0) {\n const spaces = this._originalCode\n ? this._originalCode\n .slice(index - spacesCount, index)\n // https://tc39.es/ecma262/#sec-white-space\n .replace(/[^\\t\\v\\f\\uFEFF\\p{Space_Separator}]/gu, \" \")\n : \" \".repeat(spacesCount);\n this._append(spaces, false);\n this.setLastChar(charCodes.space);\n }\n }\n\n printTerminatorless(node: t.Node) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n this._noLineTerminator = true;\n this.print(node);\n }\n\n print(\n node: t.Node | null | undefined,\n noLineTerminatorAfter: boolean = false,\n resetTokenContext: boolean = false,\n // trailingCommentsLineOffset also used to check if called from printJoin\n // it will be ignored if `noLineTerminatorAfter||this._noLineTerminator`\n trailingCommentsLineOffset?: number,\n ) {\n if (!node) return;\n\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n\n const { type, loc, extra } = node;\n\n const flags = this._flags;\n let changedFlags = false;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n this._flags |= PRINTER_FLAGS.CONCISE;\n changedFlags = true;\n }\n\n const nodeInfo = generatorInfosMap.get(type);\n if (nodeInfo === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n type,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n const [printMethod, nodeId, needsParens] = nodeInfo;\n\n const parent = this._currentNode;\n const parentId = this._currentTypeId;\n this._currentNode = node;\n this._currentTypeId = nodeId;\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode;\n }\n\n let oldInAux;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n oldInAux = this._insideAux;\n this._insideAux = loc == null;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n }\n\n let oldTokenContext = 0;\n if (resetTokenContext) {\n oldTokenContext = this.tokenContext;\n if (oldTokenContext & TokenContext.forInOrInitHeadAccumulate) {\n this.tokenContext = 0;\n } else {\n oldTokenContext = 0;\n }\n }\n\n const parenthesized =\n extra != null && (extra.parenthesized as boolean | undefined);\n let shouldPrintParens =\n (parenthesized && flags & PRINTER_FLAGS.PRESERVE_FORMAT) ||\n (parenthesized &&\n flags & PRINTER_FLAGS.RETAIN_FUNCTION_PARENS &&\n nodeId === __node(\"FunctionExpression\")) ||\n (parent &&\n (parentNeedsParens(node, parent, parentId!) ||\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n (needsParens != null &&\n needsParens(\n node,\n parent,\n parentId!,\n this.tokenContext,\n flags & PRINTER_FLAGS.PRESERVE_FORMAT\n ? this._boundGetRawIdentifier!\n : undefined,\n ))));\n\n if (\n !shouldPrintParens &&\n parenthesized &&\n node.leadingComments?.length &&\n node.leadingComments[0].type === \"CommentBlock\"\n ) {\n switch (parentId) {\n case __node(\"ExpressionStatement\"):\n case __node(\"VariableDeclarator\"):\n case __node(\"AssignmentExpression\"):\n case __node(\"ReturnStatement\"):\n break;\n case __node(\"CallExpression\"):\n case __node(\"OptionalCallExpression\"):\n case __node(\"NewExpression\"):\n // @ts-expect-error checked by parentTypeId\n if (parent.callee !== node) break;\n // falls through\n default:\n shouldPrintParens = true;\n }\n }\n\n let indentParenthesized = false;\n if (\n !shouldPrintParens &&\n this._noLineTerminator &&\n (node.leadingComments?.some(commentIsNewline) ||\n (flags & PRINTER_FLAGS.RETAIN_LINES &&\n loc &&\n loc.start.line > this._buf.getCurrentLine()))\n ) {\n shouldPrintParens = true;\n indentParenthesized = true;\n }\n\n let oldNoLineTerminatorAfterNode;\n if (!shouldPrintParens) {\n noLineTerminatorAfter ||=\n !!parent &&\n this._noLineTerminatorAfterNode === parent &&\n isLastChild(parent, node);\n if (noLineTerminatorAfter) {\n if (node.trailingComments?.some(commentIsNewline)) {\n if (isExpression(node)) shouldPrintParens = true;\n } else {\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = node;\n }\n }\n }\n\n if (shouldPrintParens) {\n this.token(\"(\");\n if (indentParenthesized) this.indent();\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n if (!resetTokenContext) {\n oldTokenContext = this.tokenContext;\n }\n if (oldTokenContext & TokenContext.forInOrInitHeadAccumulate) {\n this.tokenContext = 0;\n }\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = null;\n }\n\n this._printLeadingComments(node, parent);\n\n this.exactSource(\n nodeId === __node(\"Program\") || nodeId === __node(\"File\") ? null : loc,\n printMethod.bind(this, node, parent),\n );\n\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n if (indentParenthesized) {\n this.dedent();\n this.newline();\n }\n this.token(\")\");\n this._noLineTerminator = noLineTerminatorAfter;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n if (oldTokenContext) this.tokenContext = oldTokenContext;\n\n // end\n this._currentNode = parent;\n this._currentTypeId = parentId;\n if (changedFlags) {\n this._flags = flags;\n }\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._insideAux = oldInAux!;\n }\n\n if (oldNoLineTerminatorAfterNode != null) {\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra?.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: t.Node[] | undefined | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintJoinOptions[\"separator\"] | null,\n printTrailingSeparator?: boolean | null,\n resetTokenContext?: boolean,\n trailingCommentsLineOffset?: number,\n ) {\n if (!nodes?.length) return;\n\n const flags = this._flags;\n\n if (indent == null && flags & PRINTER_FLAGS.RETAIN_LINES) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n\n if (indent) this.indent(flags);\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // don't add newlines at the beginning of the file\n if (statement && i === 0 && this._buf.hasContent()) {\n this.newline(1, flags);\n }\n\n this.print(\n node,\n false,\n resetTokenContext,\n trailingCommentsLineOffset || 0,\n );\n\n if (separator != null) {\n if (i < len - 1) separator.call(this, i, false);\n else if (printTrailingSeparator) separator.call(this, i, true);\n }\n\n if (statement) {\n if (i + 1 === len) {\n this.newline(1, flags);\n } else {\n const lastCommentLine = this._lastCommentLine;\n if (lastCommentLine > 0) {\n const offset =\n (nodes[i + 1].loc?.start.line || 0) - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1, flags);\n continue;\n }\n }\n\n this.newline(1, flags);\n }\n }\n }\n\n if (indent) this.dedent(flags);\n }\n\n printAndIndentOnComments(node: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node);\n if (indent) this.dedent();\n }\n\n printBlock(body: t.Statement) {\n if (body.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(body);\n }\n\n _printTrailingComments(\n node: t.Node,\n parent?: t.Node | null,\n lineOffset?: number,\n ) {\n const { innerComments, trailingComments } = node;\n // We print inner comments here, so that if for some reason they couldn't\n // be printed in earlier locations they are still printed *somewhere*,\n // even if at the end of the node.\n if (innerComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n innerComments,\n node,\n parent,\n lineOffset,\n );\n }\n if (trailingComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n trailingComments,\n node,\n parent,\n lineOffset,\n );\n } else {\n this._lastCommentLine = 0;\n }\n }\n\n _printLeadingComments(node: t.Node, parent: t.Node | null) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(COMMENT_TYPE.LEADING, comments, node, parent);\n }\n\n _maybePrintInnerComments(\n nextTokenStr: string | number,\n nextTokenOccurrenceCount?: number,\n ) {\n const state = this._innerCommentsState;\n switch (state & INNER_COMMENTS_STATE.MASK) {\n case INNER_COMMENTS_STATE.DISALLOWED:\n this._innerCommentsState =\n INNER_COMMENTS_STATE.ALLOWED | INNER_COMMENTS_STATE.WITH_INDENT;\n return;\n case INNER_COMMENTS_STATE.ALLOWED:\n this.printInnerComments(\n (state & INNER_COMMENTS_STATE.WITH_INDENT) > 0,\n this.tokenMap?.findMatching(\n this._currentNode!,\n nextTokenStr,\n nextTokenOccurrenceCount,\n ),\n );\n }\n }\n\n printInnerComments(indent = true, nextToken?: Token | null) {\n const node = this._currentNode!;\n const comments = node.innerComments;\n if (!comments?.length) {\n this._innerCommentsState = INNER_COMMENTS_STATE.PRINTED;\n return;\n }\n\n const hasSpace = this.endsWith(charCodes.space);\n if (indent) this.indent();\n\n switch (\n this._printComments(\n COMMENT_TYPE.INNER,\n comments,\n node,\n undefined,\n undefined,\n nextToken,\n )\n ) {\n case PRINT_COMMENTS_RESULT.PRINTED_ALL:\n this._innerCommentsState = INNER_COMMENTS_STATE.PRINTED;\n // falls through\n case PRINT_COMMENTS_RESULT.PRINTED_SOME:\n if (hasSpace) this.space();\n }\n\n if (indent) this.dedent();\n }\n\n noIndentInnerCommentsHere() {\n this._innerCommentsState &= ~INNER_COMMENTS_STATE.WITH_INDENT;\n }\n\n printSequence(\n nodes: t.Node[],\n indent?: boolean,\n resetTokenContext?: boolean,\n trailingCommentsLineOffset?: number,\n ) {\n this.printJoin(\n nodes,\n true,\n indent ?? false,\n undefined,\n undefined,\n resetTokenContext,\n trailingCommentsLineOffset,\n );\n }\n\n printList(\n items: t.Node[] | null | undefined,\n printTrailingSeparator?: boolean | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintListOptions[\"separator\"],\n resetTokenContext?: boolean,\n ) {\n this.printJoin(\n items,\n statement,\n indent,\n separator ?? commaSeparator,\n printTrailingSeparator,\n resetTokenContext,\n );\n }\n\n shouldPrintTrailingComma(listEnd: string | number): boolean | null {\n if (!this.tokenMap) return null;\n\n const listEndIndex = this.tokenMap.findLastIndex(\n this._currentNode!,\n token =>\n this.tokenMap!.matchesOriginal(\n token,\n typeof listEnd === \"number\" ? String.fromCharCode(listEnd) : listEnd,\n ),\n );\n if (listEndIndex <= 0) return null;\n return this.tokenMap.matchesOriginal(this._tokens![listEndIndex - 1], \",\");\n }\n\n // Returns `PRINT_COMMENT_HINT.DEFER` if the comment cannot be printed in this position due to\n // line terminators, signaling that the print comments loop can stop and\n // resume printing comments at the next possible position. This happens when\n // printing inner comments, since if we have an inner comment with a multiline\n // there is at least one inner position where line terminators are allowed.\n _shouldPrintComment(\n comment: t.Comment,\n nextToken?: Token | null,\n ): PRINT_COMMENT_HINT {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return PRINT_COMMENT_HINT.SKIP;\n\n if (this._printedComments.has(comment)) return PRINT_COMMENT_HINT.SKIP;\n\n if (\n this._noLineTerminator &&\n HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)\n ) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n\n if (nextToken && this.tokenMap) {\n const commentTok = this.tokenMap.find(\n this._currentNode!,\n token => token.value === comment.value,\n );\n if (commentTok && commentTok.start > nextToken.start) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n }\n\n this._printedComments.add(comment);\n\n if (!this.format.shouldPrintComment(comment.value)) {\n return PRINT_COMMENT_HINT.SKIP;\n }\n\n return PRINT_COMMENT_HINT.ALLOW;\n }\n\n _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.ALL &&\n !noLineTerminator;\n\n if (\n printNewLines &&\n this._buf.hasContent() &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.LEADING\n ) {\n this.newline(1);\n }\n\n switch (this.getLastChar(true)) {\n // Avoid converting a / operator into a line comment by appending /* to it\n case charCodes.slash:\n this._space();\n // falls through\n case charCodes.leftSquareBracket:\n case charCodes.leftCurlyBrace:\n case charCodes.leftParenthesis:\n break;\n\n default:\n this.space();\n }\n\n let val;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n if (this._flags & PRINTER_FLAGS.CONCISE) {\n val = val.replace(/\\n(?!$)/g, `\\n`);\n } else {\n let indentSize = this.format.retainLines\n ? 0\n : this._buf.getCurrentColumn();\n\n if (this._shouldIndent() || this.format.retainLines) {\n indentSize += this._indent;\n }\n\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n // It was a single-line comment, so it's guaranteed to not\n // contain newlines and it can be safely printed as a block\n // comment.\n val = `/*${comment.value}*/`;\n }\n\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n\n if (!isBlockComment && !noLineTerminator) {\n this._newline();\n }\n\n if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.TRAILING) {\n this.newline(1);\n }\n }\n\n _printComments(\n type: COMMENT_TYPE,\n comments: t.Comment[],\n node: t.Node,\n parent?: t.Node | null,\n lineOffset: number = 0,\n nextToken?: Token | null,\n ): PRINT_COMMENTS_RESULT {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc!.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc!.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n\n const { _noLineTerminator, _flags } = this;\n\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n\n const shouldPrint = this._shouldPrintComment(comment, nextToken);\n if (shouldPrint === PRINT_COMMENT_HINT.DEFER) {\n return i === 0\n ? PRINT_COMMENTS_RESULT.PRINTED_NONE\n : PRINT_COMMENTS_RESULT.PRINTED_SOME;\n }\n if (hasLoc && comment.loc && shouldPrint === PRINT_COMMENT_HINT.ALLOW) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === COMMENT_TYPE.LEADING) {\n let offset = 0;\n if (i === 0) {\n // Because currently we cannot handle blank lines before leading comments,\n // we always wrap before and after multi-line comments.\n if (\n this._buf.hasContent() &&\n (comment.type === \"CommentLine\" ||\n commentStartLine !== commentEndLine)\n ) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n const count = Math.max(\n nodeStartLine - lastLine,\n leadingCommentNewline,\n );\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeStartLine;\n }\n } else if (type === COMMENT_TYPE.INNER) {\n const offset =\n commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n const count = Math.min(1, nodeEndLine - lastLine);\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeEndLine;\n }\n } else {\n const offset =\n commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== PRINT_COMMENT_HINT.ALLOW) {\n continue;\n }\n\n if (len === 1) {\n const singleLine = comment.loc\n ? comment.loc.start.line === comment.loc.end.line\n : !HAS_NEWLINE.test(comment.value);\n\n const shouldSkipNewline =\n singleLine &&\n !isStatement(node) &&\n !isClassBody(parent) &&\n !isTSInterfaceBody(parent) &&\n !isTSEnumMember(node);\n\n if (type === COMMENT_TYPE.LEADING) {\n this._printComment(\n comment,\n (shouldSkipNewline && node.type !== \"ObjectExpression\") ||\n (singleLine && isFunction(parent) && parent.body === node)\n ? COMMENT_SKIP_NEWLINE.ALL\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else if (shouldSkipNewline && type === COMMENT_TYPE.TRAILING) {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n } else if (\n type === COMMENT_TYPE.INNER &&\n !(node.type === \"ObjectExpression\" && node.properties.length > 1) &&\n node.type !== \"ClassBody\" &&\n node.type !== \"TSInterfaceBody\"\n ) {\n // class X {\n // /*:: a: number*/\n // /*:: b: ?string*/\n // }\n\n this._printComment(\n comment,\n i === 0\n ? COMMENT_SKIP_NEWLINE.LEADING\n : i === len - 1\n ? COMMENT_SKIP_NEWLINE.TRAILING\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n }\n }\n\n if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n return PRINT_COMMENTS_RESULT.PRINTED_ALL;\n }\n}\n\nexport default Printer;\n\nfunction commaSeparator(this: Printer, occurrenceCount: number, last: boolean) {\n this.tokenChar(charCodes.comma, occurrenceCount);\n if (!last) this.space();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_buffer","require","_index","_nodes","_t","_tokenMap","_types2","isExpression","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumMember","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","commentIsNewline","c","type","test","value","Printer","constructor","format","map","tokens","originalCode","tokenContext","TokenContext","normal","_tokens","_originalCode","_currentNode","_currentTypeId","_indent","_indentRepeat","_insideAux","_noLineTerminator","_noLineTerminatorAfterNode","_printAuxAfterOnNextUserNode","_printedComments","Set","_lastCommentLine","_innerCommentsState","_flags","tokenMap","_boundGetRawIdentifier","_printSemicolonBeforeNextNode","_printSemicolonBeforeNextToken","indent","style","length","_inputMap","_buf","Buffer","preserveFormat","compact","concise","retainLines","retainFunctionParens","auxiliaryCommentBefore","auxiliaryCommentAfter","enterDelimited","oldNoLineTerminatorAfterNode","generate","ast","TokenMap","_getRawIdentifier","bind","print","_maybeAddAuxComment","get","flags","dedent","semicolon","force","node","start","end","endMatches","getCurrentLine","indexes","getIndexes","_catchUpTo","loc","_appendChar","_queue","rightBrace","minified","removeLastSemicolon","sourceWithOffset","token","rightParens","space","_space","lastCp","getLastChar","word","str","noLineTerminatorAfter","forInOrInitHeadAccumulatePassThroughMask","_maybePrintInnerComments","_catchUpToCurrentToken","lastChar","charCodeAt","_append","setLastChar","number","isNonDecimalLiteral","secondChar","Number","isInteger","maybeNewline","occurrenceCount","mayNeedSpace","strFirst","tokenChar","char","newline","i","getNewlineCount","j","_newline","endsWith","checkQueue","_last","exactSource","cb","_catchUp","source","prop","columnOffset","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","_queuedChar","findMatching","_maybeIndent","append","noIndent","appendChar","queue","_shouldIndent","catchUp","line","count","column","index","spacesCount","getCurrentColumn","spaces","slice","replace","repeat","setSourcePosition","printTerminatorless","resetTokenContext","trailingCommentsLineOffset","_node$leadingComments","_node$leadingComments2","extra","changedFlags","_compact","nodeInfo","generatorInfosMap","undefined","ReferenceError","JSON","stringify","name","printMethod","nodeId","needsParens","parent","parentId","oldInAux","oldTokenContext","forInOrInitHeadAccumulate","parenthesized","shouldPrintParens","parentNeedsParens","leadingComments","callee","indentParenthesized","some","isLastChild","_node$trailingComment","trailingComments","_printLeadingComments","_printTrailingComments","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","_printComment","getPossibleRaw","raw","rawValue","printJoin","nodes","statement","separator","printTrailingSeparator","_nodes$0$loc","startLine","len","hasContent","call","lastCommentLine","_nodes$loc","offset","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","nextTokenStr","nextTokenOccurrenceCount","_this$tokenMap","state","printInnerComments","nextToken","hasSpace","noIndentInnerCommentsHere","printSequence","printList","items","commaSeparator","shouldPrintTrailingComma","listEnd","listEndIndex","findLastIndex","matchesOriginal","String","fromCharCode","_shouldPrintComment","ignore","has","commentTok","find","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","val","adjustMultilineComment","_comment$loc","newlineRegex","RegExp","indentSize","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","_default","exports","default","last"],"sources":["../src/printer.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-enum-comparison */\n\nimport Buffer from \"./buffer.ts\";\nimport type { Loc, Pos } from \"./buffer.ts\";\nimport { isLastChild, parentNeedsParens } from \"./node/index.ts\";\nimport { generatorInfosMap } from \"./nodes.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isExpression,\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumMember,\n} from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport { TokenMap } from \"./token-map.ts\";\n\nimport type { GeneratorOptions } from \"./index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\nimport type { Token } from \"@babel/parser\";\n\n// We inline this package\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport * as charCodes from \"charcodes\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nfunction commentIsNewline(c: t.Comment) {\n return c.type === \"CommentLine\" || HAS_NEWLINE.test(c.value);\n}\n\nimport { TokenContext } from \"./node/index.ts\";\nimport { _getRawIdentifier } from \"./generators/types.ts\";\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nconst enum PRINTER_FLAGS {\n EMPTY = 0,\n PRESERVE_FORMAT = 1 << 0,\n COMPACT = 1 << 1,\n CONCISE = 1 << 2,\n RETAIN_LINES = 1 << 3,\n RETAIN_FUNCTION_PARENS = 1 << 4,\n AUX_COMMENTS = 1 << 5,\n}\n\nconst enum LAST_CHAR_KINDS {\n EMPTY = 0,\n NORMAL = -1,\n INTEGER = -2,\n WORD = -3,\n}\n\nconst enum INNER_COMMENTS_STATE {\n DISALLOWED = 0,\n ALLOWED = 1,\n PRINTED = 2,\n\n WITH_INDENT = 4,\n MASK = 3,\n}\n\nconst enum PRINT_COMMENTS_RESULT {\n PRINTED_NONE = 0,\n PRINTED_SOME = 1,\n PRINTED_ALL = 2,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n preserveFormat: boolean | undefined;\n retainLines: boolean | undefined;\n retainFunctionParens: boolean | undefined;\n comments: boolean | undefined;\n auxiliaryCommentBefore: string | undefined;\n auxiliaryCommentAfter: string | undefined;\n compact: boolean | \"auto\" | undefined;\n minified: boolean | undefined;\n concise: boolean | undefined;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n /**\n * @deprecated Removed in Babel 8, syntax type is always 'hash'\n */\n recordAndTupleSyntaxType?: GeneratorOptions[\"recordAndTupleSyntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: GeneratorOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n * @deprecated Removed in Babel 8.\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface PrintSequenceOptions {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer, occurrenceCount: number, last: boolean) => void;\n statement?: boolean;\n indent?: boolean;\n printTrailingSeparator?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(\n format: Format,\n map: SourceMap | null,\n tokens: Token[] | null = null,\n originalCode: string | null = null,\n ) {\n this.format = format;\n\n this._tokens = tokens;\n this._originalCode = originalCode;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap || null;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n\n const {\n preserveFormat,\n compact,\n concise,\n retainLines,\n retainFunctionParens,\n } = format;\n if (preserveFormat) {\n this._flags |= PRINTER_FLAGS.PRESERVE_FORMAT;\n }\n if (compact) {\n this._flags |= PRINTER_FLAGS.COMPACT;\n }\n if (concise) {\n this._flags |= PRINTER_FLAGS.CONCISE;\n }\n if (retainLines) {\n this._flags |= PRINTER_FLAGS.RETAIN_LINES;\n }\n if (retainFunctionParens) {\n this._flags |= PRINTER_FLAGS.RETAIN_FUNCTION_PARENS;\n }\n if (format.auxiliaryCommentBefore || format.auxiliaryCommentAfter) {\n this._flags |= PRINTER_FLAGS.AUX_COMMENTS;\n }\n }\n declare _inputMap: TraceMap | null;\n\n declare format: Format;\n\n enterDelimited() {\n const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n if (oldNoLineTerminatorAfterNode !== null) {\n this._noLineTerminatorAfterNode = null;\n }\n return oldNoLineTerminatorAfterNode;\n }\n\n tokenContext: number = TokenContext.normal;\n\n _tokens: Token[] | null = null;\n _originalCode: string | null = null;\n\n declare _buf: Buffer;\n _currentNode: t.Node | null = null;\n _currentTypeId: number | null = null;\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _noLineTerminator: boolean = false;\n _noLineTerminatorAfterNode: t.Node | null = null;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _lastCommentLine = 0;\n _innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n _flags = PRINTER_FLAGS.EMPTY;\n\n tokenMap: TokenMap | null = null;\n\n _boundGetRawIdentifier: ((node: t.Identifier) => string) | null = null;\n\n generate(ast: t.Node) {\n if (this.format.preserveFormat) {\n this.tokenMap = new TokenMap(ast, this._tokens!, this._originalCode!);\n this._boundGetRawIdentifier = _getRawIdentifier.bind(this);\n }\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent += this._indentRepeat;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(flags = this._flags): void {\n if (\n flags &\n (PRINTER_FLAGS.PRESERVE_FORMAT |\n PRINTER_FLAGS.COMPACT |\n PRINTER_FLAGS.CONCISE)\n ) {\n return;\n }\n\n this._indent -= this._indentRepeat;\n }\n\n /**\n * If the next token is on the same line, we must first print a semicolon.\n * This option is only used in `preserveFormat` node, for semicolons that\n * might have omitted due to them being absent in the original code (thanks\n * to ASI).\n *\n * We need both *NextToken and *NextNode because we only want to insert the\n * semicolon when the next token starts a new node, and not in cases like\n * foo} (where } is not starting a new node). So we first set *NextNode, and\n * then the print() method will move it to *NextToken.\n */\n _printSemicolonBeforeNextNode: number = -1;\n _printSemicolonBeforeNextToken: number = -1;\n\n /**\n * Add a semicolon to the buffer.\n */\n semicolon(force: boolean = false): void {\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n const node = this._currentNode!;\n if (node.start != null && node.end != null) {\n if (!this.tokenMap!.endMatches(node, \";\")) {\n // no semicolon\n this._printSemicolonBeforeNextNode = this._buf.getCurrentLine();\n return;\n }\n const indexes = this.tokenMap!.getIndexes(this._currentNode!)!;\n this._catchUpTo(this._tokens![indexes[indexes.length - 1]].loc.start);\n }\n }\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this._flags & (PRINTER_FLAGS.PRESERVE_FORMAT | PRINTER_FLAGS.COMPACT)) {\n return;\n }\n\n if (force) {\n this._space();\n } else {\n const lastCp = this.getLastChar(true);\n if (\n lastCp !== 0 &&\n lastCp !== charCodes.space &&\n lastCp !== charCodes.lineFeed\n ) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str);\n\n const flags = this._flags;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) this._catchUpToCurrentToken(str);\n\n const lastChar = this.getLastChar();\n\n if (\n lastChar === LAST_CHAR_KINDS.INTEGER ||\n lastChar === LAST_CHAR_KINDS.WORD ||\n // prevent concatenating words and creating // comment out of division and regex\n (lastChar === charCodes.slash && str.charCodeAt(0) === charCodes.slash)\n ) {\n this._space();\n }\n this._append(str, false);\n\n this.setLastChar(-3);\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted immediately after them.\n if (\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot\n ) {\n this.setLastChar(LAST_CHAR_KINDS.INTEGER);\n }\n }\n\n /**\n * Writes a simple token.\n *\n * @param {string} str The string to append.\n * @param {boolean} [maybeNewline=false] Wether `str` might potentially\n * contain a line terminator or not.\n * @param {number} [occurrenceCount=0] The occurrence count of this token in\n * the current node. This is used when printing in `preserveFormat` mode,\n * to know which token we should map to (for example, to disambiguate the\n * commas in an array literal).\n */\n token(\n str: string,\n maybeNewline = false,\n occurrenceCount = 0,\n mayNeedSpace: boolean = false,\n ): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(str, occurrenceCount);\n\n const flags = this._flags;\n\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._catchUpToCurrentToken(str, occurrenceCount);\n }\n\n if (mayNeedSpace) {\n const strFirst = str.charCodeAt(0);\n if (\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n (((strFirst === charCodes.dash && str === \"--\") ||\n // Needs spaces to avoid changing a! == 0 to a!== 0\n strFirst === charCodes.equalsTo) &&\n this.getLastChar() === charCodes.exclamationMark) ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign &&\n this.getLastChar() === charCodes.plusSign) ||\n (strFirst === charCodes.dash &&\n this.getLastChar() === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot &&\n this.getLastChar() === LAST_CHAR_KINDS.INTEGER)\n ) {\n this._space();\n }\n }\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n\n tokenChar(char: number, occurrenceCount = 0): void {\n this.tokenContext &= TokenContext.forInOrInitHeadAccumulatePassThroughMask;\n\n this._maybePrintInnerComments(char, occurrenceCount);\n\n const flags = this._flags;\n\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._maybeAddAuxComment();\n }\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._catchUpToCurrentToken(char, occurrenceCount);\n }\n\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign &&\n this.getLastChar() === charCodes.plusSign) ||\n (char === charCodes.dash && this.getLastChar() === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this.getLastChar() === LAST_CHAR_KINDS.INTEGER)\n ) {\n this._space();\n }\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n * This function checks the number of newlines in the queue and subtracts them.\n * It currently has some limitations.\n * @see {Buffer#getNewlineCount}\n */\n newline(i: number = 1, flags = this._flags): void {\n if (i <= 0) return;\n\n if (flags & (PRINTER_FLAGS.RETAIN_LINES | PRINTER_FLAGS.COMPACT)) {\n return;\n }\n\n if (flags & PRINTER_FLAGS.CONCISE) {\n this.space();\n return;\n }\n\n if (i > 2) i = 2; // Max two lines\n\n i -= this._buf.getNewlineCount();\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar(true) === char;\n }\n\n getLastChar(checkQueue?: boolean): number {\n return this._buf.getLastChar(checkQueue);\n }\n\n setLastChar(char: number) {\n this._buf._last = char;\n }\n\n exactSource(loc: Loc | null | undefined, cb: () => void) {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | null | undefined,\n columnOffset: number,\n ): void {\n if (!loc || this.format.preserveFormat) return;\n\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n\n sourceIdentifierName(identifierName: string, pos?: Pos): void {\n if (!this._buf._canMarkIdName) return;\n\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n // Drop trailing spaces when a newline is inserted.\n if (this._buf._queuedChar === charCodes.space) this._buf._queuedChar = 0;\n\n this._appendChar(charCodes.lineFeed, true);\n }\n\n _catchUpToCurrentToken(\n str: string | number,\n occurrenceCount: number = 0,\n ): void {\n // Assert: this.tokenMap\n\n const token = this.tokenMap!.findMatching(\n this._currentNode!,\n str,\n occurrenceCount,\n );\n if (token) this._catchUpTo(token.loc.start);\n\n if (\n this._printSemicolonBeforeNextToken !== -1 &&\n this._printSemicolonBeforeNextToken === this._buf.getCurrentLine()\n ) {\n this._appendChar(charCodes.semicolon, true);\n }\n this._printSemicolonBeforeNextToken = -1;\n this._printSemicolonBeforeNextNode = -1;\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeIndent();\n\n this._buf.append(str, maybeNewline);\n }\n\n _appendChar(char: number, noIndent?: boolean): void {\n if (!noIndent) {\n this._maybeIndent();\n }\n\n this._buf.appendChar(char);\n }\n\n _queue(char: typeof charCodes.space | typeof charCodes.semicolon): void {\n this._buf.queue(char);\n\n this.setLastChar(-1);\n }\n\n _maybeIndent(): void {\n const indent = this._shouldIndent();\n if (indent > 0) {\n this._buf._appendChar(-1, indent, false);\n }\n }\n\n _shouldIndent() {\n // we've got a newline before us so prepend on the indentation\n return this.endsWith(charCodes.lineFeed) ? this._indent : 0;\n }\n\n catchUp(line: number) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n const flags = this._flags;\n if ((flags & PRINTER_FLAGS.PRESERVE_FORMAT) === 0) {\n if (flags & PRINTER_FLAGS.RETAIN_LINES && loc?.[prop]) {\n this.catchUp(loc[prop].line);\n }\n return;\n }\n\n // catch up to this nodes newline if we're behind\n const pos = loc?.[prop];\n if (pos != null) this._catchUpTo(pos);\n }\n\n _catchUpTo({ line, column, index }: Pos) {\n const count = line - this._buf.getCurrentLine();\n if (count > 0 && this._noLineTerminator) {\n // We cannot inject new lines when _noLineTemrinator is set\n // to `true`, or we would generate invalid code.\n return;\n }\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n\n const spacesCount =\n count > 0 ? column : column - this._buf.getCurrentColumn();\n if (spacesCount > 0) {\n const spaces = this._originalCode\n ? this._originalCode\n .slice(index - spacesCount, index)\n // https://tc39.es/ecma262/#sec-white-space\n .replace(/[^\\t\\v\\f\\uFEFF\\p{Space_Separator}]/gu, \" \")\n : \" \".repeat(spacesCount);\n this._buf.append(spaces, false, true);\n this._buf.setSourcePosition(line, column);\n this.setLastChar(charCodes.space);\n }\n }\n\n printTerminatorless(node: t.Node) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n this._noLineTerminator = true;\n this.print(node);\n }\n\n print(\n node: t.Node | null | undefined,\n noLineTerminatorAfter: boolean = false,\n resetTokenContext: boolean = false,\n // trailingCommentsLineOffset also used to check if called from printJoin\n // it will be ignored if `noLineTerminatorAfter||this._noLineTerminator`\n trailingCommentsLineOffset?: number,\n ) {\n if (!node) return;\n\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n\n const { type, loc, extra } = node;\n\n const flags = this._flags;\n let changedFlags = false;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n this._flags |= PRINTER_FLAGS.CONCISE;\n changedFlags = true;\n }\n\n const nodeInfo = generatorInfosMap.get(type);\n if (nodeInfo === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n type,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n const [printMethod, nodeId, needsParens] = nodeInfo;\n\n const parent = this._currentNode;\n const parentId = this._currentTypeId;\n this._currentNode = node;\n this._currentTypeId = nodeId;\n\n if (flags & PRINTER_FLAGS.PRESERVE_FORMAT) {\n this._printSemicolonBeforeNextToken = this._printSemicolonBeforeNextNode;\n }\n\n let oldInAux;\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n oldInAux = this._insideAux;\n this._insideAux = loc == null;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n }\n\n let oldTokenContext = 0;\n if (resetTokenContext) {\n oldTokenContext = this.tokenContext;\n if (oldTokenContext & TokenContext.forInOrInitHeadAccumulate) {\n this.tokenContext = 0;\n } else {\n oldTokenContext = 0;\n }\n }\n\n const parenthesized =\n extra != null && (extra.parenthesized as boolean | undefined);\n let shouldPrintParens =\n (parenthesized && flags & PRINTER_FLAGS.PRESERVE_FORMAT) ||\n (parenthesized &&\n flags & PRINTER_FLAGS.RETAIN_FUNCTION_PARENS &&\n nodeId === __node(\"FunctionExpression\")) ||\n (parent &&\n (parentNeedsParens(node, parent, parentId!) ||\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n (needsParens != null &&\n needsParens(\n node,\n parent,\n parentId!,\n this.tokenContext,\n flags & PRINTER_FLAGS.PRESERVE_FORMAT\n ? this._boundGetRawIdentifier!\n : undefined,\n ))));\n\n if (\n !shouldPrintParens &&\n parenthesized &&\n node.leadingComments?.length &&\n node.leadingComments[0].type === \"CommentBlock\"\n ) {\n switch (parentId) {\n case __node(\"ExpressionStatement\"):\n case __node(\"VariableDeclarator\"):\n case __node(\"AssignmentExpression\"):\n case __node(\"ReturnStatement\"):\n break;\n case __node(\"CallExpression\"):\n case __node(\"OptionalCallExpression\"):\n case __node(\"NewExpression\"):\n // @ts-expect-error checked by parentTypeId\n if (parent.callee !== node) break;\n // falls through\n default:\n shouldPrintParens = true;\n }\n }\n\n let indentParenthesized = false;\n if (\n !shouldPrintParens &&\n this._noLineTerminator &&\n (node.leadingComments?.some(commentIsNewline) ||\n (flags & PRINTER_FLAGS.RETAIN_LINES &&\n loc &&\n loc.start.line > this._buf.getCurrentLine()))\n ) {\n shouldPrintParens = true;\n indentParenthesized = true;\n }\n\n let oldNoLineTerminatorAfterNode;\n if (!shouldPrintParens) {\n noLineTerminatorAfter ||=\n !!parent &&\n this._noLineTerminatorAfterNode === parent &&\n isLastChild(parent, node);\n if (noLineTerminatorAfter) {\n if (node.trailingComments?.some(commentIsNewline)) {\n if (isExpression(node)) shouldPrintParens = true;\n } else {\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = node;\n }\n }\n }\n\n if (shouldPrintParens) {\n this.token(\"(\");\n if (indentParenthesized) this.indent();\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n if (!resetTokenContext) {\n oldTokenContext = this.tokenContext;\n }\n if (oldTokenContext & TokenContext.forInOrInitHeadAccumulate) {\n this.tokenContext = 0;\n }\n oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;\n this._noLineTerminatorAfterNode = null;\n }\n\n this._printLeadingComments(node, parent);\n\n this.exactSource(\n nodeId === __node(\"Program\") || nodeId === __node(\"File\") ? null : loc,\n printMethod.bind(this, node, parent),\n );\n\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n if (indentParenthesized) {\n this.dedent();\n this.newline();\n }\n this.token(\")\");\n this._noLineTerminator = noLineTerminatorAfter;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n if (oldTokenContext) this.tokenContext = oldTokenContext;\n\n // end\n this._currentNode = parent;\n this._currentTypeId = parentId;\n if (changedFlags) {\n this._flags = flags;\n }\n if (flags & PRINTER_FLAGS.AUX_COMMENTS) {\n this._insideAux = oldInAux!;\n }\n\n if (oldNoLineTerminatorAfterNode != null) {\n this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;\n }\n\n this._innerCommentsState = INNER_COMMENTS_STATE.DISALLOWED;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra?.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: t.Node[] | undefined | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintJoinOptions[\"separator\"] | null,\n printTrailingSeparator?: boolean | null,\n resetTokenContext?: boolean,\n trailingCommentsLineOffset?: number,\n ) {\n if (!nodes?.length) return;\n\n const flags = this._flags;\n\n if (indent == null && flags & PRINTER_FLAGS.RETAIN_LINES) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n\n if (indent) this.indent(flags);\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // don't add newlines at the beginning of the file\n if (statement && i === 0 && this._buf.hasContent()) {\n this.newline(1, flags);\n }\n\n this.print(\n node,\n false,\n resetTokenContext,\n trailingCommentsLineOffset || 0,\n );\n\n if (separator != null) {\n if (i < len - 1) separator.call(this, i, false);\n else if (printTrailingSeparator) separator.call(this, i, true);\n }\n\n if (statement) {\n if (i + 1 === len) {\n this.newline(1, flags);\n } else {\n const lastCommentLine = this._lastCommentLine;\n if (lastCommentLine > 0) {\n const offset =\n (nodes[i + 1].loc?.start.line || 0) - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1, flags);\n continue;\n }\n }\n\n this.newline(1, flags);\n }\n }\n }\n\n if (indent) this.dedent(flags);\n }\n\n printAndIndentOnComments(node: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node);\n if (indent) this.dedent();\n }\n\n printBlock(body: t.Statement) {\n if (body.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(body);\n }\n\n _printTrailingComments(\n node: t.Node,\n parent?: t.Node | null,\n lineOffset?: number,\n ) {\n const { innerComments, trailingComments } = node;\n // We print inner comments here, so that if for some reason they couldn't\n // be printed in earlier locations they are still printed *somewhere*,\n // even if at the end of the node.\n if (innerComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n innerComments,\n node,\n parent,\n lineOffset,\n );\n }\n if (trailingComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n trailingComments,\n node,\n parent,\n lineOffset,\n );\n } else {\n this._lastCommentLine = 0;\n }\n }\n\n _printLeadingComments(node: t.Node, parent: t.Node | null) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(COMMENT_TYPE.LEADING, comments, node, parent);\n }\n\n _maybePrintInnerComments(\n nextTokenStr: string | number,\n nextTokenOccurrenceCount?: number,\n ) {\n const state = this._innerCommentsState;\n switch (state & INNER_COMMENTS_STATE.MASK) {\n case INNER_COMMENTS_STATE.DISALLOWED:\n this._innerCommentsState =\n INNER_COMMENTS_STATE.ALLOWED | INNER_COMMENTS_STATE.WITH_INDENT;\n return;\n case INNER_COMMENTS_STATE.ALLOWED:\n this.printInnerComments(\n (state & INNER_COMMENTS_STATE.WITH_INDENT) > 0,\n this.tokenMap?.findMatching(\n this._currentNode!,\n nextTokenStr,\n nextTokenOccurrenceCount,\n ),\n );\n }\n }\n\n printInnerComments(indent = true, nextToken?: Token | null) {\n const node = this._currentNode!;\n const comments = node.innerComments;\n if (!comments?.length) {\n this._innerCommentsState = INNER_COMMENTS_STATE.PRINTED;\n return;\n }\n\n const hasSpace = this.endsWith(charCodes.space);\n if (indent) this.indent();\n\n switch (\n this._printComments(\n COMMENT_TYPE.INNER,\n comments,\n node,\n undefined,\n undefined,\n nextToken,\n )\n ) {\n case PRINT_COMMENTS_RESULT.PRINTED_ALL:\n this._innerCommentsState = INNER_COMMENTS_STATE.PRINTED;\n // falls through\n case PRINT_COMMENTS_RESULT.PRINTED_SOME:\n if (hasSpace) this.space();\n }\n\n if (indent) this.dedent();\n }\n\n noIndentInnerCommentsHere() {\n this._innerCommentsState &= ~INNER_COMMENTS_STATE.WITH_INDENT;\n }\n\n printSequence(\n nodes: t.Node[],\n indent?: boolean,\n resetTokenContext?: boolean,\n trailingCommentsLineOffset?: number,\n ) {\n this.printJoin(\n nodes,\n true,\n indent ?? false,\n undefined,\n undefined,\n resetTokenContext,\n trailingCommentsLineOffset,\n );\n }\n\n printList(\n items: t.Node[] | null | undefined,\n printTrailingSeparator?: boolean | null,\n statement?: boolean,\n indent?: boolean,\n separator?: PrintListOptions[\"separator\"],\n resetTokenContext?: boolean,\n ) {\n this.printJoin(\n items,\n statement,\n indent,\n separator ?? commaSeparator,\n printTrailingSeparator,\n resetTokenContext,\n );\n }\n\n shouldPrintTrailingComma(listEnd: string | number): boolean | null {\n if (!this.tokenMap) return null;\n\n const listEndIndex = this.tokenMap.findLastIndex(\n this._currentNode!,\n token =>\n this.tokenMap!.matchesOriginal(\n token,\n typeof listEnd === \"number\" ? String.fromCharCode(listEnd) : listEnd,\n ),\n );\n if (listEndIndex <= 0) return null;\n return this.tokenMap.matchesOriginal(this._tokens![listEndIndex - 1], \",\");\n }\n\n // Returns `PRINT_COMMENT_HINT.DEFER` if the comment cannot be printed in this position due to\n // line terminators, signaling that the print comments loop can stop and\n // resume printing comments at the next possible position. This happens when\n // printing inner comments, since if we have an inner comment with a multiline\n // there is at least one inner position where line terminators are allowed.\n _shouldPrintComment(\n comment: t.Comment,\n nextToken?: Token | null,\n ): PRINT_COMMENT_HINT {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return PRINT_COMMENT_HINT.SKIP;\n\n if (this._printedComments.has(comment)) return PRINT_COMMENT_HINT.SKIP;\n\n if (\n this._noLineTerminator &&\n HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)\n ) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n\n if (nextToken && this.tokenMap) {\n const commentTok = this.tokenMap.find(\n this._currentNode!,\n token => token.value === comment.value,\n );\n if (commentTok && commentTok.start > nextToken.start) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n }\n\n this._printedComments.add(comment);\n\n if (!this.format.shouldPrintComment(comment.value)) {\n return PRINT_COMMENT_HINT.SKIP;\n }\n\n return PRINT_COMMENT_HINT.ALLOW;\n }\n\n _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.ALL &&\n !noLineTerminator;\n\n if (\n printNewLines &&\n this._buf.hasContent() &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.LEADING\n ) {\n this.newline(1);\n }\n\n switch (this.getLastChar(true)) {\n // Avoid converting a / operator into a line comment by appending /* to it\n case charCodes.slash:\n this._space();\n // falls through\n case charCodes.leftSquareBracket:\n case charCodes.leftCurlyBrace:\n case charCodes.leftParenthesis:\n break;\n\n default:\n this.space();\n }\n\n let val;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n if (this._flags & PRINTER_FLAGS.CONCISE) {\n val = val.replace(/\\n(?!$)/g, `\\n`);\n } else {\n let indentSize = this.format.retainLines\n ? 0\n : this._buf.getCurrentColumn();\n\n if (this._shouldIndent() || this.format.retainLines) {\n indentSize += this._indent;\n }\n\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n // It was a single-line comment, so it's guaranteed to not\n // contain newlines and it can be safely printed as a block\n // comment.\n val = `/*${comment.value}*/`;\n }\n\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n\n if (!isBlockComment && !noLineTerminator) {\n this._newline();\n }\n\n if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.TRAILING) {\n this.newline(1);\n }\n }\n\n _printComments(\n type: COMMENT_TYPE,\n comments: t.Comment[],\n node: t.Node,\n parent?: t.Node | null,\n lineOffset: number = 0,\n nextToken?: Token | null,\n ): PRINT_COMMENTS_RESULT {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc!.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc!.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n\n const { _noLineTerminator, _flags } = this;\n\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n\n const shouldPrint = this._shouldPrintComment(comment, nextToken);\n if (shouldPrint === PRINT_COMMENT_HINT.DEFER) {\n return i === 0\n ? PRINT_COMMENTS_RESULT.PRINTED_NONE\n : PRINT_COMMENTS_RESULT.PRINTED_SOME;\n }\n if (hasLoc && comment.loc && shouldPrint === PRINT_COMMENT_HINT.ALLOW) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === COMMENT_TYPE.LEADING) {\n let offset = 0;\n if (i === 0) {\n // Because currently we cannot handle blank lines before leading comments,\n // we always wrap before and after multi-line comments.\n if (\n this._buf.hasContent() &&\n (comment.type === \"CommentLine\" ||\n commentStartLine !== commentEndLine)\n ) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n const count = Math.max(\n nodeStartLine - lastLine,\n leadingCommentNewline,\n );\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeStartLine;\n }\n } else if (type === COMMENT_TYPE.INNER) {\n const offset =\n commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n const count = Math.min(1, nodeEndLine - lastLine);\n if (count > 0 && !_noLineTerminator) {\n this.newline(count, _flags);\n }\n lastLine = nodeEndLine;\n }\n } else {\n const offset =\n commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n\n if (offset > 0 && !_noLineTerminator) {\n this.newline(offset, _flags);\n }\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== PRINT_COMMENT_HINT.ALLOW) {\n continue;\n }\n\n if (len === 1) {\n const singleLine = comment.loc\n ? comment.loc.start.line === comment.loc.end.line\n : !HAS_NEWLINE.test(comment.value);\n\n const shouldSkipNewline =\n singleLine &&\n !isStatement(node) &&\n !isClassBody(parent) &&\n !isTSInterfaceBody(parent) &&\n !isTSEnumMember(node);\n\n if (type === COMMENT_TYPE.LEADING) {\n this._printComment(\n comment,\n (shouldSkipNewline && node.type !== \"ObjectExpression\") ||\n (singleLine && isFunction(parent) && parent.body === node)\n ? COMMENT_SKIP_NEWLINE.ALL\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else if (shouldSkipNewline && type === COMMENT_TYPE.TRAILING) {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n } else if (\n type === COMMENT_TYPE.INNER &&\n !(node.type === \"ObjectExpression\" && node.properties.length > 1) &&\n node.type !== \"ClassBody\" &&\n node.type !== \"TSInterfaceBody\"\n ) {\n // class X {\n // /*:: a: number*/\n // /*:: b: ?string*/\n // }\n\n this._printComment(\n comment,\n i === 0\n ? COMMENT_SKIP_NEWLINE.LEADING\n : i === len - 1\n ? COMMENT_SKIP_NEWLINE.TRAILING\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n }\n }\n\n if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n return PRINT_COMMENTS_RESULT.PRINTED_ALL;\n }\n}\n\nexport default Printer;\n\nfunction commaSeparator(this: Printer, occurrenceCount: number, last: boolean) {\n this.tokenChar(charCodes.comma, occurrenceCount);\n if (!last) this.space();\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -58,7 +58,9 @@ class SourceMap {
|
|
|
58
58
|
line,
|
|
59
59
|
column: column
|
|
60
60
|
});
|
|
61
|
-
if (
|
|
61
|
+
if (originalMapping.name && (identifierNamePos || identifierName != null && originalMapping.column === column)) {
|
|
62
|
+
identifierName = originalMapping.name;
|
|
63
|
+
} else if (identifierNamePos) {
|
|
62
64
|
const originalIdentifierMapping = (0, _traceMapping.originalPositionFor)(this._inputMap, identifierNamePos);
|
|
63
65
|
if (originalIdentifierMapping.name) {
|
|
64
66
|
identifierName = originalIdentifierMapping.name;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_genMapping","require","_traceMapping","SourceMap","constructor","opts","code","_opts$sourceFileName","_map","_rawMappings","_sourceFileName","_lastGenLine","_lastSourceLine","_lastSourceColumn","_inputMap","map","GenMapping","sourceRoot","sourceFileName","replace","undefined","inputSourceMap","TraceMap","resolvedSources","length","i","_this$_inputMap$sourc","setSourceContent","sourcesContent","Object","keys","get","toEncodedMap","getDecoded","toDecodedMap","getRawMappings","allMappings","mark","generated","line","column","identifierName","identifierNamePos","filename","_originalMapping","originalMapping","originalPositionFor","name","originalIdentifierMapping","source","maybeAddMapping","original","exports","default"],"sources":["../src/source-map.ts"],"sourcesContent":["import {\n GenMapping,\n maybeAddMapping,\n setSourceContent,\n allMappings,\n toEncodedMap,\n toDecodedMap,\n} from \"@jridgewell/gen-mapping\";\n\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\nimport type {\n InvalidOriginalMapping,\n OriginalMapping,\n SourceMapInput,\n} from \"@jridgewell/trace-mapping\";\nimport { originalPositionFor, TraceMap } from \"@jridgewell/trace-mapping\";\n\n/**\n * Build a sourcemap.\n */\n\nexport default class SourceMap {\n private _map: GenMapping;\n private _rawMappings: Mapping[] | undefined;\n private _sourceFileName: string | undefined;\n\n // Any real line is > 0, so init to 0 is fine.\n private _lastGenLine = 0;\n private _lastSourceLine = 0;\n\n // Source columns can be 0, but we only check in unison with sourceLine, which\n // inits to an impossible value. So init to 0 is fine.\n private _lastSourceColumn = 0;\n\n public _inputMap: TraceMap | null = null;\n\n constructor(\n opts: {\n sourceFileName?: string;\n sourceRoot?: string;\n inputSourceMap?: SourceMapInput;\n },\n code: string | Record<string, string> | null | undefined,\n ) {\n const map = (this._map = new GenMapping({ sourceRoot: opts.sourceRoot }));\n this._sourceFileName = opts.sourceFileName?.replace(/\\\\/g, \"/\");\n this._rawMappings = undefined;\n\n if (opts.inputSourceMap) {\n this._inputMap = new TraceMap(opts.inputSourceMap);\n const resolvedSources = this._inputMap.resolvedSources;\n if (resolvedSources.length) {\n for (let i = 0; i < resolvedSources.length; i++) {\n setSourceContent(\n map,\n resolvedSources[i],\n // @ts-expect-error FIXME: this._inputMap.sourcesContent?.[i] may be undefined, which is not acceptable by setSourceContent\n this._inputMap.sourcesContent?.[i],\n );\n }\n }\n }\n\n if (typeof code === \"string\" && !opts.inputSourceMap) {\n setSourceContent(map, this._sourceFileName!, code);\n } else if (typeof code === \"object\") {\n for (const sourceFileName of Object.keys(code!)) {\n setSourceContent(\n map,\n sourceFileName.replace(/\\\\/g, \"/\"),\n code![sourceFileName],\n );\n }\n }\n }\n\n /**\n * Get the sourcemap.\n */\n get(): EncodedSourceMap {\n return toEncodedMap(this._map);\n }\n\n getDecoded(): DecodedSourceMap {\n return toDecodedMap(this._map);\n }\n\n getRawMappings(): Mapping[] {\n return (this._rawMappings ||= allMappings(this._map));\n }\n\n /**\n * Mark the current generated position with a source position. May also be passed null line/column\n * values to insert a mapping to nothing.\n */\n\n mark(\n generated: { line: number; column: number },\n line?: number,\n column?: number,\n identifierName?: string | null,\n identifierNamePos?: { line: number; column: number },\n filename?: string | null,\n ) {\n this._rawMappings = undefined;\n\n let originalMapping: OriginalMapping | InvalidOriginalMapping | undefined;\n\n if (line != null) {\n if (this._inputMap) {\n // This is the lookup for this mark\n originalMapping = originalPositionFor(this._inputMap, {\n line,\n column: column!,\n });\n\n //
|
|
1
|
+
{"version":3,"names":["_genMapping","require","_traceMapping","SourceMap","constructor","opts","code","_opts$sourceFileName","_map","_rawMappings","_sourceFileName","_lastGenLine","_lastSourceLine","_lastSourceColumn","_inputMap","map","GenMapping","sourceRoot","sourceFileName","replace","undefined","inputSourceMap","TraceMap","resolvedSources","length","i","_this$_inputMap$sourc","setSourceContent","sourcesContent","Object","keys","get","toEncodedMap","getDecoded","toDecodedMap","getRawMappings","allMappings","mark","generated","line","column","identifierName","identifierNamePos","filename","_originalMapping","originalMapping","originalPositionFor","name","originalIdentifierMapping","source","maybeAddMapping","original","exports","default"],"sources":["../src/source-map.ts"],"sourcesContent":["import {\n GenMapping,\n maybeAddMapping,\n setSourceContent,\n allMappings,\n toEncodedMap,\n toDecodedMap,\n} from \"@jridgewell/gen-mapping\";\n\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\nimport type {\n InvalidOriginalMapping,\n OriginalMapping,\n SourceMapInput,\n} from \"@jridgewell/trace-mapping\";\nimport { originalPositionFor, TraceMap } from \"@jridgewell/trace-mapping\";\n\n/**\n * Build a sourcemap.\n */\n\nexport default class SourceMap {\n private _map: GenMapping;\n private _rawMappings: Mapping[] | undefined;\n private _sourceFileName: string | undefined;\n\n // Any real line is > 0, so init to 0 is fine.\n private _lastGenLine = 0;\n private _lastSourceLine = 0;\n\n // Source columns can be 0, but we only check in unison with sourceLine, which\n // inits to an impossible value. So init to 0 is fine.\n private _lastSourceColumn = 0;\n\n public _inputMap: TraceMap | null = null;\n\n constructor(\n opts: {\n sourceFileName?: string;\n sourceRoot?: string;\n inputSourceMap?: SourceMapInput;\n },\n code: string | Record<string, string> | null | undefined,\n ) {\n const map = (this._map = new GenMapping({ sourceRoot: opts.sourceRoot }));\n this._sourceFileName = opts.sourceFileName?.replace(/\\\\/g, \"/\");\n this._rawMappings = undefined;\n\n if (opts.inputSourceMap) {\n this._inputMap = new TraceMap(opts.inputSourceMap);\n const resolvedSources = this._inputMap.resolvedSources;\n if (resolvedSources.length) {\n for (let i = 0; i < resolvedSources.length; i++) {\n setSourceContent(\n map,\n resolvedSources[i],\n // @ts-expect-error FIXME: this._inputMap.sourcesContent?.[i] may be undefined, which is not acceptable by setSourceContent\n this._inputMap.sourcesContent?.[i],\n );\n }\n }\n }\n\n if (typeof code === \"string\" && !opts.inputSourceMap) {\n setSourceContent(map, this._sourceFileName!, code);\n } else if (typeof code === \"object\") {\n for (const sourceFileName of Object.keys(code!)) {\n setSourceContent(\n map,\n sourceFileName.replace(/\\\\/g, \"/\"),\n code![sourceFileName],\n );\n }\n }\n }\n\n /**\n * Get the sourcemap.\n */\n get(): EncodedSourceMap {\n return toEncodedMap(this._map);\n }\n\n getDecoded(): DecodedSourceMap {\n return toDecodedMap(this._map);\n }\n\n getRawMappings(): Mapping[] {\n return (this._rawMappings ||= allMappings(this._map));\n }\n\n /**\n * Mark the current generated position with a source position. May also be passed null line/column\n * values to insert a mapping to nothing.\n */\n\n mark(\n generated: { line: number; column: number },\n line?: number,\n column?: number,\n identifierName?: string | null,\n identifierNamePos?: { line: number; column: number },\n filename?: string | null,\n ) {\n this._rawMappings = undefined;\n\n let originalMapping: OriginalMapping | InvalidOriginalMapping | undefined;\n\n if (line != null) {\n if (this._inputMap) {\n // This is the lookup for this mark\n originalMapping = originalPositionFor(this._inputMap, {\n line,\n column: column!,\n });\n\n // Prefer the original name from the input sourcemap when marking an\n // identifier token at the same column, or when marking a related\n // token such as `(` via identifierNamePos.\n if (\n originalMapping.name &&\n (identifierNamePos ||\n (identifierName != null && originalMapping.column === column))\n ) {\n identifierName = originalMapping.name;\n } else if (identifierNamePos) {\n // Maybe we're marking a `(` and the input map already had a name attached there,\n // or we're marking a `(` and the sourcemap spanned a `foo(`,\n // or we're marking an identifier, etc.\n // We're trying to mark a `(` (as that's the only thing that provides\n // an identifierNamePos currently), and we the AST had an identifier attached.\n // Lookup it's original name.\n const originalIdentifierMapping = originalPositionFor(\n this._inputMap,\n identifierNamePos,\n );\n if (originalIdentifierMapping.name) {\n identifierName = originalIdentifierMapping.name;\n }\n }\n } else {\n originalMapping = {\n name: null,\n source: filename?.replace(/\\\\/g, \"/\") || this._sourceFileName!,\n line: line,\n column: column!,\n };\n }\n }\n\n // @ts-expect-error FIXME: original cannot be InvalidOriginalMapping\n maybeAddMapping(this._map, {\n name: identifierName,\n generated,\n source: originalMapping?.source,\n original: originalMapping,\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babel/generator",
|
|
3
|
-
"version": "7.29.
|
|
3
|
+
"version": "7.29.8",
|
|
4
4
|
"description": "Turns an AST into code.",
|
|
5
5
|
"author": "The Babel Team (https://babel.dev/team)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -19,16 +19,16 @@
|
|
|
19
19
|
"lib"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@babel/parser": "^7.29.
|
|
23
|
-
"@babel/types": "^7.29.
|
|
22
|
+
"@babel/parser": "^7.29.8",
|
|
23
|
+
"@babel/types": "^7.29.8",
|
|
24
24
|
"@jridgewell/gen-mapping": "^0.3.12",
|
|
25
25
|
"@jridgewell/trace-mapping": "^0.3.28",
|
|
26
26
|
"jsesc": "^3.0.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@babel/core": "^7.29.
|
|
30
|
-
"@babel/helper-fixtures": "^7.
|
|
31
|
-
"@babel/plugin-transform-typescript": "^7.
|
|
29
|
+
"@babel/core": "^7.29.7",
|
|
30
|
+
"@babel/helper-fixtures": "^7.29.7",
|
|
31
|
+
"@babel/plugin-transform-typescript": "^7.29.7",
|
|
32
32
|
"@jridgewell/sourcemap-codec": "^1.5.3",
|
|
33
33
|
"charcodes": "^0.2.0"
|
|
34
34
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@babel/helper-module-imports",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.29.7",
|
|
4
4
|
"description": "Babel helper functions for inserting module loads",
|
|
5
5
|
"author": "The Babel Team (https://babel.dev/team)",
|
|
6
6
|
"homepage": "https://babel.dev/docs/en/next/babel-helper-module-imports",
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
},
|
|
16
16
|
"main": "./lib/index.js",
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@babel/traverse": "^7.
|
|
19
|
-
"@babel/types": "^7.
|
|
18
|
+
"@babel/traverse": "^7.29.7",
|
|
19
|
+
"@babel/types": "^7.29.7"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@babel/core": "^7.
|
|
22
|
+
"@babel/core": "^7.29.7"
|
|
23
23
|
},
|
|
24
24
|
"engines": {
|
|
25
25
|
"node": ">=6.9.0"
|
|
@@ -238,6 +238,7 @@ var StandardErrors = {
|
|
|
238
238
|
SloppyFunctionAnnexB: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",
|
|
239
239
|
SourcePhaseImportRequiresDefault: 'Only `import source x from "./module"` is valid.',
|
|
240
240
|
StaticPrototype: "Classes may not have static property named prototype.",
|
|
241
|
+
SuperCallNotNewExpression: "Cannot use new with super(...).",
|
|
241
242
|
SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",
|
|
242
243
|
SuperPrivateField: "Private fields can't be accessed on super.",
|
|
243
244
|
TrailingDecorator: "Decorators must be attached to a class element.",
|
|
@@ -267,7 +268,6 @@ var StandardErrors = {
|
|
|
267
268
|
UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",
|
|
268
269
|
UnexpectedUsingDeclaration: "Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.",
|
|
269
270
|
UnexpectedVoidPattern: "Unexpected void binding.",
|
|
270
|
-
UnsupportedBind: "Binding should be performed on object property.",
|
|
271
271
|
UnsupportedDecoratorExport: "A decorated export must export a class declaration.",
|
|
272
272
|
UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.",
|
|
273
273
|
UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.",
|
|
@@ -335,6 +335,10 @@ var PipelineOperatorErrors = Object.assign({
|
|
|
335
335
|
PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.",
|
|
336
336
|
PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'
|
|
337
337
|
});
|
|
338
|
+
var FunctionBindErrors = {
|
|
339
|
+
UnsupportedBind: "Binding should be performed on object property.",
|
|
340
|
+
UnsupportedBindRHS: "The right-hand side of binding can not be super or import."
|
|
341
|
+
};
|
|
338
342
|
const _excluded = ["message"];
|
|
339
343
|
function defineHidden(obj, key, value) {
|
|
340
344
|
Object.defineProperty(obj, key, {
|
|
@@ -425,7 +429,7 @@ function ParseErrorEnum(argument, syntaxPlugin) {
|
|
|
425
429
|
}
|
|
426
430
|
return ParseErrorConstructors;
|
|
427
431
|
}
|
|
428
|
-
const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum(ParseExpressionErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors));
|
|
432
|
+
const Errors = Object.assign({}, ParseErrorEnum(ModuleErrors), ParseErrorEnum(StandardErrors), ParseErrorEnum(StrictModeErrors), ParseErrorEnum(ParseExpressionErrors), ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors), ParseErrorEnum`functionBind`(FunctionBindErrors));
|
|
429
433
|
function createDefaultOptions() {
|
|
430
434
|
return {
|
|
431
435
|
sourceType: "script",
|
|
@@ -11118,7 +11122,7 @@ class ExpressionParser extends LValParser {
|
|
|
11118
11122
|
type
|
|
11119
11123
|
} = this.state;
|
|
11120
11124
|
if (!noCalls && type === 15) {
|
|
11121
|
-
return this.parseBind(base, startLoc,
|
|
11125
|
+
return this.parseBind(base, startLoc, state);
|
|
11122
11126
|
} else if (tokenIsTemplate(type)) {
|
|
11123
11127
|
return this.parseTaggedTemplateExpression(base, startLoc, state);
|
|
11124
11128
|
}
|
|
@@ -11171,13 +11175,18 @@ class ExpressionParser extends LValParser {
|
|
|
11171
11175
|
return this.finishNode(node, "MemberExpression");
|
|
11172
11176
|
}
|
|
11173
11177
|
}
|
|
11174
|
-
parseBind(base, startLoc,
|
|
11178
|
+
parseBind(base, startLoc, state) {
|
|
11175
11179
|
const node = this.startNodeAt(startLoc);
|
|
11176
11180
|
node.object = base;
|
|
11177
11181
|
this.next();
|
|
11178
|
-
|
|
11182
|
+
const isImport = this.match(83);
|
|
11183
|
+
const callee = this.parseNoCallExpr();
|
|
11184
|
+
if (callee.type === "Super" || isImport && callee.type === "ImportExpression" || callee.type === "Import") {
|
|
11185
|
+
throw this.raise(Errors.UnsupportedBindRHS, callee);
|
|
11186
|
+
}
|
|
11187
|
+
node.callee = callee;
|
|
11179
11188
|
state.stop = true;
|
|
11180
|
-
return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc,
|
|
11189
|
+
return this.parseSubscripts(this.finishNode(node, "BindExpression"), startLoc, false);
|
|
11181
11190
|
}
|
|
11182
11191
|
parseCoverCallAndAsyncArrowHead(base, startLoc, state, optional) {
|
|
11183
11192
|
const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;
|
|
@@ -11773,9 +11782,12 @@ class ExpressionParser extends LValParser {
|
|
|
11773
11782
|
const isImport = this.match(83);
|
|
11774
11783
|
const callee = this.parseNoCallExpr();
|
|
11775
11784
|
node.callee = callee;
|
|
11776
|
-
if (isImport &&
|
|
11785
|
+
if (isImport && callee.type === "ImportExpression" || callee.type === "Import") {
|
|
11777
11786
|
this.raise(Errors.ImportCallNotNewExpression, callee);
|
|
11778
11787
|
}
|
|
11788
|
+
if (callee.type === "Super") {
|
|
11789
|
+
this.raise(Errors.SuperCallNotNewExpression, callee);
|
|
11790
|
+
}
|
|
11779
11791
|
}
|
|
11780
11792
|
parseTemplateElement(isTagged) {
|
|
11781
11793
|
const {
|