@ccheever/exact-ibex-runtime 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/package.json +63 -0
  2. package/src/abort/AbortController.ts +23 -0
  3. package/src/abort/AbortSignal.ts +152 -0
  4. package/src/abort/index.ts +2 -0
  5. package/src/accessibility.ts +12 -0
  6. package/src/arraybuffer-detach.ts +109 -0
  7. package/src/base64/base64.ts +168 -0
  8. package/src/base64/index.ts +1 -0
  9. package/src/blob/Blob.ts +259 -0
  10. package/src/blob/File.ts +59 -0
  11. package/src/blob/FormData.ts +323 -0
  12. package/src/blob/index.ts +3 -0
  13. package/src/bootstrap.ts +1946 -0
  14. package/src/broadcast/BroadcastChannel.ts +280 -0
  15. package/src/broadcast/index.ts +5 -0
  16. package/src/cache/Cache.ts +349 -0
  17. package/src/cache/CacheStorage.ts +89 -0
  18. package/src/cache/index.ts +27 -0
  19. package/src/camera/index.ts +6202 -0
  20. package/src/camera/processor.worker.ts +194 -0
  21. package/src/camera/scene.ts +195 -0
  22. package/src/clipboard/Clipboard.ts +129 -0
  23. package/src/clipboard/ClipboardItem.ts +97 -0
  24. package/src/clipboard/index.ts +6 -0
  25. package/src/clone/index.ts +1 -0
  26. package/src/clone/structuredClone.ts +389 -0
  27. package/src/clone/transferableSymbols.ts +2 -0
  28. package/src/compression/CompressionStream.ts +146 -0
  29. package/src/compression/DecompressionStream.ts +342 -0
  30. package/src/compression/index.ts +4 -0
  31. package/src/console/Console.ts +341 -0
  32. package/src/console/index.ts +2 -0
  33. package/src/core/accessibility-state.ts +263 -0
  34. package/src/core/accessibility.ts +184 -0
  35. package/src/core/agent-state.ts +37 -0
  36. package/src/core/diagnostics-logs.ts +144 -0
  37. package/src/core/host-call-bridge.ts +16 -0
  38. package/src/core/i18n-helpers.ts +189 -0
  39. package/src/core/locale-state.ts +253 -0
  40. package/src/core/locale.ts +95 -0
  41. package/src/crypto/Crypto.ts +2743 -0
  42. package/src/crypto/index.ts +1 -0
  43. package/src/diagnostics/logs.ts +7 -0
  44. package/src/encoding/TextDecoder.ts +1181 -0
  45. package/src/encoding/TextDecoderStream.ts +58 -0
  46. package/src/encoding/TextEncoder.ts +180 -0
  47. package/src/encoding/TextEncoderStream.ts +39 -0
  48. package/src/encoding/index.ts +8 -0
  49. package/src/events/CloseEvent.ts +91 -0
  50. package/src/events/DOMException.ts +409 -0
  51. package/src/events/ErrorEvent.ts +39 -0
  52. package/src/events/Event.ts +151 -0
  53. package/src/events/EventTarget.ts +280 -0
  54. package/src/events/FocusEvent.ts +27 -0
  55. package/src/events/KeyboardEvent.ts +46 -0
  56. package/src/events/MessageEvent.ts +61 -0
  57. package/src/events/ProgressEvent.ts +33 -0
  58. package/src/events/PromiseRejectionEvent.ts +31 -0
  59. package/src/events/index.ts +52 -0
  60. package/src/eventsource/EventSource.ts +371 -0
  61. package/src/eventsource/index.ts +2 -0
  62. package/src/fetch/Headers.ts +642 -0
  63. package/src/fetch/Request.ts +760 -0
  64. package/src/fetch/Response.ts +543 -0
  65. package/src/fetch/body.ts +1256 -0
  66. package/src/fetch/cookie-jar.ts +566 -0
  67. package/src/fetch/demo.ts +207 -0
  68. package/src/fetch/errors.ts +101 -0
  69. package/src/fetch/fetch.ts +2610 -0
  70. package/src/fetch/index.ts +101 -0
  71. package/src/fetch/native-bridge.ts +65 -0
  72. package/src/fetch/types.ts +258 -0
  73. package/src/filereader/FileReader.ts +236 -0
  74. package/src/filereader/index.ts +1 -0
  75. package/src/fs/Dirent.ts +39 -0
  76. package/src/fs/ExactFile.ts +450 -0
  77. package/src/fs/Stats.ts +80 -0
  78. package/src/fs/index.ts +944 -0
  79. package/src/fs/promises.ts +386 -0
  80. package/src/fs/shared.ts +328 -0
  81. package/src/http-server/index.js +697 -0
  82. package/src/http-server/index.ts +27 -0
  83. package/src/identity.generated.ts +14 -0
  84. package/src/index.ts +283 -0
  85. package/src/indexeddb/IDBCursor.ts +188 -0
  86. package/src/indexeddb/IDBDatabase.ts +343 -0
  87. package/src/indexeddb/IDBFactory.ts +269 -0
  88. package/src/indexeddb/IDBIndex.ts +194 -0
  89. package/src/indexeddb/IDBKeyRange.ts +109 -0
  90. package/src/indexeddb/IDBObjectStore.ts +468 -0
  91. package/src/indexeddb/IDBRequest.ts +163 -0
  92. package/src/indexeddb/IDBTransaction.ts +207 -0
  93. package/src/indexeddb/index.ts +34 -0
  94. package/src/indexeddb/utils.ts +52 -0
  95. package/src/inspect/index.ts +1 -0
  96. package/src/inspect/inspect.ts +465 -0
  97. package/src/internal/detect.ts +104 -0
  98. package/src/locale.ts +10 -0
  99. package/src/location/index.ts +1059 -0
  100. package/src/locks/LockManager.ts +460 -0
  101. package/src/locks/index.ts +12 -0
  102. package/src/media/VideoFrame.ts +58 -0
  103. package/src/messaging/MessageChannel.ts +31 -0
  104. package/src/messaging/MessagePort.ts +180 -0
  105. package/src/messaging/index.ts +2 -0
  106. package/src/messaging.ts +247 -0
  107. package/src/native/NativeModules.ts +354 -0
  108. package/src/native/index.ts +1 -0
  109. package/src/navigator/Navigator.ts +351 -0
  110. package/src/navigator/index.ts +1 -0
  111. package/src/node/Buffer.ts +1786 -0
  112. package/src/node/index.ts +4 -0
  113. package/src/node/path.ts +495 -0
  114. package/src/node/process.ts +2528 -0
  115. package/src/performance/Performance.ts +532 -0
  116. package/src/performance/index.ts +21 -0
  117. package/src/polyfills/array.ts +236 -0
  118. package/src/polyfills/arraybuffer.ts +172 -0
  119. package/src/polyfills/groupby.ts +85 -0
  120. package/src/polyfills/index.ts +85 -0
  121. package/src/polyfills/intl.ts +1956 -0
  122. package/src/polyfills/iterator.ts +479 -0
  123. package/src/polyfills/promise.ts +37 -0
  124. package/src/polyfills/set.ts +245 -0
  125. package/src/polyfills/string.ts +85 -0
  126. package/src/polyfills/typedarray.ts +110 -0
  127. package/src/promise-rejection-tracking.ts +464 -0
  128. package/src/react-native/index.ts +388 -0
  129. package/src/runtime-entry.ts +55 -0
  130. package/src/scheduling/AnimationFrame.ts +105 -0
  131. package/src/scheduling/IdleCallback.ts +167 -0
  132. package/src/scheduling/index.ts +13 -0
  133. package/src/security/Capabilities.ts +1146 -0
  134. package/src/security/Permissions.ts +392 -0
  135. package/src/security/capability-bits.generated.ts +63 -0
  136. package/src/security/index.ts +16 -0
  137. package/src/sqlite/Database.ts +456 -0
  138. package/src/sqlite/Statement.ts +206 -0
  139. package/src/sqlite/constants.ts +79 -0
  140. package/src/sqlite/errors.ts +25 -0
  141. package/src/sqlite/index.ts +34 -0
  142. package/src/sqlite/module.js +438 -0
  143. package/src/storage/Storage.ts +291 -0
  144. package/src/storage/StorageManager.ts +91 -0
  145. package/src/storage/index.ts +3 -0
  146. package/src/stream-compat.ts +47 -0
  147. package/src/streams/ReadableStream.ts +4131 -0
  148. package/src/streams/TransformStream.ts +375 -0
  149. package/src/streams/WritableStream.ts +866 -0
  150. package/src/streams/index.ts +41 -0
  151. package/src/timers/Timers.ts +296 -0
  152. package/src/timers/index.ts +11 -0
  153. package/src/url/URL.ts +656 -0
  154. package/src/url/URLPattern.ts +850 -0
  155. package/src/url/URLSearchParams.ts +244 -0
  156. package/src/url/index.ts +9 -0
  157. package/src/websocket/WebSocket.ts +770 -0
  158. package/src/websocket/WebSocketError.ts +52 -0
  159. package/src/websocket/WebSocketStream.ts +628 -0
  160. package/src/websocket/index.ts +7 -0
  161. package/src/window/index.ts +872 -0
