Upgrading happy-dom 5 to 6
Breaking5.4.0 → 6.0.4Breaking1New4Fixed6
BreakingUpgrade verdict
1 breaking change.
In plain terms
- Fixes issue related to the wrong owner document and window when using multiple Window instances.
Must act 1 item needs code or config changes
What you must change
Breaking1
Fixes issue related to the wrong owner document and window when using multiple Window instances.
DOMImplementationSelectionAPI changes
Generated by DepDelta from published .d.ts files. Not mixed with prose notes.
- added:
default class Base64 - added:
static method Base64.atob(data: unknown): string - added:
static method Base64.btoa(data: unknown): string
- changed:
property DOMImplementation._ownerDocument: IDocument → protected property DOMImplementation._ownerDocument: IDocument - added:
constructor DOMImplementation(ownerDocument: IDocument)
- changed:
method DOMParser.parseFromString(string: string, mimeType: string): Document → method DOMParser.parseFromString(string: string, mimeType: string): IDocument - changed:
static property DOMParser._ownerDocument: Document → readonly property DOMParser._ownerDocument: IDocument - added:
constructor DOMParser() - added:
static property DOMParser._ownerDocument: IDocument
- added:
member DOMExceptionNameEnum.invalidNodeTypeError = 'InvalidNodeTypeError' - added:
member DOMExceptionNameEnum.notFoundError = 'NotFoundError' - added:
member DOMExceptionNameEnum.notSupportedError = 'NotSupportedError' - added:
member DOMExceptionNameEnum.wrongDocumentError = 'WrongDocumentError'
- added:
constructor Request(input: NodeFetch.RequestInfo, init?: NodeFetch.RequestInit) - added:
readonly property Request._ownerDocument: IDocument
- added:
constructor Response(body?: NodeFetch.BodyInit, init?: NodeFetch.ResponseInit) - added:
readonly property Response._ownerDocument: IDocument
- changed:
static property FileReader._ownerDocument: Document → readonly property FileReader._ownerDocument: IDocument - added:
constructor FileReader() - added:
static property FileReader._ownerDocument: IDocument
- added:
export { Range }
- changed:
readonly property Comment.nodeType = 8 → readonly property Comment.nodeType = NodeTypeEnum.commentNode
- changed:
property DocumentFragment.nodeType: number → property DocumentFragment.nodeType: import('../node/NodeTypeEnum').default
- changed:
readonly property DocumentType.nodeType = 10 → readonly property DocumentType.nodeType = NodeTypeEnum.documentTypeNode
- removed:
get Document.defaultView(): IWindow - removed:
set Document.defaultView(defaultView: IWindow) - changed:
property Document._readyStateManager: DocumentReadyStateManager → readonly property Document._readyStateManager: DocumentReadyStateManager - changed:
property Document.nodeType: number → property Document.nodeType: import('../node/NodeTypeEnum').default - added:
method Document._onWindowReady(): void - added:
method Document.createRange(): Range - added:
readonly property Document.defaultView: IWindow - added:
static property Document._defaultView: IWindow
- added:
method IDocument.createRange(): Range
- added:
default class DOMRectListFactory - added:
static method DOMRectListFactory.create(list?: DOMRect[]): IDOMRectList<DOMRect>
- removed:
method Element.createTextRange(): Range - changed:
property Element.nodeType: number → property Element.nodeType: import('../node/NodeTypeEnum').default - added:
method Element.getClientRects(): IDOMRectList<DOMRect>
- added:
default interface IDOMRectList<T> extends Array<T> - added:
method IDOMRectList.item(index: number): T
- removed:
method IElement.createTextRange(): Range - added:
method IElement.getClientRects(): IDOMRectList<DOMRect>
- removed:
default class Range - removed:
get Range.collapsed(): boolean - removed:
get Range.commonAncestorContainer(): Node - removed:
get Range.endContainer(): Node - removed:
get Range.endOffset(): number - removed:
get Range.startContainer(): Node - removed:
get Range.startOffset(): number - removed:
method Range.cloneRange(): Range - removed:
method Range.collapse(): void - removed:
method Range.compareBoundaryPoints(): boolean - removed:
method Range.comparePoint(): number - removed:
method Range.createContextualFragment(): DocumentFragment - removed:
method Range.deleteContents(): void - removed:
method Range.detach(): void - removed:
method Range.extractContents(): DocumentFragment - removed:
method Range.getBoundingClientRect(): DOMRect - removed:
method Range.getClientRects(): DOMRect - removed:
method Range.insertNode(): void - removed:
method Range.intersectsNode(): boolean - removed:
method Range.isPointInRange(): boolean - removed:
method Range.selectNode(): void - removed:
method Range.selectNodeContents(): void - removed:
method Range.setEnd(endNode: Node, endOffset: number): void - removed:
method Range.setEndAfter(): void - removed:
method Range.setEndBefore(): void - removed:
method Range.setStart(startNode: Node, startOffset: number): void - removed:
method Range.setStartAfter(): void - removed:
method Range.setStartBefore(): void - removed:
method Range.surroundContents(): void - removed:
method Range.toString(): string
- removed:
get HTMLTemplateElement.outerHTML(): string - removed:
set HTMLTemplateElement.outerHTML(_html: string) - changed:
method HTMLTemplateElement.removeChild(node: Node): INode → method HTMLTemplateElement.removeChild(node: INode): INode
- changed:
readonly property INode.COMMENT_NODE: number → readonly property INode.COMMENT_NODE: NodeTypeEnum - changed:
readonly property INode.DOCUMENT_FRAGMENT_NODE: number → readonly property INode.DOCUMENT_FRAGMENT_NODE: NodeTypeEnum - changed:
readonly property INode.DOCUMENT_NODE: number → readonly property INode.DOCUMENT_NODE: NodeTypeEnum - changed:
readonly property INode.DOCUMENT_TYPE_NODE: number → readonly property INode.DOCUMENT_TYPE_NODE: NodeTypeEnum - changed:
readonly property INode.ELEMENT_NODE: number → readonly property INode.ELEMENT_NODE: NodeTypeEnum - changed:
readonly property INode.TEXT_NODE: number → readonly property INode.TEXT_NODE: NodeTypeEnum - added:
readonly property INode.PROCESSING_INSTRUCTION_NODE: NodeTypeEnum
- removed:
static property Node.ownerDocument: IDocument - changed:
method Node._observe(listener: MutationObserverListener): void → method Node._observe(listener: MutationListener): void - changed:
method Node._unobserve(listener: MutationObserverListener): void → method Node._unobserve(listener: MutationListener): void - changed:
protected property Node._observers: MutationObserverListener[] → property Node._observers: MutationListener[] - changed:
readonly property Node.COMMENT_NODE = 8 → readonly property Node.COMMENT_NODE = NodeTypeEnum.commentNode - changed:
readonly property Node.DOCUMENT_FRAGMENT_NODE = 11 → readonly property Node.DOCUMENT_FRAGMENT_NODE = NodeTypeEnum.documentFragmentNode - changed:
readonly property Node.DOCUMENT_NODE = 9 → readonly property Node.DOCUMENT_NODE = NodeTypeEnum.documentNode - changed:
readonly property Node.DOCUMENT_TYPE_NODE = 10 → readonly property Node.DOCUMENT_TYPE_NODE = NodeTypeEnum.documentTypeNode - changed:
readonly property Node.ELEMENT_NODE = 1 → readonly property Node.ELEMENT_NODE = NodeTypeEnum.elementNode - changed:
readonly property Node.TEXT_NODE = 3 → readonly property Node.TEXT_NODE = NodeTypeEnum.textNode - changed:
static readonly property Node.COMMENT_NODE = 8 → static readonly property Node.COMMENT_NODE = NodeTypeEnum.commentNode - changed:
static readonly property Node.DOCUMENT_FRAGMENT_NODE = 11 → static readonly property Node.DOCUMENT_FRAGMENT_NODE = NodeTypeEnum.documentFragmentNode - changed:
static readonly property Node.DOCUMENT_NODE = 9 → static readonly property Node.DOCUMENT_NODE = NodeTypeEnum.documentNode - changed:
static readonly property Node.DOCUMENT_TYPE_NODE = 10 → static readonly property Node.DOCUMENT_TYPE_NODE = NodeTypeEnum.documentTypeNode - changed:
static readonly property Node.ELEMENT_NODE = 1 → static readonly property Node.ELEMENT_NODE = NodeTypeEnum.elementNode - changed:
static readonly property Node.TEXT_NODE = 3 → static readonly property Node.TEXT_NODE = NodeTypeEnum.textNode - added:
readonly property Node.PROCESSING_INSTRUCTION_NODE = NodeTypeEnum.processingInstructionNode - added:
static property Node._ownerDocument: IDocument - added:
static readonly property Node.PROCESSING_INSTRUCTION_NODE = NodeTypeEnum.processingInstructionNode
- added:
default NodeTypeEnum - added:
enum NodeTypeEnum - added:
member NodeTypeEnum.commentNode = 8 - added:
member NodeTypeEnum.documentFragmentNode = 11 - added:
member NodeTypeEnum.documentNode = 9 - added:
member NodeTypeEnum.documentTypeNode = 10 - added:
member NodeTypeEnum.elementNode = 1 - added:
member NodeTypeEnum.processingInstructionNode = 7 - added:
member NodeTypeEnum.textNode = 3
- added:
default class NodeUtility - added:
static method NodeUtility.following(node: INode, root?: INode): INode - added:
static method NodeUtility.getNodeLength(node: INode): number - added:
static method NodeUtility.isFollowing(nodeA: INode, nodeB: INode): boolean - added:
static method NodeUtility.isInclusiveAncestor(ancestorNode: INode, referenceNode: INode): boolean - added:
static method NodeUtility.nextDecendantNode(node: INode): INode
- added:
method IText.splitText(offset: number): IText
- changed:
readonly property Text.nodeType = 3 → readonly property Text.nodeType = NodeTypeEnum.textNode - added:
method Text.splitText(offset: number): IText
- added:
default interface IRangeBoundaryPoint - added:
property IRangeBoundaryPoint.node: INode - added:
property IRangeBoundaryPoint.offset: number
- added:
constructor Range() - added:
default class Range - added:
get Range.collapsed(): boolean - added:
get Range.commonAncestorContainer(): INode - added:
get Range.endContainer(): INode - added:
get Range.endOffset(): number - added:
get Range.startContainer(): INode - added:
get Range.startOffset(): number - added:
method Range.cloneContents(): IDocumentFragment - added:
method Range.cloneRange(): Range - added:
method Range.collapse(toStart?: boolean): void - added:
method Range.compareBoundaryPoints(how: RangeHowEnum, sourceRange: Range): number - added:
method Range.comparePoint(node: INode, offset: any): number - added:
method Range.createContextualFragment(tagString: string): IDocumentFragment - added:
method Range.deleteContents(): void - added:
method Range.detach(): void - added:
method Range.extractContents(): IDocumentFragment - added:
method Range.getBoundingClientRect(): DOMRect - added:
method Range.getClientRects(): IDOMRectList<DOMRect> - added:
method Range.insertNode(newNode: INode): void - added:
method Range.intersectsNode(node: INode): boolean - added:
method Range.isPointInRange(node: INode, offset?: number): boolean - added:
method Range.selectNode(node: INode): void - added:
method Range.selectNodeContents(node: INode): void - added:
method Range.setEnd(node: INode, offset?: number): void - added:
method Range.setEndAfter(node: INode): void - added:
method Range.setEndBefore(node: INode): void - added:
method Range.setStart(node: INode, offset?: number): void - added:
method Range.setStartAfter(node: INode): void - added:
method Range.setStartBefore(node: INode): void - added:
method Range.surroundContents(newParent: INode): void - added:
method Range.toString(): string - added:
property Range._end: IRangeBoundaryPoint - added:
property Range._start: IRangeBoundaryPoint - added:
readonly property Range.END_TO_END: number - added:
readonly property Range.END_TO_START: number - added:
readonly property Range.START_TO_END: number - added:
readonly property Range.START_TO_START: number - added:
readonly property Range._ownerDocument: IDocument - added:
static property Range._ownerDocument: IDocument - added:
static readonly property Range.END_TO_END: number - added:
static readonly property Range.END_TO_START: number - added:
static readonly property Range.START_TO_END: number - added:
static readonly property Range.START_TO_START: number
- added:
default RangeHowEnum - added:
enum RangeHowEnum - added:
member RangeHowEnum.endToEnd = 2 - added:
member RangeHowEnum.endToStart = 3 - added:
member RangeHowEnum.startToEnd = 1 - added:
member RangeHowEnum.startToStart = 0
- added:
default class RangeUtility - added:
static method RangeUtility.compareBoundaryPointsPosition(pointA: IRangeBoundaryPoint, pointB: IRangeBoundaryPoint): number - added:
static method RangeUtility.isContained(node: INode, range: Range): boolean - added:
static method RangeUtility.isPartiallyContained(node: INode, range: Range): boolean - added:
static method RangeUtility.validateBoundaryPoint(point: IRangeBoundaryPoint): void
- removed:
readonly property Selection.anchorNode: INode - removed:
readonly property Selection.anchorOffset: number - removed:
readonly property Selection.baseNode: INode - removed:
readonly property Selection.baseOffset: number - removed:
readonly property Selection.extentNode: INode - removed:
readonly property Selection.extentOffset: number - removed:
readonly property Selection.focusNode: INode - removed:
readonly property Selection.focusOffset: number - removed:
readonly property Selection.isCollapsed: boolean - removed:
readonly property Selection.rangeCount: number - removed:
readonly property Selection.type: string - changed:
method Selection.addRange(_range: object): void → method Selection.addRange(newRange: Range): void - changed:
method Selection.collapse(_node: INode, _offset?: number): void → method Selection.collapse(node: INode, offset: number): void - changed:
method Selection.containsNode(_node: INode, _partialContainer?: INode): boolean → method Selection.containsNode(node: INode, allowPartialContainment?: boolean): boolean - changed:
method Selection.extend(_node: INode, _offset?: number): void → method Selection.extend(node: INode, offset: number): void - changed:
method Selection.getRangeAt(_index: number): object → method Selection.getRangeAt(index: number): Range - changed:
method Selection.removeRange(_range: object): void → method Selection.removeRange(range: Range): void - changed:
method Selection.selectAllChildren(_parentNode: INode): void → method Selection.selectAllChildren(node: INode): void - changed:
method Selection.setBaseAndExtent(_anchorNode: INode, _anchorOffset: number, _focusNode: INode, _focusOffset: number): void → method Selection.setBaseAndExtent(anchorNode: INode, anchorOffset: number, focusNode: INode, focusOffset: number): void - added:
constructor Selection(ownerDocument: IDocument) - added:
get Selection.anchorNode(): INode - added:
get Selection.anchorOffset(): number - added:
get Selection.baseNode(): INode - added:
get Selection.baseOffset(): number - added:
get Selection.extentNode(): INode - added:
get Selection.extentOffset(): number - added:
get Selection.focusNode(): INode - added:
get Selection.focusOffset(): number - added:
get Selection.isCollapsed(): boolean - added:
get Selection.rangeCount(): number - added:
get Selection.type(): string - added:
method Selection.empty(): void - added:
method Selection.setPosition(node: INode, offset: number): void - added:
protected method Selection._associateRange(range: Range): void
- added:
default SelectionDirectionEnum - added:
enum SelectionDirectionEnum - added:
member SelectionDirectionEnum.backwards = -1 - added:
member SelectionDirectionEnum.directionless = 0 - added:
member SelectionDirectionEnum.forwards = 1
- added:
method IWindow.atob(data: unknown): string - added:
method IWindow.btoa(data: unknown): string - added:
readonly property IWindow.Range: typeof Range
- removed:
property Window.atob: (data: unknown) => string - removed:
property Window.btoa: (data: unknown) => string - changed:
readonly property Window.DOMParser: typeof DOMParser → readonly property Window.DOMParser: any - changed:
readonly property Window.FileReader: typeof FileReader → readonly property Window.FileReader: any - changed:
readonly property Window.Image: typeof Image → readonly property Window.Image: any - added:
method Window.atob(data: unknown): string - added:
method Window.btoa(data: unknown): string - added:
readonly property Window.Range: any
- removed:
const atob: (data: unknown) => string - removed:
const btoa: (data: unknown) => string
- changed:
static method XMLParser.parse(document: IDocument, data: string, evaluateScripts?: boolean): IElement → static method XMLParser.parse(document: IDocument, data: string, evaluateScripts?: boolean): IDocumentFragment