summaryrefslogtreecommitdiff
path: root/packages/webapi/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'packages/webapi/src/lib')
-rw-r--r--packages/webapi/src/lib/Alert.ts3
-rw-r--r--packages/webapi/src/lib/AnimationFrame.ts41
-rw-r--r--packages/webapi/src/lib/CanvasRenderingContext2D.ts222
-rw-r--r--packages/webapi/src/lib/CharacterData.ts45
-rw-r--r--packages/webapi/src/lib/CustomElementRegistry.ts92
-rw-r--r--packages/webapi/src/lib/CustomEvent.ts26
-rw-r--r--packages/webapi/src/lib/DOMException.ts40
-rw-r--r--packages/webapi/src/lib/Document.ts197
-rw-r--r--packages/webapi/src/lib/Element.ts166
-rw-r--r--packages/webapi/src/lib/HTMLCanvasElement.ts69
-rw-r--r--packages/webapi/src/lib/HTMLImageElement.ts16
-rw-r--r--packages/webapi/src/lib/IdleCallback.ts41
-rw-r--r--packages/webapi/src/lib/Image.ts15
-rw-r--r--packages/webapi/src/lib/ImageData.ts111
-rw-r--r--packages/webapi/src/lib/MediaQueryList.ts40
-rw-r--r--packages/webapi/src/lib/Node.ts192
-rw-r--r--packages/webapi/src/lib/Observer.ts41
-rw-r--r--packages/webapi/src/lib/OffscreenCanvas.ts102
-rw-r--r--packages/webapi/src/lib/Storage.ts67
-rw-r--r--packages/webapi/src/lib/StyleSheet.ts24
-rw-r--r--packages/webapi/src/lib/Timeout.ts30
-rw-r--r--packages/webapi/src/lib/TreeWalker.ts67
-rw-r--r--packages/webapi/src/lib/Window.ts49
-rw-r--r--packages/webapi/src/lib/structuredClone.ts4
-rw-r--r--packages/webapi/src/lib/utils.ts61
25 files changed, 0 insertions, 1761 deletions
diff --git a/packages/webapi/src/lib/Alert.ts b/packages/webapi/src/lib/Alert.ts
deleted file mode 100644
index 0aacd645f..000000000
--- a/packages/webapi/src/lib/Alert.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-export function alert(...messages: any[]) {
- console.log(...messages)
-}
diff --git a/packages/webapi/src/lib/AnimationFrame.ts b/packages/webapi/src/lib/AnimationFrame.ts
deleted file mode 100644
index e29d3cabf..000000000
--- a/packages/webapi/src/lib/AnimationFrame.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import {
- clearTimeout as nodeClearTimeout,
- setTimeout as nodeSetTimeout,
-} from 'node:timers'
-import * as _ from './utils.js'
-
-const INTERNAL = { tick: 0, pool: new Map() }
-
-export function requestAnimationFrame<
- TArgs extends any[],
- TFunc extends (...args: TArgs) => any
->(callback: TFunc): number {
- if (!INTERNAL.pool.size) {
- nodeSetTimeout(() => {
- const next = _.__performance_now()
-
- for (const func of INTERNAL.pool.values()) {
- func(next)
- }
-
- INTERNAL.pool.clear()
- }, 1000 / 16)
- }
-
- const func = _.__function_bind(callback, undefined)
- const tick = ++INTERNAL.tick
-
- INTERNAL.pool.set(tick, func)
-
- return tick
-}
-
-export function cancelAnimationFrame(requestId: number): void {
- const timeout = INTERNAL.pool.get(requestId)
-
- if (timeout) {
- nodeClearTimeout(timeout)
-
- INTERNAL.pool.delete(requestId)
- }
-}
diff --git a/packages/webapi/src/lib/CanvasRenderingContext2D.ts b/packages/webapi/src/lib/CanvasRenderingContext2D.ts
deleted file mode 100644
index 147a80ca9..000000000
--- a/packages/webapi/src/lib/CanvasRenderingContext2D.ts
+++ /dev/null
@@ -1,222 +0,0 @@
-import type { HTMLCanvasElement } from './HTMLCanvasElement'
-import type { OffscreenCanvas } from './OffscreenCanvas'
-
-import { ImageData } from './ImageData'
-import * as _ from './utils'
-
-export class CanvasRenderingContext2D {
- get canvas(): HTMLCanvasElement | OffscreenCanvas | null {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'canvas').canvas
- }
-
- get direction(): 'ltr' | 'rtl' | 'inherit' {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'direction')
- .direction
- }
-
- get fillStyle(): string {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'fillStyle')
- .fillStyle
- }
-
- get filter(): string {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'filter').filter
- }
-
- get globalAlpha(): number {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'globalAlpha')
- .globalAlpha
- }
-
- get globalCompositeOperation(): string {
- return _.internalsOf(
- this,
- 'CanvasRenderingContext2D',
- 'globalCompositeOperation'
- ).globalCompositeOperation
- }
-
- get font(): string {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'font').font
- }
-
- get imageSmoothingEnabled(): boolean {
- return _.internalsOf(
- this,
- 'CanvasRenderingContext2D',
- 'imageSmoothingEnabled'
- ).imageSmoothingEnabled
- }
-
- get imageSmoothingQuality(): 'low' | 'medium' | 'high' {
- return _.internalsOf(
- this,
- 'CanvasRenderingContext2D',
- 'imageSmoothingQuality'
- ).imageSmoothingQuality
- }
-
- get lineCap(): 'butt' | 'round' | 'square' {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'lineCap').lineCap
- }
-
- get lineDashOffset(): number {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'lineDashOffset')
- .lineDashOffset
- }
-
- get lineJoin(): 'bevel' | 'round' | 'miter' {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'lineJoin').lineJoin
- }
-
- get lineWidth(): number {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'lineWidth')
- .lineWidth
- }
-
- get miterLimit(): number {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'miterLimit')
- .miterLimit
- }
-
- get strokeStyle(): string {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'strokeStyle')
- .strokeStyle
- }
-
- get shadowOffsetX(): number {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'shadowOffsetX')
- .shadowOffsetX
- }
-
- get shadowOffsetY(): number {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'shadowOffsetY')
- .shadowOffsetY
- }
-
- get shadowBlur(): number {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'shadowBlur')
- .shadowBlur
- }
-
- get shadowColor(): string {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'shadowColor')
- .shadowColor
- }
-
- get textAlign(): 'left' | 'right' | 'center' | 'start' | 'end' {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'textAlign')
- .textAlign
- }
-
- get textBaseline():
- | 'top'
- | 'hanging'
- | 'middle'
- | 'alphabetic'
- | 'ideographic'
- | 'bottom' {
- return _.internalsOf(this, 'CanvasRenderingContext2D', 'textBaseline')
- .textBaseline
- }
-
- arc() {}
- arcTo() {}
- beginPath() {}
- bezierCurveTo() {}
- clearRect() {}
- clip() {}
- closePath() {}
-
- createImageData(width: number, height: number): void
- createImageData(imagedata: ImageData): void
-
- createImageData(arg0: number | ImageData, arg1?: void | number) {
- /** Whether ImageData is provided. */
- const hasData = _.__object_isPrototypeOf(ImageData.prototype, arg0)
-
- const w = hasData ? (arg0 as ImageData).width : (arg0 as number)
- const h = hasData ? (arg0 as ImageData).height : (arg1 as number)
- const d = hasData
- ? (arg0 as ImageData).data
- : new Uint8ClampedArray(w * h * 4)
-
- return new ImageData(d, w, h)
- }
-
- createLinearGradient() {}
- createPattern() {}
- createRadialGradient() {}
- drawFocusIfNeeded() {}
- drawImage() {}
- ellipse() {}
- fill() {}
- fillRect() {}
- fillText() {}
- getContextAttributes() {}
- getImageData() {}
- getLineDash() {}
- getTransform() {}
- isPointInPath() {}
- isPointInStroke() {}
- lineTo() {}
- measureText() {}
- moveTo() {}
- putImageData() {}
- quadraticCurveTo() {}
- rect() {}
- resetTransform() {}
- restore() {}
- rotate() {}
- save() {}
- scale() {}
- setLineDash() {}
- setTransform() {}
- stroke() {}
- strokeRect() {}
- strokeText() {}
- transform() {}
- translate() {}
-}
-
-_.allowStringTag(CanvasRenderingContext2D)
-
-export const __createCanvasRenderingContext2D = (
- canvas: EventTarget
-): CanvasRenderingContext2D => {
- const renderingContext2D = Object.create(
- CanvasRenderingContext2D.prototype
- ) as CanvasRenderingContext2D
-
- _.INTERNALS.set(renderingContext2D, {
- canvas,
- direction: 'inherit',
- fillStyle: '#000',
- filter: 'none',
- font: '10px sans-serif',
- globalAlpha: 0,
- globalCompositeOperation: 'source-over',
- imageSmoothingEnabled: false,
- imageSmoothingQuality: 'high',
- lineCap: 'butt',
- lineDashOffset: 0.0,
- lineJoin: 'miter',
- lineWidth: 1.0,
- miterLimit: 10.0,
- shadowBlur: 0,
- shadowColor: '#000',
- shadowOffsetX: 0,
- shadowOffsetY: 0,
- strokeStyle: '#000',
- textAlign: 'start',
- textBaseline: 'alphabetic',
- })
-
- return renderingContext2D
-}
-
-/** Returns whether the value is an instance of ImageData. */
-const isImageData = <T>(value: T) =>
- (Object(value).data instanceof Uint8ClampedArray) as T extends ImageData
- ? true
- : false
diff --git a/packages/webapi/src/lib/CharacterData.ts b/packages/webapi/src/lib/CharacterData.ts
deleted file mode 100644
index 430657ffb..000000000
--- a/packages/webapi/src/lib/CharacterData.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import * as _ from './utils'
-
-export class CharacterData extends Node {
- constructor(data: string) {
- _.INTERNALS.set(super(), {
- data: String(data),
- } as CharacterDataInternals)
- }
- get data(): string {
- return _.internalsOf<CharacterDataInternals>(this, 'CharacterData', 'data')
- .data
- }
-
- get textContent(): string {
- return _.internalsOf<CharacterDataInternals>(
- this,
- 'CharacterData',
- 'textContent'
- ).data
- }
-}
-
-export class Comment extends CharacterData {}
-
-export class Text extends CharacterData {
- get assignedSlot(): HTMLSlotElement | null {
- return null
- }
-
- get wholeText(): string {
- return _.internalsOf<CharacterDataInternals>(
- this,
- 'CharacterData',
- 'textContent'
- ).data
- }
-}
-
-_.allowStringTag(CharacterData)
-_.allowStringTag(Text)
-_.allowStringTag(Comment)
-
-interface CharacterDataInternals {
- data: string
-}
diff --git a/packages/webapi/src/lib/CustomElementRegistry.ts b/packages/webapi/src/lib/CustomElementRegistry.ts
deleted file mode 100644
index 21f775d5e..000000000
--- a/packages/webapi/src/lib/CustomElementRegistry.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import * as _ from './utils'
-
-export class CustomElementRegistry {
- /** Defines a new custom element using the given tag name and HTMLElement constructor. */
- define(
- name: string,
- constructor: Function,
- options?: ElementDefinitionOptions
- ) {
- const internals = _.internalsOf<CustomElementRegistryInternals>(
- this,
- 'CustomElementRegistry',
- 'define'
- )
-
- name = String(name)
-
- if (/[A-Z]/.test(name))
- throw new SyntaxError(
- 'Custom element name cannot contain an uppercase ASCII letter'
- )
- if (!/^[a-z]/.test(name))
- throw new SyntaxError(
- 'Custom element name must have a lowercase ASCII letter as its first character'
- )
- if (!/-/.test(name))
- throw new SyntaxError('Custom element name must contain a hyphen')
-
- _.INTERNALS.set(constructor, {
- attributes: {},
- localName: name,
- } as any)
-
- internals.constructorByName.set(name, constructor)
- internals.nameByConstructor.set(constructor, name)
-
- void options
- }
-
- /** Returns the constructor associated with the given tag name. */
- get(name: string) {
- const internals = _.internalsOf<CustomElementRegistryInternals>(
- this,
- 'CustomElementRegistry',
- 'get'
- )
-
- name = String(name).toLowerCase()
-
- return internals.constructorByName.get(name)
- }
-
- getName(constructor: Function) {
- const internals = _.internalsOf<CustomElementRegistryInternals>(
- this,
- 'CustomElementRegistry',
- 'getName'
- )
-
- return internals.nameByConstructor.get(constructor)
- }
-}
-
-_.allowStringTag(CustomElementRegistry)
-
-interface CustomElementRegistryInternals {
- constructorByName: Map<string, Function>
- nameByConstructor: Map<Function, string>
-}
-
-interface ElementDefinitionOptions {
- extends?: string | undefined
-}
-
-export const initCustomElementRegistry = (
- target: Record<any, any>,
- exclude: Set<string>
-) => {
- if (exclude.has('customElements')) return
-
- const CustomElementRegistry =
- target.CustomElementRegistry || globalThis.CustomElementRegistry
-
- const customElements: CustomElementRegistry =
- target.customElements ||
- (target.customElements = new CustomElementRegistry())
-
- _.INTERNALS.set(customElements, {
- constructorByName: new Map(),
- nameByConstructor: new Map(),
- } as CustomElementRegistryInternals)
-}
diff --git a/packages/webapi/src/lib/CustomEvent.ts b/packages/webapi/src/lib/CustomEvent.ts
deleted file mode 100644
index 1269b7216..000000000
--- a/packages/webapi/src/lib/CustomEvent.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Event } from 'event-target-shim'
-import * as _ from './utils'
-
-class CustomEvent<
- TEventType extends string = string
-> extends Event<TEventType> {
- constructor(type: TEventType, params?: CustomEventInit) {
- params = Object(params) as Required<CustomEventInit>
-
- super(type, params)
-
- if ('detail' in params) this.detail = params.detail
- }
-
- detail!: any
-}
-
-_.allowStringTag(CustomEvent)
-
-export { CustomEvent }
-
-interface CustomEventInit {
- bubbles?: boolean
- cancelable?: false
- detail?: any
-}
diff --git a/packages/webapi/src/lib/DOMException.ts b/packages/webapi/src/lib/DOMException.ts
deleted file mode 100644
index 539871c6b..000000000
--- a/packages/webapi/src/lib/DOMException.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import * as _ from './utils'
-
-export class DOMException extends Error {
- constructor(message = '', name = 'Error') {
- super(message)
-
- this.code = 0
- this.name = name
- }
-
- code!: number
-
- static INDEX_SIZE_ERR = 1
- static DOMSTRING_SIZE_ERR = 2
- static HIERARCHY_REQUEST_ERR = 3
- static WRONG_DOCUMENT_ERR = 4
- static INVALID_CHARACTER_ERR = 5
- static NO_DATA_ALLOWED_ERR = 6
- static NO_MODIFICATION_ALLOWED_ERR = 7
- static NOT_FOUND_ERR = 8
- static NOT_SUPPORTED_ERR = 9
- static INUSE_ATTRIBUTE_ERR = 10
- static INVALID_STATE_ERR = 11
- static SYNTAX_ERR = 12
- static INVALID_MODIFICATION_ERR = 13
- static NAMESPACE_ERR = 14
- static INVALID_ACCESS_ERR = 15
- static VALIDATION_ERR = 16
- static TYPE_MISMATCH_ERR = 17
- static SECURITY_ERR = 18
- static NETWORK_ERR = 19
- static ABORT_ERR = 20
- static URL_MISMATCH_ERR = 21
- static QUOTA_EXCEEDED_ERR = 22
- static TIMEOUT_ERR = 23
- static INVALID_NODE_TYPE_ERR = 24
- static DATA_CLONE_ERR = 25
-}
-
-_.allowStringTag(DOMException)
diff --git a/packages/webapi/src/lib/Document.ts b/packages/webapi/src/lib/Document.ts
deleted file mode 100644
index b9c30b3a3..000000000
--- a/packages/webapi/src/lib/Document.ts
+++ /dev/null
@@ -1,197 +0,0 @@
-import { Text } from './CharacterData'
-import { TreeWalker } from './TreeWalker'
-import * as _ from './utils'
-
-export class Document extends Node {
- createElement(name: string) {
- const internals = _.internalsOf<DocumentInternals>(
- this,
- 'Document',
- 'createElement'
- )
-
- const customElementInternals: CustomElementRegistryInternals =
- _.INTERNALS.get(internals.target.customElements)
-
- name = String(name).toLowerCase()
-
- const TypeOfHTMLElement =
- internals.constructorByName.get(name) ||
- (customElementInternals &&
- customElementInternals.constructorByName.get(name)) ||
- HTMLUnknownElement
-
- const element = Object.setPrototypeOf(
- new EventTarget(),
- TypeOfHTMLElement.prototype
- ) as HTMLElement
-
- _.INTERNALS.set(element, {
- attributes: {},
- localName: name,
- ownerDocument: this,
- shadowInit: null as unknown as ShadowRootInit,
- shadowRoot: null as unknown as ShadowRoot,
- } as ElementInternals)
-
- return element
- }
-
- createNodeIterator(
- root: Node,
- whatToShow: number = NodeFilter.SHOW_ALL,
- filter?: NodeIteratorInternals['filter']
- ) {
- const target = Object.create(NodeIterator.prototype)
-
- _.INTERNALS.set(target, {
- filter,
- pointerBeforeReferenceNode: false,
- referenceNode: root,
- root,
- whatToShow,
- } as NodeIteratorInternals)
-
- return target
- }
-
- createTextNode(data: string) {
- return new Text(data)
- }
-
- createTreeWalker(
- root: Node,
- whatToShow: number = NodeFilter.SHOW_ALL,
- filter?: NodeFilter,
- expandEntityReferences?: boolean
- ) {
- const target = Object.create(TreeWalker.prototype)
-
- _.INTERNALS.set(target, {
- filter,
- currentNode: root,
- root,
- whatToShow,
- } as TreeWalkerInternals)
-
- return target
- }
-
- get adoptedStyleSheets(): StyleSheet[] {
- return []
- }
-
- get styleSheets(): StyleSheet[] {
- return []
- }
-
- body!: HTMLBodyElement
- documentElement!: HTMLHtmlElement
- head!: HTMLHeadElement
-}
-
-export class HTMLDocument extends Document {}
-
-_.allowStringTag(Document)
-_.allowStringTag(HTMLDocument)
-
-export const initDocument = (target: Target, exclude: Set<string>) => {
- if (exclude.has('document')) return
-
- const EventTarget = target.EventTarget || globalThis.EventTarget
- const HTMLDocument = target.HTMLDocument || globalThis.HTMLDocument
-
- const document: HTMLDocument = (target.document = Object.setPrototypeOf(
- new EventTarget(),
- HTMLDocument.prototype
- ))
-
- _.INTERNALS.set(document, {
- target,
- constructorByName: new Map<string, Function>([
- ['body', target.HTMLBodyElement],
- ['canvas', target.HTMLCanvasElement],
- ['div', target.HTMLDivElement],
- ['head', target.HTMLHeadElement],
- ['html', target.HTMLHtmlElement],
- ['img', target.HTMLImageElement],
- ['span', target.HTMLSpanElement],
- ['style', target.HTMLStyleElement],
- ]),
- nameByConstructor: new Map(),
- } as DocumentInternals)
-
- const initElement = (name: string, Class: Function) => {
- const target = Object.setPrototypeOf(new EventTarget(), Class.prototype)
-
- _.INTERNALS.set(target, {
- attributes: {},
- localName: name,
- ownerDocument: document,
- shadowRoot: null as unknown as ShadowRoot,
- shadowInit: null as unknown as ShadowRootInit,
- } as ElementInternals)
-
- return target
- }
-
- document.body = initElement('body', target.HTMLBodyElement) as HTMLBodyElement
- document.head = initElement('head', target.HTMLHeadElement) as HTMLHeadElement
- document.documentElement = initElement(
- 'html',
- target.HTMLHtmlElement
- ) as HTMLHtmlElement
-}
-
-interface DocumentInternals {
- body: HTMLBodyElement
- documentElement: HTMLHtmlElement
- head: HTMLHeadElement
- constructorByName: Map<string, Function>
- nameByConstructor: Map<Function, string>
- target: Target
-}
-
-interface CustomElementRegistryInternals {
- constructorByName: Map<string, Function>
- nameByConstructor: Map<Function, string>
-}
-
-interface ElementInternals {
- attributes: { [name: string]: string }
- localName: string
- ownerDocument: Document
- shadowRoot: ShadowRoot
- shadowInit: ShadowRootInit
-}
-
-interface ShadowRootInit extends Record<any, any> {
- mode?: string
-}
-
-interface Target extends Record<any, any> {
- HTMLBodyElement: typeof HTMLBodyElement
- HTMLDivElement: typeof HTMLDivElement
- HTMLElement: typeof HTMLElement
- HTMLHeadElement: typeof HTMLHeadElement
- HTMLHtmlElement: typeof HTMLHtmlElement
- HTMLSpanElement: typeof HTMLSpanElement
- HTMLStyleElement: typeof HTMLStyleElement
- customElements: CustomElementRegistry
- document: DocumentInternals
-}
-
-interface NodeIteratorInternals {
- filter: NodeFilter
- pointerBeforeReferenceNode: boolean
- referenceNode: Node
- root: Node
- whatToShow: number
-}
-
-interface TreeWalkerInternals {
- filter: NodeFilter
- currentNode: Node
- root: Node
- whatToShow: number
-}
diff --git a/packages/webapi/src/lib/Element.ts b/packages/webapi/src/lib/Element.ts
deleted file mode 100644
index 013571e63..000000000
--- a/packages/webapi/src/lib/Element.ts
+++ /dev/null
@@ -1,166 +0,0 @@
-import * as _ from './utils'
-
-export class Element extends Node {
- constructor() {
- super()
-
- if (_.INTERNALS.has(new.target)) {
- const internals = _.internalsOf(new.target, 'Element', 'localName')
- _.INTERNALS.set(this, {
- attributes: {},
- localName: (internals as unknown as Element).localName,
- ownerDocument: this.ownerDocument,
- shadowInit: null as unknown as ShadowRootInit,
- shadowRoot: null as unknown as ShadowRoot,
- } as ElementInternals)
- }
- }
-
- hasAttribute(name: string): boolean {
- void name
-
- return false
- }
-
- getAttribute(name: string): string | null {
- return null
- }
-
- setAttribute(name: string, value: string): void {
- void name
- void value
- }
-
- removeAttribute(name: string): void {
- void name
- }
-
- attachShadow(init: Partial<ShadowRootInit>) {
- if (arguments.length < 1)
- throw new TypeError(
- `Failed to execute 'attachShadow' on 'Element': 1 argument required, but only 0 present.`
- )
-
- if (init !== Object(init))
- throw new TypeError(
- `Failed to execute 'attachShadow' on 'Element': The provided value is not of type 'ShadowRootInit'.`
- )
-
- if (init.mode !== 'open' && init.mode !== 'closed')
- throw new TypeError(
- `Failed to execute 'attachShadow' on 'Element': Failed to read the 'mode' property from 'ShadowRootInit': The provided value '${init.mode}' is not a valid enum value of type ShadowRootMode.`
- )
-
- const internals = _.internalsOf<ElementInternals>(
- this,
- 'Element',
- 'attachShadow'
- )
-
- if (internals.shadowRoot) throw new Error('The operation is not supported.')
-
- internals.shadowInit = internals.shadowInit || {
- mode: init.mode,
- delegatesFocus: Boolean(init.delegatesFocus),
- }
-
- internals.shadowRoot =
- internals.shadowRoot ||
- (/^open$/.test(internals.shadowInit.mode as string)
- ? (Object.setPrototypeOf(
- new EventTarget(),
- ShadowRoot.prototype
- ) as ShadowRoot)
- : null)
-
- return internals.shadowRoot
- }
-
- get assignedSlot(): HTMLSlotElement | null {
- return null
- }
-
- get innerHTML(): string {
- _.internalsOf<ElementInternals>(this, 'Element', 'innerHTML')
-
- return ''
- }
-
- set innerHTML(value) {
- _.internalsOf<ElementInternals>(this, 'Element', 'innerHTML')
-
- void value
- }
-
- get shadowRoot(): ShadowRoot | null {
- const internals = _.internalsOf<ElementInternals>(
- this,
- 'Element',
- 'shadowRoot'
- )
-
- return Object(internals.shadowInit).mode === 'open'
- ? internals.shadowRoot
- : null
- }
-
- get localName(): string {
- return _.internalsOf<ElementInternals>(this, 'Element', 'localName')
- .localName as string
- }
-
- get nodeName(): string {
- return (
- _.internalsOf<ElementInternals>(this, 'Element', 'nodeName')
- .localName as string
- ).toUpperCase()
- }
-
- get tagName(): string {
- return (
- _.internalsOf<ElementInternals>(this, 'Element', 'tagName')
- .localName as string
- ).toUpperCase()
- }
-}
-
-export class HTMLElement extends Element {}
-
-export class HTMLBodyElement extends HTMLElement {}
-
-export class HTMLDivElement extends HTMLElement {}
-
-export class HTMLHeadElement extends HTMLElement {}
-
-export class HTMLHtmlElement extends HTMLElement {}
-
-export class HTMLSpanElement extends HTMLElement {}
-
-export class HTMLStyleElement extends HTMLElement {}
-
-export class HTMLTemplateElement extends HTMLElement {}
-
-export class HTMLUnknownElement extends HTMLElement {}
-
-_.allowStringTag(Element)
-_.allowStringTag(HTMLElement)
-_.allowStringTag(HTMLBodyElement)
-_.allowStringTag(HTMLDivElement)
-_.allowStringTag(HTMLHeadElement)
-_.allowStringTag(HTMLHtmlElement)
-_.allowStringTag(HTMLSpanElement)
-_.allowStringTag(HTMLStyleElement)
-_.allowStringTag(HTMLTemplateElement)
-_.allowStringTag(HTMLUnknownElement)
-
-export interface ElementInternals {
- attributes: { [name: string]: string }
- localName?: string
- shadowRoot: ShadowRoot | null
- shadowInit: ShadowRootInit | void
-}
-
-export interface ShadowRootInit {
- mode: 'open' | 'closed'
- delegatesFocus: boolean
-}
diff --git a/packages/webapi/src/lib/HTMLCanvasElement.ts b/packages/webapi/src/lib/HTMLCanvasElement.ts
deleted file mode 100644
index a38471498..000000000
--- a/packages/webapi/src/lib/HTMLCanvasElement.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import type { CanvasRenderingContext2D } from './CanvasRenderingContext2D'
-
-import { __createCanvasRenderingContext2D } from './CanvasRenderingContext2D'
-import * as _ from './utils'
-
-export class HTMLCanvasElement extends HTMLElement {
- get height(): number {
- return _.internalsOf(this, 'HTMLCanvasElement', 'height').height
- }
-
- set height(value) {
- _.internalsOf(this, 'HTMLCanvasElement', 'height').height =
- Number(value) || 0
- }
-
- get width(): number {
- return _.internalsOf(this, 'HTMLCanvasElement', 'width').width
- }
-
- set width(value) {
- _.internalsOf(this, 'HTMLCanvasElement', 'width').width = Number(value) || 0
- }
-
- captureStream(): null {
- return null
- }
-
- getContext(
- contextType: PredefinedContextId
- ): CanvasRenderingContext2D | null {
- const internals = _.internalsOf<HTMLCanvasElementInternals>(
- this,
- 'HTMLCanvasElement',
- 'getContext'
- )
-
- switch (contextType) {
- case '2d':
- if (internals.renderingContext2D) return internals.renderingContext2D
-
- internals.renderingContext2D = __createCanvasRenderingContext2D(this)
-
- return internals.renderingContext2D
- default:
- return null
- }
- }
-
- toBlob() {}
-
- toDataURL() {}
-
- transferControlToOffscreen() {}
-}
-
-_.allowStringTag(HTMLCanvasElement)
-
-interface HTMLCanvasElementInternals {
- width: number
- height: number
- renderingContext2D: CanvasRenderingContext2D
-}
-
-type PredefinedContextId =
- | '2d'
- | 'bitmaprenderer'
- | 'webgl'
- | 'webgl2'
- | 'webgpu'
diff --git a/packages/webapi/src/lib/HTMLImageElement.ts b/packages/webapi/src/lib/HTMLImageElement.ts
deleted file mode 100644
index fd9e5f605..000000000
--- a/packages/webapi/src/lib/HTMLImageElement.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { HTMLElement } from './Element'
-import * as _ from './utils'
-
-export class HTMLImageElement extends HTMLElement {
- get src(): string {
- return _.internalsOf(this, 'HTMLImageElement', 'src').src
- }
-
- set src(value) {
- const internals = _.internalsOf(this, 'HTMLImageElement', 'src')
-
- internals.src = String(value)
- }
-}
-
-_.allowStringTag(HTMLImageElement)
diff --git a/packages/webapi/src/lib/IdleCallback.ts b/packages/webapi/src/lib/IdleCallback.ts
deleted file mode 100644
index bc73f22f1..000000000
--- a/packages/webapi/src/lib/IdleCallback.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import {
- clearTimeout as nodeClearTimeout,
- setTimeout as nodeSetTimeout,
-} from 'node:timers'
-import * as _ from './utils.js'
-
-const INTERNAL = { tick: 0, pool: new Map() }
-
-export function requestIdleCallback<
- TArgs extends any[],
- TFunc extends (...args: TArgs) => any
->(callback: TFunc): number {
- if (!INTERNAL.pool.size) {
- nodeSetTimeout(() => {
- const next = _.__performance_now()
-
- for (const func of INTERNAL.pool.values()) {
- func(next)
- }
-
- INTERNAL.pool.clear()
- }, 1000 / 16)
- }
-
- const func = _.__function_bind(callback, undefined)
- const tick = ++INTERNAL.tick
-
- INTERNAL.pool.set(tick, func)
-
- return tick
-}
-
-export function cancelIdleCallback(requestId: number): void {
- const timeout = INTERNAL.pool.get(requestId)
-
- if (timeout) {
- nodeClearTimeout(timeout)
-
- INTERNAL.pool.delete(requestId)
- }
-}
diff --git a/packages/webapi/src/lib/Image.ts b/packages/webapi/src/lib/Image.ts
deleted file mode 100644
index c2e0a10fb..000000000
--- a/packages/webapi/src/lib/Image.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import { HTMLImageElement } from './HTMLImageElement'
-import * as _ from './utils'
-
-export function Image() {
- // @ts-expect-error
- _.INTERNALS.set(this, {
- attributes: {},
- localName: 'img',
- innerHTML: '',
- shadowRoot: null,
- shadowInit: null,
- })
-}
-
-Image.prototype = HTMLImageElement.prototype
diff --git a/packages/webapi/src/lib/ImageData.ts b/packages/webapi/src/lib/ImageData.ts
deleted file mode 100644
index 595b5023f..000000000
--- a/packages/webapi/src/lib/ImageData.ts
+++ /dev/null
@@ -1,111 +0,0 @@
-import * as _ from './utils'
-
-export class ImageData {
- constructor(width: number, height: number)
- constructor(width: number, height: number, settings: ImageDataSettings)
- constructor(data: Uint8ClampedArray, width: number)
- constructor(data: Uint8ClampedArray, width: number, height: number)
- constructor(
- data: Uint8ClampedArray,
- width: number,
- height: number,
- settings: ImageDataSettings
- )
-
- constructor(
- arg0: number | Uint8ClampedArray,
- arg1: number,
- ...args: [] | [number] | [ImageDataSettings] | [number, ImageDataSettings]
- ) {
- if (arguments.length < 2)
- throw new TypeError(
- `Failed to construct 'ImageData': 2 arguments required.`
- )
-
- /** Whether Uint8ClampedArray data is provided. */
- const hasData = _.__object_isPrototypeOf(Uint8ClampedArray.prototype, arg0)
-
- /** Image data, either provided or calculated. */
- const d = hasData
- ? (arg0 as Uint8ClampedArray)
- : new Uint8ClampedArray(
- asNumber(arg0, 'width') * asNumber(arg1, 'height') * 4
- )
-
- /** Image width. */
- const w = asNumber(hasData ? arg1 : arg0, 'width')
-
- /** Image height. */
- const h = d.length / w / 4
-
- /** Image color space. */
- const c = String(
- Object(hasData ? args[1] : args[0]).colorSpace || 'srgb'
- ) as PredefinedColorSpace
-
- // throw if a provided height does not match the calculated height
- if (args.length && asNumber(args[0], 'height') !== h)
- throw new DOMException(
- 'height is not equal to (4 * width * height)',
- 'IndexSizeError'
- )
-
- // throw if a provided colorspace does not match a known colorspace
- if (c !== 'srgb' && c !== 'rec2020' && c !== 'display-p3')
- throw new TypeError('colorSpace is not known value')
-
- Object.defineProperty(this, 'data', {
- configurable: true,
- enumerable: true,
- value: d,
- })
-
- _.INTERNALS.set(this, {
- width: w,
- height: h,
- colorSpace: c,
- } as ImageDataInternals)
- }
-
- get data(): Uint8ClampedArray {
- _.internalsOf<ImageDataInternals>(this, 'ImageData', 'data')
-
- return (
- Object.getOwnPropertyDescriptor(this, 'data') as {
- value: Uint8ClampedArray
- }
- ).value
- }
-
- get width(): ImageDataInternals['width'] {
- return _.internalsOf<ImageDataInternals>(this, 'ImageData', 'width').width
- }
-
- get height(): ImageDataInternals['height'] {
- return _.internalsOf<ImageDataInternals>(this, 'ImageData', 'height').height
- }
-}
-
-_.allowStringTag(ImageData)
-
-/** Returns a coerced number, optionally throwing if the number is zero-ish. */
-const asNumber = (value: any, axis: string): number => {
- value = Number(value) || 0
-
- if (value === 0)
- throw new TypeError(`The source ${axis} is zero or not a number.`)
-
- return value
-}
-
-interface ImageDataInternals {
- colorSpace: PredefinedColorSpace
- height: number
- width: number
-}
-
-interface ImageDataSettings {
- colorSpace?: PredefinedColorSpace
-}
-
-type PredefinedColorSpace = 'srgb' | 'rec2020' | 'display-p3'
diff --git a/packages/webapi/src/lib/MediaQueryList.ts b/packages/webapi/src/lib/MediaQueryList.ts
deleted file mode 100644
index cc9137183..000000000
--- a/packages/webapi/src/lib/MediaQueryList.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import * as _ from './utils'
-
-export class MediaQueryList extends EventTarget {
- get matches(): boolean {
- return _.internalsOf(this, 'MediaQueryList', 'matches').matches
- }
-
- get media(): string {
- return _.internalsOf(this, 'MediaQueryList', 'media').media
- }
-}
-
-_.allowStringTag(MediaQueryList)
-
-export const initMediaQueryList = (target: Target, exclude: Set<string>) => {
- if (exclude.has('MediaQueryList') || exclude.has('matchMedia')) return
-
- const EventTarget = target.EventTarget || globalThis.EventTarget
- const MediaQueryList = target.MediaQueryList || globalThis.MediaQueryList
-
- target.matchMedia = function matchMedia(media: string) {
- const mql = Object.setPrototypeOf(
- new EventTarget(),
- MediaQueryList.prototype
- ) as MediaQueryList
-
- _.INTERNALS.set(mql, {
- matches: false,
- media,
- })
-
- return mql
- }
-}
-
-interface Target extends Record<any, any> {
- matchMedia: {
- (media: string): MediaQueryList
- }
-}
diff --git a/packages/webapi/src/lib/Node.ts b/packages/webapi/src/lib/Node.ts
deleted file mode 100644
index 464404b34..000000000
--- a/packages/webapi/src/lib/Node.ts
+++ /dev/null
@@ -1,192 +0,0 @@
-import * as _ from './utils'
-
-export class Node extends EventTarget {
- append(...nodesOrDOMStrings: NodeOrString[]): void {
- void nodesOrDOMStrings
- }
-
- appendChild(childNode: Node): Node {
- return childNode
- }
-
- after(...nodesOrDOMStrings: NodeOrString[]): void {
- void nodesOrDOMStrings
- }
-
- before(...nodesOrDOMStrings: NodeOrString[]): void {
- void nodesOrDOMStrings
- }
-
- prepend(...nodesOrDOMStrings: NodeOrString[]): void {
- void nodesOrDOMStrings
- }
-
- replaceChild(newChild: Node, oldChild: Node): Node {
- void newChild
-
- return oldChild
- }
-
- removeChild(childNode: Node): Node {
- return childNode
- }
-
- get attributes(): object {
- return {}
- }
-
- get childNodes(): Node[] {
- return []
- }
-
- get children(): Element[] {
- return []
- }
-
- get ownerDocument(): Node | null {
- return null
- }
-
- get nodeValue(): string {
- return ''
- }
-
- set nodeValue(value: string) {
- void value
- }
-
- get textContent(): string {
- return ''
- }
-
- set textContent(value: string) {
- void value
- }
-
- get previousElementSibling(): Node | null {
- return null
- }
-
- get nextElementSibling(): Node | null {
- return null
- }
-
- [Symbol.for('nodejs.util.inspect.custom')](
- depth: number,
- options: Record<string, any>
- ) {
- return `${this.constructor.name}`
- }
-}
-
-export class DocumentFragment extends Node {}
-
-export class ShadowRoot extends DocumentFragment {
- get innerHTML() {
- return ''
- }
-
- set innerHTML(value: string) {
- void value
- }
-}
-
-export const NodeFilter = Object.assign(
- {
- NodeFilter() {
- throw new TypeError('Illegal constructor')
- },
- }.NodeFilter,
- {
- FILTER_ACCEPT: 1,
- FILTER_REJECT: 2,
- FILTER_SKIP: 3,
- SHOW_ALL: 4294967295,
- SHOW_ELEMENT: 1,
- SHOW_ATTRIBUTE: 2,
- SHOW_TEXT: 4,
- SHOW_CDATA_SECTION: 8,
- SHOW_ENTITY_REFERENCE: 16,
- SHOW_ENTITY: 32,
- SHOW_PROCESSING_INSTRUCTION: 64,
- SHOW_COMMENT: 128,
- SHOW_DOCUMENT: 256,
- SHOW_DOCUMENT_TYPE: 512,
- SHOW_DOCUMENT_FRAGMENT: 1024,
- SHOW_NOTATION: 2048,
- }
-)
-
-export class NodeIterator {
- nextNode(): Node | null {
- return null
- }
-
- previousNode(): Node | null {
- return null
- }
-
- get filter(): NodeFilter {
- const internals = _.internalsOf<NodeIteratorInternals>(
- this,
- 'NodeIterator',
- 'filter'
- )
- return internals.filter
- }
-
- get pointerBeforeReferenceNode(): boolean {
- const internals = _.internalsOf<NodeIteratorInternals>(
- this,
- 'NodeIterator',
- 'pointerBeforeReferenceNode'
- )
- return internals.pointerBeforeReferenceNode
- }
-
- get referenceNode(): Node {
- const internals = _.internalsOf<NodeIteratorInternals>(
- this,
- 'NodeIterator',
- 'referenceNode'
- )
- return internals.referenceNode
- }
-
- get root(): Node {
- const internals = _.internalsOf<NodeIteratorInternals>(
- this,
- 'NodeIterator',
- 'root'
- )
- return internals.root
- }
-
- get whatToShow(): number {
- const internals = _.internalsOf<NodeIteratorInternals>(
- this,
- 'NodeIterator',
- 'whatToShow'
- )
- return internals.whatToShow
- }
-}
-
-_.allowStringTag(Node)
-_.allowStringTag(NodeIterator)
-_.allowStringTag(DocumentFragment)
-_.allowStringTag(ShadowRoot)
-
-type NodeOrString = string | Node
-
-export interface NodeFilter {
- acceptNode(node: Node): number
-}
-
-export interface NodeIteratorInternals {
- filter: NodeFilter
- pointerBeforeReferenceNode: boolean
- referenceNode: Node
- root: Node
- whatToShow: number
-}
diff --git a/packages/webapi/src/lib/Observer.ts b/packages/webapi/src/lib/Observer.ts
deleted file mode 100644
index 845de1312..000000000
--- a/packages/webapi/src/lib/Observer.ts
+++ /dev/null
@@ -1,41 +0,0 @@
-import * as _ from './utils'
-
-export class IntersectionObserver {
- disconnect() {}
-
- observe() {}
-
- takeRecords() {
- return []
- }
-
- unobserve() {}
-}
-
-export class MutationObserver {
- disconnect() {}
-
- observe() {}
-
- takeRecords() {
- return []
- }
-
- unobserve() {}
-}
-
-export class ResizeObserver {
- disconnect() {}
-
- observe() {}
-
- takeRecords() {
- return []
- }
-
- unobserve() {}
-}
-
-_.allowStringTag(MutationObserver)
-_.allowStringTag(IntersectionObserver)
-_.allowStringTag(ResizeObserver)
diff --git a/packages/webapi/src/lib/OffscreenCanvas.ts b/packages/webapi/src/lib/OffscreenCanvas.ts
deleted file mode 100644
index e799f7210..000000000
--- a/packages/webapi/src/lib/OffscreenCanvas.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-import type { CanvasRenderingContext2D } from './CanvasRenderingContext2D'
-
-import { __createCanvasRenderingContext2D } from './CanvasRenderingContext2D'
-import * as _ from './utils'
-
-export class OffscreenCanvas extends EventTarget {
- constructor(width: number, height: number) {
- super()
-
- if (arguments.length < 2)
- throw new TypeError(
- `Failed to construct 'OffscreenCanvas': 2 arguments required.`
- )
-
- width = Number(width) || 0
- height = Number(height) || 0
-
- _.INTERNALS.set(this, { width, height } as OffscreenCanvasInternals)
- }
-
- get height(): number {
- return _.internalsOf(this, 'OffscreenCanvas', 'height').height
- }
-
- set height(value) {
- _.internalsOf(this, 'OffscreenCanvas', 'height').height = Number(value) || 0
- }
-
- get width(): number {
- return _.internalsOf(this, 'OffscreenCanvas', 'width').width
- }
-
- set width(value) {
- _.internalsOf(this, 'OffscreenCanvas', 'width').width = Number(value) || 0
- }
-
- getContext(
- contextType: PredefinedContextId
- ): CanvasRenderingContext2D | null {
- const internals = _.internalsOf<OffscreenCanvasInternals>(
- this,
- 'HTMLCanvasElement',
- 'getContext'
- )
-
- switch (contextType) {
- case '2d':
- if (internals.renderingContext2D) return internals.renderingContext2D
-
- internals.renderingContext2D = __createCanvasRenderingContext2D(this)
-
- return internals.renderingContext2D
- default:
- return null
- }
- }
-
- convertToBlob(options: Partial<ConvertToBlobOptions>) {
- options = Object(options)
-
- const quality = Number(options.quality) || 0
- const type = getImageType(String(options.type).trim().toLowerCase())
-
- void quality
-
- return Promise.resolve(new Blob([], { type }))
- }
-}
-
-_.allowStringTag(OffscreenCanvas)
-
-const getImageType = (type: string): PredefinedImageType =>
- type === 'image/avif' ||
- type === 'image/jpeg' ||
- type === 'image/png' ||
- type === 'image/webp'
- ? type
- : 'image/png'
-
-interface OffscreenCanvasInternals {
- height: number
- renderingContext2D: CanvasRenderingContext2D
- width: number
-}
-
-interface ConvertToBlobOptions {
- quality: number
- type: PredefinedImageType
-}
-
-type PredefinedContextId =
- | '2d'
- | 'bitmaprenderer'
- | 'webgl'
- | 'webgl2'
- | 'webgpu'
-
-type PredefinedImageType =
- | 'image/avif'
- | 'image/jpeg'
- | 'image/png'
- | 'image/webp'
diff --git a/packages/webapi/src/lib/Storage.ts b/packages/webapi/src/lib/Storage.ts
deleted file mode 100644
index 7f9426552..000000000
--- a/packages/webapi/src/lib/Storage.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import * as _ from './utils'
-
-export class Storage {
- clear(): void {
- _.internalsOf<StorageInternals>(this, 'Storage', 'clear').storage.clear()
- }
-
- getItem(key: string): string | null {
- return getStringOrNull(
- _.internalsOf<StorageInternals>(this, 'Storage', 'getItem').storage.get(
- String(key)
- )
- )
- }
-
- key(index: number): string | null {
- return getStringOrNull(
- [
- ..._.internalsOf<StorageInternals>(
- this,
- 'Storage',
- 'key'
- ).storage.keys(),
- ][Number(index) || 0]
- )
- }
-
- removeItem(key: string): void {
- _.internalsOf<StorageInternals>(this, 'Storage', 'getItem').storage.delete(
- String(key)
- )
- }
-
- setItem(key: string, value: any): void {
- _.internalsOf<StorageInternals>(this, 'Storage', 'getItem').storage.set(
- String(key),
- String(value)
- )
- }
-
- get length() {
- return _.internalsOf<StorageInternals>(this, 'Storage', 'size').storage.size
- }
-}
-
-const getStringOrNull = (value: string | void) =>
- typeof value === 'string' ? value : null
-
-export const initStorage = (target: Target, exclude: Set<string>) => {
- if (exclude.has('Storage') || exclude.has('localStorage')) return
-
- target.localStorage = Object.create(Storage.prototype)
-
- const storageInternals = new Map<string, string>()
-
- _.INTERNALS.set(target.localStorage, {
- storage: storageInternals,
- } as StorageInternals)
-}
-
-interface StorageInternals {
- storage: Map<string, string>
-}
-
-interface Target {
- localStorage: Storage
-}
diff --git a/packages/webapi/src/lib/StyleSheet.ts b/packages/webapi/src/lib/StyleSheet.ts
deleted file mode 100644
index d4b2d9e33..000000000
--- a/packages/webapi/src/lib/StyleSheet.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import * as _ from './utils'
-
-export class StyleSheet {}
-
-export class CSSStyleSheet extends StyleSheet {
- async replace(text: string) {
- void text
-
- return new CSSStyleSheet()
- }
-
- replaceSync(text: string) {
- void text
-
- return new CSSStyleSheet()
- }
-
- get cssRules() {
- return []
- }
-}
-
-_.allowStringTag(StyleSheet)
-_.allowStringTag(CSSStyleSheet)
diff --git a/packages/webapi/src/lib/Timeout.ts b/packages/webapi/src/lib/Timeout.ts
deleted file mode 100644
index 2ad4f153e..000000000
--- a/packages/webapi/src/lib/Timeout.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import {
- clearTimeout as nodeClearTimeout,
- setTimeout as nodeSetTimeout,
-} from 'node:timers'
-import * as _ from './utils.js'
-
-const INTERNAL = { tick: 0, pool: new Map() }
-
-export function setTimeout<
- TArgs extends any[],
- TFunc extends (...args: TArgs) => any
->(callback: TFunc, delay = 0, ...args: TArgs): number {
- const func = _.__function_bind(callback, globalThis)
- const tick = ++INTERNAL.tick
- const timeout = nodeSetTimeout(func as any, delay, ...args)
-
- INTERNAL.pool.set(tick, timeout)
-
- return tick
-}
-
-export function clearTimeout(timeoutId: number): void {
- const timeout = INTERNAL.pool.get(timeoutId)
-
- if (timeout) {
- nodeClearTimeout(timeout)
-
- INTERNAL.pool.delete(timeoutId)
- }
-}
diff --git a/packages/webapi/src/lib/TreeWalker.ts b/packages/webapi/src/lib/TreeWalker.ts
deleted file mode 100644
index 423397022..000000000
--- a/packages/webapi/src/lib/TreeWalker.ts
+++ /dev/null
@@ -1,67 +0,0 @@
-import * as _ from './utils'
-
-export class TreeWalker {
- parentNode(): Node | null {
- return null
- }
-
- firstChild(): Node | null {
- return null
- }
-
- lastChild(): Node | null {
- return null
- }
-
- previousSibling(): Node | null {
- return null
- }
-
- nextSibling(): Node | null {
- return null
- }
-
- previousNode(): Node | null {
- return null
- }
-
- nextNode(): Node | null {
- return null
- }
-
- get currentNode(): Node {
- const internals = _.internalsOf<TreeWalkerInternals>(
- this,
- 'TreeWalker',
- 'currentNode'
- )
- return internals.currentNode
- }
-
- get root(): Node {
- const internals = _.internalsOf<TreeWalkerInternals>(
- this,
- 'TreeWalker',
- 'root'
- )
- return internals.root
- }
-
- get whatToShow(): number {
- const internals = _.internalsOf<TreeWalkerInternals>(
- this,
- 'TreeWalker',
- 'whatToShow'
- )
- return internals.whatToShow
- }
-}
-
-_.allowStringTag(TreeWalker)
-
-export interface TreeWalkerInternals {
- filter: NodeFilter
- currentNode: Node
- root: Node
- whatToShow: number
-}
diff --git a/packages/webapi/src/lib/Window.ts b/packages/webapi/src/lib/Window.ts
deleted file mode 100644
index ac3312c93..000000000
--- a/packages/webapi/src/lib/Window.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-import * as _ from './utils'
-
-export class Window extends EventTarget {
- get self(): this {
- return this
- }
-
- get top(): this {
- return this
- }
-
- get window(): this {
- return this
- }
-
- get innerHeight(): number {
- return 0
- }
-
- get innerWidth(): number {
- return 0
- }
-
- get scrollX(): number {
- return 0
- }
-
- get scrollY(): number {
- return 0
- }
-}
-
-_.allowStringTag(Window)
-
-export const initWindow = (target: Target, exclude: Set<string>) => {
- if (exclude.has('Window') || exclude.has('window')) return
-
- target.window = target
-}
-
-export interface WindowInternals {
- document: null
- location: URL
- window: this
-}
-
-interface Target extends Record<any, any> {
- window: this
-}
diff --git a/packages/webapi/src/lib/structuredClone.ts b/packages/webapi/src/lib/structuredClone.ts
deleted file mode 100644
index f51fb529f..000000000
--- a/packages/webapi/src/lib/structuredClone.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { deserialize } from '@ungap/structured-clone/esm/deserialize.js'
-import { serialize } from '@ungap/structured-clone/esm/serialize.js'
-
-export default (any: any, options: any) => deserialize(serialize(any, options))
diff --git a/packages/webapi/src/lib/utils.ts b/packages/webapi/src/lib/utils.ts
deleted file mode 100644
index 63a6bba7b..000000000
--- a/packages/webapi/src/lib/utils.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import { performance } from 'node:perf_hooks'
-
-/** Returns the function bound to the given object. */
-export const __function_bind = Function.bind.bind(
- Function.call as unknown as any
-) as <TArgs extends any[], TFunc extends (...args: TArgs) => any>(
- callback: TFunc,
- thisArg: unknown,
- ...args: TArgs
-) => TFunc
-
-/** Returns whether the object prototype exists in another object. */
-export const __object_isPrototypeOf = Function.call.bind(
- Object.prototype.isPrototypeOf
-) as { <T1 extends object, T2>(p: T1, v: T2): T2 extends T1 ? true : false }
-
-/** Current high resolution millisecond timestamp. */
-export const __performance_now = performance.now as () => number
-
-// @ts-expect-error
-export const INTERNALS = new WeakMap<unknown, any>()
-
-export const internalsOf = <T extends object>(
- target: T | object,
- className: string,
- propName: string
-): T => {
- const internals: T = INTERNALS.get(target)
-
- if (!internals)
- throw new TypeError(
- `${className}.${propName} can only be used on instances of ${className}`
- )
-
- return internals
-}
-
-export const allowStringTag = (value: any) =>
- (value.prototype[Symbol.toStringTag] = value.name)
-
-/** Returns any kind of path as a posix path. */
-export const pathToPosix = (pathname: any) =>
- String(pathname == null ? '' : pathname)
- .replace(
- // convert slashes
- /\\+/g,
- '/'
- )
- .replace(
- // prefix a slash to drive letters
- /^(?=[A-Za-z]:\/)/,
- '/'
- )
- .replace(
- // encode path characters
- /%/g,
- '%25'
- )
- .replace(/\n/g, '%0A')
- .replace(/\r/g, '%0D')
- .replace(/\t/g, '%09')