Skip to content

Upgrading happy-dom 7 to 8

Breaking7.8.1 → 8.9.0Breaking1New11Fixed22

BreakingUpgrade verdict

1 breaking change.

  • In v7.0.0 of Happy DOM, the default values for window.innerWidth and window.innerHeight was changed to 0. This fix will revert this change and set the default resolution to 1024x768 again.
1 item needs code or config changes

Adds iconv-lite ^0.6.3.

Breaking1
In v7.0.0 of Happy DOM, the default values for window.innerWidth and window.innerHeight was changed to 0. This fix will revert this change and set the default resolution to 1024x768 again.
window.innerWidthwindow.innerHeight1024x768

Generated by DepDelta from published .d.ts files. Not mixed with prose notes.

  • added: const _default: string[]
  • added: default _default
  • removed: readonly property CSSContainerRule.conditionalText = ''
  • added: readonly property CSSContainerRule.conditionText = ''
  • removed: get CSSMediaRule.conditionalText(): string
  • added: get CSSMediaRule.conditionText(): string
  • added: default class CSSSupportsRule extends CSSRule
  • added: get CSSSupportsRule.cssText(): string
  • added: readonly property CSSSupportsRule.conditionText = ''
  • added: readonly property CSSSupportsRule.cssRules: CSSRule[]
  • added: readonly property CSSSupportsRule.type: import('../CSSRuleTypeEnum').default
  • added: property Event.timeStamp: number
  • changed: method EventTarget.addEventListener(type: string, listener: ((event: Event) => void) | IEventListener): void → method EventTarget.addEventListener(type: string, listener: ((event: Event) => void) | IEventListener, options?: IEventListenerOptions): void
  • added: readonly property EventTarget._listenerOptions: { [k: string]: (IEventListenerOptions | null)[] }
  • added: default interface IEventListenerOptions
  • added: property IEventListenerOptions.capture?: boolean
  • added: property IEventListenerOptions.once?: boolean
  • added: property IEventListenerOptions.passive?: boolean
  • added: property IEventListenerOptions.signal?: unknown
  • added: default interface IMessagePort extends IEventTarget
  • added: method IMessagePort.close(): void
  • added: method IMessagePort.postMessage(message: unknown, transerList: unknown[]): void
  • added: method IMessagePort.start(): void
  • added: default abstract class MessagePort extends EventTarget implements IMessagePort
  • added: method MessagePort.close(): void
  • added: method MessagePort.postMessage(_message: unknown, _transerList: unknown[]): void
  • added: method MessagePort.start(): void
  • added: default interface IMessageEventInit extends IEventInit
  • added: property IMessageEventInit.data?: unknown | null
  • added: property IMessageEventInit.lastEventId?: string
  • added: property IMessageEventInit.origin?: string
  • added: property IMessageEventInit.ports?: IMessagePort[]
  • added: property IMessageEventInit.source?: IWindow | null
  • added: constructor MessageEvent(type: string, eventInit?: IMessageEventInit)
  • added: default class MessageEvent extends Event
  • added: property MessageEvent.data?: unknown | null
  • added: property MessageEvent.lastEventId?: string
  • added: property MessageEvent.origin?: string
  • added: property MessageEvent.ports?: IMessagePort[]
  • added: property MessageEvent.source?: IWindow | null
  • added: export { FileList }
  • added: export { HTMLIFrameElement }
  • added: export { IFileList }
  • added: export { IHTMLIFrameElement }
  • removed: readonly property Navigator.appCodeName: string
  • removed: readonly property Navigator.appName: string
  • removed: readonly property Navigator.appVersion: string
  • removed: readonly property Navigator.cookieEnabled: boolean
  • removed: readonly property Navigator.credentials: string
  • removed: readonly property Navigator.doNotTrack: string
  • removed: readonly property Navigator.geolocation: string
  • removed: readonly property Navigator.hardwareConcurrency: number
  • removed: readonly property Navigator.language: string
  • removed: readonly property Navigator.languages: string[]
  • removed: readonly property Navigator.locks: string
  • removed: readonly property Navigator.maxTouchPoints: number
  • removed: readonly property Navigator.mimeTypes: MimeTypeArray
  • removed: readonly property Navigator.onLine: boolean
  • removed: readonly property Navigator.permissions: string
  • removed: readonly property Navigator.platform: string
  • removed: readonly property Navigator.plugins: PluginArray
  • removed: readonly property Navigator.product: string
  • removed: readonly property Navigator.productSub: string
  • removed: readonly property Navigator.userAgent: string
  • removed: readonly property Navigator.vendor: string
  • removed: readonly property Navigator.vendorSub: string
  • removed: readonly property Navigator.webdriver: boolean
  • added: get Navigator.appCodeName(): string
  • added: get Navigator.appName(): string
  • added: get Navigator.appVersion(): string
  • added: get Navigator.cookieEnabled(): boolean
  • added: get Navigator.credentials(): string
  • added: get Navigator.doNotTrack(): string
  • added: get Navigator.geolocation(): string
  • added: get Navigator.hardwareConcurrency(): number
  • added: get Navigator.language(): string
  • added: get Navigator.languages(): string[]
  • added: get Navigator.locks(): string
  • added: get Navigator.maxTouchPoints(): number
  • added: get Navigator.mimeTypes(): MimeTypeArray
  • added: get Navigator.onLine(): boolean
  • added: get Navigator.permissions(): string
  • added: get Navigator.platform(): string
  • added: get Navigator.plugins(): PluginArray
  • added: get Navigator.product(): string
  • added: get Navigator.productSub(): string
  • added: get Navigator.userAgent(): string
  • added: get Navigator.vendor(): string
  • added: get Navigator.vendorSub(): string
  • added: get Navigator.webdriver(): boolean
  • added: get Document.hidden(): boolean
  • added: get Document.title(): string
  • added: get Document.visibilityState(): VisibilityStateEnum
  • added: set Document.title(title: string)
  • added: property IDocument.title: string
  • added: readonly property IDocument.hidden: boolean
  • added: readonly property IDocument.visibilityState: VisibilityStateEnum
  • added: default VisibilityStateEnum
  • added: enum VisibilityStateEnum
  • added: member VisibilityStateEnum.hidden = 'hidden'
  • added: member VisibilityStateEnum.prerender = 'prerender'
  • added: member VisibilityStateEnum.visible = 'visible'
  • added: method Element.toggleAttribute(name: string, force?: boolean): boolean
  • added: method IElement.toggleAttribute(name: string, force?: boolean): boolean
  • added: constructor Audio(url?: string)
  • added: default class Audio extends HTMLAudioElement
  • added: default class HTMLIFrameElement extends HTMLElement implements IHTMLIFrameElement
  • added: get HTMLIFrameElement.allow(): string
  • added: get HTMLIFrameElement.contentDocument(): IDocument | null
  • added: get HTMLIFrameElement.contentWindow(): IWindow | IFrameCrossOriginWindow | null
  • added: get HTMLIFrameElement.height(): string
  • added: get HTMLIFrameElement.name(): string
  • added: get HTMLIFrameElement.sandbox(): string
  • added: get HTMLIFrameElement.src(): string
  • added: get HTMLIFrameElement.srcdoc(): string
  • added: get HTMLIFrameElement.width(): string
  • added: method HTMLIFrameElement._connectToNode(parentNode?: INode): void
  • added: method HTMLIFrameElement.cloneNode(deep?: boolean): IHTMLIFrameElement
  • added: property HTMLIFrameElement.onerror: (event: Event) => void | null
  • added: property HTMLIFrameElement.onload: (event: Event) => void | null
  • added: set HTMLIFrameElement.allow(allow: string)
  • added: set HTMLIFrameElement.height(height: string)
  • added: set HTMLIFrameElement.name(name: string)
  • added: set HTMLIFrameElement.sandbox(sandbox: string)
  • added: set HTMLIFrameElement.src(src: string)
  • added: set HTMLIFrameElement.srcdoc(srcdoc: string)
  • added: set HTMLIFrameElement.width(width: string)
  • added: constructor IFrameCrossOriginWindow(parent: IWindow, target: IWindow)
  • added: default class IFrameCrossOriginWindow extends EventTarget
  • added: method IFrameCrossOriginWindow.postMessage(message: unknown, targetOrigin?: string, transfer?: unknown[]): void
  • added: readonly property IFrameCrossOriginWindow.location: Location
  • added: readonly property IFrameCrossOriginWindow.parent: IWindow
  • added: readonly property IFrameCrossOriginWindow.self: this
  • added: readonly property IFrameCrossOriginWindow.top: IWindow
  • added: readonly property IFrameCrossOriginWindow.window: this
  • added: default interface IHTMLIFrameElement extends IHTMLElement
  • added: property IHTMLIFrameElement.allow: string | null
  • added: property IHTMLIFrameElement.height: string | null
  • added: property IHTMLIFrameElement.name: string | null
  • added: property IHTMLIFrameElement.onerror: (event: Event) => void | null
  • added: property IHTMLIFrameElement.onload: (event: Event) => void | null
  • added: property IHTMLIFrameElement.sandbox: string | null
  • added: property IHTMLIFrameElement.src: string | null
  • added: property IHTMLIFrameElement.srcdoc: string | null
  • added: property IHTMLIFrameElement.width: string | null
  • added: readonly property IHTMLIFrameElement.contentDocument: IDocument | null
  • added: readonly property IHTMLIFrameElement.contentWindow: IWindow | IFrameCrossOriginWindow | null
  • added: constructor FileList()
  • added: default class FileList extends Array implements IFileList<File>
  • added: method FileList.item(index: number): File | null
  • added: property FileList.get [Symbol.toStringTag](): string
  • changed: property HTMLInputElement.files: File[] → property HTMLInputElement.files: IFileList<File>
  • added: default interface IFileList<T> extends Array<T>
  • added: method IFileList.item(index: number): T
  • changed: property IHTMLInputElement.files: File[] → property IHTMLInputElement.files: IFileList<File>
  • removed: static method NodeUtility.nodeEquals(nodeA: INode, nodeB: INode): boolean
  • added: static method NodeUtility.isEqualNode(nodeA: INode, nodeB: INode): boolean
  • added: default interface IHappyDOMOptions
  • added: property IHappyDOMOptions.innerHeight?: number
  • added: property IHappyDOMOptions.innerWidth?: number
  • added: property IHappyDOMOptions.settings?: { disableJavaScriptEvaluation?: boolean; disableJavaScriptFileLoading?: boolean; disableCSSFileLoading?: boolean; disableIframePageLoading?: boolean; enableFileSystemHttpRequests?: boolean }
  • added: property IHappyDOMOptions.url?: string
  • added: property IHappyDOMSettings.disableIframePageLoading: boolean
  • changed: method IWindow.setInterval(callback: () => void, delay?: number): NodeJS.Timeout → method IWindow.setInterval(callback: Function, delay?: number, ...args: unknown[]): NodeJS.Timeout
  • changed: method IWindow.setTimeout(callback: () => void, delay?: number): NodeJS.Timeout → method IWindow.setTimeout(callback: Function, delay?: number, ...args: unknown[]): NodeJS.Timeout
  • added: method IWindow.postMessage(message: unknown, targetOrigin?: string, transfer?: unknown[]): void
  • added: readonly property IWindow.FileList: typeof FileList
  • added: readonly property IWindow.HTMLIFrameElement: typeof HTMLIFrameElement
  • added: readonly property IWindow.HTMLSelectElement: typeof HTMLSelectElement
  • added: readonly property IWindow.MessageEvent: typeof MessageEvent
  • added: readonly property IWindow.MessagePort: typeof MessagePort
  • added: readonly property IWindow.pageXOffset: number
  • added: readonly property IWindow.pageYOffset: number
  • added: readonly property IWindow.scrollX: number
  • added: readonly property IWindow.scrollY: number
  • changed: constructor Window(options?: { innerWidth?: number; innerHeight?: number; url?: string; settings?: IHappyDOMSettings }) → constructor Window(options?: IHappyDOMOptions)
  • changed: method Window.setInterval(callback: () => void, delay?: number): NodeJS.Timeout → method Window.setInterval(callback: Function, delay?: number, ...args: unknown[]): NodeJS.Timeout
  • changed: method Window.setTimeout(callback: () => void, delay?: number): NodeJS.Timeout → method Window.setTimeout(callback: Function, delay?: number, ...args: unknown[]): NodeJS.Timeout
  • changed: readonly property Window.happyDOM: { whenAsyncComplete: () => Promise<void>; cancelAsync: () => void; asyncTaskManager: AsyncTaskManager; setInnerWidth: (width: number) => void; setInnerHeight: (height: number) => void; setURL: (url: string) => void; settings: { disableJavaScriptEvaluation: boolean; disableJavaScriptFileLoading: boolean; disableCSSFileLoading: boolean; enableFileSystemHttpRequest… → readonly property Window.happyDOM: { whenAsyncComplete: () => Promise<void>; cancelAsync: () => void; asyncTaskManager: AsyncTaskManager; setInnerWidth: (width: number) => void; setInnerHeight: (height: number) => void; setURL: (url: string) => void; settings: { disableJavaScriptEvaluation: boolean; disableJavaScriptFileLoading: boolean; disableCSSFileLoading: boolean; disableIframePageLoading: b…
  • added: get Window.pageXOffset(): number
  • added: get Window.pageYOffset(): number
  • added: get Window.scrollX(): number
  • added: get Window.scrollY(): number
  • added: method Window.postMessage(message: unknown, targetOrigin?: string, _transfer?: unknown[]): void
  • added: readonly property Window.Audio: any
  • added: readonly property Window.FileList: typeof FileList
  • added: readonly property Window.HTMLIFrameElement: typeof HTMLIFrameElement
  • added: readonly property Window.HTMLSelectElement: typeof HTMLSelectElement
  • added: readonly property Window.MessageEvent: typeof MessageEvent
  • added: readonly property Window.MessagePort: typeof MessagePort
  • added: readonly property Window.SVGGraphicsElement: typeof SVGGraphicsElement