This MR contains the following updates:
Release Notes
codemirror/commands
v6.1.1
Bug fixes
Make sure the selection endpoints are moved out of atomic ranges when applying a deletion command to a non-empty selection.
v6.1.0
Bug fixes
Prevent native behavior on Ctrl/Cmd-ArrowLeft/ArrowRight bindings, so that browsers with odd bidi behavior won't do the wrong thing at start/end of line.
Cmd-ArrowLeft/Right on macOS now moves the cursor in the direction of the arrow even in right-to-left content.
New features
The new cursorLineBoundaryLeft
/Right
and selectLineBoundaryLeft
/Right
commands allow directional motion to line boundaries.
v6.0.1
Bug fixes
Announce to the screen reader when the selection is deleted.
Also bind Ctrl-Shift-z to redo on Linux.
v6.0.0
Bug fixes
Fix a bug where by-page selection commands sometimes moved one line too far.
v0.20.0
Breaking changes
There is no longer a separate commentKeymap
. Those bindings are now part of defaultKeymap
.
Bug fixes
Make cursorPageUp
and cursorPageDown
move by window height when the editor is higher than the window.
Make sure the default behavior of Home/End is prevented, since it could produce unexpected results on macOS.
New features
The exports from @codemirror/comment are now available in this package.
The exports from the @codemirror/history package are now available from this package.
codemirror/state
v6.1.2
Bug fixes
Fix an issue where, when multiple transaction extenders took effect, only the highest-precedence one was actually included in the transaction.
v6.1.1
Bug fixes
Fix a bug in range set span iteration that would cause decorations to be inappropriately split in some situations.
v6.1.0
Bug fixes
Refine change mapping to preserve insertions made by concurrent changes.
New features
The enables
option to Facet.define
may now take a function, which will be called with the facet value to create the extensions.
v6.0.1
Bug fixes
Fix a problem that caused effects' map
methods to be called with an incorrect change set when filtering changes.
v6.0.0
Breaking changes
Update dependencies to 6.0.0
v0.20.1
New features
EditorView.phrase
now accepts additional arguments, which it will interpolate into the phrase in the place of $
markers.
v0.20.0
Breaking changes
The deprecated precedence names fallback
, extend
, and override
were removed from the library.
Bug fixes
Fix a bug where, if an extension value occurs multiple times, its lowest, rather than highest precedence is used.
Fix an issue where facets with computed inputs would unneccesarily have their outputs recreated on state reconfiguration.
Fix a bug in the order in which new values for state fields and facets were computed, which could cause dynamic facets to hold the wrong value in some situations.
New features
The exports from @codemirror/rangeset now live in this package.
The exports from @codemirror/text now live in this package.
v0.19.9
Bug fixes
Mapping a non-empty selection range now always puts any newly inserted text on the sides of the range outside of the mapped version.
v0.19.8
Bug fixes
Fix a bug where facet values with computed inputs could incorrectly retain their old value on reconfiguration.
v0.19.7
Bug fixes
Avoid recomputing facets on state reconfiguration if that facet's inputs stayed precisely the same.
Selection ranges created with EditorSelection.range
will now have an assoc pointing at their anchor, when non-empty.
codemirror/view
v6.3.1
Bug fixes
Fix a crash when trying to scroll something into view in an editor that wasn't in the visible DOM.
Fix an issue where coordsAtPos
returned the coordinates on the wrong side of a widget decoration wrapped in a mark decoration.
Fix an issue where content on long wrapped lines could fail to properly scroll into view.
Fix an issue where DOM change reading on Chrome Android could get confused when a transaction came in right after a beforeinput event for backspace, enter, or delete.
v6.3.0
Bug fixes
Reduce the amount of wrap-point jittering when scrolling through a very long wrapped line.
Fix an issue where scrolling to content that wasn't currently drawn due to being on a very long line would often fail to scroll to the right position.
Suppress double-space-adds-period behavior on Chrome Mac when it behaves weirdly next to widget.
New features
Key binding objects with an any
property will now add handlers that are called for any key, within the ordering of the keybindings.
v6.2.5
Bug fixes
Don't override double/triple tap behavior on touch screen devices, so that the mobile selection menu pops up properly.
Fix an issue where updating the selection could crash on Safari when the editor was hidden.
v6.2.4
Bug fixes
Highlight the active line even when there is a selection. Prevent the active line background from obscuring the selection backdrop.
Fix an issue where elements with negative margins would confuse the editor's scrolling-into-view logic.
Fix scrolling to a specific position in an editor that has not been in view yet.
v6.2.3
Bug fixes
Fix a bug where cursor motion, when starting from a non-empty selection range, could get stuck on atomic ranges in some circumstances.
Avoid triggering Chrome Android's text-duplication issue when a period is typed in the middle of a word.
v6.2.2
Bug fixes
Don't reset the selection for selection change events that were suppressed by a node view.
v6.2.1
Bug fixes
Don't use the global document
variable to track focus, since that doesn't work in another window/frame.
Fix an issue where key handlers that didn't return true were sometimes called twice for the same keypress.
Avoid editing glitches when using deletion keys like ctrl-d on iOS.
Properly treat characters from the 'Arabic Presentation Forms-A' Unicode block as right-to-left.
Work around a Firefox bug that inserts text at the wrong point for specific cross-line selections.
v6.2.0
Bug fixes
Fix a bug where posAtCoords
would return the wrong results for positions to the right of wrapped lines.
New features
The new EditorView.setRoot
method can be used when an editor view is moved to a new document or shadow root.
v6.1.4
Bug fixes
Make selection-restoration on focus more reliable.
v6.1.3
Bug fixes
Fix a bug where a document that contains only non-printing characters would lead to bogus text measurements (and, from those, to crashing).
Make sure differences between estimated and actual block heights don't cause visible scroll glitches.
v6.1.2
Bug fixes
Fix an issue where double tapping enter to confirm IME input and insert a newline on iOS would sometimes insert two newlines.
Fix an issue on iOS where a composition could get aborted if the editor scrolled on backspace.
v6.1.1
Bug fixes
Make highlightSpecialChars
replace directional isolate characters by default.
The editor will now try to suppress browsers' native behavior of resetting the selection in the editable content when the editable element is focused (programmatically, with tab, etc).
Fix a CSS issue that made it possible, when the gutters were wide enough, for them to overlap with the content.
v6.1.0
New features
MatchDecorator
now supports a decorate
option that can be used to customize the way decorations are added for each match.
v6.0.3
Bug fixes
Fix a problem where posAtCoords
could incorrectly return the start of the next line when querying positions between lines.
Fix an issue where registering a high-precedence keymap made keymap handling take precedence over other keydown event handlers.
Ctrl/Cmd-clicking can now remove ranges from a multi-range selection.
v6.0.2
Bug fixes
Fix a CSS issue that broke horizontal scroll width stabilization.
Fix a bug where defaultLineHeight
could get an incorrect value in very narrow editors.
v6.0.1
Bug fixes
Avoid DOM selection corruption when the editor doesn't have focus but has selection and updates its content.
Fall back to dispatching by key code when a key event produces a non-ASCII character (so that Cyrillic and Arabic keyboards can still use bindings specified with Latin characters).
v6.0.0
New features
The new static EditorView.findFromDOM
method can be used to retrieve an editor instance from its DOM structure.
Instead of passing a constructed state to the EditorView
constructor, it is now also possible to inline the configuration options to the state in the view config object.
v0.20.7
Bug fixes
Fix an issue on Chrome Android where the DOM could fail to display the actual document after backspace.
Avoid an issue on Chrome Android where DOM changes were sometimes inappropriately replace by a backspace key effect due to spurious beforeinput events.
Fix a problem where the content element's width didn't cover the width of the actual content.
Work around a bug in Chrome 102 which caused wheel scrolling of the editor to be interrupted every few lines.
v0.20.6
Bug fixes
Make sure the editor re-measures itself when its attributes are updated.
v0.20.5
Bug fixes
Fix an issue where gutter elements without any markers in them would not get the cm-gutterElement
class assigned.
Fix an issue where DOM event handlers registered by plugins were retained indefinitely, even after the editor was reconfigured.
v0.20.4
Bug fixes
Prevent Mac-style behavior of inserting a period when the user inserts two spaces.
Fix an issue where the editor would sometimes not restore the DOM selection when refocused with a selection identical to the one it held when it lost focus.
v0.20.3
Bug fixes
Fix a bug where the input handling could crash on repeated (or held) backspace presses on Chrome Android.
v0.20.2
New features
The new hideOn
option to hoverTooltip
allows more fine-grained control over when the tooltip should hide.
v0.20.1
Bug fixes
Remove debug statements that accidentally made it into 0.20.0.
Fix a regression in moveVertically
.
v0.20.0
Breaking changes
The deprecated interfaces blockAtHeight
, visualLineAtHeight
, viewportLines
, visualLineAt
, scrollPosIntoView
, scrollTo
, and centerOn
were removed from the library.
All decorations are now provided through EditorView.decorations
, and are part of a single precedence ordering. Decoration sources that need access to the view are provided as functions.
Atomic ranges are now specified through a facet (EditorView.atomicRanges
).
Scroll margins are now specified through a facet (EditorView.scrollMargins
).
Plugin fields no longer exist in the library (and are replaced by facets holding function values).
This package no longer re-exports the Range type from @codemirror/state.
Bug fixes
Fix a bug where zero-length block widgets could cause viewportLineBlocks
to contain overlapping ranges.
New features
The new perLineTextDirection
facet configures whether the editor reads text direction per line, or uses a single direction for the entire editor. EditorView.textDirectionAt
returns the direction around a given position.
rectangularSelection
and crosshairCursor
from @codemirror/rectangular-selection were merged into this package.
This package now exports the tooltip functionality that used to live in @codemirror/tooltip.
The exports from the old @codemirror/panel package are now available from this package.
The exports from the old @codemirror/gutter package are now available from this package.
v0.19.48
Bug fixes
Fix an issue where DOM syncing could crash when a DOM node was moved from a parent to a child node (via widgets reusing existing nodes).
To avoid interfering with things like a vim mode too much, the editor will now only activate the tab-to-move-focus escape hatch after an escape press that wasn't handled by an event handler.
Make sure the view measures itself before the page is printed.
Tweak types of view plugin defining functions to avoid TypeScript errors when the plugin value doesn't have any of the interface's properties.
v0.19.47
Bug fixes
Fix an issue where block widgets at the start of the viewport could break height computations.
v0.19.46
Bug fixes
Fix a bug where block widgets on the edges of viewports could cause the positioning of content to misalign with the gutter and height computations.
Improve cursor height next to widgets.
Fix a bug where mapping positions to screen coordinates could return incorred coordinates during composition.
v0.19.45
Bug fixes
Fix an issue where the library failed to call WidgetType.destroy
on the old widget when replacing a widget with a different widget of the same type.
Fix an issue where the editor would compute DOM positions inside composition contexts incorrectly in some cases, causing the selection to be put in the wrong place and needlessly interrupting compositions.
Fix leaking of resize event handlers.
v0.19.44
Bug fixes
Fix a crash that occasionally occurred when drag-selecting in a way that scrolled the editor.
New features
The new EditorView.compositionStarted
property indicates whether a composition is starting.
v0.19.43
Bug fixes
Fix several issues where editing or composition went wrong due to our zero-width space kludge characters ending up in unexpected places.
Make sure the editor re-measures its dimensions whenever its theme changes.
Fix an issue where some keys on Android phones could leave the editor DOM unsynced with the actual document.
v0.19.42
Bug fixes
Fix a regression in cursor position determination after making an edit next to a widget.
v0.19.41
Bug fixes
Fix an issue where the editor's view of its content height could go out of sync with the DOM when a line-wrapping editor had its width changed, causing wrapping to change.
Fix a bug that caused the editor to draw way too much content when scrolling to a position in an editor (much) taller than the window.
Report an error when a replace decoration from a plugin crosses a line break, rather than silently ignoring it.
Fix an issue where reading DOM changes was broken when lineSeparator
contained more than one character.
Make ordering of replace and mark decorations with the same extent and inclusivness more predictable by giving replace decorations precedence.
Fix a bug where, on Chrome, replacement across line boundaries and next to widgets could cause bogus zero-width characters to appear in the content.
rollup/plugins (@rollup/plugin-babel)
v6.0.0
2022-10-08
Breaking Changes
- fix: prepare for Rollup 3 #1303
v5.3.1
2022-02-22
Bugfixes
- fix: consider path delimeter on windows (#1090)
rollup/plugins (@rollup/plugin-commonjs)
v23.0.0
2022-10-09
Breaking Changes
- fix: prepare for Rollup 3 #1300
v22.0.2
2022-08-05
Bugfixes
- fix: Exclude multi-line template strings from indent (#1229)
v22.0.1
2022-06-24
Bugfixes
- fix: Only proxy detected commonjs entry points (#1180)
v22.0.0
2022-04-24
Breaking Changes
- fix: add heuristic to deoptimize requires after calling imported function (requires rollup@2.68.0) (#1038)
- feat: reimplement dynamic import handling (requires Node 12, no longer supports require.cache) (#1038)
Bugfixes
- fix: support CJS modules re-exporting transpiled ESM modules (#1165)
- fix: Warn when plugins do not pass options to resolveId (#1038)
- fix: Do not change semantics when removing requires in if statements (#1038)
- fix: handle external dependencies when using the cache (#1038)
- fix: proxy all entries to not break legacy polyfill plugins (#1038)
- fix: use correct version and add package exports (#1038)
- fix: validate node-resolve peer version (#1038)
- fix: inject module name into dynamic require function (#1038)
- fix: do not transform "typeof exports" for mixed modules (#1038)
- fix: attach correct plugin meta-data to commonjs modules (#1038)
Features
- feat: expose plugin version (#1038)
- feat: throw for dynamic requires from outside the configured root (#1038)
- feat: add dynamicRequireRoot option (#1038)
- feat: auto-detect conditional requires (#1038)
- feat: limit ignoreTryCatch to external requires (#1038)
- feat: make namespace callable when requiring ESM with function default (#1038)
- feat: Infer type for unidentified modules (#1038)
- feat: automatically wrap cyclic modules (#1038)
- feat: add strictRequires option to wrap modules (#1038)
Updates
- refactor: deconflict helpers only once globals are known (#1038)
v21.1.0
2022-04-15
Features
- feat: make defaultIsModuleExports as funtion to config defaultIsModuleExports for each source (#1052)
v21.0.3
2022-03-27
Updates
- docs: sync required rollup version (#1118)
v21.0.2
2022-02-23
Updates
- chore: transpile dynamic helper to ES5 (#1082)
rollup/plugins (@rollup/plugin-node-resolve)
v15.0.0
2022-10-10
Breaking Changes
- fix: prepare for Rollup 3 #1288
v14.1.0
2022-09-12
Features
- feat: add new option, modulePaths (#1104)
v14.0.1
2022-09-08
Bugfixes
- fix: handle circular commonjs (#1259)
v14.0.0
2022-09-06
Breaking Changes
- fix: preserve moduleSideEffects when re-resolving files (#1245)
v13.3.0
2022-05-02
Features
- feat: support
node:
protocol (#1124)
v13.2.2
2022-05-02
Bugfixes
- fix: Respect if other plugins resolve the resolution to a different id (#1181)
- fix: Revert respect if other plugins resolve the resolution to a different id (
ae59ceb
) - fix: Respect if other plugins resolve the resolution to a different id (
f8d4c44
)
v13.2.1
2022-04-15
Bugfixes
- fix: update side effects logic to be deep when glob doesn’t contain
/
(#1148)
v13.2.0
2022-04-11
Features
- feat: Add the ability to pass a function into resolveOnly (#1152)
postcss/postcss-import
v15.0.0
- BREAKING: Require Node.js v14+ (#497)
-
BREAKING: Require
nameLayer
option for handling anonymous layers (#496) - Fix handling of
@media
queries inside layered imports (#495, #496)
v14.1.0
- Add
@layer
support (#483)
puppeteer/puppeteer
v18.2.1
Bug Fixes
Dependencies
- The following workspace dependencies were updated
- dependencies
- puppeteer-core bumped from 18.2.0 to ^18.2.1
- dependencies
v18.2.0
Features
Dependencies
- The following workspace dependencies were updated
- dependencies
- puppeteer-core bumped from 18.1.0 to ^18.2.0
- dependencies
v18.1.0
Features
v18.0.5
Bug Fixes
v18.0.4
Bug Fixes
v18.0.3
Bug Fixes
v18.0.2
Bug Fixes
v18.0.1
Bug Fixes
v18.0.0
⚠ BREAKING CHANGES
- fix bounding box visibility conditions (#8954)
Features
Bug Fixes
- fix bounding box visibility conditions (#8954) (ac9929d)
- suppress init errors if the target is closed (#8947) (cfaaa5e)
- use win64 version of chromium when on arm64 windows (#8927) (64843b8)
v17.1.3
Bug Fixes
- FirefoxLauncher should not use BrowserFetcher in puppeteer-core (#8920) (f2e8de7), closes #8919
- linux arm64 check on windows arm (#8917) (f02b926), closes #8915
v17.1.2
Bug Fixes
- add missing code coverage ranges that span only a single character (#8911) (0c577b9)
- add Page.getDefaultTimeout getter (#8903) (3240095), closes #8901
- don't detect project root for puppeteer-core (#8907) (b4f5ea1), closes #8896
- support scale for screenshot clips (#8908) (260e428), closes #5329
- work around a race in waitForFileChooser (#8905) (053d960), closes #6040
v17.1.1
Bug Fixes
v17.1.0
Features
Bug Fixes
- allow getting a frame from an elementhandle (#8875) (3732757)
- typos in documentation (#8858) (8d95a9b)
- use the timeout setting in waitForFileChooser (#8856) (f477b46)
v17.0.0
⚠ BREAKING CHANGES
Bug Fixes
- allow multiple navigations to happen in LifecycleWatcher (#8826) (341b669), closes #8811
- internalize execution context (#8844) (2f33237)
- remove
root
fromWaitForSelectorOptions
(#8848) (1155c8e) - remove deferred promise timeouts (#8835) (202ffce), closes #8832
v16.2.0
Features
Bug Fixes
v16.1.1
Bug Fixes
- custom sessions should not emit targetcreated events (#8788) (3fad05d), closes #8787
- deprecate
ExecutionContext
(#8792) (b5da718) - deprecate
root
inWaitForSelectorOptions
(#8795) (65a5ce8) - deprecate
waitForTimeout
(#8793) (8f612d5) - make sure there is a check for targets when timeout=0 (#8765) (c23cdb7), closes #8763
- resolve navigation flakiness (#8768) (2580347), closes #8644
- specify Puppeteer version for Chromium 105.0.5173.0 (#8766) (b5064b7)
- use targetFilter in puppeteer.launch (#8774) (ee2540b), closes #8772
v16.1.0
Features
Bug Fixes
- resolve target manager init if no existing targets detected (#8748) (8cb5043), closes #8747
- specify the target filter in setDiscoverTargets (#8742) (49193cb)
v16.0.0
⚠ BREAKING CHANGES
- With Chromium, Puppeteer will now attach to page/iframe targets immediately to allow reliable configuration of targets.
Features
- add Dockerfile (#8315) (936ed86)
- detect Firefox in connect() automatically (#8718) (2abd772)
- use CDP's auto-attach mechanism (#8520) (2cbfdeb)
Bug Fixes
- address flakiness in frame handling (#8688) (6f81b23)
- disable AcceptCHFrame (#8706) (96d9608), closes #8479
- use loaderId to reduce test flakiness (#8717) (d2f6db2)
v15.5.0
Features
v15.4.2
Bug Fixes
v15.4.1
Bug Fixes
v15.4.0
Features
Bug Fixes
v15.3.2
Bug Fixes
- cache dynamic imports (#8652) (1de0383)
- expose a RemoteObject getter (#8642) (d0c4291), closes #8639
- page: fix page.#scrollIntoViewIfNeeded method (#8631) (b47f066)
v15.3.1
Bug Fixes
v15.3.0
Features
Bug Fixes
v15.2.0
Features
- add fromSurface option to page.screenshot (#8496) (79e1198)
- export public types only (#8584) (7001322)
Bug Fixes
v15.1.1
Bug Fixes
- export
ElementHandle
(e0198a7)
v15.1.0
Features
v15.0.2
Bug Fixes
v15.0.1
Bug Fixes
v15.0.0
⚠ BREAKING CHANGES
- type inference for evaluation types (#8547)
Features
- add experimental
client
toHTTMRequest
(#8556) (ec79f3a) - type inference for evaluation types (#8547) (26c3acb)
v14.4.1
Bug Fixes
- avoid
instanceof Object
check inisErrorLike
(#8527) (6cd5cd0) - export
devices
,errors
, and more (cba58a1)
v14.4.0
Features
Bug Fixes
- parse empty options in <select> (#8489) (b30f3f4)
- use error-like (#8504) (4d35990)
- use OS-independent abs. path check (#8505) (bfd4e68)
v14.3.0
Features
Bug Fixes
- don't throw on bad access (#8472) (e837866)
- Kill browser process when killing process group fails (#8477) (7dc8e37)
- only lookup
localhost
for DNS lookups (1b025b4) - robustly check for launch executable (#8468) (b54dc55)
v14.2.1
Bug Fixes
v14.2.0
Features
- chromium: roll to Chromium 103.0.5059.0 (r1002410) (#8410) (54efc2c)
- support node 18 (#8447) (f2d8276)
- use strict typescript (#8401) (b4e751f)
Bug Fixes
- multiple same request event listener (#8404) (9211015)
- NodeNext incompatibility in package.json (#8445) (c4898a7)
- process documentation during publishing (#8433) (d111d19)
v14.1.2
Bug Fixes
- do not use loaderId for lifecycle events (#8395) (c96c915)
- fix release-please bot (#8400) (5c235c7)
- use strict TS in Input.ts (#8392) (af92a24)
v14.1.1
Bug Fixes
- kill browser process when 'taskkill' fails on Windows (#8352) (dccfadb)
- only check loading iframe in lifecycling (#8348) (7438030)
- recompile before funit and unit commands (#8363) (8735b78), closes #8362
v14.1.0
Features
- add waitForXPath to ElementHandle (#8329) (7eaadaf)
- allow handling other targets as pages internally (#8336) (3b66a2c)
Bug Fixes
- disable AvoidUnnecessaryBeforeUnloadCheckSync to fix navigations (#8330) (4854ad5)
- If currentNode and root are the same, do not include them in the result (#8332) (a61144d)
v14.0.0
⚠ BREAKING CHANGES
- strict mode fixes for HTTMRequest/Response classes (#8297)
- Node 12 is no longer supported.
Features
- add support for Apple Silicon chromium builds (#7546) (baa017d), closes #6622
- chromium: roll to Chromium 102.0.5002.0 (r991974) (#8319) (be4c930)
- support ES modules (#8306) (6841bd6)
Bug Fixes
-
make sure inner OOPIFs can be attached to (#8304) (5539598)
-
strict mode fixes for HTTMRequest/Response classes (#8297) (2804ae8), closes #6769
v13.7.0
Features
- add
back
andforward
mouse buttons (#8284) (7a51bff) - support chrome headless mode (#8260) (1308d9a)
Bug Fixes
- doc typo (#8263) (952a2ae)
- use different test names for browser specific tests in launcher.spec.ts (#8250) (c6cf1a9)
v13.6.0
Features
- chromium: roll to Chromium 101.0.4950.0 (r982053) (#8213) (ec74bd8)
- respond multiple headers with same key (#8183) (c1dcd85)
Bug Fixes
- also kill Firefox when temporary profile is used (#8233) (b6504d7)
- consider existing frames when waiting for a frame (#8200) (0955225)
- disable bfcache in the launcher (#8196) (9ac7318), closes #8182
- enable page.spec event handler test for firefox (#8214) (2b45027)
- forget queuedEventGroup when emitting response in responseReceivedExtraInfo (#8234) (#8239) (91a8e73)
- forget request will be sent from the _requestWillBeSentMap list. (#8226) (4b786c9)
- ignore favicon requests in page.spec event handler tests (#8208) (04e5c88)
- network.spec.ts: typo in the word should (#8223) (e93faad)
v13.5.2
Bug Fixes
- chromium downloading hung at 99% (#8169) (8f13470)
- get extra headers from Fetch.requestPaused event (#8162) (37ede68)
v13.5.1
Bug Fixes
v13.5.0
Features
Bug Fixes
- Inherit browser-level proxy settings from incognito context (#7770) (3feca32)
- page: page.createIsolatedWorld error catching has been added (#7848) (309e8b8)
- tests: ensure all tests honour BINARY envvar (#8092) (3b8b9ad)
v13.4.1
Bug Fixes
v13.4.0
Features
- add support for async waitForTarget (#7885) (dbf0639)
- export
Frame._client
through getter (#8041) (e9278fc) - HTTMResponse: expose timing information (#8025) (30b3d49)
Bug Fixes
- change kill to signal the whole process group to terminate (#6859) (0eb9c78)
- element screenshot issue in headful mode (#8018) (5346e70), closes #7999
- ensure dom binding is not called after detach (#8024) (5c308b0), closes #7814
- use both __dirname and require.resolve to support different bundlers (#8046) (e6a6295), closes #8044
v13.3.2
Bug Fixes
rollup/rollup
v3.0.0
2022-10-11
Breaking Changes
General Changes
- Rollup now requires at least Node 14.18.0 to run (#4548 and #4596)
- The browser build has been split into a separate package
@rollup/browser
(#4593) - The node build uses the
node:
prefix for imports of builtin modules (#4596) - Some previously deprecated features have been removed (#4552):
- Some plugin context functions have been removed:
-
this.emitAsset()
: usethis.emitFile()
-
this.emitChunk()
: usethis.emitFile()
-
this.getAssetFileName()
: usethis.getFileName()
-
this.getChunkFileName()
: usethis.getFileName()
-
this.isExternal()
: usethis.resolve()
-
this.resolveId()
: usethis.resolve()
-
- The
resolveAssetUrl
plugin hook has been removed: useresolveFileUrl
- Rollup no longer passes
assetReferenceId
orchunkReferenceId
parameters toresolveFileUrl
- The
treeshake.pureExternalModules
option has been removed: usetreeshake.moduleSideEffects: 'no-external'
- You may no longer use
true
orfalse
foroutput.interop
. As a replacement fortrue
, you can use "compat" - Emitted assets no longer have an
isAsset
flag in the bundle - Rollup will no longer fix assets added directly to the bundle by adding the
type: "asset"
field
- Some plugin context functions have been removed:
- Some features that were previously marked for deprecation now show warnings when used (#4552):
- Some options have been deprecated:
-
inlineDynamicImports
as part of the input options: useoutput. inlineDynamicImports
-
manualChunks
as part of the input options: useoutput. manualChunks
-
maxParallelFileReads
: use `maxParallelFileOps -
output.preferConst
: useoutput.generatedCode.constBindings
-
output.dynamicImportFunction
: use therenderDynamicImport
plugin hook -
output.namespaceToStringTag
: useoutput.generatedCode.symbols
-
preserveModules
as part of the input options: useoutput. preserveModules
-
- You should no longer access
this.moduleIds
in plugins: usethis.getModuleIds()
- You should no longer access
this.getModuleInfo(...).hasModuleSideEffects
in plugins: usethis.getModuleInfo(...).moduleSideEffects
- Some options have been deprecated:
- Configuration files are only bundled if either the
--configPlugin
or the--bundleConfigAsCjs
options are used. The configuration is bundled to an ES module unless the--bundleConfigAsCjs
option is used. In all other cases, configuration is now loaded using Node's native mechanisms (#4574 and #4621) - The properties attached to some errors have been changed so that there are fewer different possible properties with consistent types (#4579)
- Some errors have been replaced by others (ILLEGAL_NAMESPACE_REASSIGNMENT -> ILLEGAL_REASSIGNMENT, NON_EXISTENT_EXPORT -> MISSING_EXPORT) (#4579)
- Files in
rollup/dist/*
can only be required using their file extension (#4581) - The
loadConfigFile
helper now has a named export of the same name instead of a default export (#4581) - When using the API and sourcemaps, sourcemap comments are contained in the emitted files and sourcemaps are emitted as regular assets (#4605)
- Watch mode no longer uses Node's EventEmitter but a custom implementation that awaits Promises returned from event handlers (#4609)
- Assets may only be deduplicated with previously emitted assets if their source is a
string
(#4644) - By default, Rollup will keep external dynamic imports as
import(…)
in commonjs output unlessoutput.dynamicImportInCjs
is set to false (#4647)
Changes to Rollup Options
- As functions passed to
output.banner/footer/intro/outro
are now called per-chunk, they should be careful to avoid performance-heavy operations (#4543) -
entryFileNames/chunkFileNames
functions now longer have access to the rendered module information viamodules
, only to a list of includedmoduleIds
(#4543) - The path of a module is no longer prepended to the corresponding chunk when preserving modules (#4565)
- When preserving modules, the
[name]
placeholder (as well as thechunkInfo.name
property when using a function) now includes the relative path of the chunk as well as optionally the file extension if the extension is not one of.js
,.jsx
,.mjs
,.cjs
,.ts
,.tsx
,.mts
, or.cts
(#4565) - The
[ext]
,[extName]
and[assetExtName]
placeholders are no longer supported when preserving modules (#4565) - The
perf
option no longer collects timings for the asynchronous part of plugin hooks as the readings were wildly inaccurate and very misleading, and timings are adapted to the new hashing algorithm (#4566) - Change the default value of
makeAbsoluteExternalsRelative
to "ifRelativeSource" so that absolute external imports will no longer become relative imports in the output, while relative external imports will still be renormalized (#4567) - Change the default for
output.generatedCode.reservedNamesAsProps
to no longer quote properties likedefault
by default (#4568) - Change the default for
preserveEntrySignatures
to "exports-only" so that by default, empty facades for entry chunks are no longer created (#4576) - Change the default for
output.interop
to "default" to better align with NodeJS interop (#4611) - Change the default for
output.esModule
to "if-default-prop", which only adds __esModule when the default export would be a property (#4611) - Change the default for
output.systemNullSetters
totrue
, which requires at least SystemJS 6.3.3 (#4649)
Plugin API Changes
- Plugins that add/change/remove imports or exports in
renderChunk
should make sure to updateChunkInfo.imports/importedBindings/exports
accordingly (#4543) - The order of plugin hooks when generating output has changed (#4543)
- Chunk information passed to
renderChunk
now contains names with hash placeholders instead of final names, which will be replaced when used in the returned code orChunkInfo.imports/importedBindings/exports
(#4543 and #4631) - Hooks defined in output plugins will now run after hooks defined in input plugins (used to be the other way around) (#3846)
Features
- Functions passed to
output.banner/footer/intro/outro
are now called per-chunk with some chunk information (#4543) - Plugins can access the entire chunk graph via an additional parameter in
renderChunk
(#4543) - Chunk hashes only depend on the actual content of the chunk and are otherwise stable against things like renamed/moved source files or changed module resolution order (#4543)
- The length of generated file hashes can be customized both globally and per-chunk (#4543)
- When preserving modules, the regular
entryFileNames
logic is used and the path is included in the[name]
property. This finally gives full control over file names when preserving modules (#4565) -
output.entryFileNames
now also supports the[hash]
placeholder when preserving modules (#4565) - The
perf
option will now collect (synchronous) timings for all plugin hooks, not just a small selection (#4566) - All errors thrown by Rollup have
name: RollupError
now to make clearer that those are custom error types (#4579) - Error properties that reference modules (such as id and ids) will now always contain the full ids. Only the error message will use shortened ids (#4579)
- Errors that are thrown in response to other errors (e.g. parse errors thrown by acorn) will now use the standardized cause property to reference the original error (#4579)
- If sourcemaps are enabled, files will contain the appropriate sourcemap comment in
generateBundle
and sourcemap files are available as regular assets (#4605) - Returning a Promise from an event handler attached to a RollupWatcher instance will make Rollup wait for the Promise to resolve (#4609)
- There is a new value "compat" for output.interop that is similar to "auto" but uses duck-typing to determine if there is a default export (#4611)
- There is a new value "if-default-prop" for esModule that only adds an
__esModule
marker to the bundle if there is a default export that is rendered as a property (#4611) - Rollup can statically resolve checks for
foo[Symbol.toStringTag]
to "Module" if foo is a namespace (#4611) - There is a new CLI option
--bundleConfigAsCjs
which will force the configuration to be bundled to CommonJS (#4621) - Import assertions for external imports that are present in the input files will be retained in ESM output (#4646)
- Rollup will warn when a module is imported with conflicting import assertions (#4646)
- Plugins can add, remove or change import assertions when resolving ids (#4646)
- The
output.externalImportAssertions
option allows to turn off emission of import assertions (#4646) - Use
output.dynamicImportInCjs
to control if dynamic imports are emitted asimport(…)
or wrappedrequire(…)
when generating commonjs output (#4647)
Bug Fixes
- Chunk hashes take changes in
renderChunk
, e.g. minification, into account (#4543) - Hashes of referenced assets are properly reflected in the chunk hash (#4543)
- No longer warn about implicitly using default export mode to not tempt users to switch to named export mode and break Node compatibility (#4624)
- Avoid performance issues when emitting thousands of assets (#4644)
Merge Requests
- #3846: [v3.0] Run output plugins last (@aleclarson)
- #4543: [v3.0] New hashing algorithm that "fixes (nearly) everything" (@lukastaegert)
- #4548: [v3.0] Deprecate Node 12 (@lukastaegert)
- #4552: [v3.0] Remove actively deprecated features, show warnings for other deprecated features (@lukastaegert)
- #4558: [v3.0] Convert build scripts to ESM, update dependencies (@lukastaegert)
- #4565: [v3.0] Rework file name patterns when preserving modules (@lukastaegert)
- #4566: [v3.0] Restructure timings (@lukastaegert)
- #4567: [v3.0] Change default for makeAbsoluteExternalsRelative (@lukastaegert)
- #4568: [v3.0] Change default for output.generatedCode.reservedNamesAsProps (@lukastaegert)
- #4574: [v3.0] Better esm config file support (@lukastaegert)
- #4575: [v3.0] Show deprecation warning for maxParallelFileReads (@lukastaegert)
- #4576: [v3.0] Change default for preserveEntrySignatures to exports-only (@lukastaegert)
- #4579: [v3.0] Refine errors and warnings (@lukastaegert)
- #4581: [v3.0] Use named export for loadConfigFile (@lukastaegert)
- #4592: [v3.0] Port doc changes from #4572 and #4583 to 3.0 (@berniegp)
- #4593: [v3.0] Browser build (@lukastaegert)
- #4596: [v3.0] Use "node:" prefix for imports of node builtins (@lukastaegert)
- #4605: [v3.0] Better sourcemap emission (@lukastaegert)
- #4609: [v3.0] Custom awaiting watch emitter (@lukastaegert)
- #4611: [v3.0] Improve interop defaults (@lukastaegert)
- #4621: [v3.0] Always try to load config files via Node if possible (@lukastaegert)
- #4624: [v3.0] Remove warning when using implicit default export mode (@lukastaegert)
- #4631: [v3.0] Use ASCII characters for hash placeholders (@lukastaegert)
- #4644: [v3.0] Improve performance of asset emissions (@lukastaegert)
- #4646: [v3.0] Basic support for import assertions (@lukastaegert)
- #4647: [v3.0] Keep dynamic imports in CommonJS output (@lukastaegert)
- #4649: [v3.0] Change default for systemNullSetters (@lukastaegert)
- #4651: [v3.0] use compiler target ES2020 (@dnalborczyk)
v2.79.1
2022-09-22
Bug Fixes
- Avoid massive performance degradation when creating thousands of chunks (#4643)
Merge Requests
- #4639: fix: typo docs and contributors link in CONTRIBUTING.md (@takurinton)
- #4641: Update type definition of resolveId (@ivanjonas)
- #4643: Improve performance of chunk naming collision check (@lukastaegert)
v2.79.0
2022-08-31
Features
- Add
amd.forceJsExtensionForImports
to enforce using.js
extensions for relative AMD imports (#4607)
Merge Requests
v2.78.1
2022-08-19
Bug Fixes
- Avoid inferring "arguments" as name for a default export placeholder variable (#4613)
Merge Requests
- #4613: Prevent using arguments for generated variable names (@lukastaegert)
v2.78.0
2022-08-14
Features
- Support writing plugin hooks as objects with a "handler" property (#4600)
- Allow changing execution order per plugin hook (#4600)
- Add flag to execute plugins in async parallel hooks sequentially (#4600)
Merge Requests
- #4600: Allow using objects as hooks to change execution order (@lukastaegert)
v2.77.3
2022-08-11
Bug Fixes
- Correctly resolve preserveModulesRoot in Vite (#4591)
Merge Requests
- #4591: resolve currentPath (@cleverpp)
v2.77.2
2022-07-27
Bug Fixes
- Avoid a rendering failure when mixing outputs with inlined and non-inlined dynamic imports (#4589)
Merge Requests
- #4589: Handle generating non-inlined imports after inlined ones (@lukastaegert)
v2.77.1
2022-07-26
Bug Fixes
- Ensure IIFE output generates a global variable when generating ES5 (#4588)
Merge Requests
- #4577: broken link removed (@Jawad-H)
- #4580: Update dependencies (@lukastaegert)
- #4584: Documentation clarity and syntax improvements (@berniegp)
- #4588: Use var for IIFE (@lukastaegert)
v2.77.0
2022-07-15
Features
- Introduce
maxParallelFileOps
to limit both read and write operations, default to 20 and replacesmaxParallelFileRead
(#4570)
Bug Fixes
- Avoid including variables referenced from return statements that are never reached (#4573)
Merge Requests
- #4570: Introduce maxParallelFileOps to limit parallel writes (@lukastaegert)
- #4572: Document more ways to read package.json in ESM (@berniegp)
- #4573: Do not include unused return expressions (@lukastaegert)
v2.76.0
2022-07-08
Features
- Allow setting a
sourcmapBaseUrl
for absolute paths in sourcemaps (#4527)
Bug Fixes
- Support absolute CLI plugin paths on Windows (#4533)
Merge Requests
- #4527: Add sourcemapBaseUrl option (@nickgarlis)
- #4533: Add support for absolute plugin paths (@ygoe)
- #4538: chore: Included githubactions in the dependabot config (@naveensrinivasan)
- #4546: Adapt Node versions on CI to prepare for v3 (@lukastaegert)
- #4556: Improve error message for invalid patterns (@DysphoricUnicorn)
- #4559: Update dependencies (@lukastaegert)
- #4560: Bump peter-evans/create-or-update-comment from 1 to 2 (@dependabot)
- #4561: Bump peter-evans/find-comment from 1 to 2 (@dependabot)
- #4562: Bump codecov/codecov-action from 1 to 3 (@dependabot)
v2.75.7
2022-06-20
Bug Fixes
- Mark Array.prototype.group/groupToMap as side effect free. (#4531)
Merge Requests
- #4523: chore: remove source map workaround, bump deps (@dnalborczyk)
- #4525: Add regression tests for instanceof (@lukastaegert)
- #4528: chore: Set permissions for GitHub actions (@naveensrinivasan)
- #4531: fix: rename Array.prototype.group/groupToMap (@dnalborczyk)
- #4535: chore: bump resolve from 1.22.0 to 1.22.1 (@pos777)
v2.75.6
2022-06-07
Bug Fixes
- Properly deoptimize "this" when using member expressions with getters/setters in for loops and update expressions (#4522)
Merge Requests
- #4522: Refactor side effect handling for property interactions (@lukastaegert)
v2.75.5
2022-06-01
Bug Fixes
- Avoid crashes when using logical expressions for unused constructor arguments (#4519)
- Fix missing parameter defaults for calls from try statements and functions returned by functions (#4520)
Merge Requests
- #4519: Try to make logical expression deoptimization more robust (@lukastaegert)
- #4520: Roll back parameter default tree shaking (@lukastaegert)
v2.75.4
2022-05-31
Bug Fixes
- Ensure parameter defaults are retained when a function is used as an object property (#4516)
Merge Requests
- #4516: Deoptimize parameter defaults when referenced from object/array/class literals (@lukastaegert)
v2.75.3
2022-05-29
Bug Fixes
- Retain parameter defaults for functions that are defaults themselves (#4515)
- Track mutations for objects as default values (#4515)
Merge Requests
- #4515: Ensure parameter defaults are deoptimized (@lukastaegert)
v2.75.2
v2.75.1
2022-05-28
Merge Requests
- #4513: Update link to node polyfill repo (@lukastaegert)
v2.75.0
2022-05-27
Features
- Re-implement default parameter tree-shaking for top-level functions (#4510)
- Do not consider calling string methods like
.trim()
on template literals a side effect (#4511)
Merge Requests
- #4510: Tree-shake parameter defaults (replaces #4498) (@lukastaegert)
- #4511: Tree-shake side-effect-free string methods on template literals (@lukastaegert)
v2.74.1
2022-05-19
Bug Fixes
- Revert #4498 until some issues are understood and resolved
v2.74.0
2022-05-19
Features
- Remove unneeded default values for function parameters (#4498)
Bug Fixes
- Use a consistent mechanism to resolve the config file to avoid issues on Windows (#4501)
- Avoid an inaccurate warning about an event emitter leak for complicated builds (#4502)
- Ensure that reexporting values from other chunks via dynamic imports does not reference non-imported variables (#4499)
Merge Requests
- #4498: Tree shake parameter defaults (@lukastaegert)
- #4499: Ensure reexports are available for namespaces (@lukastaegert)
- #4501: fix: config path problem on windows (@pos777)
- #4502: Avoid maximum listeners exceeded warning (@lukastaegert)
v2.73.0
2022-05-13
Features
- Do not treat Object.defineProperty/ies as side effect when called on an unused object (#4493)
- Do not assume that assigning a property can create a getter with side effects (#4493)
- Do not treat string.prototype.replace(All) as side effect when used with two literals (#4493)
Bug Fixes
- Detect side effects when manually declaring getters on functions (#4493)
Merge Requests
- #4493: Handle getters on functions and improve property deoptimization (@lukastaegert)
- #4494: Do not treat string.replace as side effect when used with a literal (@lukastaegert)
- #4495: Update docs for --configPlugin using typescript (@Jimmydalecleveland)
v2.72.1
2022-05-07
Bug Fixes
- Improve tree-shaking of classes with super classes in certain scenarios (#4489)
Merge Requests
- #4489: Do not deoptimize entire super class when adding a property (@lukastaegert)
v2.72.0
2022-05-05
Features
- Add CLI hooks to run external commands at certain points in watch mode (#4457)
Bug Fixes
- Fix an issue that could accidentally treat relevant assignments as side effect free (#4486)
Merge Requests
- #4457: feat: CLI event hook flags (@Harris-Miller)
- #4486: Fix reassignment tracking (@lukastaegert)
v2.71.1
2022-04-30
Bug Fixes
- Allow importing loadConfigFile without extension (#4483)
Merge Requests
- #4483: Add exports exception for loadConfigFile (@lukastaegert)
v2.71.0
2022-04-30
v2.70.2
2022-04-15
Bug Fixes
- Do not enforce undefined return values in TypeScript types (#4463)
Merge Requests
- #4463: use void for options hook instead of undefined (@ycmjason)
v2.70.1
2022-03-14
Bug Fixes
- Handle unfinished hook action errors as regular errors and avoid console logging (#4434)
- Allow access to "dist" folder in a Node 17 compatible way (#4436)
Merge Requests
- #4434: Track unfinished hook actions as regular errors (@lukastaegert)
- #4436: Update package.json (@frank-dspeed)
v2.70.0
2022-03-07
Features
- Make the
watchChange
andcloseWatcher
hooks asynchronous and make Rollup wait for these hooks before continuing (#4427)
Bug Fixes
- Do not abort watch mode for errors in
watchChange
but display them properly (#4427)
Merge Requests
- #4427: Do not abort watch mode on errors in watchChange (@lukastaegert)
v2.69.2
2022-03-06
Bug Fixes
- Mark
Object.entries
andObject.fromEntries
as pure (#4429) - Make sure new properties on Array.prototype and Object.prototype are not evaluated as "undefined" (#4428)
Merge Requests
- #4428: Treat unknown prototype props as unknown (@lukastaegert)
- #4429: Treat unknown prototype props as unknown (@869288142)
v2.69.1
2022-03-04
Bug Fixes
- Approximate source position instead of ignoring it when using a low-resolution source map in a transform hook (#4334)
Merge Requests
- #4334: fix(sourcemap): fall back to low-resolution line mapping (@aleclarson and @lukastaegert)
v2.69.0
2022-03-02
Features
- Introduce new
output.generatedCode.symbols
to control the usage of Symbols in Rollup-generated code (#4378) - soft-deprecate
output.namespaceToStringTag
in favor ofoutput.generatedCode.symbols
(#4378)
Bug Fixes
- Properly handle
./
and../
as external dependencies (#4419) - Make generated "Module" namespace toStringTag non-enumerable for correct Object.assign/spread behaviour (#4378)
- Add file name to error when top-level-await is used in disallowed formats (#4421)
Merge Requests
- #4378: Make namespace @@toStringTag "Module" non-enumerable (@dnalborczyk and @lukastaegert)
- #4413: refactor: some code and type fixes (@dnalborczyk)
- #4418: chore: bump deps (@dnalborczyk)
- #4419: Properly handle upper directories as external dependencies (@lukastaegert)
- #4421: Improve the error prompt and output the error file name (@caoxiemeihao)
- #4423: Update 999-big-list-of-options.md (@leoj3n)
v2.68.0
2022-02-22
Features
- provide information about cached import resolutions in
shouldTransformCachedModule
(#4414) - Add "types" field to Rollup's package exports (#4416)
Merge Requests
- #4410: refactor: use map for declarations and name suggestions (@dnalborczyk)
- #4411: refactor: use map for namespace reexports by name (@dnalborczyk)
- #4412: refactor: use includes where appropriate (@dnalborczyk)
- #4414: Add resolved sources to shouldTransformCachedModule (@lukastaegert)
- #4416: Add Typescript 4.5 nodenext node12 module resolution support (@frank-dspeed)
v2.67.3
2022-02-18
Bug Fixes
- Do not swallow other errors when unfinished hook actions are detected (#4409)
- Add additional information to output when there are unfinished hook actions (#4409)
Merge Requests
- #4399: docs: remove const (@TrickyPi)
- #4401: Improve test stability by getting independent of module id ordering in more places (@lukastaegert)
- #4403: fix: remove unnecessary property descriptor spread (@dnalborczyk)
- #4404: refactor: use map for import descriptions + re-export descriptions (@dnalborczyk)
- #4405: refactor: module exports to map (@dnalborczyk)
- #4406: Fix a typo in 'Direct plugin communication' code example (@younesmln)
- #4407: Document how resolveId is cached (@lukastaegert)
- #4409: Print ids for unfinished moduleParsed and shouldTransformCachedModule hooks (@lukastaegert)
v2.67.2
2022-02-10
Bug Fixes
- Ensure consistent order between manual chunks to fix hashing issues (#4397)
Merge Requests
- #4390: refactor: add @types/estree explicitly, fix dynamic type imports (@dnalborczyk)
- #4391: chore: remove acorn-walk ambient type definitions (@dnalborczyk)
- #4397: Sort manual chunks generated via a function by name (@lukastaegert)
v2.67.1
2022-02-07
Bug Fixes
- Make chunk file and variable names more deterministic when emitting chunks (#4386)
- Improve default module resolver performance by using non-blocking IO (#4386)
Merge Requests
- #4373: fix: even more types (@dnalborczyk)
- #4382: Update contribution tut link desc (@lemredd)
- #4383: chore: bump deps (@dnalborczyk)
- #4384: chore: move "wait" to utils + re-use (@dnalborczyk)
- #4385: refactor: convert watch tests to async functions (@dnalborczyk)
- #4386: refactor: use fs.promises in resolve id, Part 4 (@dnalborczyk and @lukastaegert)
- #4389: refactor: use fs.promises in generate license file, rollup config, Part 5 (@dnalborczyk)
stylelint/stylelint-config-standard
v28.0.0
- Removed:
stylelint
less than14.11.0
from peer dependencies. - Changed:
alpha-value-notation
to be"number"
for SVG*-opacity
properties.
v27.0.0
- Removed:
stylelint
less than14.10.0
from peer dependencies. - Changed: updated to
stylelint-config-recommended@9.0.0
- Added:
keyframe-selector-notation
rule.
v26.0.0
- Removed:
stylelint
less than14.9.0
from peer dependencies. - Changed: updated to
stylelint-config-recommended@8.0.0
- Added:
import-notation
rule. - Added:
selector-not-notation
rule.
Configuration
-
If you want to rebase/retry this MR, click this checkbox.
This MR has been generated by Renovate Bot.