@@ -0,0 +1,280 @@
1
+ // @ts-nocheck
2
+ /**
3
+ * EventTarget - Web Standard EventTarget Implementation
4
+ *
5
+ * @see https://dom.spec.whatwg.org/#interface-eventtarget
6
+ */
7
+
8
+ import { Event } from "./Event";
9
+
10
+ export type EventListener = (event: Event) => void;
11
+
12
+ export interface EventListenerObject {
13
+ handleEvent(event: Event): void;
14
+ }
15
+
16
+ export type EventListenerOrEventListenerObject =
17
+ | EventListener
18
+ | EventListenerObject;
19
+
20
+ export interface AddEventListenerOptions {
21
+ capture?: boolean;
22
+ once?: boolean;
23
+ passive?: boolean;
24
+ signal?: any; // AbortSignal - use 'any' to avoid circular dependency
25
+ }
26
+
27
+ export interface EventListenerOptions {
28
+ capture?: boolean;
29
+ }
30
+
31
+ interface ListenerEntry {
32
+ callback: EventListenerOrEventListenerObject;
33
+ capture: boolean;
34
+ once: boolean;
35
+ passive: boolean;
36
+ removed: boolean;
37
+ signal?: any; // AbortSignal - use 'any' to avoid circular dependency
38
+ }
39
+
40
+ export class EventTarget {
41
+ private _listeners: Map<string, ListenerEntry[]> = new Map();
42
+ private compactListeners(type: string): void {
43
+ const listeners = this._listeners.get(type);
44
+ if (!listeners) {
45
+ return;
46
+ }
47
+
48
+ const activeListeners = listeners.filter((l) => !l.removed);
49
+ if (activeListeners.length === 0) {
50
+ this._listeners.delete(type);
51
+ } else if (activeListeners.length !== listeners.length) {
52
+ this._listeners.set(type, activeListeners);
53
+ }
54
+ }
55
+
56
+ addEventListener(
57
+ type: string,
58
+ callback: EventListenerOrEventListenerObject | null,
59
+ options?: AddEventListenerOptions | boolean
60
+ ): void {
61
+ if (callback === null) {
62
+ return;
63
+ }
64
+
65
+ const capture =
66
+ typeof options === "boolean" ? options : options?.capture ?? false;
67
+ const once = typeof options === "object" ? options?.once ?? false : false;
68
+ const passive =
69
+ typeof options === "object" ? options?.passive ?? false : false;
70
+ const signal =
71
+ typeof options === "object" ? options?.signal : undefined;
72
+
73
+ // If signal is already aborted, don't add
74
+ if (signal?.aborted) {
75
+ return;
76
+ }
77
+
78
+ let listeners = this._listeners.get(type);
79
+ if (!listeners) {
80
+ listeners = [];
81
+ this._listeners.set(type, listeners);
82
+ }
83
+
84
+ // Check if already exists (same callback and capture)
85
+ const exists = listeners.some(
86
+ (l) =>
87
+ l.callback === callback && l.capture === capture && !l.removed
88
+ );
89
+ if (exists) {
90
+ return;
91
+ }
92
+
93
+ const entry: ListenerEntry = {
94
+ callback,
95
+ capture,
96
+ once,
97
+ passive,
98
+ removed: false,
99
+ signal,
100
+ };
101
+
102
+ listeners.push(entry);
103
+
104
+ // Handle abort signal
105
+ if (signal) {
106
+ const removeOnAbort = () => {
107
+ entry.removed = true;
108
+ this.compactListeners(type);
109
+ };
110
+ signal.addEventListener("abort", removeOnAbort, { once: true });
111
+ }
112
+ }
113
+
114
+ removeEventListener(
115
+ type: string,
116
+ callback: EventListenerOrEventListenerObject | null,
117
+ options?: EventListenerOptions | boolean
118
+ ): void {
119
+ if (callback === null) {
120
+ return;
121
+ }
122
+
123
+ const capture =
124
+ typeof options === "boolean" ? options : options?.capture ?? false;
125
+
126
+ const listeners = this._listeners.get(type);
127
+ if (!listeners) {
128
+ return;
129
+ }
130
+
131
+ const index = listeners.findIndex(
132
+ (l) => l.callback === callback && l.capture === capture && !l.removed
133
+ );
134
+
135
+ if (index !== -1) {
136
+ listeners[index].removed = true;
137
+ this.compactListeners(type);
138
+ }
139
+ }
140
+
141
+ dispatchEvent(event: Event | string | { type: string; [key: string]: unknown }): boolean {
142
+ const dispatchEvent = this.normalizeDispatchEventArgument(event);
143
+
144
+ // Set target
145
+ (dispatchEvent as any)._setTarget(this);
146
+ (dispatchEvent as any)._setCurrentTarget(this);
147
+ (dispatchEvent as any)._setEventPhase(Event.AT_TARGET);
148
+
149
+ const listeners = this._listeners.get(dispatchEvent.type);
150
+ if (listeners) {
151
+ // Create a copy to iterate (listeners may be modified during iteration)
152
+ const listenersCopy = [...listeners];
153
+
154
+ for (const entry of listenersCopy) {
155
+ if (entry.removed) {
156
+ continue;
157
+ }
158
+
159
+ if ((dispatchEvent as any)._isImmediatePropagationStopped()) {
160
+ break;
161
+ }
162
+
163
+ // Mark for removal if once
164
+ if (entry.once) {
165
+ entry.removed = true;
166
+ }
167
+
168
+ // Set passive flag before calling listener
169
+ (dispatchEvent as any)._setInPassiveListener(entry.passive);
170
+
171
+ try {
172
+ if (typeof entry.callback === "function") {
173
+ entry.callback.call(this, dispatchEvent);
174
+ } else {
175
+ entry.callback.handleEvent(dispatchEvent);
176
+ }
177
+ } catch (error) {
178
+ // Report error but continue with other listeners
179
+ console.error("Error in event listener:", error);
180
+ } finally {
181
+ // Reset passive flag after listener
182
+ (dispatchEvent as any)._setInPassiveListener(false);
183
+ }
184
+ }
185
+
186
+ this.compactListeners(dispatchEvent.type);
187
+ }
188
+
189
+ // Reset event state for potential re-dispatch
190
+ (dispatchEvent as any)._setCurrentTarget(null);
191
+ (dispatchEvent as any)._setEventPhase(Event.NONE);
192
+
193
+ const result = !dispatchEvent.defaultPrevented;
194
+
195
+ // Reset flags after dispatch so event can be re-dispatched
196
+ (dispatchEvent as any)._resetFlags();
197
+
198
+ return result;
199
+ }
200
+
201
+ private normalizeDispatchEventArgument(
202
+ event: Event | string | { type: string; [key: string]: unknown }
203
+ ): Event {
204
+ if (!event) {
205
+ throw new TypeError(
206
+ "Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'."
207
+ );
208
+ }
209
+
210
+ if (typeof event === "string") {
211
+ event = new Event(event) as unknown as Event;
212
+ }
213
+
214
+ if (
215
+ typeof (event as any)._setTarget === "function" &&
216
+ typeof (event as any)._setCurrentTarget === "function" &&
217
+ typeof (event as any)._setEventPhase === "function" &&
218
+ typeof (event as any)._resetFlags === "function"
219
+ ) {
220
+ return event;
221
+ }
222
+
223
+ if (typeof (event as any).type !== "string") {
224
+ throw new TypeError(
225
+ "Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'."
226
+ );
227
+ }
228
+
229
+ const source = event as Event & {
230
+ bubbles?: boolean;
231
+ cancelable?: boolean;
232
+ composed?: boolean;
233
+ };
234
+ const wrapped = new Event(source.type, {
235
+ bubbles: source.bubbles ?? false,
236
+ cancelable: source.cancelable ?? false,
237
+ composed: source.composed ?? false,
238
+ }) as Event;
239
+
240
+ for (const key of Object.keys(source as Record<string, unknown>)) {
241
+ if (
242
+ key === "type" ||
243
+ key === "bubbles" ||
244
+ key === "cancelable" ||
245
+ key === "composed" ||
246
+ key === "defaultPrevented" ||
247
+ key === "isTrusted" ||
248
+ key === "timeStamp" ||
249
+ key === "target" ||
250
+ key === "currentTarget" ||
251
+ key === "eventPhase" ||
252
+ key === "detail"
253
+ ) {
254
+ continue;
255
+ }
256
+
257
+ const wrappedDescriptor =
258
+ Object.getOwnPropertyDescriptor(wrapped, key) ||
259
+ Object.getOwnPropertyDescriptor(Object.getPrototypeOf(wrapped), key);
260
+ if (
261
+ wrappedDescriptor &&
262
+ ((wrappedDescriptor.writable === false && wrappedDescriptor.set === undefined) ||
263
+ wrappedDescriptor.get !== undefined)
264
+ ) {
265
+ continue;
266
+ }
267
+ (wrapped as any)[key] = (source as Record<string, unknown>)[key];
268
+ }
269
+
270
+ return wrapped;
271
+ }
272
+
273
+ /**
274
+ * Helper to check if there are any listeners for a type
275
+ */
276
+ protected hasListeners(type: string): boolean {
277
+ const listeners = this._listeners.get(type);
278
+ return listeners ? listeners.some((l) => !l.removed) : false;
279
+ }
280
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * FocusEvent - Minimal DOM-compatible focus event implementation.
3
+ *
4
+ * The DOM shim uses this for focus/blur/focusin/focusout payload wrapping so
5
+ * handlers can read `relatedTarget` without special Exact-specific branching.
6
+ */
7
+
8
+ import { Event, type EventInit } from './Event';
9
+
10
+ export interface FocusEventInit extends EventInit {
11
+ relatedTarget?: EventTarget | null;
12
+ }
13
+
14
+ export class FocusEvent extends Event {
15
+ readonly relatedTarget: EventTarget | null;
16
+
17
+ constructor(type: string, eventInitDict?: FocusEventInit) {
18
+ super(type, eventInitDict);
19
+ this.relatedTarget = eventInitDict?.relatedTarget ?? null;
20
+ }
21
+
22
+ get [Symbol.toStringTag](): string {
23
+ return 'FocusEvent';
24
+ }
25
+ }
26
+
27
+ export default FocusEvent;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * KeyboardEvent - Minimal DOM-compatible keyboard event implementation.
3
+ *
4
+ * The DOM shim only needs the standard readonly keyboard fields that framework
5
+ * event handlers commonly read (`key`, `code`, and modifier flags). The base
6
+ * Event implementation already handles cancelation and dispatch bookkeeping.
7
+ */
8
+
9
+ import { Event, type EventInit } from './Event';
10
+
11
+ export interface KeyboardEventInit extends EventInit {
12
+ key?: string;
13
+ code?: string;
14
+ altKey?: boolean;
15
+ ctrlKey?: boolean;
16
+ metaKey?: boolean;
17
+ shiftKey?: boolean;
18
+ repeat?: boolean;
19
+ }
20
+
21
+ export class KeyboardEvent extends Event {
22
+ readonly key: string;
23
+ readonly code: string;
24
+ readonly altKey: boolean;
25
+ readonly ctrlKey: boolean;
26
+ readonly metaKey: boolean;
27
+ readonly shiftKey: boolean;
28
+ readonly repeat: boolean;
29
+
30
+ constructor(type: string, eventInitDict?: KeyboardEventInit) {
31
+ super(type, eventInitDict);
32
+ this.key = eventInitDict?.key ?? '';
33
+ this.code = eventInitDict?.code ?? '';
34
+ this.altKey = eventInitDict?.altKey === true;
35
+ this.ctrlKey = eventInitDict?.ctrlKey === true;
36
+ this.metaKey = eventInitDict?.metaKey === true;
37
+ this.shiftKey = eventInitDict?.shiftKey === true;
38
+ this.repeat = eventInitDict?.repeat === true;
39
+ }
40
+
41
+ get [Symbol.toStringTag](): string {
42
+ return 'KeyboardEvent';
43
+ }
44
+ }
45
+
46
+ export default KeyboardEvent;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * MessageEvent - Event for messaging APIs
3
+ *
4
+ * Used by WebSocket, MessagePort, BroadcastChannel, and postMessage.
5
+ * @see https://html.spec.whatwg.org/multipage/comms.html#messageevent
6
+ */
7
+
8
+ import { Event, EventInit } from './Event';
9
+
10
+ export interface MessageEventInit<T = any> extends EventInit {
11
+ data?: T;
12
+ origin?: string;
13
+ lastEventId?: string;
14
+ source?: MessageEventSource | null;
15
+ ports?: MessagePort[];
16
+ }
17
+
18
+ // MessageEventSource can be WindowProxy, MessagePort, or ServiceWorker
19
+ // In our runtime, we only support MessagePort
20
+ export type MessageEventSource = MessagePort | null;
21
+
22
+ export class MessageEvent<T = any> extends Event {
23
+ readonly data: T;
24
+ readonly origin: string;
25
+ readonly lastEventId: string;
26
+ readonly source: MessageEventSource;
27
+ readonly ports: ReadonlyArray<MessagePort>;
28
+
29
+ constructor(type: string, eventInitDict?: MessageEventInit<T>) {
30
+ super(type, eventInitDict);
31
+ this.data = eventInitDict?.data as T;
32
+ this.origin = eventInitDict?.origin ?? '';
33
+ this.lastEventId = eventInitDict?.lastEventId ?? '';
34
+ this.source = eventInitDict?.source ?? null;
35
+ this.ports = Object.freeze(eventInitDict?.ports ? [...eventInitDict.ports] : []);
36
+ }
37
+
38
+ /**
39
+ * Legacy method for initializing a MessageEvent.
40
+ * @deprecated Use the constructor instead.
41
+ */
42
+ initMessageEvent(
43
+ type: string,
44
+ bubbles?: boolean,
45
+ cancelable?: boolean,
46
+ data?: T,
47
+ origin?: string,
48
+ lastEventId?: string,
49
+ source?: MessageEventSource,
50
+ ports?: MessagePort[]
51
+ ): void {
52
+ // This is a no-op in modern implementations since events are immutable
53
+ // Included for compatibility only
54
+ }
55
+
56
+ get [Symbol.toStringTag](): string {
57
+ return 'MessageEvent';
58
+ }
59
+ }
60
+
61
+ export default MessageEvent;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * ProgressEvent - Event for tracking progress of operations
3
+ *
4
+ * Used by XMLHttpRequest, FileReader, and fetch progress tracking.
5
+ * @see https://xhr.spec.whatwg.org/#interface-progressevent
6
+ */
7
+
8
+ import { Event, EventInit } from './Event';
9
+
10
+ export interface ProgressEventInit extends EventInit {
11
+ lengthComputable?: boolean;
12
+ loaded?: number;
13
+ total?: number;
14
+ }
15
+
16
+ export class ProgressEvent extends Event {
17
+ readonly lengthComputable: boolean;
18
+ readonly loaded: number;
19
+ readonly total: number;
20
+
21
+ constructor(type: string, eventInitDict?: ProgressEventInit) {
22
+ super(type, eventInitDict);
23
+ this.lengthComputable = eventInitDict?.lengthComputable ?? false;
24
+ this.loaded = eventInitDict?.loaded ?? 0;
25
+ this.total = eventInitDict?.total ?? 0;
26
+ }
27
+
28
+ get [Symbol.toStringTag](): string {
29
+ return 'ProgressEvent';
30
+ }
31
+ }
32
+
33
+ export default ProgressEvent;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * PromiseRejectionEvent - Event for unhandled promise rejections
3
+ *
4
+ * Fired when a Promise is rejected and no rejection handler is attached,
5
+ * or when a previously unhandled rejection becomes handled.
6
+ * @see https://html.spec.whatwg.org/multipage/webappapis.html#promiserejectionevent
7
+ */
8
+
9
+ import { Event, EventInit } from './Event';
10
+
11
+ export interface PromiseRejectionEventInit extends EventInit {
12
+ promise: Promise<any>;
13
+ reason?: any;
14
+ }
15
+
16
+ export class PromiseRejectionEvent extends Event {
17
+ readonly promise: Promise<any>;
18
+ readonly reason: any;
19
+
20
+ constructor(type: string, eventInitDict: PromiseRejectionEventInit) {
21
+ super(type, eventInitDict);
22
+ this.promise = eventInitDict.promise;
23
+ this.reason = 'reason' in eventInitDict ? eventInitDict.reason : undefined;
24
+ }
25
+
26
+ get [Symbol.toStringTag](): string {
27
+ return 'PromiseRejectionEvent';
28
+ }
29
+ }
30
+
31
+ export default PromiseRejectionEvent;
@@ -0,0 +1,52 @@
1
+ // @ts-nocheck
2
+ /**
3
+ * Events module - EventTarget, Event, CustomEvent, DOMException, and specialized events
4
+ */
5
+
6
+ export { Event, CustomEvent } from "./Event";
7
+ export type { EventInit, CustomEventInit } from "./Event";
8
+
9
+ export { EventTarget } from "./EventTarget";
10
+ export type {
11
+ EventListener,
12
+ EventListenerObject,
13
+ EventListenerOrEventListenerObject,
14
+ AddEventListenerOptions,
15
+ EventListenerOptions,
16
+ } from "./EventTarget";
17
+
18
+ export {
19
+ DOMException,
20
+ createAbortError,
21
+ createNetworkError,
22
+ createTimeoutError,
23
+ createQuotaExceededError,
24
+ createDataCloneError,
25
+ createInvalidStateError,
26
+ createNotSupportedError,
27
+ createSyntaxError,
28
+ createSecurityError,
29
+ createOperationError,
30
+ } from "./DOMException";
31
+
32
+ // Specialized event types
33
+ export { MessageEvent } from "./MessageEvent";
34
+ export type { MessageEventInit, MessageEventSource } from "./MessageEvent";
35
+
36
+ export { CloseEvent } from "./CloseEvent";
37
+ export type { CloseEventInit } from "./CloseEvent";
38
+
39
+ export { ErrorEvent } from "./ErrorEvent";
40
+ export type { ErrorEventInit } from "./ErrorEvent";
41
+
42
+ export { ProgressEvent } from "./ProgressEvent";
43
+ export type { ProgressEventInit } from "./ProgressEvent";
44
+
45
+ export { KeyboardEvent } from "./KeyboardEvent";
46
+ export type { KeyboardEventInit } from "./KeyboardEvent";
47
+
48
+ export { FocusEvent } from "./FocusEvent";
49
+ export type { FocusEventInit } from "./FocusEvent";
50
+
51
+ export { PromiseRejectionEvent } from "./PromiseRejectionEvent";
52
+ export type { PromiseRejectionEventInit } from "./PromiseRejectionEvent";