import * as infra from 'ext:deno_web/00_infra.js';
import { DOMException } from "ext:deno_web/01_dom_exception.js";
import * as mimesniff from 'ext:deno_web/01_mimesniff.js';
import * as event from 'ext:deno_web/02_event.js';
import * as structuredClone from 'ext:deno_web/02_structured_clone.js';
import * as timers from 'ext:deno_web/02_timers.js';
import * as abortSignal from 'ext:deno_web/03_abort_signal.js';
import * as globalInterfaces from 'ext:deno_web/04_global_interfaces.js';
import * as base64 from 'ext:deno_web/05_base64.js';
import * as streams from 'ext:deno_web/06_streams.js';
import * as encoding from 'ext:deno_web/08_text_encoding.js';
import * as file from 'ext:deno_web/09_file.js';
import * as fileReader from 'ext:deno_web/10_filereader.js';
import * as location from 'ext:deno_web/12_location.js';
import * as messagePort from 'ext:deno_web/13_message_port.js';
import * as compression from 'ext:deno_web/14_compression.js';
import * as performance from 'ext:deno_web/15_performance.js';
import * as imageData from 'ext:deno_web/16_image_data.js';
import * as errors from 'ext:init_web/init_errors.js';
globalThis.Deno.refTimer = timers.refTimer;
globalThis.Deno.unrefTimer = timers.unrefTimer;
import { applyToGlobal, nonEnumerable, writeable } from 'ext:rustyscript/rustyscript.js';
applyToGlobal({
AbortController: nonEnumerable(abortSignal.AbortController),
AbortSignal: nonEnumerable(abortSignal.AbortSignal),
Blob: nonEnumerable(file.Blob),
ByteLengthQueuingStrategy: nonEnumerable(
streams.ByteLengthQueuingStrategy,
),
CloseEvent: nonEnumerable(event.CloseEvent),
CompressionStream: nonEnumerable(compression.CompressionStream),
CountQueuingStrategy: nonEnumerable(
streams.CountQueuingStrategy,
),
CustomEvent: nonEnumerable(event.CustomEvent),
DecompressionStream: nonEnumerable(compression.DecompressionStream),
DOMException: nonEnumerable(DOMException),
ErrorEvent: nonEnumerable(event.ErrorEvent),
Event: nonEnumerable(event.Event),
EventTarget: nonEnumerable(event.EventTarget),
File: nonEnumerable(file.File),
FileReader: nonEnumerable(fileReader.FileReader),
MessageEvent: nonEnumerable(event.MessageEvent),
Performance: nonEnumerable(performance.Performance),
PerformanceEntry: nonEnumerable(performance.PerformanceEntry),
PerformanceMark: nonEnumerable(performance.PerformanceMark),
PerformanceMeasure: nonEnumerable(performance.PerformanceMeasure),
PromiseRejectionEvent: nonEnumerable(event.PromiseRejectionEvent),
ProgressEvent: nonEnumerable(event.ProgressEvent),
ReadableStream: nonEnumerable(streams.ReadableStream),
ReadableStreamDefaultReader: nonEnumerable(
streams.ReadableStreamDefaultReader,
),
TextDecoder: nonEnumerable(encoding.TextDecoder),
TextEncoder: nonEnumerable(encoding.TextEncoder),
TextDecoderStream: nonEnumerable(encoding.TextDecoderStream),
TextEncoderStream: nonEnumerable(encoding.TextEncoderStream),
TransformStream: nonEnumerable(streams.TransformStream),
MessageChannel: nonEnumerable(messagePort.MessageChannel),
MessagePort: nonEnumerable(messagePort.MessagePort),
WritableStream: nonEnumerable(streams.WritableStream),
WritableStreamDefaultWriter: nonEnumerable(
streams.WritableStreamDefaultWriter,
),
WritableStreamDefaultController: nonEnumerable(
streams.WritableStreamDefaultController,
),
ReadableByteStreamController: nonEnumerable(
streams.ReadableByteStreamController,
),
ReadableStreamBYOBReader: nonEnumerable(
streams.ReadableStreamBYOBReader,
),
ReadableStreamBYOBRequest: nonEnumerable(
streams.ReadableStreamBYOBRequest,
),
ReadableStreamDefaultController: nonEnumerable(
streams.ReadableStreamDefaultController,
),
TransformStreamDefaultController: nonEnumerable(
streams.TransformStreamDefaultController,
),
atob: writeable(base64.atob),
btoa: writeable(base64.btoa),
clearInterval: writeable(timers.clearInterval),
clearTimeout: writeable(timers.clearTimeout),
performance: writeable(performance.performance),
reportError: writeable(event.reportError),
setInterval: writeable(timers.setInterval),
setTimeout: writeable(timers.setTimeout),
refTimer: writeable(timers.refTimer),
setImmediate: writeable(timers.setImmediate),
setInterval: writeable(timers.setInterval),
setTimeout: writeable(timers.setTimeout),
unrefTimer: writeable(timers.unrefTimer),
structuredClone: writeable(messagePort.structuredClone),
ImageData: nonEnumerable(imageData.ImageData),
});