├── .editorconfig ├── .gitattributes ├── .github ├── security.md └── workflows │ ├── es-yearly-globals.yml │ ├── main.yml │ └── update.yml ├── .gitignore ├── .npmrc ├── Makefile ├── data ├── amd.mjs ├── applescript.mjs ├── atomtest.mjs ├── browser.mjs ├── builtin.mjs ├── chai.mjs ├── commonjs.mjs ├── couch.mjs ├── devtools.mjs ├── embertest.mjs ├── es2015.mjs ├── es2016.mjs ├── es2017.mjs ├── es2018.mjs ├── es2019.mjs ├── es2020.mjs ├── es2021.mjs ├── es2022.mjs ├── es2023.mjs ├── es2024.mjs ├── es2025.mjs ├── es3.mjs ├── es5.mjs ├── greasemonkey.mjs ├── jasmine.mjs ├── jest.mjs ├── jquery.mjs ├── meteor.mjs ├── mocha.mjs ├── mongo.mjs ├── nashorn.mjs ├── node.mjs ├── nodeBuiltin.mjs ├── phantomjs.mjs ├── prototypejs.mjs ├── protractor.mjs ├── qunit.mjs ├── rhino.mjs ├── serviceworker.mjs ├── shared-node-browser.mjs ├── shelljs.mjs ├── vitest.mjs ├── webextensions.mjs ├── worker.mjs ├── wsh.mjs └── yui.mjs ├── globals.json ├── index.js ├── index.test-d.ts ├── license ├── package.json ├── puppeteer.config.cjs ├── readme.md ├── scripts ├── browser │ ├── assets │ │ ├── audio-worklet.mjs │ │ ├── main.mjs │ │ ├── service-worker.mjs │ │ └── web-worker.mjs │ ├── index.html │ ├── readme.md │ ├── server.mjs │ └── start.mjs ├── create-yearly-es-globals.mjs ├── generate-data.mjs ├── generate-types.mjs ├── get-browser-globals.mjs ├── get-builtin-globals.mjs ├── get-jest-globals.mjs ├── get-node-builtin-globals.mjs ├── get-shelljs-globals.mjs ├── get-vitest-globals.mjs ├── update.mjs └── utilities.mjs ├── test.mjs └── utilities.mjs /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = tab 5 | end_of_line = lf 6 | charset = utf-8 7 | trim_trailing_whitespace = true 8 | insert_final_newline = true 9 | 10 | [*.yml] 11 | indent_style = space 12 | indent_size = 2 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/security.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security). Tidelift will coordinate the fix and disclosure. 4 | -------------------------------------------------------------------------------- /.github/workflows/es-yearly-globals.yml: -------------------------------------------------------------------------------- 1 | name: Create ES yearly globals 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | # “At 00:00 on day-of-month 1 in July.” https://crontab.guru/#0_0_1_7_* 7 | - cron: "0 0 1 7 *" 8 | 9 | permissions: 10 | pull-requests: write 11 | contents: write 12 | 13 | jobs: 14 | update: 15 | if: github.event_name != 'schedule' || github.repository == 'sindresorhus/globals' 16 | runs-on: ubuntu-latest 17 | steps: 18 | - uses: actions/checkout@v4 19 | - uses: actions/setup-node@v4 20 | - run: npm install 21 | - run: node scripts/create-yearly-es-globals.mjs 22 | - run: npm run build 23 | - uses: peter-evans/create-pull-request@v6 24 | with: 25 | commit-message: Add `es2026` globals 26 | branch: automated-es-yearly-globals 27 | branch-suffix: timestamp 28 | title: Add `es2026` globals 29 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: CI 2 | on: 3 | - push 4 | - pull_request 5 | permissions: 6 | contents: read 7 | concurrency: 8 | group: ${{ github.workflow }}-${{ github.ref }} 9 | cancel-in-progress: true 10 | jobs: 11 | test: 12 | name: Node.js ${{ matrix.node-version }} 13 | runs-on: ubuntu-latest 14 | strategy: 15 | fail-fast: false 16 | matrix: 17 | node-version: 18 | - 20 19 | - 18 20 | steps: 21 | - uses: actions/checkout@v4 22 | - uses: actions/setup-node@v4 23 | with: 24 | node-version: ${{ matrix.node-version }} 25 | - run: npm install 26 | - run: npm test 27 | test-update: 28 | name: Update script (${{ matrix.os }}) 29 | runs-on: ${{ matrix.os }} 30 | strategy: 31 | fail-fast: false 32 | matrix: 33 | os: 34 | - ubuntu-latest 35 | - macos-latest 36 | - windows-latest 37 | steps: 38 | - uses: actions/checkout@v4 39 | - uses: actions/setup-node@v4 40 | with: 41 | check-latest: true 42 | node-version: latest 43 | - run: npm install 44 | # https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md 45 | - run: echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns 46 | if: matrix.os == 'ubuntu-latest' 47 | - run: npm run update --dry 48 | -------------------------------------------------------------------------------- /.github/workflows/update.yml: -------------------------------------------------------------------------------- 1 | name: Update 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | # “At 00:00 on day-of-month 1.” https://crontab.guru/#0_0_1_*_* 7 | - cron: "0 0 1 * *" 8 | 9 | permissions: 10 | pull-requests: write 11 | contents: write 12 | 13 | jobs: 14 | update-on-macos: 15 | if: github.event_name != 'schedule' || github.repository == 'sindresorhus/globals' 16 | runs-on: macos-latest 17 | steps: 18 | - uses: actions/checkout@v4 19 | - uses: actions/setup-node@v4 20 | with: 21 | check-latest: true 22 | node-version: latest 23 | - run: npm install 24 | - run: | 25 | npm install puppeteer --save-dev 26 | npm run update 27 | - uses: actions/upload-artifact@v4 28 | with: 29 | name: data 30 | path: data 31 | if-no-files-found: error 32 | 33 | update-on-windows: 34 | if: github.event_name != 'schedule' || github.repository == 'sindresorhus/globals' 35 | runs-on: windows-latest 36 | needs: [update-on-macos] 37 | steps: 38 | - uses: actions/checkout@v4 39 | - uses: actions/setup-node@v4 40 | with: 41 | check-latest: true 42 | node-version: latest 43 | - run: npm install 44 | - uses: actions/download-artifact@v4 45 | with: 46 | name: data 47 | path: data 48 | - run: | 49 | npm install puppeteer --save-dev 50 | npm run update 51 | - uses: actions/upload-artifact@v4 52 | with: 53 | name: data 54 | path: data 55 | if-no-files-found: error 56 | overwrite: true 57 | 58 | update-on-linux: 59 | if: github.event_name != 'schedule' || github.repository == 'sindresorhus/globals' 60 | runs-on: ubuntu-latest 61 | needs: [update-on-windows] 62 | steps: 63 | - uses: actions/checkout@v4 64 | - uses: actions/setup-node@v4 65 | with: 66 | check-latest: true 67 | node-version: latest 68 | - run: npm install 69 | - uses: actions/download-artifact@v4 70 | with: 71 | name: data 72 | path: data 73 | # https://chromium.googlesource.com/chromium/src/+/main/docs/security/apparmor-userns-restrictions.md 74 | - run: echo 0 | sudo tee /proc/sys/kernel/apparmor_restrict_unprivileged_userns 75 | - run: | 76 | npm install puppeteer --save-dev 77 | npm run update 78 | - uses: peter-evans/create-pull-request@v7 79 | with: 80 | commit-message: Update globals 81 | branch: automated-update 82 | branch-suffix: timestamp 83 | title: Update globals 84 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | yarn.lock 3 | .cache 4 | /index.d.ts 5 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | package-lock=false 2 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | ifeq ($(words $(MAKECMDGOALS)), 1) 2 | LEVEL = minor 3 | else 4 | LEVEL = $(filter-out $@,$(MAKECMDGOALS)) 5 | endif 6 | 7 | release: package.json 8 | git pull --rebase 9 | npm test 10 | npm version $(LEVEL) 11 | npm publish 12 | git push --follow-tags 13 | 14 | %: 15 | @: 16 | -------------------------------------------------------------------------------- /data/amd.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | define: false, 3 | require: false, 4 | }; 5 | -------------------------------------------------------------------------------- /data/applescript.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | $: false, 3 | Application: false, 4 | Automation: false, 5 | console: false, 6 | delay: false, 7 | Library: false, 8 | ObjC: false, 9 | ObjectSpecifier: false, 10 | Path: false, 11 | Progress: false, 12 | Ref: false, 13 | }; 14 | -------------------------------------------------------------------------------- /data/atomtest.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | advanceClock: false, 3 | atom: false, 4 | fakeClearInterval: false, 5 | fakeClearTimeout: false, 6 | fakeSetInterval: false, 7 | fakeSetTimeout: false, 8 | resetTimeouts: false, 9 | waitsForPromise: false, 10 | }; 11 | -------------------------------------------------------------------------------- /data/browser.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | AbortController: false, 6 | AbortSignal: false, 7 | AbsoluteOrientationSensor: false, 8 | AbstractRange: false, 9 | Accelerometer: false, 10 | addEventListener: false, 11 | ai: false, 12 | AI: false, 13 | AICreateMonitor: false, 14 | AITextSession: false, 15 | alert: false, 16 | AnalyserNode: false, 17 | Animation: false, 18 | AnimationEffect: false, 19 | AnimationEvent: false, 20 | AnimationPlaybackEvent: false, 21 | AnimationTimeline: false, 22 | AsyncDisposableStack: false, 23 | atob: false, 24 | Attr: false, 25 | Audio: false, 26 | AudioBuffer: false, 27 | AudioBufferSourceNode: false, 28 | AudioContext: false, 29 | AudioData: false, 30 | AudioDecoder: false, 31 | AudioDestinationNode: false, 32 | AudioEncoder: false, 33 | AudioListener: false, 34 | AudioNode: false, 35 | AudioParam: false, 36 | AudioParamMap: false, 37 | AudioProcessingEvent: false, 38 | AudioScheduledSourceNode: false, 39 | AudioSinkInfo: false, 40 | AudioWorklet: false, 41 | AudioWorkletGlobalScope: false, 42 | AudioWorkletNode: false, 43 | AudioWorkletProcessor: false, 44 | AuthenticatorAssertionResponse: false, 45 | AuthenticatorAttestationResponse: false, 46 | AuthenticatorResponse: false, 47 | BackgroundFetchManager: false, 48 | BackgroundFetchRecord: false, 49 | BackgroundFetchRegistration: false, 50 | BarcodeDetector: false, 51 | BarProp: false, 52 | BaseAudioContext: false, 53 | BatteryManager: false, 54 | BeforeUnloadEvent: false, 55 | BiquadFilterNode: false, 56 | Blob: false, 57 | BlobEvent: false, 58 | Bluetooth: false, 59 | BluetoothCharacteristicProperties: false, 60 | BluetoothDevice: false, 61 | BluetoothRemoteGATTCharacteristic: false, 62 | BluetoothRemoteGATTDescriptor: false, 63 | BluetoothRemoteGATTServer: false, 64 | BluetoothRemoteGATTService: false, 65 | BluetoothUUID: false, 66 | blur: false, 67 | BroadcastChannel: false, 68 | BrowserCaptureMediaStreamTrack: false, 69 | btoa: false, 70 | ByteLengthQueuingStrategy: false, 71 | Cache: false, 72 | caches: false, 73 | CacheStorage: false, 74 | cancelAnimationFrame: false, 75 | cancelIdleCallback: false, 76 | CanvasCaptureMediaStream: false, 77 | CanvasCaptureMediaStreamTrack: false, 78 | CanvasGradient: false, 79 | CanvasPattern: false, 80 | CanvasRenderingContext2D: false, 81 | CaptureController: false, 82 | CaretPosition: false, 83 | CDATASection: false, 84 | ChannelMergerNode: false, 85 | ChannelSplitterNode: false, 86 | ChapterInformation: false, 87 | CharacterBoundsUpdateEvent: false, 88 | CharacterData: false, 89 | clearInterval: false, 90 | clearTimeout: false, 91 | clientInformation: false, 92 | Clipboard: false, 93 | ClipboardEvent: false, 94 | ClipboardItem: false, 95 | close: false, 96 | closed: false, 97 | CloseEvent: false, 98 | CloseWatcher: false, 99 | CommandEvent: false, 100 | Comment: false, 101 | CompositionEvent: false, 102 | CompressionStream: false, 103 | confirm: false, 104 | console: false, 105 | ConstantSourceNode: false, 106 | ContentVisibilityAutoStateChangeEvent: false, 107 | ConvolverNode: false, 108 | CookieChangeEvent: false, 109 | CookieDeprecationLabel: false, 110 | cookieStore: false, 111 | CookieStore: false, 112 | CookieStoreManager: false, 113 | CountQueuingStrategy: false, 114 | createImageBitmap: false, 115 | Credential: false, 116 | credentialless: false, 117 | CredentialsContainer: false, 118 | CropTarget: false, 119 | crossOriginIsolated: false, 120 | crypto: false, 121 | Crypto: false, 122 | CryptoKey: false, 123 | CSPViolationReportBody: false, 124 | CSS: false, 125 | CSSAnimation: false, 126 | CSSConditionRule: false, 127 | CSSContainerRule: false, 128 | CSSCounterStyleRule: false, 129 | CSSFontFaceRule: false, 130 | CSSFontFeatureValuesRule: false, 131 | CSSFontPaletteValuesRule: false, 132 | CSSGroupingRule: false, 133 | CSSImageValue: false, 134 | CSSImportRule: false, 135 | CSSKeyframeRule: false, 136 | CSSKeyframesRule: false, 137 | CSSKeywordValue: false, 138 | CSSLayerBlockRule: false, 139 | CSSLayerStatementRule: false, 140 | CSSMarginRule: false, 141 | CSSMathClamp: false, 142 | CSSMathInvert: false, 143 | CSSMathMax: false, 144 | CSSMathMin: false, 145 | CSSMathNegate: false, 146 | CSSMathProduct: false, 147 | CSSMathSum: false, 148 | CSSMathValue: false, 149 | CSSMatrixComponent: false, 150 | CSSMediaRule: false, 151 | CSSNamespaceRule: false, 152 | CSSNestedDeclarations: false, 153 | CSSNumericArray: false, 154 | CSSNumericValue: false, 155 | CSSPageDescriptors: false, 156 | CSSPageRule: false, 157 | CSSPerspective: false, 158 | CSSPositionTryDescriptors: false, 159 | CSSPositionTryRule: false, 160 | CSSPositionValue: false, 161 | CSSPropertyRule: false, 162 | CSSRotate: false, 163 | CSSRule: false, 164 | CSSRuleList: false, 165 | CSSScale: false, 166 | CSSScopeRule: false, 167 | CSSSkew: false, 168 | CSSSkewX: false, 169 | CSSSkewY: false, 170 | CSSStartingStyleRule: false, 171 | CSSStyleDeclaration: false, 172 | CSSStyleRule: false, 173 | CSSStyleSheet: false, 174 | CSSStyleValue: false, 175 | CSSSupportsRule: false, 176 | CSSTransformComponent: false, 177 | CSSTransformValue: false, 178 | CSSTransition: false, 179 | CSSTranslate: false, 180 | CSSUnitValue: false, 181 | CSSUnparsedValue: false, 182 | CSSVariableReferenceValue: false, 183 | CSSViewTransitionRule: false, 184 | currentFrame: false, 185 | currentTime: false, 186 | CustomElementRegistry: false, 187 | customElements: false, 188 | CustomEvent: false, 189 | CustomStateSet: false, 190 | DataTransfer: false, 191 | DataTransferItem: false, 192 | DataTransferItemList: false, 193 | DecompressionStream: false, 194 | DelayNode: false, 195 | DelegatedInkTrailPresenter: false, 196 | DeviceMotionEvent: false, 197 | DeviceMotionEventAcceleration: false, 198 | DeviceMotionEventRotationRate: false, 199 | DeviceOrientationEvent: false, 200 | devicePixelRatio: false, 201 | DevicePosture: false, 202 | dispatchEvent: false, 203 | DisposableStack: false, 204 | document: false, 205 | Document: false, 206 | DocumentFragment: false, 207 | documentPictureInPicture: false, 208 | DocumentPictureInPicture: false, 209 | DocumentPictureInPictureEvent: false, 210 | DocumentTimeline: false, 211 | DocumentType: false, 212 | DOMError: false, 213 | DOMException: false, 214 | DOMImplementation: false, 215 | DOMMatrix: false, 216 | DOMMatrixReadOnly: false, 217 | DOMParser: false, 218 | DOMPoint: false, 219 | DOMPointReadOnly: false, 220 | DOMQuad: false, 221 | DOMRect: false, 222 | DOMRectList: false, 223 | DOMRectReadOnly: false, 224 | DOMStringList: false, 225 | DOMStringMap: false, 226 | DOMTokenList: false, 227 | DragEvent: false, 228 | DynamicsCompressorNode: false, 229 | EditContext: false, 230 | Element: false, 231 | ElementInternals: false, 232 | EncodedAudioChunk: false, 233 | EncodedVideoChunk: false, 234 | ErrorEvent: false, 235 | event: false, 236 | Event: false, 237 | EventCounts: false, 238 | EventSource: false, 239 | EventTarget: false, 240 | external: false, 241 | External: false, 242 | EyeDropper: false, 243 | FeaturePolicy: false, 244 | FederatedCredential: false, 245 | fence: false, 246 | Fence: false, 247 | FencedFrameConfig: false, 248 | fetch: false, 249 | fetchLater: false, 250 | FetchLaterResult: false, 251 | File: false, 252 | FileList: false, 253 | FileReader: false, 254 | FileSystem: false, 255 | FileSystemDirectoryEntry: false, 256 | FileSystemDirectoryHandle: false, 257 | FileSystemDirectoryReader: false, 258 | FileSystemEntry: false, 259 | FileSystemFileEntry: false, 260 | FileSystemFileHandle: false, 261 | FileSystemHandle: false, 262 | FileSystemObserver: false, 263 | FileSystemWritableFileStream: false, 264 | find: false, 265 | focus: false, 266 | FocusEvent: false, 267 | FontData: false, 268 | FontFace: false, 269 | FontFaceSet: false, 270 | FontFaceSetLoadEvent: false, 271 | FormData: false, 272 | FormDataEvent: false, 273 | FragmentDirective: false, 274 | frameElement: false, 275 | frames: false, 276 | GainNode: false, 277 | Gamepad: false, 278 | GamepadAxisMoveEvent: false, 279 | GamepadButton: false, 280 | GamepadButtonEvent: false, 281 | GamepadEvent: false, 282 | GamepadHapticActuator: false, 283 | GamepadPose: false, 284 | Geolocation: false, 285 | GeolocationCoordinates: false, 286 | GeolocationPosition: false, 287 | GeolocationPositionError: false, 288 | getComputedStyle: false, 289 | getScreenDetails: false, 290 | getSelection: false, 291 | GPU: false, 292 | GPUAdapter: false, 293 | GPUAdapterInfo: false, 294 | GPUBindGroup: false, 295 | GPUBindGroupLayout: false, 296 | GPUBuffer: false, 297 | GPUBufferUsage: false, 298 | GPUCanvasContext: false, 299 | GPUColorWrite: false, 300 | GPUCommandBuffer: false, 301 | GPUCommandEncoder: false, 302 | GPUCompilationInfo: false, 303 | GPUCompilationMessage: false, 304 | GPUComputePassEncoder: false, 305 | GPUComputePipeline: false, 306 | GPUDevice: false, 307 | GPUDeviceLostInfo: false, 308 | GPUError: false, 309 | GPUExternalTexture: false, 310 | GPUInternalError: false, 311 | GPUMapMode: false, 312 | GPUOutOfMemoryError: false, 313 | GPUPipelineError: false, 314 | GPUPipelineLayout: false, 315 | GPUQuerySet: false, 316 | GPUQueue: false, 317 | GPURenderBundle: false, 318 | GPURenderBundleEncoder: false, 319 | GPURenderPassEncoder: false, 320 | GPURenderPipeline: false, 321 | GPUSampler: false, 322 | GPUShaderModule: false, 323 | GPUShaderStage: false, 324 | GPUSupportedFeatures: false, 325 | GPUSupportedLimits: false, 326 | GPUTexture: false, 327 | GPUTextureUsage: false, 328 | GPUTextureView: false, 329 | GPUUncapturedErrorEvent: false, 330 | GPUValidationError: false, 331 | GravitySensor: false, 332 | Gyroscope: false, 333 | HashChangeEvent: false, 334 | Headers: false, 335 | HID: false, 336 | HIDConnectionEvent: false, 337 | HIDDevice: false, 338 | HIDInputReportEvent: false, 339 | Highlight: false, 340 | HighlightRegistry: false, 341 | history: false, 342 | History: false, 343 | HTMLAllCollection: false, 344 | HTMLAnchorElement: false, 345 | HTMLAreaElement: false, 346 | HTMLAudioElement: false, 347 | HTMLBaseElement: false, 348 | HTMLBodyElement: false, 349 | HTMLBRElement: false, 350 | HTMLButtonElement: false, 351 | HTMLCanvasElement: false, 352 | HTMLCollection: false, 353 | HTMLDataElement: false, 354 | HTMLDataListElement: false, 355 | HTMLDetailsElement: false, 356 | HTMLDialogElement: false, 357 | HTMLDirectoryElement: false, 358 | HTMLDivElement: false, 359 | HTMLDListElement: false, 360 | HTMLDocument: false, 361 | HTMLElement: false, 362 | HTMLEmbedElement: false, 363 | HTMLFencedFrameElement: false, 364 | HTMLFieldSetElement: false, 365 | HTMLFontElement: false, 366 | HTMLFormControlsCollection: false, 367 | HTMLFormElement: false, 368 | HTMLFrameElement: false, 369 | HTMLFrameSetElement: false, 370 | HTMLHeadElement: false, 371 | HTMLHeadingElement: false, 372 | HTMLHRElement: false, 373 | HTMLHtmlElement: false, 374 | HTMLIFrameElement: false, 375 | HTMLImageElement: false, 376 | HTMLInputElement: false, 377 | HTMLLabelElement: false, 378 | HTMLLegendElement: false, 379 | HTMLLIElement: false, 380 | HTMLLinkElement: false, 381 | HTMLMapElement: false, 382 | HTMLMarqueeElement: false, 383 | HTMLMediaElement: false, 384 | HTMLMenuElement: false, 385 | HTMLMetaElement: false, 386 | HTMLMeterElement: false, 387 | HTMLModElement: false, 388 | HTMLObjectElement: false, 389 | HTMLOListElement: false, 390 | HTMLOptGroupElement: false, 391 | HTMLOptionElement: false, 392 | HTMLOptionsCollection: false, 393 | HTMLOutputElement: false, 394 | HTMLParagraphElement: false, 395 | HTMLParamElement: false, 396 | HTMLPictureElement: false, 397 | HTMLPreElement: false, 398 | HTMLProgressElement: false, 399 | HTMLQuoteElement: false, 400 | HTMLScriptElement: false, 401 | HTMLSelectedContentElement: false, 402 | HTMLSelectElement: false, 403 | HTMLSlotElement: false, 404 | HTMLSourceElement: false, 405 | HTMLSpanElement: false, 406 | HTMLStyleElement: false, 407 | HTMLTableCaptionElement: false, 408 | HTMLTableCellElement: false, 409 | HTMLTableColElement: false, 410 | HTMLTableElement: false, 411 | HTMLTableRowElement: false, 412 | HTMLTableSectionElement: false, 413 | HTMLTemplateElement: false, 414 | HTMLTextAreaElement: false, 415 | HTMLTimeElement: false, 416 | HTMLTitleElement: false, 417 | HTMLTrackElement: false, 418 | HTMLUListElement: false, 419 | HTMLUnknownElement: false, 420 | HTMLVideoElement: false, 421 | IDBCursor: false, 422 | IDBCursorWithValue: false, 423 | IDBDatabase: false, 424 | IDBFactory: false, 425 | IDBIndex: false, 426 | IDBKeyRange: false, 427 | IDBObjectStore: false, 428 | IDBOpenDBRequest: false, 429 | IDBRequest: false, 430 | IDBTransaction: false, 431 | IDBVersionChangeEvent: false, 432 | IdentityCredential: false, 433 | IdentityCredentialError: false, 434 | IdentityProvider: false, 435 | IdleDeadline: false, 436 | IdleDetector: false, 437 | IIRFilterNode: false, 438 | Image: false, 439 | ImageBitmap: false, 440 | ImageBitmapRenderingContext: false, 441 | ImageCapture: false, 442 | ImageData: false, 443 | ImageDecoder: false, 444 | ImageTrack: false, 445 | ImageTrackList: false, 446 | indexedDB: false, 447 | Ink: false, 448 | innerHeight: false, 449 | innerWidth: false, 450 | InputDeviceCapabilities: false, 451 | InputDeviceInfo: false, 452 | InputEvent: false, 453 | IntersectionObserver: false, 454 | IntersectionObserverEntry: false, 455 | isSecureContext: false, 456 | Keyboard: false, 457 | KeyboardEvent: false, 458 | KeyboardLayoutMap: false, 459 | KeyframeEffect: false, 460 | LanguageDetector: false, 461 | LargestContentfulPaint: false, 462 | LaunchParams: false, 463 | launchQueue: false, 464 | LaunchQueue: false, 465 | LayoutShift: false, 466 | LayoutShiftAttribution: false, 467 | length: false, 468 | LinearAccelerationSensor: false, 469 | localStorage: false, 470 | location: true, 471 | Location: false, 472 | locationbar: false, 473 | Lock: false, 474 | LockManager: false, 475 | matchMedia: false, 476 | MathMLElement: false, 477 | MediaCapabilities: false, 478 | MediaCapabilitiesInfo: false, 479 | MediaDeviceInfo: false, 480 | MediaDevices: false, 481 | MediaElementAudioSourceNode: false, 482 | MediaEncryptedEvent: false, 483 | MediaError: false, 484 | MediaKeyError: false, 485 | MediaKeyMessageEvent: false, 486 | MediaKeys: false, 487 | MediaKeySession: false, 488 | MediaKeyStatusMap: false, 489 | MediaKeySystemAccess: false, 490 | MediaList: false, 491 | MediaMetadata: false, 492 | MediaQueryList: false, 493 | MediaQueryListEvent: false, 494 | MediaRecorder: false, 495 | MediaRecorderErrorEvent: false, 496 | MediaSession: false, 497 | MediaSource: false, 498 | MediaSourceHandle: false, 499 | MediaStream: false, 500 | MediaStreamAudioDestinationNode: false, 501 | MediaStreamAudioSourceNode: false, 502 | MediaStreamEvent: false, 503 | MediaStreamTrack: false, 504 | MediaStreamTrackAudioSourceNode: false, 505 | MediaStreamTrackAudioStats: false, 506 | MediaStreamTrackEvent: false, 507 | MediaStreamTrackGenerator: false, 508 | MediaStreamTrackProcessor: false, 509 | MediaStreamTrackVideoStats: false, 510 | menubar: false, 511 | MessageChannel: false, 512 | MessageEvent: false, 513 | MessagePort: false, 514 | MIDIAccess: false, 515 | MIDIConnectionEvent: false, 516 | MIDIInput: false, 517 | MIDIInputMap: false, 518 | MIDIMessageEvent: false, 519 | MIDIOutput: false, 520 | MIDIOutputMap: false, 521 | MIDIPort: false, 522 | MimeType: false, 523 | MimeTypeArray: false, 524 | model: false, 525 | ModelGenericSession: false, 526 | ModelManager: false, 527 | MouseEvent: false, 528 | moveBy: false, 529 | moveTo: false, 530 | MutationEvent: false, 531 | MutationObserver: false, 532 | MutationRecord: false, 533 | name: false, 534 | NamedNodeMap: false, 535 | NavigateEvent: false, 536 | navigation: false, 537 | Navigation: false, 538 | NavigationActivation: false, 539 | NavigationCurrentEntryChangeEvent: false, 540 | NavigationDestination: false, 541 | NavigationHistoryEntry: false, 542 | NavigationPreloadManager: false, 543 | NavigationTransition: false, 544 | navigator: false, 545 | Navigator: false, 546 | NavigatorLogin: false, 547 | NavigatorManagedData: false, 548 | NavigatorUAData: false, 549 | NetworkInformation: false, 550 | Node: false, 551 | NodeFilter: false, 552 | NodeIterator: false, 553 | NodeList: false, 554 | Notification: false, 555 | NotifyPaintEvent: false, 556 | NotRestoredReasonDetails: false, 557 | NotRestoredReasons: false, 558 | Observable: false, 559 | OfflineAudioCompletionEvent: false, 560 | OfflineAudioContext: false, 561 | offscreenBuffering: false, 562 | OffscreenCanvas: false, 563 | OffscreenCanvasRenderingContext2D: false, 564 | onabort: true, 565 | onafterprint: true, 566 | onanimationcancel: true, 567 | onanimationend: true, 568 | onanimationiteration: true, 569 | onanimationstart: true, 570 | onappinstalled: true, 571 | onauxclick: true, 572 | onbeforeinput: true, 573 | onbeforeinstallprompt: true, 574 | onbeforematch: true, 575 | onbeforeprint: true, 576 | onbeforetoggle: true, 577 | onbeforeunload: true, 578 | onbeforexrselect: true, 579 | onblur: true, 580 | oncancel: true, 581 | oncanplay: true, 582 | oncanplaythrough: true, 583 | onchange: true, 584 | onclick: true, 585 | onclose: true, 586 | oncommand: true, 587 | oncontentvisibilityautostatechange: true, 588 | oncontextlost: true, 589 | oncontextmenu: true, 590 | oncontextrestored: true, 591 | oncopy: true, 592 | oncuechange: true, 593 | oncut: true, 594 | ondblclick: true, 595 | ondevicemotion: true, 596 | ondeviceorientation: true, 597 | ondeviceorientationabsolute: true, 598 | ondrag: true, 599 | ondragend: true, 600 | ondragenter: true, 601 | ondragleave: true, 602 | ondragover: true, 603 | ondragstart: true, 604 | ondrop: true, 605 | ondurationchange: true, 606 | onemptied: true, 607 | onended: true, 608 | onerror: true, 609 | onfocus: true, 610 | onformdata: true, 611 | ongamepadconnected: true, 612 | ongamepaddisconnected: true, 613 | ongotpointercapture: true, 614 | onhashchange: true, 615 | oninput: true, 616 | oninvalid: true, 617 | onkeydown: true, 618 | onkeypress: true, 619 | onkeyup: true, 620 | onlanguagechange: true, 621 | onload: true, 622 | onloadeddata: true, 623 | onloadedmetadata: true, 624 | onloadstart: true, 625 | onlostpointercapture: true, 626 | onmessage: true, 627 | onmessageerror: true, 628 | onmousedown: true, 629 | onmouseenter: true, 630 | onmouseleave: true, 631 | onmousemove: true, 632 | onmouseout: true, 633 | onmouseover: true, 634 | onmouseup: true, 635 | onmousewheel: true, 636 | onoffline: true, 637 | ononline: true, 638 | onpagehide: true, 639 | onpagereveal: true, 640 | onpageshow: true, 641 | onpageswap: true, 642 | onpaste: true, 643 | onpause: true, 644 | onplay: true, 645 | onplaying: true, 646 | onpointercancel: true, 647 | onpointerdown: true, 648 | onpointerenter: true, 649 | onpointerleave: true, 650 | onpointermove: true, 651 | onpointerout: true, 652 | onpointerover: true, 653 | onpointerrawupdate: true, 654 | onpointerup: true, 655 | onpopstate: true, 656 | onprogress: true, 657 | onratechange: true, 658 | onrejectionhandled: true, 659 | onreset: true, 660 | onresize: true, 661 | onscroll: true, 662 | onscrollend: true, 663 | onscrollsnapchange: true, 664 | onscrollsnapchanging: true, 665 | onsearch: true, 666 | onsecuritypolicyviolation: true, 667 | onseeked: true, 668 | onseeking: true, 669 | onselect: true, 670 | onselectionchange: true, 671 | onselectstart: true, 672 | onslotchange: true, 673 | onstalled: true, 674 | onstorage: true, 675 | onsubmit: true, 676 | onsuspend: true, 677 | ontimeupdate: true, 678 | ontoggle: true, 679 | ontransitioncancel: true, 680 | ontransitionend: true, 681 | ontransitionrun: true, 682 | ontransitionstart: true, 683 | onunhandledrejection: true, 684 | onunload: true, 685 | onvolumechange: true, 686 | onwaiting: true, 687 | onwheel: true, 688 | open: false, 689 | opener: false, 690 | Option: false, 691 | OrientationSensor: false, 692 | origin: false, 693 | originAgentCluster: false, 694 | OscillatorNode: false, 695 | OTPCredential: false, 696 | outerHeight: false, 697 | outerWidth: false, 698 | OverconstrainedError: false, 699 | PageRevealEvent: false, 700 | PageSwapEvent: false, 701 | PageTransitionEvent: false, 702 | pageXOffset: false, 703 | pageYOffset: false, 704 | PannerNode: false, 705 | parent: false, 706 | PasswordCredential: false, 707 | Path2D: false, 708 | PaymentAddress: false, 709 | PaymentManager: false, 710 | PaymentMethodChangeEvent: false, 711 | PaymentRequest: false, 712 | PaymentRequestUpdateEvent: false, 713 | PaymentResponse: false, 714 | performance: false, 715 | Performance: false, 716 | PerformanceElementTiming: false, 717 | PerformanceEntry: false, 718 | PerformanceEventTiming: false, 719 | PerformanceLongAnimationFrameTiming: false, 720 | PerformanceLongTaskTiming: false, 721 | PerformanceMark: false, 722 | PerformanceMeasure: false, 723 | PerformanceNavigation: false, 724 | PerformanceNavigationTiming: false, 725 | PerformanceObserver: false, 726 | PerformanceObserverEntryList: false, 727 | PerformancePaintTiming: false, 728 | PerformanceResourceTiming: false, 729 | PerformanceScriptTiming: false, 730 | PerformanceServerTiming: false, 731 | PerformanceTiming: false, 732 | PeriodicSyncManager: false, 733 | PeriodicWave: false, 734 | Permissions: false, 735 | PermissionStatus: false, 736 | PERSISTENT: false, 737 | personalbar: false, 738 | PictureInPictureEvent: false, 739 | PictureInPictureWindow: false, 740 | Plugin: false, 741 | PluginArray: false, 742 | PointerEvent: false, 743 | PopStateEvent: false, 744 | postMessage: false, 745 | Presentation: false, 746 | PresentationAvailability: false, 747 | PresentationConnection: false, 748 | PresentationConnectionAvailableEvent: false, 749 | PresentationConnectionCloseEvent: false, 750 | PresentationConnectionList: false, 751 | PresentationReceiver: false, 752 | PresentationRequest: false, 753 | PressureObserver: false, 754 | PressureRecord: false, 755 | print: false, 756 | ProcessingInstruction: false, 757 | Profiler: false, 758 | ProgressEvent: false, 759 | PromiseRejectionEvent: false, 760 | prompt: false, 761 | ProtectedAudience: false, 762 | PublicKeyCredential: false, 763 | PushManager: false, 764 | PushSubscription: false, 765 | PushSubscriptionOptions: false, 766 | queryLocalFonts: false, 767 | queueMicrotask: false, 768 | RadioNodeList: false, 769 | Range: false, 770 | ReadableByteStreamController: false, 771 | ReadableStream: false, 772 | ReadableStreamBYOBReader: false, 773 | ReadableStreamBYOBRequest: false, 774 | ReadableStreamDefaultController: false, 775 | ReadableStreamDefaultReader: false, 776 | registerProcessor: false, 777 | RelativeOrientationSensor: false, 778 | RemotePlayback: false, 779 | removeEventListener: false, 780 | ReportBody: false, 781 | reportError: false, 782 | ReportingObserver: false, 783 | Request: false, 784 | requestAnimationFrame: false, 785 | requestIdleCallback: false, 786 | resizeBy: false, 787 | ResizeObserver: false, 788 | ResizeObserverEntry: false, 789 | ResizeObserverSize: false, 790 | resizeTo: false, 791 | Response: false, 792 | RestrictionTarget: false, 793 | RTCCertificate: false, 794 | RTCDataChannel: false, 795 | RTCDataChannelEvent: false, 796 | RTCDtlsTransport: false, 797 | RTCDTMFSender: false, 798 | RTCDTMFToneChangeEvent: false, 799 | RTCEncodedAudioFrame: false, 800 | RTCEncodedVideoFrame: false, 801 | RTCError: false, 802 | RTCErrorEvent: false, 803 | RTCIceCandidate: false, 804 | RTCIceTransport: false, 805 | RTCPeerConnection: false, 806 | RTCPeerConnectionIceErrorEvent: false, 807 | RTCPeerConnectionIceEvent: false, 808 | RTCRtpReceiver: false, 809 | RTCRtpScriptTransform: false, 810 | RTCRtpSender: false, 811 | RTCRtpTransceiver: false, 812 | RTCSctpTransport: false, 813 | RTCSessionDescription: false, 814 | RTCStatsReport: false, 815 | RTCTrackEvent: false, 816 | sampleRate: false, 817 | scheduler: false, 818 | Scheduler: false, 819 | Scheduling: false, 820 | screen: false, 821 | Screen: false, 822 | ScreenDetailed: false, 823 | ScreenDetails: false, 824 | screenLeft: false, 825 | ScreenOrientation: false, 826 | screenTop: false, 827 | screenX: false, 828 | screenY: false, 829 | ScriptProcessorNode: false, 830 | scroll: false, 831 | scrollbars: false, 832 | scrollBy: false, 833 | ScrollTimeline: false, 834 | scrollTo: false, 835 | scrollX: false, 836 | scrollY: false, 837 | SecurityPolicyViolationEvent: false, 838 | Selection: false, 839 | self: false, 840 | Sensor: false, 841 | SensorErrorEvent: false, 842 | Serial: false, 843 | SerialPort: false, 844 | ServiceWorker: false, 845 | ServiceWorkerContainer: false, 846 | ServiceWorkerRegistration: false, 847 | sessionStorage: false, 848 | setInterval: false, 849 | setTimeout: false, 850 | ShadowRoot: false, 851 | sharedStorage: false, 852 | SharedStorage: false, 853 | SharedStorageAppendMethod: false, 854 | SharedStorageClearMethod: false, 855 | SharedStorageDeleteMethod: false, 856 | SharedStorageModifierMethod: false, 857 | SharedStorageSetMethod: false, 858 | SharedStorageWorklet: false, 859 | SharedWorker: false, 860 | showDirectoryPicker: false, 861 | showOpenFilePicker: false, 862 | showSaveFilePicker: false, 863 | SnapEvent: false, 864 | SourceBuffer: false, 865 | SourceBufferList: false, 866 | speechSynthesis: false, 867 | SpeechSynthesis: false, 868 | SpeechSynthesisErrorEvent: false, 869 | SpeechSynthesisEvent: false, 870 | SpeechSynthesisUtterance: false, 871 | SpeechSynthesisVoice: false, 872 | StaticRange: false, 873 | status: false, 874 | statusbar: false, 875 | StereoPannerNode: false, 876 | stop: false, 877 | Storage: false, 878 | StorageBucket: false, 879 | StorageBucketManager: false, 880 | StorageEvent: false, 881 | StorageManager: false, 882 | structuredClone: false, 883 | styleMedia: false, 884 | StylePropertyMap: false, 885 | StylePropertyMapReadOnly: false, 886 | StyleSheet: false, 887 | StyleSheetList: false, 888 | SubmitEvent: false, 889 | Subscriber: false, 890 | SubtleCrypto: false, 891 | SuppressedError: false, 892 | SVGAElement: false, 893 | SVGAngle: false, 894 | SVGAnimatedAngle: false, 895 | SVGAnimatedBoolean: false, 896 | SVGAnimatedEnumeration: false, 897 | SVGAnimatedInteger: false, 898 | SVGAnimatedLength: false, 899 | SVGAnimatedLengthList: false, 900 | SVGAnimatedNumber: false, 901 | SVGAnimatedNumberList: false, 902 | SVGAnimatedPreserveAspectRatio: false, 903 | SVGAnimatedRect: false, 904 | SVGAnimatedString: false, 905 | SVGAnimatedTransformList: false, 906 | SVGAnimateElement: false, 907 | SVGAnimateMotionElement: false, 908 | SVGAnimateTransformElement: false, 909 | SVGAnimationElement: false, 910 | SVGCircleElement: false, 911 | SVGClipPathElement: false, 912 | SVGComponentTransferFunctionElement: false, 913 | SVGDefsElement: false, 914 | SVGDescElement: false, 915 | SVGElement: false, 916 | SVGEllipseElement: false, 917 | SVGFEBlendElement: false, 918 | SVGFEColorMatrixElement: false, 919 | SVGFEComponentTransferElement: false, 920 | SVGFECompositeElement: false, 921 | SVGFEConvolveMatrixElement: false, 922 | SVGFEDiffuseLightingElement: false, 923 | SVGFEDisplacementMapElement: false, 924 | SVGFEDistantLightElement: false, 925 | SVGFEDropShadowElement: false, 926 | SVGFEFloodElement: false, 927 | SVGFEFuncAElement: false, 928 | SVGFEFuncBElement: false, 929 | SVGFEFuncGElement: false, 930 | SVGFEFuncRElement: false, 931 | SVGFEGaussianBlurElement: false, 932 | SVGFEImageElement: false, 933 | SVGFEMergeElement: false, 934 | SVGFEMergeNodeElement: false, 935 | SVGFEMorphologyElement: false, 936 | SVGFEOffsetElement: false, 937 | SVGFEPointLightElement: false, 938 | SVGFESpecularLightingElement: false, 939 | SVGFESpotLightElement: false, 940 | SVGFETileElement: false, 941 | SVGFETurbulenceElement: false, 942 | SVGFilterElement: false, 943 | SVGForeignObjectElement: false, 944 | SVGGElement: false, 945 | SVGGeometryElement: false, 946 | SVGGradientElement: false, 947 | SVGGraphicsElement: false, 948 | SVGImageElement: false, 949 | SVGLength: false, 950 | SVGLengthList: false, 951 | SVGLinearGradientElement: false, 952 | SVGLineElement: false, 953 | SVGMarkerElement: false, 954 | SVGMaskElement: false, 955 | SVGMatrix: false, 956 | SVGMetadataElement: false, 957 | SVGMPathElement: false, 958 | SVGNumber: false, 959 | SVGNumberList: false, 960 | SVGPathElement: false, 961 | SVGPatternElement: false, 962 | SVGPoint: false, 963 | SVGPointList: false, 964 | SVGPolygonElement: false, 965 | SVGPolylineElement: false, 966 | SVGPreserveAspectRatio: false, 967 | SVGRadialGradientElement: false, 968 | SVGRect: false, 969 | SVGRectElement: false, 970 | SVGScriptElement: false, 971 | SVGSetElement: false, 972 | SVGStopElement: false, 973 | SVGStringList: false, 974 | SVGStyleElement: false, 975 | SVGSVGElement: false, 976 | SVGSwitchElement: false, 977 | SVGSymbolElement: false, 978 | SVGTextContentElement: false, 979 | SVGTextElement: false, 980 | SVGTextPathElement: false, 981 | SVGTextPositioningElement: false, 982 | SVGTitleElement: false, 983 | SVGTransform: false, 984 | SVGTransformList: false, 985 | SVGTSpanElement: false, 986 | SVGUnitTypes: false, 987 | SVGUseElement: false, 988 | SVGViewElement: false, 989 | SyncManager: false, 990 | TaskAttributionTiming: false, 991 | TaskController: false, 992 | TaskPriorityChangeEvent: false, 993 | TaskSignal: false, 994 | TEMPORARY: false, 995 | Text: false, 996 | TextDecoder: false, 997 | TextDecoderStream: false, 998 | TextEncoder: false, 999 | TextEncoderStream: false, 1000 | TextEvent: false, 1001 | TextFormat: false, 1002 | TextFormatUpdateEvent: false, 1003 | TextMetrics: false, 1004 | TextTrack: false, 1005 | TextTrackCue: false, 1006 | TextTrackCueList: false, 1007 | TextTrackList: false, 1008 | TextUpdateEvent: false, 1009 | TimeEvent: false, 1010 | TimeRanges: false, 1011 | ToggleEvent: false, 1012 | toolbar: false, 1013 | top: false, 1014 | Touch: false, 1015 | TouchEvent: false, 1016 | TouchList: false, 1017 | TrackEvent: false, 1018 | TransformStream: false, 1019 | TransformStreamDefaultController: false, 1020 | TransitionEvent: false, 1021 | TreeWalker: false, 1022 | TrustedHTML: false, 1023 | TrustedScript: false, 1024 | TrustedScriptURL: false, 1025 | TrustedTypePolicy: false, 1026 | TrustedTypePolicyFactory: false, 1027 | trustedTypes: false, 1028 | UIEvent: false, 1029 | URL: false, 1030 | URLPattern: false, 1031 | URLSearchParams: false, 1032 | USB: false, 1033 | USBAlternateInterface: false, 1034 | USBConfiguration: false, 1035 | USBConnectionEvent: false, 1036 | USBDevice: false, 1037 | USBEndpoint: false, 1038 | USBInterface: false, 1039 | USBInTransferResult: false, 1040 | USBIsochronousInTransferPacket: false, 1041 | USBIsochronousInTransferResult: false, 1042 | USBIsochronousOutTransferPacket: false, 1043 | USBIsochronousOutTransferResult: false, 1044 | USBOutTransferResult: false, 1045 | UserActivation: false, 1046 | ValidityState: false, 1047 | VideoColorSpace: false, 1048 | VideoDecoder: false, 1049 | VideoEncoder: false, 1050 | VideoFrame: false, 1051 | VideoPlaybackQuality: false, 1052 | ViewTimeline: false, 1053 | ViewTransition: false, 1054 | ViewTransitionTypeSet: false, 1055 | VirtualKeyboard: false, 1056 | VirtualKeyboardGeometryChangeEvent: false, 1057 | VisibilityStateEntry: false, 1058 | visualViewport: false, 1059 | VisualViewport: false, 1060 | VTTCue: false, 1061 | VTTRegion: false, 1062 | WakeLock: false, 1063 | WakeLockSentinel: false, 1064 | WaveShaperNode: false, 1065 | WebAssembly: false, 1066 | WebGL2RenderingContext: false, 1067 | WebGLActiveInfo: false, 1068 | WebGLBuffer: false, 1069 | WebGLContextEvent: false, 1070 | WebGLFramebuffer: false, 1071 | WebGLObject: false, 1072 | WebGLProgram: false, 1073 | WebGLQuery: false, 1074 | WebGLRenderbuffer: false, 1075 | WebGLRenderingContext: false, 1076 | WebGLSampler: false, 1077 | WebGLShader: false, 1078 | WebGLShaderPrecisionFormat: false, 1079 | WebGLSync: false, 1080 | WebGLTexture: false, 1081 | WebGLTransformFeedback: false, 1082 | WebGLUniformLocation: false, 1083 | WebGLVertexArrayObject: false, 1084 | WebSocket: false, 1085 | WebSocketError: false, 1086 | WebSocketStream: false, 1087 | WebTransport: false, 1088 | WebTransportBidirectionalStream: false, 1089 | WebTransportDatagramDuplexStream: false, 1090 | WebTransportError: false, 1091 | WebTransportReceiveStream: false, 1092 | WebTransportSendStream: false, 1093 | WGSLLanguageFeatures: false, 1094 | WheelEvent: false, 1095 | when: false, 1096 | window: false, 1097 | Window: false, 1098 | WindowControlsOverlay: false, 1099 | WindowControlsOverlayGeometryChangeEvent: false, 1100 | Worker: false, 1101 | Worklet: false, 1102 | WorkletGlobalScope: false, 1103 | WritableStream: false, 1104 | WritableStreamDefaultController: false, 1105 | WritableStreamDefaultWriter: false, 1106 | XMLDocument: false, 1107 | XMLHttpRequest: false, 1108 | XMLHttpRequestEventTarget: false, 1109 | XMLHttpRequestUpload: false, 1110 | XMLSerializer: false, 1111 | XPathEvaluator: false, 1112 | XPathExpression: false, 1113 | XPathResult: false, 1114 | XRAnchor: false, 1115 | XRAnchorSet: false, 1116 | XRBoundedReferenceSpace: false, 1117 | XRCamera: false, 1118 | XRCPUDepthInformation: false, 1119 | XRDepthInformation: false, 1120 | XRDOMOverlayState: false, 1121 | XRFrame: false, 1122 | XRHand: false, 1123 | XRHitTestResult: false, 1124 | XRHitTestSource: false, 1125 | XRInputSource: false, 1126 | XRInputSourceArray: false, 1127 | XRInputSourceEvent: false, 1128 | XRInputSourcesChangeEvent: false, 1129 | XRJointPose: false, 1130 | XRJointSpace: false, 1131 | XRLayer: false, 1132 | XRLightEstimate: false, 1133 | XRLightProbe: false, 1134 | XRPose: false, 1135 | XRRay: false, 1136 | XRReferenceSpace: false, 1137 | XRReferenceSpaceEvent: false, 1138 | XRRenderState: false, 1139 | XRRigidTransform: false, 1140 | XRSession: false, 1141 | XRSessionEvent: false, 1142 | XRSpace: false, 1143 | XRSystem: false, 1144 | XRTransientInputHitTestResult: false, 1145 | XRTransientInputHitTestSource: false, 1146 | XRView: false, 1147 | XRViewerPose: false, 1148 | XRViewport: false, 1149 | XRWebGLBinding: false, 1150 | XRWebGLDepthInformation: false, 1151 | XRWebGLLayer: false, 1152 | XSLTProcessor: false, 1153 | }; 1154 | -------------------------------------------------------------------------------- /data/builtin.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | AggregateError: false, 6 | Array: false, 7 | ArrayBuffer: false, 8 | Atomics: false, 9 | BigInt: false, 10 | BigInt64Array: false, 11 | BigUint64Array: false, 12 | Boolean: false, 13 | DataView: false, 14 | Date: false, 15 | decodeURI: false, 16 | decodeURIComponent: false, 17 | encodeURI: false, 18 | encodeURIComponent: false, 19 | Error: false, 20 | escape: false, 21 | eval: false, 22 | EvalError: false, 23 | FinalizationRegistry: false, 24 | Float16Array: false, 25 | Float32Array: false, 26 | Float64Array: false, 27 | Function: false, 28 | globalThis: false, 29 | Infinity: false, 30 | Int16Array: false, 31 | Int32Array: false, 32 | Int8Array: false, 33 | Intl: false, 34 | isFinite: false, 35 | isNaN: false, 36 | Iterator: false, 37 | JSON: false, 38 | Map: false, 39 | Math: false, 40 | NaN: false, 41 | Number: false, 42 | Object: false, 43 | parseFloat: false, 44 | parseInt: false, 45 | Promise: false, 46 | Proxy: false, 47 | RangeError: false, 48 | ReferenceError: false, 49 | Reflect: false, 50 | RegExp: false, 51 | Set: false, 52 | SharedArrayBuffer: false, 53 | String: false, 54 | Symbol: false, 55 | SyntaxError: false, 56 | TypeError: false, 57 | Uint16Array: false, 58 | Uint32Array: false, 59 | Uint8Array: false, 60 | Uint8ClampedArray: false, 61 | undefined: false, 62 | unescape: false, 63 | URIError: false, 64 | WeakMap: false, 65 | WeakRef: false, 66 | WeakSet: false, 67 | }; 68 | -------------------------------------------------------------------------------- /data/chai.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | assert: true, 3 | expect: true, 4 | should: true, 5 | }; 6 | -------------------------------------------------------------------------------- /data/commonjs.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | exports: true, 3 | global: false, 4 | module: false, 5 | require: false, 6 | }; 7 | -------------------------------------------------------------------------------- /data/couch.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | emit: false, 3 | exports: false, 4 | getRow: false, 5 | log: false, 6 | module: false, 7 | provides: false, 8 | require: false, 9 | respond: false, 10 | send: false, 11 | start: false, 12 | sum: false, 13 | }; 14 | -------------------------------------------------------------------------------- /data/devtools.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | $: false, 3 | $_: false, 4 | $$: false, 5 | $0: false, 6 | $1: false, 7 | $2: false, 8 | $3: false, 9 | $4: false, 10 | $x: false, 11 | chrome: false, 12 | clear: false, 13 | copy: false, 14 | debug: false, 15 | dir: false, 16 | dirxml: false, 17 | getEventListeners: false, 18 | inspect: false, 19 | keys: false, 20 | monitor: false, 21 | monitorEvents: false, 22 | profile: false, 23 | profileEnd: false, 24 | queryObjects: false, 25 | table: false, 26 | undebug: false, 27 | unmonitor: false, 28 | unmonitorEvents: false, 29 | values: false, 30 | }; 31 | -------------------------------------------------------------------------------- /data/embertest.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | andThen: false, 3 | click: false, 4 | currentPath: false, 5 | currentRouteName: false, 6 | currentURL: false, 7 | fillIn: false, 8 | find: false, 9 | findAll: false, 10 | findWithAssert: false, 11 | keyEvent: false, 12 | pauseTest: false, 13 | resumeTest: false, 14 | triggerEvent: false, 15 | visit: false, 16 | wait: false, 17 | }; 18 | -------------------------------------------------------------------------------- /data/es2015.mjs: -------------------------------------------------------------------------------- 1 | import {mergeGlobals} from '../utilities.mjs'; 2 | import es5Globals from './es5.mjs'; 3 | 4 | export default mergeGlobals(es5Globals, { 5 | ArrayBuffer: false, 6 | DataView: false, 7 | Float32Array: false, 8 | Float64Array: false, 9 | Int16Array: false, 10 | Int32Array: false, 11 | Int8Array: false, 12 | Intl: false, 13 | Map: false, 14 | Promise: false, 15 | Proxy: false, 16 | Reflect: false, 17 | Set: false, 18 | Symbol: false, 19 | Uint16Array: false, 20 | Uint32Array: false, 21 | Uint8Array: false, 22 | Uint8ClampedArray: false, 23 | WeakMap: false, 24 | WeakSet: false, 25 | }); 26 | -------------------------------------------------------------------------------- /data/es2016.mjs: -------------------------------------------------------------------------------- 1 | export {default} from './es2015.mjs'; 2 | -------------------------------------------------------------------------------- /data/es2017.mjs: -------------------------------------------------------------------------------- 1 | import {mergeGlobals} from '../utilities.mjs'; 2 | import es2016Globals from './es2016.mjs'; 3 | 4 | export default mergeGlobals(es2016Globals, { 5 | Atomics: false, 6 | SharedArrayBuffer: false, 7 | }); 8 | -------------------------------------------------------------------------------- /data/es2018.mjs: -------------------------------------------------------------------------------- 1 | export {default} from './es2017.mjs'; 2 | -------------------------------------------------------------------------------- /data/es2019.mjs: -------------------------------------------------------------------------------- 1 | export {default} from './es2018.mjs'; 2 | -------------------------------------------------------------------------------- /data/es2020.mjs: -------------------------------------------------------------------------------- 1 | import {mergeGlobals} from '../utilities.mjs'; 2 | import es2019Globals from './es2019.mjs'; 3 | 4 | export default mergeGlobals(es2019Globals, { 5 | BigInt: false, 6 | BigInt64Array: false, 7 | BigUint64Array: false, 8 | globalThis: false, 9 | }); 10 | -------------------------------------------------------------------------------- /data/es2021.mjs: -------------------------------------------------------------------------------- 1 | import {mergeGlobals} from '../utilities.mjs'; 2 | import es2020Globals from './es2020.mjs'; 3 | 4 | export default mergeGlobals(es2020Globals, { 5 | AggregateError: false, 6 | FinalizationRegistry: false, 7 | WeakRef: false, 8 | }); 9 | -------------------------------------------------------------------------------- /data/es2022.mjs: -------------------------------------------------------------------------------- 1 | export {default} from './es2021.mjs'; 2 | -------------------------------------------------------------------------------- /data/es2023.mjs: -------------------------------------------------------------------------------- 1 | export {default} from './es2022.mjs'; 2 | -------------------------------------------------------------------------------- /data/es2024.mjs: -------------------------------------------------------------------------------- 1 | export {default} from './es2023.mjs'; 2 | -------------------------------------------------------------------------------- /data/es2025.mjs: -------------------------------------------------------------------------------- 1 | import {mergeGlobals} from '../utilities.mjs'; 2 | import es2024Globals from './es2024.mjs'; 3 | 4 | export default mergeGlobals(es2024Globals, { 5 | Float16Array: false, 6 | Iterator: false, 7 | }); 8 | -------------------------------------------------------------------------------- /data/es3.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | Array: false, 3 | Boolean: false, 4 | Date: false, 5 | decodeURI: false, 6 | decodeURIComponent: false, 7 | encodeURI: false, 8 | encodeURIComponent: false, 9 | Error: false, 10 | escape: false, 11 | eval: false, 12 | EvalError: false, 13 | Function: false, 14 | Infinity: false, 15 | isFinite: false, 16 | isNaN: false, 17 | Math: false, 18 | NaN: false, 19 | Number: false, 20 | Object: false, 21 | parseFloat: false, 22 | parseInt: false, 23 | RangeError: false, 24 | ReferenceError: false, 25 | RegExp: false, 26 | String: false, 27 | SyntaxError: false, 28 | TypeError: false, 29 | undefined: false, 30 | unescape: false, 31 | URIError: false, 32 | }; 33 | -------------------------------------------------------------------------------- /data/es5.mjs: -------------------------------------------------------------------------------- 1 | import {mergeGlobals} from '../utilities.mjs'; 2 | import es3Globals from './es3.mjs'; 3 | 4 | export default mergeGlobals(es3Globals, { 5 | JSON: false, 6 | }); 7 | -------------------------------------------------------------------------------- /data/greasemonkey.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | cloneInto: false, 3 | createObjectIn: false, 4 | exportFunction: false, 5 | GM: false, 6 | GM_addElement: false, 7 | GM_addStyle: false, 8 | GM_addValueChangeListener: false, 9 | GM_deleteValue: false, 10 | GM_deleteValues: false, 11 | GM_download: false, 12 | GM_getResourceText: false, 13 | GM_getResourceURL: false, 14 | GM_getTab: false, 15 | GM_getTabs: false, 16 | GM_getValue: false, 17 | GM_getValues: false, 18 | GM_info: false, 19 | GM_listValues: false, 20 | GM_log: false, 21 | GM_notification: false, 22 | GM_openInTab: false, 23 | GM_registerMenuCommand: false, 24 | GM_removeValueChangeListener: false, 25 | GM_saveTab: false, 26 | GM_setClipboard: false, 27 | GM_setValue: false, 28 | GM_setValues: false, 29 | GM_unregisterMenuCommand: false, 30 | GM_xmlhttpRequest: false, 31 | unsafeWindow: false, 32 | }; 33 | -------------------------------------------------------------------------------- /data/jasmine.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | afterAll: false, 3 | afterEach: false, 4 | beforeAll: false, 5 | beforeEach: false, 6 | describe: false, 7 | expect: false, 8 | expectAsync: false, 9 | fail: false, 10 | fdescribe: false, 11 | fit: false, 12 | it: false, 13 | jasmine: false, 14 | pending: false, 15 | runs: false, 16 | spyOn: false, 17 | spyOnAllFunctions: false, 18 | spyOnProperty: false, 19 | waits: false, 20 | waitsFor: false, 21 | xdescribe: false, 22 | xit: false, 23 | }; 24 | -------------------------------------------------------------------------------- /data/jest.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | afterAll: false, 6 | afterEach: false, 7 | beforeAll: false, 8 | beforeEach: false, 9 | describe: false, 10 | expect: false, 11 | fit: false, 12 | it: false, 13 | jest: false, 14 | test: false, 15 | xdescribe: false, 16 | xit: false, 17 | xtest: false, 18 | }; 19 | -------------------------------------------------------------------------------- /data/jquery.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | $: false, 3 | jQuery: false, 4 | }; 5 | -------------------------------------------------------------------------------- /data/meteor.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | $: false, 3 | Accounts: false, 4 | AccountsClient: false, 5 | AccountsCommon: false, 6 | AccountsServer: false, 7 | App: false, 8 | Assets: false, 9 | Blaze: false, 10 | check: false, 11 | Cordova: false, 12 | DDP: false, 13 | DDPRateLimiter: false, 14 | DDPServer: false, 15 | Deps: false, 16 | EJSON: false, 17 | Email: false, 18 | HTTP: false, 19 | Log: false, 20 | Match: false, 21 | Meteor: false, 22 | Mongo: false, 23 | MongoInternals: false, 24 | Npm: false, 25 | Package: false, 26 | Plugin: false, 27 | process: false, 28 | Random: false, 29 | ReactiveDict: false, 30 | ReactiveVar: false, 31 | Router: false, 32 | ServiceConfiguration: false, 33 | Session: false, 34 | share: false, 35 | Spacebars: false, 36 | Template: false, 37 | Tinytest: false, 38 | Tracker: false, 39 | UI: false, 40 | Utils: false, 41 | WebApp: false, 42 | WebAppInternals: false, 43 | }; 44 | -------------------------------------------------------------------------------- /data/mocha.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | after: false, 3 | afterEach: false, 4 | before: false, 5 | beforeEach: false, 6 | context: false, 7 | describe: false, 8 | it: false, 9 | mocha: false, 10 | run: false, 11 | setup: false, 12 | specify: false, 13 | suite: false, 14 | suiteSetup: false, 15 | suiteTeardown: false, 16 | teardown: false, 17 | test: false, 18 | xcontext: false, 19 | xdescribe: false, 20 | xit: false, 21 | xspecify: false, 22 | }; 23 | -------------------------------------------------------------------------------- /data/mongo.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | _isWindows: false, 3 | _rand: false, 4 | BulkWriteResult: false, 5 | cat: false, 6 | cd: false, 7 | connect: false, 8 | db: false, 9 | getHostName: false, 10 | getMemInfo: false, 11 | hostname: false, 12 | ISODate: false, 13 | listFiles: false, 14 | load: false, 15 | ls: false, 16 | md5sumFile: false, 17 | mkdir: false, 18 | Mongo: false, 19 | NumberInt: false, 20 | NumberLong: false, 21 | ObjectId: false, 22 | PlanCache: false, 23 | print: false, 24 | printjson: false, 25 | pwd: false, 26 | quit: false, 27 | removeFile: false, 28 | rs: false, 29 | sh: false, 30 | UUID: false, 31 | version: false, 32 | WriteResult: false, 33 | }; 34 | -------------------------------------------------------------------------------- /data/nashorn.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | __DIR__: false, 3 | __FILE__: false, 4 | __LINE__: false, 5 | com: false, 6 | edu: false, 7 | exit: false, 8 | java: false, 9 | Java: false, 10 | javafx: false, 11 | JavaImporter: false, 12 | javax: false, 13 | JSAdapter: false, 14 | load: false, 15 | loadWithNewGlobal: false, 16 | org: false, 17 | Packages: false, 18 | print: false, 19 | quit: false, 20 | }; 21 | -------------------------------------------------------------------------------- /data/node.mjs: -------------------------------------------------------------------------------- 1 | import {sortObject} from '../utilities.mjs'; 2 | import commonjsGlobals from './commonjs.mjs'; 3 | import nodeBuiltinGlobals from './nodeBuiltin.mjs'; 4 | 5 | export default sortObject({ 6 | ...nodeBuiltinGlobals, 7 | ...commonjsGlobals, 8 | __dirname: false, 9 | __filename: false, 10 | }); 11 | 12 | -------------------------------------------------------------------------------- /data/nodeBuiltin.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | AbortController: false, 6 | AbortSignal: false, 7 | AsyncDisposableStack: false, 8 | atob: false, 9 | Blob: false, 10 | BroadcastChannel: false, 11 | btoa: false, 12 | Buffer: false, 13 | ByteLengthQueuingStrategy: false, 14 | clearImmediate: false, 15 | clearInterval: false, 16 | clearTimeout: false, 17 | CloseEvent: false, 18 | CompressionStream: false, 19 | console: false, 20 | CountQueuingStrategy: false, 21 | crypto: false, 22 | Crypto: false, 23 | CryptoKey: false, 24 | CustomEvent: false, 25 | DecompressionStream: false, 26 | DisposableStack: false, 27 | DOMException: false, 28 | Event: false, 29 | EventTarget: false, 30 | fetch: false, 31 | File: false, 32 | FormData: false, 33 | global: false, 34 | Headers: false, 35 | MessageChannel: false, 36 | MessageEvent: false, 37 | MessagePort: false, 38 | navigator: false, 39 | Navigator: false, 40 | performance: false, 41 | Performance: false, 42 | PerformanceEntry: false, 43 | PerformanceMark: false, 44 | PerformanceMeasure: false, 45 | PerformanceObserver: false, 46 | PerformanceObserverEntryList: false, 47 | PerformanceResourceTiming: false, 48 | process: false, 49 | queueMicrotask: false, 50 | ReadableByteStreamController: false, 51 | ReadableStream: false, 52 | ReadableStreamBYOBReader: false, 53 | ReadableStreamBYOBRequest: false, 54 | ReadableStreamDefaultController: false, 55 | ReadableStreamDefaultReader: false, 56 | Request: false, 57 | Response: false, 58 | setImmediate: false, 59 | setInterval: false, 60 | setTimeout: false, 61 | structuredClone: false, 62 | SubtleCrypto: false, 63 | SuppressedError: false, 64 | TextDecoder: false, 65 | TextDecoderStream: false, 66 | TextEncoder: false, 67 | TextEncoderStream: false, 68 | TransformStream: false, 69 | TransformStreamDefaultController: false, 70 | URL: false, 71 | URLPattern: false, 72 | URLSearchParams: false, 73 | WebAssembly: false, 74 | WebSocket: false, 75 | WritableStream: false, 76 | WritableStreamDefaultController: false, 77 | WritableStreamDefaultWriter: false, 78 | }; 79 | -------------------------------------------------------------------------------- /data/phantomjs.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | console: true, 3 | exports: true, 4 | phantom: true, 5 | require: true, 6 | WebPage: true, 7 | }; 8 | -------------------------------------------------------------------------------- /data/prototypejs.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | $: false, 3 | $$: false, 4 | $A: false, 5 | $break: false, 6 | $continue: false, 7 | $F: false, 8 | $H: false, 9 | $R: false, 10 | $w: false, 11 | Abstract: false, 12 | Ajax: false, 13 | Autocompleter: false, 14 | Builder: false, 15 | Class: false, 16 | Control: false, 17 | Draggable: false, 18 | Draggables: false, 19 | Droppables: false, 20 | Effect: false, 21 | Element: false, 22 | Enumerable: false, 23 | Event: false, 24 | Field: false, 25 | Form: false, 26 | Hash: false, 27 | Insertion: false, 28 | ObjectRange: false, 29 | PeriodicalExecuter: false, 30 | Position: false, 31 | Prototype: false, 32 | Scriptaculous: false, 33 | Selector: false, 34 | Sortable: false, 35 | SortableObserver: false, 36 | Sound: false, 37 | Template: false, 38 | Toggle: false, 39 | Try: false, 40 | }; 41 | -------------------------------------------------------------------------------- /data/protractor.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | $: false, 3 | $$: false, 4 | browser: false, 5 | by: false, 6 | By: false, 7 | DartObject: false, 8 | element: false, 9 | protractor: false, 10 | }; 11 | -------------------------------------------------------------------------------- /data/qunit.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | asyncTest: false, 3 | deepEqual: false, 4 | equal: false, 5 | expect: false, 6 | module: false, 7 | notDeepEqual: false, 8 | notEqual: false, 9 | notOk: false, 10 | notPropEqual: false, 11 | notStrictEqual: false, 12 | ok: false, 13 | propEqual: false, 14 | QUnit: false, 15 | raises: false, 16 | start: false, 17 | stop: false, 18 | strictEqual: false, 19 | test: false, 20 | throws: false, 21 | }; 22 | -------------------------------------------------------------------------------- /data/rhino.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | defineClass: false, 3 | deserialize: false, 4 | gc: false, 5 | help: false, 6 | importClass: false, 7 | importPackage: false, 8 | java: false, 9 | load: false, 10 | loadClass: false, 11 | Packages: false, 12 | print: false, 13 | quit: false, 14 | readFile: false, 15 | readUrl: false, 16 | runCommand: false, 17 | seal: false, 18 | serialize: false, 19 | spawn: false, 20 | sync: false, 21 | toint32: false, 22 | version: false, 23 | }; 24 | -------------------------------------------------------------------------------- /data/serviceworker.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | AbortController: false, 6 | AbortPaymentEvent: false, 7 | AbortSignal: false, 8 | addEventListener: false, 9 | ai: false, 10 | AI: false, 11 | AICreateMonitor: false, 12 | AsyncDisposableStack: false, 13 | atob: false, 14 | BackgroundFetchEvent: false, 15 | BackgroundFetchManager: false, 16 | BackgroundFetchRecord: false, 17 | BackgroundFetchRegistration: false, 18 | BackgroundFetchUpdateUIEvent: false, 19 | BarcodeDetector: false, 20 | Blob: false, 21 | BroadcastChannel: false, 22 | btoa: false, 23 | ByteLengthQueuingStrategy: false, 24 | Cache: false, 25 | caches: false, 26 | CacheStorage: false, 27 | CanMakePaymentEvent: false, 28 | CanvasGradient: false, 29 | CanvasPattern: false, 30 | clearInterval: false, 31 | clearTimeout: false, 32 | Client: false, 33 | clients: false, 34 | Clients: false, 35 | CloseEvent: false, 36 | CompressionStream: false, 37 | console: false, 38 | cookieStore: false, 39 | CookieStore: false, 40 | CookieStoreManager: false, 41 | CountQueuingStrategy: false, 42 | createImageBitmap: false, 43 | CropTarget: false, 44 | crossOriginIsolated: false, 45 | crypto: false, 46 | Crypto: false, 47 | CryptoKey: false, 48 | CSSSkewX: false, 49 | CSSSkewY: false, 50 | CustomEvent: false, 51 | DecompressionStream: false, 52 | dispatchEvent: false, 53 | DisposableStack: false, 54 | DOMException: false, 55 | DOMMatrix: false, 56 | DOMMatrixReadOnly: false, 57 | DOMPoint: false, 58 | DOMPointReadOnly: false, 59 | DOMQuad: false, 60 | DOMRect: false, 61 | DOMRectReadOnly: false, 62 | DOMStringList: false, 63 | ErrorEvent: false, 64 | Event: false, 65 | EventSource: false, 66 | EventTarget: false, 67 | ExtendableCookieChangeEvent: false, 68 | ExtendableEvent: false, 69 | ExtendableMessageEvent: false, 70 | fetch: false, 71 | FetchEvent: false, 72 | File: false, 73 | FileList: false, 74 | FileReader: false, 75 | FileSystemDirectoryHandle: false, 76 | FileSystemFileHandle: false, 77 | FileSystemHandle: false, 78 | FileSystemWritableFileStream: false, 79 | FontFace: false, 80 | fonts: false, 81 | FormData: false, 82 | GPU: false, 83 | GPUAdapter: false, 84 | GPUAdapterInfo: false, 85 | GPUBindGroup: false, 86 | GPUBindGroupLayout: false, 87 | GPUBuffer: false, 88 | GPUBufferUsage: false, 89 | GPUCanvasContext: false, 90 | GPUColorWrite: false, 91 | GPUCommandBuffer: false, 92 | GPUCommandEncoder: false, 93 | GPUCompilationInfo: false, 94 | GPUCompilationMessage: false, 95 | GPUComputePassEncoder: false, 96 | GPUComputePipeline: false, 97 | GPUDevice: false, 98 | GPUDeviceLostInfo: false, 99 | GPUError: false, 100 | GPUExternalTexture: false, 101 | GPUInternalError: false, 102 | GPUMapMode: false, 103 | GPUOutOfMemoryError: false, 104 | GPUPipelineError: false, 105 | GPUPipelineLayout: false, 106 | GPUQuerySet: false, 107 | GPUQueue: false, 108 | GPURenderBundle: false, 109 | GPURenderBundleEncoder: false, 110 | GPURenderPassEncoder: false, 111 | GPURenderPipeline: false, 112 | GPUSampler: false, 113 | GPUShaderModule: false, 114 | GPUShaderStage: false, 115 | GPUSupportedFeatures: false, 116 | GPUSupportedLimits: false, 117 | GPUTexture: false, 118 | GPUTextureUsage: false, 119 | GPUTextureView: false, 120 | GPUUncapturedErrorEvent: false, 121 | GPUValidationError: false, 122 | Headers: false, 123 | IDBCursor: false, 124 | IDBCursorWithValue: false, 125 | IDBDatabase: false, 126 | IDBFactory: false, 127 | IDBIndex: false, 128 | IDBKeyRange: false, 129 | IDBObjectStore: false, 130 | IDBOpenDBRequest: false, 131 | IDBRequest: false, 132 | IDBTransaction: false, 133 | IDBVersionChangeEvent: false, 134 | ImageBitmap: false, 135 | ImageBitmapRenderingContext: false, 136 | ImageData: false, 137 | importScripts: false, 138 | indexedDB: false, 139 | InstallEvent: false, 140 | isSecureContext: false, 141 | LanguageDetector: false, 142 | location: false, 143 | Lock: false, 144 | LockManager: false, 145 | MediaCapabilities: false, 146 | MessageChannel: false, 147 | MessageEvent: false, 148 | MessagePort: false, 149 | NavigationPreloadManager: false, 150 | navigator: false, 151 | NavigatorUAData: false, 152 | NetworkInformation: false, 153 | Notification: false, 154 | NotificationEvent: false, 155 | Observable: false, 156 | OffscreenCanvas: false, 157 | OffscreenCanvasRenderingContext2D: false, 158 | onabortpayment: true, 159 | onactivate: true, 160 | onbackgroundfetchabort: true, 161 | onbackgroundfetchclick: true, 162 | onbackgroundfetchfail: true, 163 | onbackgroundfetchsuccess: true, 164 | oncanmakepayment: true, 165 | oncookiechange: true, 166 | onerror: true, 167 | onfetch: true, 168 | oninstall: true, 169 | onlanguagechange: true, 170 | onmessage: true, 171 | onmessageerror: true, 172 | onnotificationclick: true, 173 | onnotificationclose: true, 174 | onpaymentrequest: true, 175 | onperiodicsync: true, 176 | onpush: true, 177 | onpushsubscriptionchange: true, 178 | onrejectionhandled: true, 179 | onsync: true, 180 | onunhandledrejection: true, 181 | origin: false, 182 | Path2D: false, 183 | PaymentRequestEvent: false, 184 | performance: false, 185 | Performance: false, 186 | PerformanceEntry: false, 187 | PerformanceMark: false, 188 | PerformanceMeasure: false, 189 | PerformanceObserver: false, 190 | PerformanceObserverEntryList: false, 191 | PerformanceResourceTiming: false, 192 | PerformanceServerTiming: false, 193 | PeriodicSyncEvent: false, 194 | PeriodicSyncManager: false, 195 | Permissions: false, 196 | PermissionStatus: false, 197 | PromiseRejectionEvent: false, 198 | PushEvent: false, 199 | PushManager: false, 200 | PushMessageData: false, 201 | PushSubscription: false, 202 | PushSubscriptionOptions: false, 203 | queueMicrotask: false, 204 | ReadableByteStreamController: false, 205 | ReadableStream: false, 206 | ReadableStreamBYOBReader: false, 207 | ReadableStreamBYOBRequest: false, 208 | ReadableStreamDefaultController: false, 209 | ReadableStreamDefaultReader: false, 210 | registration: false, 211 | removeEventListener: false, 212 | ReportBody: false, 213 | reportError: false, 214 | ReportingObserver: false, 215 | Request: false, 216 | Response: false, 217 | RestrictionTarget: false, 218 | scheduler: false, 219 | Scheduler: false, 220 | SecurityPolicyViolationEvent: false, 221 | self: false, 222 | serviceWorker: false, 223 | ServiceWorker: false, 224 | ServiceWorkerGlobalScope: false, 225 | ServiceWorkerRegistration: false, 226 | setInterval: false, 227 | setTimeout: false, 228 | skipWaiting: false, 229 | StorageBucket: false, 230 | StorageBucketManager: false, 231 | StorageManager: false, 232 | structuredClone: false, 233 | Subscriber: false, 234 | SubtleCrypto: false, 235 | SuppressedError: false, 236 | SyncEvent: false, 237 | SyncManager: false, 238 | TaskController: false, 239 | TaskPriorityChangeEvent: false, 240 | TaskSignal: false, 241 | TextDecoder: false, 242 | TextDecoderStream: false, 243 | TextEncoder: false, 244 | TextEncoderStream: false, 245 | TextMetrics: false, 246 | TransformStream: false, 247 | TransformStreamDefaultController: false, 248 | TrustedHTML: false, 249 | TrustedScript: false, 250 | TrustedScriptURL: false, 251 | TrustedTypePolicy: false, 252 | TrustedTypePolicyFactory: false, 253 | trustedTypes: false, 254 | URL: false, 255 | URLPattern: false, 256 | URLSearchParams: false, 257 | UserActivation: false, 258 | WebAssembly: false, 259 | WebGL2RenderingContext: false, 260 | WebGLActiveInfo: false, 261 | WebGLBuffer: false, 262 | WebGLContextEvent: false, 263 | WebGLFramebuffer: false, 264 | WebGLObject: false, 265 | WebGLProgram: false, 266 | WebGLQuery: false, 267 | WebGLRenderbuffer: false, 268 | WebGLRenderingContext: false, 269 | WebGLSampler: false, 270 | WebGLShader: false, 271 | WebGLShaderPrecisionFormat: false, 272 | WebGLSync: false, 273 | WebGLTexture: false, 274 | WebGLTransformFeedback: false, 275 | WebGLUniformLocation: false, 276 | WebGLVertexArrayObject: false, 277 | WebSocket: false, 278 | WebSocketError: false, 279 | WebSocketStream: false, 280 | WebTransport: false, 281 | WebTransportBidirectionalStream: false, 282 | WebTransportDatagramDuplexStream: false, 283 | WebTransportError: false, 284 | WGSLLanguageFeatures: false, 285 | when: false, 286 | WindowClient: false, 287 | WorkerGlobalScope: false, 288 | WorkerLocation: false, 289 | WorkerNavigator: false, 290 | WritableStream: false, 291 | WritableStreamDefaultController: false, 292 | WritableStreamDefaultWriter: false, 293 | }; 294 | -------------------------------------------------------------------------------- /data/shared-node-browser.mjs: -------------------------------------------------------------------------------- 1 | import {getIntersectionGlobals} from '../utilities.mjs'; 2 | import browserGlobals from './browser.mjs'; 3 | import nodeBuiltinGlobals from './nodeBuiltin.mjs'; 4 | 5 | export default getIntersectionGlobals(browserGlobals, nodeBuiltinGlobals); 6 | -------------------------------------------------------------------------------- /data/shelljs.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | cat: false, 6 | cd: false, 7 | chmod: false, 8 | cmd: false, 9 | config: false, 10 | cp: false, 11 | dirs: false, 12 | echo: false, 13 | env: false, 14 | error: false, 15 | errorCode: false, 16 | exec: false, 17 | exit: false, 18 | find: false, 19 | grep: false, 20 | head: false, 21 | ln: false, 22 | ls: false, 23 | mkdir: false, 24 | mv: false, 25 | popd: false, 26 | pushd: false, 27 | pwd: false, 28 | rm: false, 29 | sed: false, 30 | set: false, 31 | ShellString: false, 32 | sort: false, 33 | tail: false, 34 | tempdir: false, 35 | test: false, 36 | touch: false, 37 | uniq: false, 38 | which: false, 39 | }; 40 | -------------------------------------------------------------------------------- /data/vitest.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | afterAll: false, 6 | afterEach: false, 7 | assert: false, 8 | assertType: false, 9 | beforeAll: false, 10 | beforeEach: false, 11 | chai: false, 12 | describe: false, 13 | expect: false, 14 | expectTypeOf: false, 15 | it: false, 16 | onTestFailed: false, 17 | onTestFinished: false, 18 | suite: false, 19 | test: false, 20 | vi: false, 21 | vitest: false, 22 | }; 23 | -------------------------------------------------------------------------------- /data/webextensions.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | browser: false, 3 | chrome: false, 4 | opr: false, 5 | }; 6 | -------------------------------------------------------------------------------- /data/worker.mjs: -------------------------------------------------------------------------------- 1 | // This file is autogenerated by scripts 2 | // Do NOT modify this file manually 3 | 4 | export default { 5 | AbortController: false, 6 | AbortSignal: false, 7 | addEventListener: false, 8 | ai: false, 9 | AI: false, 10 | AICreateMonitor: false, 11 | AsyncDisposableStack: false, 12 | atob: false, 13 | AudioData: false, 14 | AudioDecoder: false, 15 | AudioEncoder: false, 16 | BackgroundFetchManager: false, 17 | BackgroundFetchRecord: false, 18 | BackgroundFetchRegistration: false, 19 | BarcodeDetector: false, 20 | Blob: false, 21 | BroadcastChannel: false, 22 | btoa: false, 23 | ByteLengthQueuingStrategy: false, 24 | Cache: false, 25 | caches: false, 26 | CacheStorage: false, 27 | cancelAnimationFrame: false, 28 | CanvasGradient: false, 29 | CanvasPattern: false, 30 | clearInterval: false, 31 | clearTimeout: false, 32 | close: false, 33 | CloseEvent: false, 34 | CompressionStream: false, 35 | console: false, 36 | CountQueuingStrategy: false, 37 | createImageBitmap: false, 38 | CropTarget: false, 39 | crossOriginIsolated: false, 40 | crypto: false, 41 | Crypto: false, 42 | CryptoKey: false, 43 | CSSSkewX: false, 44 | CSSSkewY: false, 45 | CustomEvent: false, 46 | DecompressionStream: false, 47 | DedicatedWorkerGlobalScope: false, 48 | dispatchEvent: false, 49 | DisposableStack: false, 50 | DOMException: false, 51 | DOMMatrix: false, 52 | DOMMatrixReadOnly: false, 53 | DOMPoint: false, 54 | DOMPointReadOnly: false, 55 | DOMQuad: false, 56 | DOMRect: false, 57 | DOMRectReadOnly: false, 58 | DOMStringList: false, 59 | EncodedAudioChunk: false, 60 | EncodedVideoChunk: false, 61 | ErrorEvent: false, 62 | Event: false, 63 | EventSource: false, 64 | EventTarget: false, 65 | fetch: false, 66 | File: false, 67 | FileList: false, 68 | FileReader: false, 69 | FileReaderSync: false, 70 | FileSystemDirectoryHandle: false, 71 | FileSystemFileHandle: false, 72 | FileSystemHandle: false, 73 | FileSystemObserver: false, 74 | FileSystemSyncAccessHandle: false, 75 | FileSystemWritableFileStream: false, 76 | FontFace: false, 77 | fonts: false, 78 | FormData: false, 79 | GPU: false, 80 | GPUAdapter: false, 81 | GPUAdapterInfo: false, 82 | GPUBindGroup: false, 83 | GPUBindGroupLayout: false, 84 | GPUBuffer: false, 85 | GPUBufferUsage: false, 86 | GPUCanvasContext: false, 87 | GPUColorWrite: false, 88 | GPUCommandBuffer: false, 89 | GPUCommandEncoder: false, 90 | GPUCompilationInfo: false, 91 | GPUCompilationMessage: false, 92 | GPUComputePassEncoder: false, 93 | GPUComputePipeline: false, 94 | GPUDevice: false, 95 | GPUDeviceLostInfo: false, 96 | GPUError: false, 97 | GPUExternalTexture: false, 98 | GPUInternalError: false, 99 | GPUMapMode: false, 100 | GPUOutOfMemoryError: false, 101 | GPUPipelineError: false, 102 | GPUPipelineLayout: false, 103 | GPUQuerySet: false, 104 | GPUQueue: false, 105 | GPURenderBundle: false, 106 | GPURenderBundleEncoder: false, 107 | GPURenderPassEncoder: false, 108 | GPURenderPipeline: false, 109 | GPUSampler: false, 110 | GPUShaderModule: false, 111 | GPUShaderStage: false, 112 | GPUSupportedFeatures: false, 113 | GPUSupportedLimits: false, 114 | GPUTexture: false, 115 | GPUTextureUsage: false, 116 | GPUTextureView: false, 117 | GPUUncapturedErrorEvent: false, 118 | GPUValidationError: false, 119 | Headers: false, 120 | HID: false, 121 | HIDConnectionEvent: false, 122 | HIDDevice: false, 123 | HIDInputReportEvent: false, 124 | IDBCursor: false, 125 | IDBCursorWithValue: false, 126 | IDBDatabase: false, 127 | IDBFactory: false, 128 | IDBIndex: false, 129 | IDBKeyRange: false, 130 | IDBObjectStore: false, 131 | IDBOpenDBRequest: false, 132 | IDBRequest: false, 133 | IDBTransaction: false, 134 | IDBVersionChangeEvent: false, 135 | IdleDetector: false, 136 | ImageBitmap: false, 137 | ImageBitmapRenderingContext: false, 138 | ImageData: false, 139 | ImageDecoder: false, 140 | ImageTrack: false, 141 | ImageTrackList: false, 142 | importScripts: false, 143 | indexedDB: false, 144 | isSecureContext: false, 145 | LanguageDetector: false, 146 | location: false, 147 | Lock: false, 148 | LockManager: false, 149 | MediaCapabilities: false, 150 | MediaSource: false, 151 | MediaSourceHandle: false, 152 | MessageChannel: false, 153 | MessageEvent: false, 154 | MessagePort: false, 155 | name: false, 156 | NavigationPreloadManager: false, 157 | navigator: false, 158 | NavigatorUAData: false, 159 | NetworkInformation: false, 160 | Notification: false, 161 | Observable: false, 162 | OffscreenCanvas: false, 163 | OffscreenCanvasRenderingContext2D: false, 164 | onerror: true, 165 | onlanguagechange: true, 166 | onmessage: true, 167 | onmessageerror: true, 168 | onrejectionhandled: true, 169 | onunhandledrejection: true, 170 | origin: false, 171 | Path2D: false, 172 | performance: false, 173 | Performance: false, 174 | PerformanceEntry: false, 175 | PerformanceMark: false, 176 | PerformanceMeasure: false, 177 | PerformanceObserver: false, 178 | PerformanceObserverEntryList: false, 179 | PerformanceResourceTiming: false, 180 | PerformanceServerTiming: false, 181 | PeriodicSyncManager: false, 182 | Permissions: false, 183 | PermissionStatus: false, 184 | PERSISTENT: false, 185 | postMessage: false, 186 | PressureObserver: false, 187 | PressureRecord: false, 188 | ProgressEvent: false, 189 | PromiseRejectionEvent: false, 190 | PushManager: false, 191 | PushSubscription: false, 192 | PushSubscriptionOptions: false, 193 | queueMicrotask: false, 194 | ReadableByteStreamController: false, 195 | ReadableStream: false, 196 | ReadableStreamBYOBReader: false, 197 | ReadableStreamBYOBRequest: false, 198 | ReadableStreamDefaultController: false, 199 | ReadableStreamDefaultReader: false, 200 | removeEventListener: false, 201 | ReportBody: false, 202 | reportError: false, 203 | ReportingObserver: false, 204 | Request: false, 205 | requestAnimationFrame: false, 206 | Response: false, 207 | RestrictionTarget: false, 208 | RTCDataChannel: false, 209 | RTCEncodedAudioFrame: false, 210 | RTCEncodedVideoFrame: false, 211 | scheduler: false, 212 | Scheduler: false, 213 | SecurityPolicyViolationEvent: false, 214 | self: false, 215 | Serial: false, 216 | SerialPort: false, 217 | ServiceWorkerRegistration: false, 218 | setInterval: false, 219 | setTimeout: false, 220 | SourceBuffer: false, 221 | SourceBufferList: false, 222 | StorageBucket: false, 223 | StorageBucketManager: false, 224 | StorageManager: false, 225 | structuredClone: false, 226 | Subscriber: false, 227 | SubtleCrypto: false, 228 | SuppressedError: false, 229 | SyncManager: false, 230 | TaskController: false, 231 | TaskPriorityChangeEvent: false, 232 | TaskSignal: false, 233 | TEMPORARY: false, 234 | TextDecoder: false, 235 | TextDecoderStream: false, 236 | TextEncoder: false, 237 | TextEncoderStream: false, 238 | TextMetrics: false, 239 | TransformStream: false, 240 | TransformStreamDefaultController: false, 241 | TrustedHTML: false, 242 | TrustedScript: false, 243 | TrustedScriptURL: false, 244 | TrustedTypePolicy: false, 245 | TrustedTypePolicyFactory: false, 246 | trustedTypes: false, 247 | URL: false, 248 | URLPattern: false, 249 | URLSearchParams: false, 250 | USB: false, 251 | USBAlternateInterface: false, 252 | USBConfiguration: false, 253 | USBConnectionEvent: false, 254 | USBDevice: false, 255 | USBEndpoint: false, 256 | USBInterface: false, 257 | USBInTransferResult: false, 258 | USBIsochronousInTransferPacket: false, 259 | USBIsochronousInTransferResult: false, 260 | USBIsochronousOutTransferPacket: false, 261 | USBIsochronousOutTransferResult: false, 262 | USBOutTransferResult: false, 263 | UserActivation: false, 264 | VideoColorSpace: false, 265 | VideoDecoder: false, 266 | VideoEncoder: false, 267 | VideoFrame: false, 268 | WebAssembly: false, 269 | WebGL2RenderingContext: false, 270 | WebGLActiveInfo: false, 271 | WebGLBuffer: false, 272 | WebGLContextEvent: false, 273 | WebGLFramebuffer: false, 274 | WebGLObject: false, 275 | WebGLProgram: false, 276 | WebGLQuery: false, 277 | WebGLRenderbuffer: false, 278 | WebGLRenderingContext: false, 279 | WebGLSampler: false, 280 | WebGLShader: false, 281 | WebGLShaderPrecisionFormat: false, 282 | WebGLSync: false, 283 | WebGLTexture: false, 284 | WebGLTransformFeedback: false, 285 | WebGLUniformLocation: false, 286 | WebGLVertexArrayObject: false, 287 | webkitRequestFileSystem: false, 288 | webkitRequestFileSystemSync: false, 289 | webkitResolveLocalFileSystemSyncURL: false, 290 | webkitResolveLocalFileSystemURL: false, 291 | WebSocket: false, 292 | WebSocketError: false, 293 | WebSocketStream: false, 294 | WebTransport: false, 295 | WebTransportBidirectionalStream: false, 296 | WebTransportDatagramDuplexStream: false, 297 | WebTransportError: false, 298 | WGSLLanguageFeatures: false, 299 | when: false, 300 | Worker: false, 301 | WorkerGlobalScope: false, 302 | WorkerLocation: false, 303 | WorkerNavigator: false, 304 | WritableStream: false, 305 | WritableStreamDefaultController: false, 306 | WritableStreamDefaultWriter: false, 307 | XMLHttpRequest: false, 308 | XMLHttpRequestEventTarget: false, 309 | XMLHttpRequestUpload: false, 310 | }; 311 | -------------------------------------------------------------------------------- /data/wsh.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | ActiveXObject: false, 3 | CollectGarbage: false, 4 | Debug: false, 5 | Enumerator: false, 6 | GetObject: false, 7 | RuntimeObject: false, 8 | ScriptEngine: false, 9 | ScriptEngineBuildVersion: false, 10 | ScriptEngineMajorVersion: false, 11 | ScriptEngineMinorVersion: false, 12 | VBArray: false, 13 | WScript: false, 14 | WSH: false, 15 | }; 16 | -------------------------------------------------------------------------------- /data/yui.mjs: -------------------------------------------------------------------------------- 1 | export default { 2 | YAHOO: false, 3 | YAHOO_config: false, 4 | YUI: false, 5 | YUI_config: false, 6 | }; 7 | -------------------------------------------------------------------------------- /globals.json: -------------------------------------------------------------------------------- 1 | { 2 | "amd": { 3 | "define": false, 4 | "require": false 5 | }, 6 | "applescript": { 7 | "$": false, 8 | "Application": false, 9 | "Automation": false, 10 | "console": false, 11 | "delay": false, 12 | "Library": false, 13 | "ObjC": false, 14 | "ObjectSpecifier": false, 15 | "Path": false, 16 | "Progress": false, 17 | "Ref": false 18 | }, 19 | "atomtest": { 20 | "advanceClock": false, 21 | "atom": false, 22 | "fakeClearInterval": false, 23 | "fakeClearTimeout": false, 24 | "fakeSetInterval": false, 25 | "fakeSetTimeout": false, 26 | "resetTimeouts": false, 27 | "waitsForPromise": false 28 | }, 29 | "browser": { 30 | "AbortController": false, 31 | "AbortSignal": false, 32 | "AbsoluteOrientationSensor": false, 33 | "AbstractRange": false, 34 | "Accelerometer": false, 35 | "addEventListener": false, 36 | "ai": false, 37 | "AI": false, 38 | "AICreateMonitor": false, 39 | "AITextSession": false, 40 | "alert": false, 41 | "AnalyserNode": false, 42 | "Animation": false, 43 | "AnimationEffect": false, 44 | "AnimationEvent": false, 45 | "AnimationPlaybackEvent": false, 46 | "AnimationTimeline": false, 47 | "AsyncDisposableStack": false, 48 | "atob": false, 49 | "Attr": false, 50 | "Audio": false, 51 | "AudioBuffer": false, 52 | "AudioBufferSourceNode": false, 53 | "AudioContext": false, 54 | "AudioData": false, 55 | "AudioDecoder": false, 56 | "AudioDestinationNode": false, 57 | "AudioEncoder": false, 58 | "AudioListener": false, 59 | "AudioNode": false, 60 | "AudioParam": false, 61 | "AudioParamMap": false, 62 | "AudioProcessingEvent": false, 63 | "AudioScheduledSourceNode": false, 64 | "AudioSinkInfo": false, 65 | "AudioWorklet": false, 66 | "AudioWorkletGlobalScope": false, 67 | "AudioWorkletNode": false, 68 | "AudioWorkletProcessor": false, 69 | "AuthenticatorAssertionResponse": false, 70 | "AuthenticatorAttestationResponse": false, 71 | "AuthenticatorResponse": false, 72 | "BackgroundFetchManager": false, 73 | "BackgroundFetchRecord": false, 74 | "BackgroundFetchRegistration": false, 75 | "BarcodeDetector": false, 76 | "BarProp": false, 77 | "BaseAudioContext": false, 78 | "BatteryManager": false, 79 | "BeforeUnloadEvent": false, 80 | "BiquadFilterNode": false, 81 | "Blob": false, 82 | "BlobEvent": false, 83 | "Bluetooth": false, 84 | "BluetoothCharacteristicProperties": false, 85 | "BluetoothDevice": false, 86 | "BluetoothRemoteGATTCharacteristic": false, 87 | "BluetoothRemoteGATTDescriptor": false, 88 | "BluetoothRemoteGATTServer": false, 89 | "BluetoothRemoteGATTService": false, 90 | "BluetoothUUID": false, 91 | "blur": false, 92 | "BroadcastChannel": false, 93 | "BrowserCaptureMediaStreamTrack": false, 94 | "btoa": false, 95 | "ByteLengthQueuingStrategy": false, 96 | "Cache": false, 97 | "caches": false, 98 | "CacheStorage": false, 99 | "cancelAnimationFrame": false, 100 | "cancelIdleCallback": false, 101 | "CanvasCaptureMediaStream": false, 102 | "CanvasCaptureMediaStreamTrack": false, 103 | "CanvasGradient": false, 104 | "CanvasPattern": false, 105 | "CanvasRenderingContext2D": false, 106 | "CaptureController": false, 107 | "CaretPosition": false, 108 | "CDATASection": false, 109 | "ChannelMergerNode": false, 110 | "ChannelSplitterNode": false, 111 | "ChapterInformation": false, 112 | "CharacterBoundsUpdateEvent": false, 113 | "CharacterData": false, 114 | "clearInterval": false, 115 | "clearTimeout": false, 116 | "clientInformation": false, 117 | "Clipboard": false, 118 | "ClipboardEvent": false, 119 | "ClipboardItem": false, 120 | "close": false, 121 | "closed": false, 122 | "CloseEvent": false, 123 | "CloseWatcher": false, 124 | "CommandEvent": false, 125 | "Comment": false, 126 | "CompositionEvent": false, 127 | "CompressionStream": false, 128 | "confirm": false, 129 | "console": false, 130 | "ConstantSourceNode": false, 131 | "ContentVisibilityAutoStateChangeEvent": false, 132 | "ConvolverNode": false, 133 | "CookieChangeEvent": false, 134 | "CookieDeprecationLabel": false, 135 | "cookieStore": false, 136 | "CookieStore": false, 137 | "CookieStoreManager": false, 138 | "CountQueuingStrategy": false, 139 | "createImageBitmap": false, 140 | "Credential": false, 141 | "credentialless": false, 142 | "CredentialsContainer": false, 143 | "CropTarget": false, 144 | "crossOriginIsolated": false, 145 | "crypto": false, 146 | "Crypto": false, 147 | "CryptoKey": false, 148 | "CSPViolationReportBody": false, 149 | "CSS": false, 150 | "CSSAnimation": false, 151 | "CSSConditionRule": false, 152 | "CSSContainerRule": false, 153 | "CSSCounterStyleRule": false, 154 | "CSSFontFaceRule": false, 155 | "CSSFontFeatureValuesRule": false, 156 | "CSSFontPaletteValuesRule": false, 157 | "CSSGroupingRule": false, 158 | "CSSImageValue": false, 159 | "CSSImportRule": false, 160 | "CSSKeyframeRule": false, 161 | "CSSKeyframesRule": false, 162 | "CSSKeywordValue": false, 163 | "CSSLayerBlockRule": false, 164 | "CSSLayerStatementRule": false, 165 | "CSSMarginRule": false, 166 | "CSSMathClamp": false, 167 | "CSSMathInvert": false, 168 | "CSSMathMax": false, 169 | "CSSMathMin": false, 170 | "CSSMathNegate": false, 171 | "CSSMathProduct": false, 172 | "CSSMathSum": false, 173 | "CSSMathValue": false, 174 | "CSSMatrixComponent": false, 175 | "CSSMediaRule": false, 176 | "CSSNamespaceRule": false, 177 | "CSSNestedDeclarations": false, 178 | "CSSNumericArray": false, 179 | "CSSNumericValue": false, 180 | "CSSPageDescriptors": false, 181 | "CSSPageRule": false, 182 | "CSSPerspective": false, 183 | "CSSPositionTryDescriptors": false, 184 | "CSSPositionTryRule": false, 185 | "CSSPositionValue": false, 186 | "CSSPropertyRule": false, 187 | "CSSRotate": false, 188 | "CSSRule": false, 189 | "CSSRuleList": false, 190 | "CSSScale": false, 191 | "CSSScopeRule": false, 192 | "CSSSkew": false, 193 | "CSSSkewX": false, 194 | "CSSSkewY": false, 195 | "CSSStartingStyleRule": false, 196 | "CSSStyleDeclaration": false, 197 | "CSSStyleRule": false, 198 | "CSSStyleSheet": false, 199 | "CSSStyleValue": false, 200 | "CSSSupportsRule": false, 201 | "CSSTransformComponent": false, 202 | "CSSTransformValue": false, 203 | "CSSTransition": false, 204 | "CSSTranslate": false, 205 | "CSSUnitValue": false, 206 | "CSSUnparsedValue": false, 207 | "CSSVariableReferenceValue": false, 208 | "CSSViewTransitionRule": false, 209 | "currentFrame": false, 210 | "currentTime": false, 211 | "CustomElementRegistry": false, 212 | "customElements": false, 213 | "CustomEvent": false, 214 | "CustomStateSet": false, 215 | "DataTransfer": false, 216 | "DataTransferItem": false, 217 | "DataTransferItemList": false, 218 | "DecompressionStream": false, 219 | "DelayNode": false, 220 | "DelegatedInkTrailPresenter": false, 221 | "DeviceMotionEvent": false, 222 | "DeviceMotionEventAcceleration": false, 223 | "DeviceMotionEventRotationRate": false, 224 | "DeviceOrientationEvent": false, 225 | "devicePixelRatio": false, 226 | "DevicePosture": false, 227 | "dispatchEvent": false, 228 | "DisposableStack": false, 229 | "document": false, 230 | "Document": false, 231 | "DocumentFragment": false, 232 | "documentPictureInPicture": false, 233 | "DocumentPictureInPicture": false, 234 | "DocumentPictureInPictureEvent": false, 235 | "DocumentTimeline": false, 236 | "DocumentType": false, 237 | "DOMError": false, 238 | "DOMException": false, 239 | "DOMImplementation": false, 240 | "DOMMatrix": false, 241 | "DOMMatrixReadOnly": false, 242 | "DOMParser": false, 243 | "DOMPoint": false, 244 | "DOMPointReadOnly": false, 245 | "DOMQuad": false, 246 | "DOMRect": false, 247 | "DOMRectList": false, 248 | "DOMRectReadOnly": false, 249 | "DOMStringList": false, 250 | "DOMStringMap": false, 251 | "DOMTokenList": false, 252 | "DragEvent": false, 253 | "DynamicsCompressorNode": false, 254 | "EditContext": false, 255 | "Element": false, 256 | "ElementInternals": false, 257 | "EncodedAudioChunk": false, 258 | "EncodedVideoChunk": false, 259 | "ErrorEvent": false, 260 | "event": false, 261 | "Event": false, 262 | "EventCounts": false, 263 | "EventSource": false, 264 | "EventTarget": false, 265 | "external": false, 266 | "External": false, 267 | "EyeDropper": false, 268 | "FeaturePolicy": false, 269 | "FederatedCredential": false, 270 | "fence": false, 271 | "Fence": false, 272 | "FencedFrameConfig": false, 273 | "fetch": false, 274 | "fetchLater": false, 275 | "FetchLaterResult": false, 276 | "File": false, 277 | "FileList": false, 278 | "FileReader": false, 279 | "FileSystem": false, 280 | "FileSystemDirectoryEntry": false, 281 | "FileSystemDirectoryHandle": false, 282 | "FileSystemDirectoryReader": false, 283 | "FileSystemEntry": false, 284 | "FileSystemFileEntry": false, 285 | "FileSystemFileHandle": false, 286 | "FileSystemHandle": false, 287 | "FileSystemObserver": false, 288 | "FileSystemWritableFileStream": false, 289 | "find": false, 290 | "focus": false, 291 | "FocusEvent": false, 292 | "FontData": false, 293 | "FontFace": false, 294 | "FontFaceSet": false, 295 | "FontFaceSetLoadEvent": false, 296 | "FormData": false, 297 | "FormDataEvent": false, 298 | "FragmentDirective": false, 299 | "frameElement": false, 300 | "frames": false, 301 | "GainNode": false, 302 | "Gamepad": false, 303 | "GamepadAxisMoveEvent": false, 304 | "GamepadButton": false, 305 | "GamepadButtonEvent": false, 306 | "GamepadEvent": false, 307 | "GamepadHapticActuator": false, 308 | "GamepadPose": false, 309 | "Geolocation": false, 310 | "GeolocationCoordinates": false, 311 | "GeolocationPosition": false, 312 | "GeolocationPositionError": false, 313 | "getComputedStyle": false, 314 | "getScreenDetails": false, 315 | "getSelection": false, 316 | "GPU": false, 317 | "GPUAdapter": false, 318 | "GPUAdapterInfo": false, 319 | "GPUBindGroup": false, 320 | "GPUBindGroupLayout": false, 321 | "GPUBuffer": false, 322 | "GPUBufferUsage": false, 323 | "GPUCanvasContext": false, 324 | "GPUColorWrite": false, 325 | "GPUCommandBuffer": false, 326 | "GPUCommandEncoder": false, 327 | "GPUCompilationInfo": false, 328 | "GPUCompilationMessage": false, 329 | "GPUComputePassEncoder": false, 330 | "GPUComputePipeline": false, 331 | "GPUDevice": false, 332 | "GPUDeviceLostInfo": false, 333 | "GPUError": false, 334 | "GPUExternalTexture": false, 335 | "GPUInternalError": false, 336 | "GPUMapMode": false, 337 | "GPUOutOfMemoryError": false, 338 | "GPUPipelineError": false, 339 | "GPUPipelineLayout": false, 340 | "GPUQuerySet": false, 341 | "GPUQueue": false, 342 | "GPURenderBundle": false, 343 | "GPURenderBundleEncoder": false, 344 | "GPURenderPassEncoder": false, 345 | "GPURenderPipeline": false, 346 | "GPUSampler": false, 347 | "GPUShaderModule": false, 348 | "GPUShaderStage": false, 349 | "GPUSupportedFeatures": false, 350 | "GPUSupportedLimits": false, 351 | "GPUTexture": false, 352 | "GPUTextureUsage": false, 353 | "GPUTextureView": false, 354 | "GPUUncapturedErrorEvent": false, 355 | "GPUValidationError": false, 356 | "GravitySensor": false, 357 | "Gyroscope": false, 358 | "HashChangeEvent": false, 359 | "Headers": false, 360 | "HID": false, 361 | "HIDConnectionEvent": false, 362 | "HIDDevice": false, 363 | "HIDInputReportEvent": false, 364 | "Highlight": false, 365 | "HighlightRegistry": false, 366 | "history": false, 367 | "History": false, 368 | "HTMLAllCollection": false, 369 | "HTMLAnchorElement": false, 370 | "HTMLAreaElement": false, 371 | "HTMLAudioElement": false, 372 | "HTMLBaseElement": false, 373 | "HTMLBodyElement": false, 374 | "HTMLBRElement": false, 375 | "HTMLButtonElement": false, 376 | "HTMLCanvasElement": false, 377 | "HTMLCollection": false, 378 | "HTMLDataElement": false, 379 | "HTMLDataListElement": false, 380 | "HTMLDetailsElement": false, 381 | "HTMLDialogElement": false, 382 | "HTMLDirectoryElement": false, 383 | "HTMLDivElement": false, 384 | "HTMLDListElement": false, 385 | "HTMLDocument": false, 386 | "HTMLElement": false, 387 | "HTMLEmbedElement": false, 388 | "HTMLFencedFrameElement": false, 389 | "HTMLFieldSetElement": false, 390 | "HTMLFontElement": false, 391 | "HTMLFormControlsCollection": false, 392 | "HTMLFormElement": false, 393 | "HTMLFrameElement": false, 394 | "HTMLFrameSetElement": false, 395 | "HTMLHeadElement": false, 396 | "HTMLHeadingElement": false, 397 | "HTMLHRElement": false, 398 | "HTMLHtmlElement": false, 399 | "HTMLIFrameElement": false, 400 | "HTMLImageElement": false, 401 | "HTMLInputElement": false, 402 | "HTMLLabelElement": false, 403 | "HTMLLegendElement": false, 404 | "HTMLLIElement": false, 405 | "HTMLLinkElement": false, 406 | "HTMLMapElement": false, 407 | "HTMLMarqueeElement": false, 408 | "HTMLMediaElement": false, 409 | "HTMLMenuElement": false, 410 | "HTMLMetaElement": false, 411 | "HTMLMeterElement": false, 412 | "HTMLModElement": false, 413 | "HTMLObjectElement": false, 414 | "HTMLOListElement": false, 415 | "HTMLOptGroupElement": false, 416 | "HTMLOptionElement": false, 417 | "HTMLOptionsCollection": false, 418 | "HTMLOutputElement": false, 419 | "HTMLParagraphElement": false, 420 | "HTMLParamElement": false, 421 | "HTMLPictureElement": false, 422 | "HTMLPreElement": false, 423 | "HTMLProgressElement": false, 424 | "HTMLQuoteElement": false, 425 | "HTMLScriptElement": false, 426 | "HTMLSelectedContentElement": false, 427 | "HTMLSelectElement": false, 428 | "HTMLSlotElement": false, 429 | "HTMLSourceElement": false, 430 | "HTMLSpanElement": false, 431 | "HTMLStyleElement": false, 432 | "HTMLTableCaptionElement": false, 433 | "HTMLTableCellElement": false, 434 | "HTMLTableColElement": false, 435 | "HTMLTableElement": false, 436 | "HTMLTableRowElement": false, 437 | "HTMLTableSectionElement": false, 438 | "HTMLTemplateElement": false, 439 | "HTMLTextAreaElement": false, 440 | "HTMLTimeElement": false, 441 | "HTMLTitleElement": false, 442 | "HTMLTrackElement": false, 443 | "HTMLUListElement": false, 444 | "HTMLUnknownElement": false, 445 | "HTMLVideoElement": false, 446 | "IDBCursor": false, 447 | "IDBCursorWithValue": false, 448 | "IDBDatabase": false, 449 | "IDBFactory": false, 450 | "IDBIndex": false, 451 | "IDBKeyRange": false, 452 | "IDBObjectStore": false, 453 | "IDBOpenDBRequest": false, 454 | "IDBRequest": false, 455 | "IDBTransaction": false, 456 | "IDBVersionChangeEvent": false, 457 | "IdentityCredential": false, 458 | "IdentityCredentialError": false, 459 | "IdentityProvider": false, 460 | "IdleDeadline": false, 461 | "IdleDetector": false, 462 | "IIRFilterNode": false, 463 | "Image": false, 464 | "ImageBitmap": false, 465 | "ImageBitmapRenderingContext": false, 466 | "ImageCapture": false, 467 | "ImageData": false, 468 | "ImageDecoder": false, 469 | "ImageTrack": false, 470 | "ImageTrackList": false, 471 | "indexedDB": false, 472 | "Ink": false, 473 | "innerHeight": false, 474 | "innerWidth": false, 475 | "InputDeviceCapabilities": false, 476 | "InputDeviceInfo": false, 477 | "InputEvent": false, 478 | "IntersectionObserver": false, 479 | "IntersectionObserverEntry": false, 480 | "isSecureContext": false, 481 | "Keyboard": false, 482 | "KeyboardEvent": false, 483 | "KeyboardLayoutMap": false, 484 | "KeyframeEffect": false, 485 | "LanguageDetector": false, 486 | "LargestContentfulPaint": false, 487 | "LaunchParams": false, 488 | "launchQueue": false, 489 | "LaunchQueue": false, 490 | "LayoutShift": false, 491 | "LayoutShiftAttribution": false, 492 | "length": false, 493 | "LinearAccelerationSensor": false, 494 | "localStorage": false, 495 | "location": true, 496 | "Location": false, 497 | "locationbar": false, 498 | "Lock": false, 499 | "LockManager": false, 500 | "matchMedia": false, 501 | "MathMLElement": false, 502 | "MediaCapabilities": false, 503 | "MediaCapabilitiesInfo": false, 504 | "MediaDeviceInfo": false, 505 | "MediaDevices": false, 506 | "MediaElementAudioSourceNode": false, 507 | "MediaEncryptedEvent": false, 508 | "MediaError": false, 509 | "MediaKeyError": false, 510 | "MediaKeyMessageEvent": false, 511 | "MediaKeys": false, 512 | "MediaKeySession": false, 513 | "MediaKeyStatusMap": false, 514 | "MediaKeySystemAccess": false, 515 | "MediaList": false, 516 | "MediaMetadata": false, 517 | "MediaQueryList": false, 518 | "MediaQueryListEvent": false, 519 | "MediaRecorder": false, 520 | "MediaRecorderErrorEvent": false, 521 | "MediaSession": false, 522 | "MediaSource": false, 523 | "MediaSourceHandle": false, 524 | "MediaStream": false, 525 | "MediaStreamAudioDestinationNode": false, 526 | "MediaStreamAudioSourceNode": false, 527 | "MediaStreamEvent": false, 528 | "MediaStreamTrack": false, 529 | "MediaStreamTrackAudioSourceNode": false, 530 | "MediaStreamTrackAudioStats": false, 531 | "MediaStreamTrackEvent": false, 532 | "MediaStreamTrackGenerator": false, 533 | "MediaStreamTrackProcessor": false, 534 | "MediaStreamTrackVideoStats": false, 535 | "menubar": false, 536 | "MessageChannel": false, 537 | "MessageEvent": false, 538 | "MessagePort": false, 539 | "MIDIAccess": false, 540 | "MIDIConnectionEvent": false, 541 | "MIDIInput": false, 542 | "MIDIInputMap": false, 543 | "MIDIMessageEvent": false, 544 | "MIDIOutput": false, 545 | "MIDIOutputMap": false, 546 | "MIDIPort": false, 547 | "MimeType": false, 548 | "MimeTypeArray": false, 549 | "model": false, 550 | "ModelGenericSession": false, 551 | "ModelManager": false, 552 | "MouseEvent": false, 553 | "moveBy": false, 554 | "moveTo": false, 555 | "MutationEvent": false, 556 | "MutationObserver": false, 557 | "MutationRecord": false, 558 | "name": false, 559 | "NamedNodeMap": false, 560 | "NavigateEvent": false, 561 | "navigation": false, 562 | "Navigation": false, 563 | "NavigationActivation": false, 564 | "NavigationCurrentEntryChangeEvent": false, 565 | "NavigationDestination": false, 566 | "NavigationHistoryEntry": false, 567 | "NavigationPreloadManager": false, 568 | "NavigationTransition": false, 569 | "navigator": false, 570 | "Navigator": false, 571 | "NavigatorLogin": false, 572 | "NavigatorManagedData": false, 573 | "NavigatorUAData": false, 574 | "NetworkInformation": false, 575 | "Node": false, 576 | "NodeFilter": false, 577 | "NodeIterator": false, 578 | "NodeList": false, 579 | "Notification": false, 580 | "NotifyPaintEvent": false, 581 | "NotRestoredReasonDetails": false, 582 | "NotRestoredReasons": false, 583 | "Observable": false, 584 | "OfflineAudioCompletionEvent": false, 585 | "OfflineAudioContext": false, 586 | "offscreenBuffering": false, 587 | "OffscreenCanvas": false, 588 | "OffscreenCanvasRenderingContext2D": false, 589 | "onabort": true, 590 | "onafterprint": true, 591 | "onanimationcancel": true, 592 | "onanimationend": true, 593 | "onanimationiteration": true, 594 | "onanimationstart": true, 595 | "onappinstalled": true, 596 | "onauxclick": true, 597 | "onbeforeinput": true, 598 | "onbeforeinstallprompt": true, 599 | "onbeforematch": true, 600 | "onbeforeprint": true, 601 | "onbeforetoggle": true, 602 | "onbeforeunload": true, 603 | "onbeforexrselect": true, 604 | "onblur": true, 605 | "oncancel": true, 606 | "oncanplay": true, 607 | "oncanplaythrough": true, 608 | "onchange": true, 609 | "onclick": true, 610 | "onclose": true, 611 | "oncommand": true, 612 | "oncontentvisibilityautostatechange": true, 613 | "oncontextlost": true, 614 | "oncontextmenu": true, 615 | "oncontextrestored": true, 616 | "oncopy": true, 617 | "oncuechange": true, 618 | "oncut": true, 619 | "ondblclick": true, 620 | "ondevicemotion": true, 621 | "ondeviceorientation": true, 622 | "ondeviceorientationabsolute": true, 623 | "ondrag": true, 624 | "ondragend": true, 625 | "ondragenter": true, 626 | "ondragleave": true, 627 | "ondragover": true, 628 | "ondragstart": true, 629 | "ondrop": true, 630 | "ondurationchange": true, 631 | "onemptied": true, 632 | "onended": true, 633 | "onerror": true, 634 | "onfocus": true, 635 | "onformdata": true, 636 | "ongamepadconnected": true, 637 | "ongamepaddisconnected": true, 638 | "ongotpointercapture": true, 639 | "onhashchange": true, 640 | "oninput": true, 641 | "oninvalid": true, 642 | "onkeydown": true, 643 | "onkeypress": true, 644 | "onkeyup": true, 645 | "onlanguagechange": true, 646 | "onload": true, 647 | "onloadeddata": true, 648 | "onloadedmetadata": true, 649 | "onloadstart": true, 650 | "onlostpointercapture": true, 651 | "onmessage": true, 652 | "onmessageerror": true, 653 | "onmousedown": true, 654 | "onmouseenter": true, 655 | "onmouseleave": true, 656 | "onmousemove": true, 657 | "onmouseout": true, 658 | "onmouseover": true, 659 | "onmouseup": true, 660 | "onmousewheel": true, 661 | "onoffline": true, 662 | "ononline": true, 663 | "onpagehide": true, 664 | "onpagereveal": true, 665 | "onpageshow": true, 666 | "onpageswap": true, 667 | "onpaste": true, 668 | "onpause": true, 669 | "onplay": true, 670 | "onplaying": true, 671 | "onpointercancel": true, 672 | "onpointerdown": true, 673 | "onpointerenter": true, 674 | "onpointerleave": true, 675 | "onpointermove": true, 676 | "onpointerout": true, 677 | "onpointerover": true, 678 | "onpointerrawupdate": true, 679 | "onpointerup": true, 680 | "onpopstate": true, 681 | "onprogress": true, 682 | "onratechange": true, 683 | "onrejectionhandled": true, 684 | "onreset": true, 685 | "onresize": true, 686 | "onscroll": true, 687 | "onscrollend": true, 688 | "onscrollsnapchange": true, 689 | "onscrollsnapchanging": true, 690 | "onsearch": true, 691 | "onsecuritypolicyviolation": true, 692 | "onseeked": true, 693 | "onseeking": true, 694 | "onselect": true, 695 | "onselectionchange": true, 696 | "onselectstart": true, 697 | "onslotchange": true, 698 | "onstalled": true, 699 | "onstorage": true, 700 | "onsubmit": true, 701 | "onsuspend": true, 702 | "ontimeupdate": true, 703 | "ontoggle": true, 704 | "ontransitioncancel": true, 705 | "ontransitionend": true, 706 | "ontransitionrun": true, 707 | "ontransitionstart": true, 708 | "onunhandledrejection": true, 709 | "onunload": true, 710 | "onvolumechange": true, 711 | "onwaiting": true, 712 | "onwheel": true, 713 | "open": false, 714 | "opener": false, 715 | "Option": false, 716 | "OrientationSensor": false, 717 | "origin": false, 718 | "originAgentCluster": false, 719 | "OscillatorNode": false, 720 | "OTPCredential": false, 721 | "outerHeight": false, 722 | "outerWidth": false, 723 | "OverconstrainedError": false, 724 | "PageRevealEvent": false, 725 | "PageSwapEvent": false, 726 | "PageTransitionEvent": false, 727 | "pageXOffset": false, 728 | "pageYOffset": false, 729 | "PannerNode": false, 730 | "parent": false, 731 | "PasswordCredential": false, 732 | "Path2D": false, 733 | "PaymentAddress": false, 734 | "PaymentManager": false, 735 | "PaymentMethodChangeEvent": false, 736 | "PaymentRequest": false, 737 | "PaymentRequestUpdateEvent": false, 738 | "PaymentResponse": false, 739 | "performance": false, 740 | "Performance": false, 741 | "PerformanceElementTiming": false, 742 | "PerformanceEntry": false, 743 | "PerformanceEventTiming": false, 744 | "PerformanceLongAnimationFrameTiming": false, 745 | "PerformanceLongTaskTiming": false, 746 | "PerformanceMark": false, 747 | "PerformanceMeasure": false, 748 | "PerformanceNavigation": false, 749 | "PerformanceNavigationTiming": false, 750 | "PerformanceObserver": false, 751 | "PerformanceObserverEntryList": false, 752 | "PerformancePaintTiming": false, 753 | "PerformanceResourceTiming": false, 754 | "PerformanceScriptTiming": false, 755 | "PerformanceServerTiming": false, 756 | "PerformanceTiming": false, 757 | "PeriodicSyncManager": false, 758 | "PeriodicWave": false, 759 | "Permissions": false, 760 | "PermissionStatus": false, 761 | "PERSISTENT": false, 762 | "personalbar": false, 763 | "PictureInPictureEvent": false, 764 | "PictureInPictureWindow": false, 765 | "Plugin": false, 766 | "PluginArray": false, 767 | "PointerEvent": false, 768 | "PopStateEvent": false, 769 | "postMessage": false, 770 | "Presentation": false, 771 | "PresentationAvailability": false, 772 | "PresentationConnection": false, 773 | "PresentationConnectionAvailableEvent": false, 774 | "PresentationConnectionCloseEvent": false, 775 | "PresentationConnectionList": false, 776 | "PresentationReceiver": false, 777 | "PresentationRequest": false, 778 | "PressureObserver": false, 779 | "PressureRecord": false, 780 | "print": false, 781 | "ProcessingInstruction": false, 782 | "Profiler": false, 783 | "ProgressEvent": false, 784 | "PromiseRejectionEvent": false, 785 | "prompt": false, 786 | "ProtectedAudience": false, 787 | "PublicKeyCredential": false, 788 | "PushManager": false, 789 | "PushSubscription": false, 790 | "PushSubscriptionOptions": false, 791 | "queryLocalFonts": false, 792 | "queueMicrotask": false, 793 | "RadioNodeList": false, 794 | "Range": false, 795 | "ReadableByteStreamController": false, 796 | "ReadableStream": false, 797 | "ReadableStreamBYOBReader": false, 798 | "ReadableStreamBYOBRequest": false, 799 | "ReadableStreamDefaultController": false, 800 | "ReadableStreamDefaultReader": false, 801 | "registerProcessor": false, 802 | "RelativeOrientationSensor": false, 803 | "RemotePlayback": false, 804 | "removeEventListener": false, 805 | "ReportBody": false, 806 | "reportError": false, 807 | "ReportingObserver": false, 808 | "Request": false, 809 | "requestAnimationFrame": false, 810 | "requestIdleCallback": false, 811 | "resizeBy": false, 812 | "ResizeObserver": false, 813 | "ResizeObserverEntry": false, 814 | "ResizeObserverSize": false, 815 | "resizeTo": false, 816 | "Response": false, 817 | "RestrictionTarget": false, 818 | "RTCCertificate": false, 819 | "RTCDataChannel": false, 820 | "RTCDataChannelEvent": false, 821 | "RTCDtlsTransport": false, 822 | "RTCDTMFSender": false, 823 | "RTCDTMFToneChangeEvent": false, 824 | "RTCEncodedAudioFrame": false, 825 | "RTCEncodedVideoFrame": false, 826 | "RTCError": false, 827 | "RTCErrorEvent": false, 828 | "RTCIceCandidate": false, 829 | "RTCIceTransport": false, 830 | "RTCPeerConnection": false, 831 | "RTCPeerConnectionIceErrorEvent": false, 832 | "RTCPeerConnectionIceEvent": false, 833 | "RTCRtpReceiver": false, 834 | "RTCRtpScriptTransform": false, 835 | "RTCRtpSender": false, 836 | "RTCRtpTransceiver": false, 837 | "RTCSctpTransport": false, 838 | "RTCSessionDescription": false, 839 | "RTCStatsReport": false, 840 | "RTCTrackEvent": false, 841 | "sampleRate": false, 842 | "scheduler": false, 843 | "Scheduler": false, 844 | "Scheduling": false, 845 | "screen": false, 846 | "Screen": false, 847 | "ScreenDetailed": false, 848 | "ScreenDetails": false, 849 | "screenLeft": false, 850 | "ScreenOrientation": false, 851 | "screenTop": false, 852 | "screenX": false, 853 | "screenY": false, 854 | "ScriptProcessorNode": false, 855 | "scroll": false, 856 | "scrollbars": false, 857 | "scrollBy": false, 858 | "ScrollTimeline": false, 859 | "scrollTo": false, 860 | "scrollX": false, 861 | "scrollY": false, 862 | "SecurityPolicyViolationEvent": false, 863 | "Selection": false, 864 | "self": false, 865 | "Sensor": false, 866 | "SensorErrorEvent": false, 867 | "Serial": false, 868 | "SerialPort": false, 869 | "ServiceWorker": false, 870 | "ServiceWorkerContainer": false, 871 | "ServiceWorkerRegistration": false, 872 | "sessionStorage": false, 873 | "setInterval": false, 874 | "setTimeout": false, 875 | "ShadowRoot": false, 876 | "sharedStorage": false, 877 | "SharedStorage": false, 878 | "SharedStorageAppendMethod": false, 879 | "SharedStorageClearMethod": false, 880 | "SharedStorageDeleteMethod": false, 881 | "SharedStorageModifierMethod": false, 882 | "SharedStorageSetMethod": false, 883 | "SharedStorageWorklet": false, 884 | "SharedWorker": false, 885 | "showDirectoryPicker": false, 886 | "showOpenFilePicker": false, 887 | "showSaveFilePicker": false, 888 | "SnapEvent": false, 889 | "SourceBuffer": false, 890 | "SourceBufferList": false, 891 | "speechSynthesis": false, 892 | "SpeechSynthesis": false, 893 | "SpeechSynthesisErrorEvent": false, 894 | "SpeechSynthesisEvent": false, 895 | "SpeechSynthesisUtterance": false, 896 | "SpeechSynthesisVoice": false, 897 | "StaticRange": false, 898 | "status": false, 899 | "statusbar": false, 900 | "StereoPannerNode": false, 901 | "stop": false, 902 | "Storage": false, 903 | "StorageBucket": false, 904 | "StorageBucketManager": false, 905 | "StorageEvent": false, 906 | "StorageManager": false, 907 | "structuredClone": false, 908 | "styleMedia": false, 909 | "StylePropertyMap": false, 910 | "StylePropertyMapReadOnly": false, 911 | "StyleSheet": false, 912 | "StyleSheetList": false, 913 | "SubmitEvent": false, 914 | "Subscriber": false, 915 | "SubtleCrypto": false, 916 | "SuppressedError": false, 917 | "SVGAElement": false, 918 | "SVGAngle": false, 919 | "SVGAnimatedAngle": false, 920 | "SVGAnimatedBoolean": false, 921 | "SVGAnimatedEnumeration": false, 922 | "SVGAnimatedInteger": false, 923 | "SVGAnimatedLength": false, 924 | "SVGAnimatedLengthList": false, 925 | "SVGAnimatedNumber": false, 926 | "SVGAnimatedNumberList": false, 927 | "SVGAnimatedPreserveAspectRatio": false, 928 | "SVGAnimatedRect": false, 929 | "SVGAnimatedString": false, 930 | "SVGAnimatedTransformList": false, 931 | "SVGAnimateElement": false, 932 | "SVGAnimateMotionElement": false, 933 | "SVGAnimateTransformElement": false, 934 | "SVGAnimationElement": false, 935 | "SVGCircleElement": false, 936 | "SVGClipPathElement": false, 937 | "SVGComponentTransferFunctionElement": false, 938 | "SVGDefsElement": false, 939 | "SVGDescElement": false, 940 | "SVGElement": false, 941 | "SVGEllipseElement": false, 942 | "SVGFEBlendElement": false, 943 | "SVGFEColorMatrixElement": false, 944 | "SVGFEComponentTransferElement": false, 945 | "SVGFECompositeElement": false, 946 | "SVGFEConvolveMatrixElement": false, 947 | "SVGFEDiffuseLightingElement": false, 948 | "SVGFEDisplacementMapElement": false, 949 | "SVGFEDistantLightElement": false, 950 | "SVGFEDropShadowElement": false, 951 | "SVGFEFloodElement": false, 952 | "SVGFEFuncAElement": false, 953 | "SVGFEFuncBElement": false, 954 | "SVGFEFuncGElement": false, 955 | "SVGFEFuncRElement": false, 956 | "SVGFEGaussianBlurElement": false, 957 | "SVGFEImageElement": false, 958 | "SVGFEMergeElement": false, 959 | "SVGFEMergeNodeElement": false, 960 | "SVGFEMorphologyElement": false, 961 | "SVGFEOffsetElement": false, 962 | "SVGFEPointLightElement": false, 963 | "SVGFESpecularLightingElement": false, 964 | "SVGFESpotLightElement": false, 965 | "SVGFETileElement": false, 966 | "SVGFETurbulenceElement": false, 967 | "SVGFilterElement": false, 968 | "SVGForeignObjectElement": false, 969 | "SVGGElement": false, 970 | "SVGGeometryElement": false, 971 | "SVGGradientElement": false, 972 | "SVGGraphicsElement": false, 973 | "SVGImageElement": false, 974 | "SVGLength": false, 975 | "SVGLengthList": false, 976 | "SVGLinearGradientElement": false, 977 | "SVGLineElement": false, 978 | "SVGMarkerElement": false, 979 | "SVGMaskElement": false, 980 | "SVGMatrix": false, 981 | "SVGMetadataElement": false, 982 | "SVGMPathElement": false, 983 | "SVGNumber": false, 984 | "SVGNumberList": false, 985 | "SVGPathElement": false, 986 | "SVGPatternElement": false, 987 | "SVGPoint": false, 988 | "SVGPointList": false, 989 | "SVGPolygonElement": false, 990 | "SVGPolylineElement": false, 991 | "SVGPreserveAspectRatio": false, 992 | "SVGRadialGradientElement": false, 993 | "SVGRect": false, 994 | "SVGRectElement": false, 995 | "SVGScriptElement": false, 996 | "SVGSetElement": false, 997 | "SVGStopElement": false, 998 | "SVGStringList": false, 999 | "SVGStyleElement": false, 1000 | "SVGSVGElement": false, 1001 | "SVGSwitchElement": false, 1002 | "SVGSymbolElement": false, 1003 | "SVGTextContentElement": false, 1004 | "SVGTextElement": false, 1005 | "SVGTextPathElement": false, 1006 | "SVGTextPositioningElement": false, 1007 | "SVGTitleElement": false, 1008 | "SVGTransform": false, 1009 | "SVGTransformList": false, 1010 | "SVGTSpanElement": false, 1011 | "SVGUnitTypes": false, 1012 | "SVGUseElement": false, 1013 | "SVGViewElement": false, 1014 | "SyncManager": false, 1015 | "TaskAttributionTiming": false, 1016 | "TaskController": false, 1017 | "TaskPriorityChangeEvent": false, 1018 | "TaskSignal": false, 1019 | "TEMPORARY": false, 1020 | "Text": false, 1021 | "TextDecoder": false, 1022 | "TextDecoderStream": false, 1023 | "TextEncoder": false, 1024 | "TextEncoderStream": false, 1025 | "TextEvent": false, 1026 | "TextFormat": false, 1027 | "TextFormatUpdateEvent": false, 1028 | "TextMetrics": false, 1029 | "TextTrack": false, 1030 | "TextTrackCue": false, 1031 | "TextTrackCueList": false, 1032 | "TextTrackList": false, 1033 | "TextUpdateEvent": false, 1034 | "TimeEvent": false, 1035 | "TimeRanges": false, 1036 | "ToggleEvent": false, 1037 | "toolbar": false, 1038 | "top": false, 1039 | "Touch": false, 1040 | "TouchEvent": false, 1041 | "TouchList": false, 1042 | "TrackEvent": false, 1043 | "TransformStream": false, 1044 | "TransformStreamDefaultController": false, 1045 | "TransitionEvent": false, 1046 | "TreeWalker": false, 1047 | "TrustedHTML": false, 1048 | "TrustedScript": false, 1049 | "TrustedScriptURL": false, 1050 | "TrustedTypePolicy": false, 1051 | "TrustedTypePolicyFactory": false, 1052 | "trustedTypes": false, 1053 | "UIEvent": false, 1054 | "URL": false, 1055 | "URLPattern": false, 1056 | "URLSearchParams": false, 1057 | "USB": false, 1058 | "USBAlternateInterface": false, 1059 | "USBConfiguration": false, 1060 | "USBConnectionEvent": false, 1061 | "USBDevice": false, 1062 | "USBEndpoint": false, 1063 | "USBInterface": false, 1064 | "USBInTransferResult": false, 1065 | "USBIsochronousInTransferPacket": false, 1066 | "USBIsochronousInTransferResult": false, 1067 | "USBIsochronousOutTransferPacket": false, 1068 | "USBIsochronousOutTransferResult": false, 1069 | "USBOutTransferResult": false, 1070 | "UserActivation": false, 1071 | "ValidityState": false, 1072 | "VideoColorSpace": false, 1073 | "VideoDecoder": false, 1074 | "VideoEncoder": false, 1075 | "VideoFrame": false, 1076 | "VideoPlaybackQuality": false, 1077 | "ViewTimeline": false, 1078 | "ViewTransition": false, 1079 | "ViewTransitionTypeSet": false, 1080 | "VirtualKeyboard": false, 1081 | "VirtualKeyboardGeometryChangeEvent": false, 1082 | "VisibilityStateEntry": false, 1083 | "visualViewport": false, 1084 | "VisualViewport": false, 1085 | "VTTCue": false, 1086 | "VTTRegion": false, 1087 | "WakeLock": false, 1088 | "WakeLockSentinel": false, 1089 | "WaveShaperNode": false, 1090 | "WebAssembly": false, 1091 | "WebGL2RenderingContext": false, 1092 | "WebGLActiveInfo": false, 1093 | "WebGLBuffer": false, 1094 | "WebGLContextEvent": false, 1095 | "WebGLFramebuffer": false, 1096 | "WebGLObject": false, 1097 | "WebGLProgram": false, 1098 | "WebGLQuery": false, 1099 | "WebGLRenderbuffer": false, 1100 | "WebGLRenderingContext": false, 1101 | "WebGLSampler": false, 1102 | "WebGLShader": false, 1103 | "WebGLShaderPrecisionFormat": false, 1104 | "WebGLSync": false, 1105 | "WebGLTexture": false, 1106 | "WebGLTransformFeedback": false, 1107 | "WebGLUniformLocation": false, 1108 | "WebGLVertexArrayObject": false, 1109 | "WebSocket": false, 1110 | "WebSocketError": false, 1111 | "WebSocketStream": false, 1112 | "WebTransport": false, 1113 | "WebTransportBidirectionalStream": false, 1114 | "WebTransportDatagramDuplexStream": false, 1115 | "WebTransportError": false, 1116 | "WebTransportReceiveStream": false, 1117 | "WebTransportSendStream": false, 1118 | "WGSLLanguageFeatures": false, 1119 | "WheelEvent": false, 1120 | "when": false, 1121 | "window": false, 1122 | "Window": false, 1123 | "WindowControlsOverlay": false, 1124 | "WindowControlsOverlayGeometryChangeEvent": false, 1125 | "Worker": false, 1126 | "Worklet": false, 1127 | "WorkletGlobalScope": false, 1128 | "WritableStream": false, 1129 | "WritableStreamDefaultController": false, 1130 | "WritableStreamDefaultWriter": false, 1131 | "XMLDocument": false, 1132 | "XMLHttpRequest": false, 1133 | "XMLHttpRequestEventTarget": false, 1134 | "XMLHttpRequestUpload": false, 1135 | "XMLSerializer": false, 1136 | "XPathEvaluator": false, 1137 | "XPathExpression": false, 1138 | "XPathResult": false, 1139 | "XRAnchor": false, 1140 | "XRAnchorSet": false, 1141 | "XRBoundedReferenceSpace": false, 1142 | "XRCamera": false, 1143 | "XRCPUDepthInformation": false, 1144 | "XRDepthInformation": false, 1145 | "XRDOMOverlayState": false, 1146 | "XRFrame": false, 1147 | "XRHand": false, 1148 | "XRHitTestResult": false, 1149 | "XRHitTestSource": false, 1150 | "XRInputSource": false, 1151 | "XRInputSourceArray": false, 1152 | "XRInputSourceEvent": false, 1153 | "XRInputSourcesChangeEvent": false, 1154 | "XRJointPose": false, 1155 | "XRJointSpace": false, 1156 | "XRLayer": false, 1157 | "XRLightEstimate": false, 1158 | "XRLightProbe": false, 1159 | "XRPose": false, 1160 | "XRRay": false, 1161 | "XRReferenceSpace": false, 1162 | "XRReferenceSpaceEvent": false, 1163 | "XRRenderState": false, 1164 | "XRRigidTransform": false, 1165 | "XRSession": false, 1166 | "XRSessionEvent": false, 1167 | "XRSpace": false, 1168 | "XRSystem": false, 1169 | "XRTransientInputHitTestResult": false, 1170 | "XRTransientInputHitTestSource": false, 1171 | "XRView": false, 1172 | "XRViewerPose": false, 1173 | "XRViewport": false, 1174 | "XRWebGLBinding": false, 1175 | "XRWebGLDepthInformation": false, 1176 | "XRWebGLLayer": false, 1177 | "XSLTProcessor": false 1178 | }, 1179 | "builtin": { 1180 | "AggregateError": false, 1181 | "Array": false, 1182 | "ArrayBuffer": false, 1183 | "Atomics": false, 1184 | "BigInt": false, 1185 | "BigInt64Array": false, 1186 | "BigUint64Array": false, 1187 | "Boolean": false, 1188 | "DataView": false, 1189 | "Date": false, 1190 | "decodeURI": false, 1191 | "decodeURIComponent": false, 1192 | "encodeURI": false, 1193 | "encodeURIComponent": false, 1194 | "Error": false, 1195 | "escape": false, 1196 | "eval": false, 1197 | "EvalError": false, 1198 | "FinalizationRegistry": false, 1199 | "Float16Array": false, 1200 | "Float32Array": false, 1201 | "Float64Array": false, 1202 | "Function": false, 1203 | "globalThis": false, 1204 | "Infinity": false, 1205 | "Int16Array": false, 1206 | "Int32Array": false, 1207 | "Int8Array": false, 1208 | "Intl": false, 1209 | "isFinite": false, 1210 | "isNaN": false, 1211 | "Iterator": false, 1212 | "JSON": false, 1213 | "Map": false, 1214 | "Math": false, 1215 | "NaN": false, 1216 | "Number": false, 1217 | "Object": false, 1218 | "parseFloat": false, 1219 | "parseInt": false, 1220 | "Promise": false, 1221 | "Proxy": false, 1222 | "RangeError": false, 1223 | "ReferenceError": false, 1224 | "Reflect": false, 1225 | "RegExp": false, 1226 | "Set": false, 1227 | "SharedArrayBuffer": false, 1228 | "String": false, 1229 | "Symbol": false, 1230 | "SyntaxError": false, 1231 | "TypeError": false, 1232 | "Uint16Array": false, 1233 | "Uint32Array": false, 1234 | "Uint8Array": false, 1235 | "Uint8ClampedArray": false, 1236 | "undefined": false, 1237 | "unescape": false, 1238 | "URIError": false, 1239 | "WeakMap": false, 1240 | "WeakRef": false, 1241 | "WeakSet": false 1242 | }, 1243 | "chai": { 1244 | "assert": true, 1245 | "expect": true, 1246 | "should": true 1247 | }, 1248 | "commonjs": { 1249 | "exports": true, 1250 | "global": false, 1251 | "module": false, 1252 | "require": false 1253 | }, 1254 | "couch": { 1255 | "emit": false, 1256 | "exports": false, 1257 | "getRow": false, 1258 | "log": false, 1259 | "module": false, 1260 | "provides": false, 1261 | "require": false, 1262 | "respond": false, 1263 | "send": false, 1264 | "start": false, 1265 | "sum": false 1266 | }, 1267 | "devtools": { 1268 | "$": false, 1269 | "$_": false, 1270 | "$$": false, 1271 | "$0": false, 1272 | "$1": false, 1273 | "$2": false, 1274 | "$3": false, 1275 | "$4": false, 1276 | "$x": false, 1277 | "chrome": false, 1278 | "clear": false, 1279 | "copy": false, 1280 | "debug": false, 1281 | "dir": false, 1282 | "dirxml": false, 1283 | "getEventListeners": false, 1284 | "inspect": false, 1285 | "keys": false, 1286 | "monitor": false, 1287 | "monitorEvents": false, 1288 | "profile": false, 1289 | "profileEnd": false, 1290 | "queryObjects": false, 1291 | "table": false, 1292 | "undebug": false, 1293 | "unmonitor": false, 1294 | "unmonitorEvents": false, 1295 | "values": false 1296 | }, 1297 | "embertest": { 1298 | "andThen": false, 1299 | "click": false, 1300 | "currentPath": false, 1301 | "currentRouteName": false, 1302 | "currentURL": false, 1303 | "fillIn": false, 1304 | "find": false, 1305 | "findAll": false, 1306 | "findWithAssert": false, 1307 | "keyEvent": false, 1308 | "pauseTest": false, 1309 | "resumeTest": false, 1310 | "triggerEvent": false, 1311 | "visit": false, 1312 | "wait": false 1313 | }, 1314 | "es2015": { 1315 | "Array": false, 1316 | "ArrayBuffer": false, 1317 | "Boolean": false, 1318 | "DataView": false, 1319 | "Date": false, 1320 | "decodeURI": false, 1321 | "decodeURIComponent": false, 1322 | "encodeURI": false, 1323 | "encodeURIComponent": false, 1324 | "Error": false, 1325 | "escape": false, 1326 | "eval": false, 1327 | "EvalError": false, 1328 | "Float32Array": false, 1329 | "Float64Array": false, 1330 | "Function": false, 1331 | "Infinity": false, 1332 | "Int16Array": false, 1333 | "Int32Array": false, 1334 | "Int8Array": false, 1335 | "Intl": false, 1336 | "isFinite": false, 1337 | "isNaN": false, 1338 | "JSON": false, 1339 | "Map": false, 1340 | "Math": false, 1341 | "NaN": false, 1342 | "Number": false, 1343 | "Object": false, 1344 | "parseFloat": false, 1345 | "parseInt": false, 1346 | "Promise": false, 1347 | "Proxy": false, 1348 | "RangeError": false, 1349 | "ReferenceError": false, 1350 | "Reflect": false, 1351 | "RegExp": false, 1352 | "Set": false, 1353 | "String": false, 1354 | "Symbol": false, 1355 | "SyntaxError": false, 1356 | "TypeError": false, 1357 | "Uint16Array": false, 1358 | "Uint32Array": false, 1359 | "Uint8Array": false, 1360 | "Uint8ClampedArray": false, 1361 | "undefined": false, 1362 | "unescape": false, 1363 | "URIError": false, 1364 | "WeakMap": false, 1365 | "WeakSet": false 1366 | }, 1367 | "es2016": { 1368 | "Array": false, 1369 | "ArrayBuffer": false, 1370 | "Boolean": false, 1371 | "DataView": false, 1372 | "Date": false, 1373 | "decodeURI": false, 1374 | "decodeURIComponent": false, 1375 | "encodeURI": false, 1376 | "encodeURIComponent": false, 1377 | "Error": false, 1378 | "escape": false, 1379 | "eval": false, 1380 | "EvalError": false, 1381 | "Float32Array": false, 1382 | "Float64Array": false, 1383 | "Function": false, 1384 | "Infinity": false, 1385 | "Int16Array": false, 1386 | "Int32Array": false, 1387 | "Int8Array": false, 1388 | "Intl": false, 1389 | "isFinite": false, 1390 | "isNaN": false, 1391 | "JSON": false, 1392 | "Map": false, 1393 | "Math": false, 1394 | "NaN": false, 1395 | "Number": false, 1396 | "Object": false, 1397 | "parseFloat": false, 1398 | "parseInt": false, 1399 | "Promise": false, 1400 | "Proxy": false, 1401 | "RangeError": false, 1402 | "ReferenceError": false, 1403 | "Reflect": false, 1404 | "RegExp": false, 1405 | "Set": false, 1406 | "String": false, 1407 | "Symbol": false, 1408 | "SyntaxError": false, 1409 | "TypeError": false, 1410 | "Uint16Array": false, 1411 | "Uint32Array": false, 1412 | "Uint8Array": false, 1413 | "Uint8ClampedArray": false, 1414 | "undefined": false, 1415 | "unescape": false, 1416 | "URIError": false, 1417 | "WeakMap": false, 1418 | "WeakSet": false 1419 | }, 1420 | "es2017": { 1421 | "Array": false, 1422 | "ArrayBuffer": false, 1423 | "Atomics": false, 1424 | "Boolean": false, 1425 | "DataView": false, 1426 | "Date": false, 1427 | "decodeURI": false, 1428 | "decodeURIComponent": false, 1429 | "encodeURI": false, 1430 | "encodeURIComponent": false, 1431 | "Error": false, 1432 | "escape": false, 1433 | "eval": false, 1434 | "EvalError": false, 1435 | "Float32Array": false, 1436 | "Float64Array": false, 1437 | "Function": false, 1438 | "Infinity": false, 1439 | "Int16Array": false, 1440 | "Int32Array": false, 1441 | "Int8Array": false, 1442 | "Intl": false, 1443 | "isFinite": false, 1444 | "isNaN": false, 1445 | "JSON": false, 1446 | "Map": false, 1447 | "Math": false, 1448 | "NaN": false, 1449 | "Number": false, 1450 | "Object": false, 1451 | "parseFloat": false, 1452 | "parseInt": false, 1453 | "Promise": false, 1454 | "Proxy": false, 1455 | "RangeError": false, 1456 | "ReferenceError": false, 1457 | "Reflect": false, 1458 | "RegExp": false, 1459 | "Set": false, 1460 | "SharedArrayBuffer": false, 1461 | "String": false, 1462 | "Symbol": false, 1463 | "SyntaxError": false, 1464 | "TypeError": false, 1465 | "Uint16Array": false, 1466 | "Uint32Array": false, 1467 | "Uint8Array": false, 1468 | "Uint8ClampedArray": false, 1469 | "undefined": false, 1470 | "unescape": false, 1471 | "URIError": false, 1472 | "WeakMap": false, 1473 | "WeakSet": false 1474 | }, 1475 | "es2018": { 1476 | "Array": false, 1477 | "ArrayBuffer": false, 1478 | "Atomics": false, 1479 | "Boolean": false, 1480 | "DataView": false, 1481 | "Date": false, 1482 | "decodeURI": false, 1483 | "decodeURIComponent": false, 1484 | "encodeURI": false, 1485 | "encodeURIComponent": false, 1486 | "Error": false, 1487 | "escape": false, 1488 | "eval": false, 1489 | "EvalError": false, 1490 | "Float32Array": false, 1491 | "Float64Array": false, 1492 | "Function": false, 1493 | "Infinity": false, 1494 | "Int16Array": false, 1495 | "Int32Array": false, 1496 | "Int8Array": false, 1497 | "Intl": false, 1498 | "isFinite": false, 1499 | "isNaN": false, 1500 | "JSON": false, 1501 | "Map": false, 1502 | "Math": false, 1503 | "NaN": false, 1504 | "Number": false, 1505 | "Object": false, 1506 | "parseFloat": false, 1507 | "parseInt": false, 1508 | "Promise": false, 1509 | "Proxy": false, 1510 | "RangeError": false, 1511 | "ReferenceError": false, 1512 | "Reflect": false, 1513 | "RegExp": false, 1514 | "Set": false, 1515 | "SharedArrayBuffer": false, 1516 | "String": false, 1517 | "Symbol": false, 1518 | "SyntaxError": false, 1519 | "TypeError": false, 1520 | "Uint16Array": false, 1521 | "Uint32Array": false, 1522 | "Uint8Array": false, 1523 | "Uint8ClampedArray": false, 1524 | "undefined": false, 1525 | "unescape": false, 1526 | "URIError": false, 1527 | "WeakMap": false, 1528 | "WeakSet": false 1529 | }, 1530 | "es2019": { 1531 | "Array": false, 1532 | "ArrayBuffer": false, 1533 | "Atomics": false, 1534 | "Boolean": false, 1535 | "DataView": false, 1536 | "Date": false, 1537 | "decodeURI": false, 1538 | "decodeURIComponent": false, 1539 | "encodeURI": false, 1540 | "encodeURIComponent": false, 1541 | "Error": false, 1542 | "escape": false, 1543 | "eval": false, 1544 | "EvalError": false, 1545 | "Float32Array": false, 1546 | "Float64Array": false, 1547 | "Function": false, 1548 | "Infinity": false, 1549 | "Int16Array": false, 1550 | "Int32Array": false, 1551 | "Int8Array": false, 1552 | "Intl": false, 1553 | "isFinite": false, 1554 | "isNaN": false, 1555 | "JSON": false, 1556 | "Map": false, 1557 | "Math": false, 1558 | "NaN": false, 1559 | "Number": false, 1560 | "Object": false, 1561 | "parseFloat": false, 1562 | "parseInt": false, 1563 | "Promise": false, 1564 | "Proxy": false, 1565 | "RangeError": false, 1566 | "ReferenceError": false, 1567 | "Reflect": false, 1568 | "RegExp": false, 1569 | "Set": false, 1570 | "SharedArrayBuffer": false, 1571 | "String": false, 1572 | "Symbol": false, 1573 | "SyntaxError": false, 1574 | "TypeError": false, 1575 | "Uint16Array": false, 1576 | "Uint32Array": false, 1577 | "Uint8Array": false, 1578 | "Uint8ClampedArray": false, 1579 | "undefined": false, 1580 | "unescape": false, 1581 | "URIError": false, 1582 | "WeakMap": false, 1583 | "WeakSet": false 1584 | }, 1585 | "es2020": { 1586 | "Array": false, 1587 | "ArrayBuffer": false, 1588 | "Atomics": false, 1589 | "BigInt": false, 1590 | "BigInt64Array": false, 1591 | "BigUint64Array": false, 1592 | "Boolean": false, 1593 | "DataView": false, 1594 | "Date": false, 1595 | "decodeURI": false, 1596 | "decodeURIComponent": false, 1597 | "encodeURI": false, 1598 | "encodeURIComponent": false, 1599 | "Error": false, 1600 | "escape": false, 1601 | "eval": false, 1602 | "EvalError": false, 1603 | "Float32Array": false, 1604 | "Float64Array": false, 1605 | "Function": false, 1606 | "globalThis": false, 1607 | "Infinity": false, 1608 | "Int16Array": false, 1609 | "Int32Array": false, 1610 | "Int8Array": false, 1611 | "Intl": false, 1612 | "isFinite": false, 1613 | "isNaN": false, 1614 | "JSON": false, 1615 | "Map": false, 1616 | "Math": false, 1617 | "NaN": false, 1618 | "Number": false, 1619 | "Object": false, 1620 | "parseFloat": false, 1621 | "parseInt": false, 1622 | "Promise": false, 1623 | "Proxy": false, 1624 | "RangeError": false, 1625 | "ReferenceError": false, 1626 | "Reflect": false, 1627 | "RegExp": false, 1628 | "Set": false, 1629 | "SharedArrayBuffer": false, 1630 | "String": false, 1631 | "Symbol": false, 1632 | "SyntaxError": false, 1633 | "TypeError": false, 1634 | "Uint16Array": false, 1635 | "Uint32Array": false, 1636 | "Uint8Array": false, 1637 | "Uint8ClampedArray": false, 1638 | "undefined": false, 1639 | "unescape": false, 1640 | "URIError": false, 1641 | "WeakMap": false, 1642 | "WeakSet": false 1643 | }, 1644 | "es2021": { 1645 | "AggregateError": false, 1646 | "Array": false, 1647 | "ArrayBuffer": false, 1648 | "Atomics": false, 1649 | "BigInt": false, 1650 | "BigInt64Array": false, 1651 | "BigUint64Array": false, 1652 | "Boolean": false, 1653 | "DataView": false, 1654 | "Date": false, 1655 | "decodeURI": false, 1656 | "decodeURIComponent": false, 1657 | "encodeURI": false, 1658 | "encodeURIComponent": false, 1659 | "Error": false, 1660 | "escape": false, 1661 | "eval": false, 1662 | "EvalError": false, 1663 | "FinalizationRegistry": false, 1664 | "Float32Array": false, 1665 | "Float64Array": false, 1666 | "Function": false, 1667 | "globalThis": false, 1668 | "Infinity": false, 1669 | "Int16Array": false, 1670 | "Int32Array": false, 1671 | "Int8Array": false, 1672 | "Intl": false, 1673 | "isFinite": false, 1674 | "isNaN": false, 1675 | "JSON": false, 1676 | "Map": false, 1677 | "Math": false, 1678 | "NaN": false, 1679 | "Number": false, 1680 | "Object": false, 1681 | "parseFloat": false, 1682 | "parseInt": false, 1683 | "Promise": false, 1684 | "Proxy": false, 1685 | "RangeError": false, 1686 | "ReferenceError": false, 1687 | "Reflect": false, 1688 | "RegExp": false, 1689 | "Set": false, 1690 | "SharedArrayBuffer": false, 1691 | "String": false, 1692 | "Symbol": false, 1693 | "SyntaxError": false, 1694 | "TypeError": false, 1695 | "Uint16Array": false, 1696 | "Uint32Array": false, 1697 | "Uint8Array": false, 1698 | "Uint8ClampedArray": false, 1699 | "undefined": false, 1700 | "unescape": false, 1701 | "URIError": false, 1702 | "WeakMap": false, 1703 | "WeakRef": false, 1704 | "WeakSet": false 1705 | }, 1706 | "es2022": { 1707 | "AggregateError": false, 1708 | "Array": false, 1709 | "ArrayBuffer": false, 1710 | "Atomics": false, 1711 | "BigInt": false, 1712 | "BigInt64Array": false, 1713 | "BigUint64Array": false, 1714 | "Boolean": false, 1715 | "DataView": false, 1716 | "Date": false, 1717 | "decodeURI": false, 1718 | "decodeURIComponent": false, 1719 | "encodeURI": false, 1720 | "encodeURIComponent": false, 1721 | "Error": false, 1722 | "escape": false, 1723 | "eval": false, 1724 | "EvalError": false, 1725 | "FinalizationRegistry": false, 1726 | "Float32Array": false, 1727 | "Float64Array": false, 1728 | "Function": false, 1729 | "globalThis": false, 1730 | "Infinity": false, 1731 | "Int16Array": false, 1732 | "Int32Array": false, 1733 | "Int8Array": false, 1734 | "Intl": false, 1735 | "isFinite": false, 1736 | "isNaN": false, 1737 | "JSON": false, 1738 | "Map": false, 1739 | "Math": false, 1740 | "NaN": false, 1741 | "Number": false, 1742 | "Object": false, 1743 | "parseFloat": false, 1744 | "parseInt": false, 1745 | "Promise": false, 1746 | "Proxy": false, 1747 | "RangeError": false, 1748 | "ReferenceError": false, 1749 | "Reflect": false, 1750 | "RegExp": false, 1751 | "Set": false, 1752 | "SharedArrayBuffer": false, 1753 | "String": false, 1754 | "Symbol": false, 1755 | "SyntaxError": false, 1756 | "TypeError": false, 1757 | "Uint16Array": false, 1758 | "Uint32Array": false, 1759 | "Uint8Array": false, 1760 | "Uint8ClampedArray": false, 1761 | "undefined": false, 1762 | "unescape": false, 1763 | "URIError": false, 1764 | "WeakMap": false, 1765 | "WeakRef": false, 1766 | "WeakSet": false 1767 | }, 1768 | "es2023": { 1769 | "AggregateError": false, 1770 | "Array": false, 1771 | "ArrayBuffer": false, 1772 | "Atomics": false, 1773 | "BigInt": false, 1774 | "BigInt64Array": false, 1775 | "BigUint64Array": false, 1776 | "Boolean": false, 1777 | "DataView": false, 1778 | "Date": false, 1779 | "decodeURI": false, 1780 | "decodeURIComponent": false, 1781 | "encodeURI": false, 1782 | "encodeURIComponent": false, 1783 | "Error": false, 1784 | "escape": false, 1785 | "eval": false, 1786 | "EvalError": false, 1787 | "FinalizationRegistry": false, 1788 | "Float32Array": false, 1789 | "Float64Array": false, 1790 | "Function": false, 1791 | "globalThis": false, 1792 | "Infinity": false, 1793 | "Int16Array": false, 1794 | "Int32Array": false, 1795 | "Int8Array": false, 1796 | "Intl": false, 1797 | "isFinite": false, 1798 | "isNaN": false, 1799 | "JSON": false, 1800 | "Map": false, 1801 | "Math": false, 1802 | "NaN": false, 1803 | "Number": false, 1804 | "Object": false, 1805 | "parseFloat": false, 1806 | "parseInt": false, 1807 | "Promise": false, 1808 | "Proxy": false, 1809 | "RangeError": false, 1810 | "ReferenceError": false, 1811 | "Reflect": false, 1812 | "RegExp": false, 1813 | "Set": false, 1814 | "SharedArrayBuffer": false, 1815 | "String": false, 1816 | "Symbol": false, 1817 | "SyntaxError": false, 1818 | "TypeError": false, 1819 | "Uint16Array": false, 1820 | "Uint32Array": false, 1821 | "Uint8Array": false, 1822 | "Uint8ClampedArray": false, 1823 | "undefined": false, 1824 | "unescape": false, 1825 | "URIError": false, 1826 | "WeakMap": false, 1827 | "WeakRef": false, 1828 | "WeakSet": false 1829 | }, 1830 | "es2024": { 1831 | "AggregateError": false, 1832 | "Array": false, 1833 | "ArrayBuffer": false, 1834 | "Atomics": false, 1835 | "BigInt": false, 1836 | "BigInt64Array": false, 1837 | "BigUint64Array": false, 1838 | "Boolean": false, 1839 | "DataView": false, 1840 | "Date": false, 1841 | "decodeURI": false, 1842 | "decodeURIComponent": false, 1843 | "encodeURI": false, 1844 | "encodeURIComponent": false, 1845 | "Error": false, 1846 | "escape": false, 1847 | "eval": false, 1848 | "EvalError": false, 1849 | "FinalizationRegistry": false, 1850 | "Float32Array": false, 1851 | "Float64Array": false, 1852 | "Function": false, 1853 | "globalThis": false, 1854 | "Infinity": false, 1855 | "Int16Array": false, 1856 | "Int32Array": false, 1857 | "Int8Array": false, 1858 | "Intl": false, 1859 | "isFinite": false, 1860 | "isNaN": false, 1861 | "JSON": false, 1862 | "Map": false, 1863 | "Math": false, 1864 | "NaN": false, 1865 | "Number": false, 1866 | "Object": false, 1867 | "parseFloat": false, 1868 | "parseInt": false, 1869 | "Promise": false, 1870 | "Proxy": false, 1871 | "RangeError": false, 1872 | "ReferenceError": false, 1873 | "Reflect": false, 1874 | "RegExp": false, 1875 | "Set": false, 1876 | "SharedArrayBuffer": false, 1877 | "String": false, 1878 | "Symbol": false, 1879 | "SyntaxError": false, 1880 | "TypeError": false, 1881 | "Uint16Array": false, 1882 | "Uint32Array": false, 1883 | "Uint8Array": false, 1884 | "Uint8ClampedArray": false, 1885 | "undefined": false, 1886 | "unescape": false, 1887 | "URIError": false, 1888 | "WeakMap": false, 1889 | "WeakRef": false, 1890 | "WeakSet": false 1891 | }, 1892 | "es2025": { 1893 | "AggregateError": false, 1894 | "Array": false, 1895 | "ArrayBuffer": false, 1896 | "Atomics": false, 1897 | "BigInt": false, 1898 | "BigInt64Array": false, 1899 | "BigUint64Array": false, 1900 | "Boolean": false, 1901 | "DataView": false, 1902 | "Date": false, 1903 | "decodeURI": false, 1904 | "decodeURIComponent": false, 1905 | "encodeURI": false, 1906 | "encodeURIComponent": false, 1907 | "Error": false, 1908 | "escape": false, 1909 | "eval": false, 1910 | "EvalError": false, 1911 | "FinalizationRegistry": false, 1912 | "Float16Array": false, 1913 | "Float32Array": false, 1914 | "Float64Array": false, 1915 | "Function": false, 1916 | "globalThis": false, 1917 | "Infinity": false, 1918 | "Int16Array": false, 1919 | "Int32Array": false, 1920 | "Int8Array": false, 1921 | "Intl": false, 1922 | "isFinite": false, 1923 | "isNaN": false, 1924 | "Iterator": false, 1925 | "JSON": false, 1926 | "Map": false, 1927 | "Math": false, 1928 | "NaN": false, 1929 | "Number": false, 1930 | "Object": false, 1931 | "parseFloat": false, 1932 | "parseInt": false, 1933 | "Promise": false, 1934 | "Proxy": false, 1935 | "RangeError": false, 1936 | "ReferenceError": false, 1937 | "Reflect": false, 1938 | "RegExp": false, 1939 | "Set": false, 1940 | "SharedArrayBuffer": false, 1941 | "String": false, 1942 | "Symbol": false, 1943 | "SyntaxError": false, 1944 | "TypeError": false, 1945 | "Uint16Array": false, 1946 | "Uint32Array": false, 1947 | "Uint8Array": false, 1948 | "Uint8ClampedArray": false, 1949 | "undefined": false, 1950 | "unescape": false, 1951 | "URIError": false, 1952 | "WeakMap": false, 1953 | "WeakRef": false, 1954 | "WeakSet": false 1955 | }, 1956 | "es3": { 1957 | "Array": false, 1958 | "Boolean": false, 1959 | "Date": false, 1960 | "decodeURI": false, 1961 | "decodeURIComponent": false, 1962 | "encodeURI": false, 1963 | "encodeURIComponent": false, 1964 | "Error": false, 1965 | "escape": false, 1966 | "eval": false, 1967 | "EvalError": false, 1968 | "Function": false, 1969 | "Infinity": false, 1970 | "isFinite": false, 1971 | "isNaN": false, 1972 | "Math": false, 1973 | "NaN": false, 1974 | "Number": false, 1975 | "Object": false, 1976 | "parseFloat": false, 1977 | "parseInt": false, 1978 | "RangeError": false, 1979 | "ReferenceError": false, 1980 | "RegExp": false, 1981 | "String": false, 1982 | "SyntaxError": false, 1983 | "TypeError": false, 1984 | "undefined": false, 1985 | "unescape": false, 1986 | "URIError": false 1987 | }, 1988 | "es5": { 1989 | "Array": false, 1990 | "Boolean": false, 1991 | "Date": false, 1992 | "decodeURI": false, 1993 | "decodeURIComponent": false, 1994 | "encodeURI": false, 1995 | "encodeURIComponent": false, 1996 | "Error": false, 1997 | "escape": false, 1998 | "eval": false, 1999 | "EvalError": false, 2000 | "Function": false, 2001 | "Infinity": false, 2002 | "isFinite": false, 2003 | "isNaN": false, 2004 | "JSON": false, 2005 | "Math": false, 2006 | "NaN": false, 2007 | "Number": false, 2008 | "Object": false, 2009 | "parseFloat": false, 2010 | "parseInt": false, 2011 | "RangeError": false, 2012 | "ReferenceError": false, 2013 | "RegExp": false, 2014 | "String": false, 2015 | "SyntaxError": false, 2016 | "TypeError": false, 2017 | "undefined": false, 2018 | "unescape": false, 2019 | "URIError": false 2020 | }, 2021 | "greasemonkey": { 2022 | "cloneInto": false, 2023 | "createObjectIn": false, 2024 | "exportFunction": false, 2025 | "GM": false, 2026 | "GM_addElement": false, 2027 | "GM_addStyle": false, 2028 | "GM_addValueChangeListener": false, 2029 | "GM_deleteValue": false, 2030 | "GM_deleteValues": false, 2031 | "GM_download": false, 2032 | "GM_getResourceText": false, 2033 | "GM_getResourceURL": false, 2034 | "GM_getTab": false, 2035 | "GM_getTabs": false, 2036 | "GM_getValue": false, 2037 | "GM_getValues": false, 2038 | "GM_info": false, 2039 | "GM_listValues": false, 2040 | "GM_log": false, 2041 | "GM_notification": false, 2042 | "GM_openInTab": false, 2043 | "GM_registerMenuCommand": false, 2044 | "GM_removeValueChangeListener": false, 2045 | "GM_saveTab": false, 2046 | "GM_setClipboard": false, 2047 | "GM_setValue": false, 2048 | "GM_setValues": false, 2049 | "GM_unregisterMenuCommand": false, 2050 | "GM_xmlhttpRequest": false, 2051 | "unsafeWindow": false 2052 | }, 2053 | "jasmine": { 2054 | "afterAll": false, 2055 | "afterEach": false, 2056 | "beforeAll": false, 2057 | "beforeEach": false, 2058 | "describe": false, 2059 | "expect": false, 2060 | "expectAsync": false, 2061 | "fail": false, 2062 | "fdescribe": false, 2063 | "fit": false, 2064 | "it": false, 2065 | "jasmine": false, 2066 | "pending": false, 2067 | "runs": false, 2068 | "spyOn": false, 2069 | "spyOnAllFunctions": false, 2070 | "spyOnProperty": false, 2071 | "waits": false, 2072 | "waitsFor": false, 2073 | "xdescribe": false, 2074 | "xit": false 2075 | }, 2076 | "jest": { 2077 | "afterAll": false, 2078 | "afterEach": false, 2079 | "beforeAll": false, 2080 | "beforeEach": false, 2081 | "describe": false, 2082 | "expect": false, 2083 | "fit": false, 2084 | "it": false, 2085 | "jest": false, 2086 | "test": false, 2087 | "xdescribe": false, 2088 | "xit": false, 2089 | "xtest": false 2090 | }, 2091 | "jquery": { 2092 | "$": false, 2093 | "jQuery": false 2094 | }, 2095 | "meteor": { 2096 | "$": false, 2097 | "Accounts": false, 2098 | "AccountsClient": false, 2099 | "AccountsCommon": false, 2100 | "AccountsServer": false, 2101 | "App": false, 2102 | "Assets": false, 2103 | "Blaze": false, 2104 | "check": false, 2105 | "Cordova": false, 2106 | "DDP": false, 2107 | "DDPRateLimiter": false, 2108 | "DDPServer": false, 2109 | "Deps": false, 2110 | "EJSON": false, 2111 | "Email": false, 2112 | "HTTP": false, 2113 | "Log": false, 2114 | "Match": false, 2115 | "Meteor": false, 2116 | "Mongo": false, 2117 | "MongoInternals": false, 2118 | "Npm": false, 2119 | "Package": false, 2120 | "Plugin": false, 2121 | "process": false, 2122 | "Random": false, 2123 | "ReactiveDict": false, 2124 | "ReactiveVar": false, 2125 | "Router": false, 2126 | "ServiceConfiguration": false, 2127 | "Session": false, 2128 | "share": false, 2129 | "Spacebars": false, 2130 | "Template": false, 2131 | "Tinytest": false, 2132 | "Tracker": false, 2133 | "UI": false, 2134 | "Utils": false, 2135 | "WebApp": false, 2136 | "WebAppInternals": false 2137 | }, 2138 | "mocha": { 2139 | "after": false, 2140 | "afterEach": false, 2141 | "before": false, 2142 | "beforeEach": false, 2143 | "context": false, 2144 | "describe": false, 2145 | "it": false, 2146 | "mocha": false, 2147 | "run": false, 2148 | "setup": false, 2149 | "specify": false, 2150 | "suite": false, 2151 | "suiteSetup": false, 2152 | "suiteTeardown": false, 2153 | "teardown": false, 2154 | "test": false, 2155 | "xcontext": false, 2156 | "xdescribe": false, 2157 | "xit": false, 2158 | "xspecify": false 2159 | }, 2160 | "mongo": { 2161 | "_isWindows": false, 2162 | "_rand": false, 2163 | "BulkWriteResult": false, 2164 | "cat": false, 2165 | "cd": false, 2166 | "connect": false, 2167 | "db": false, 2168 | "getHostName": false, 2169 | "getMemInfo": false, 2170 | "hostname": false, 2171 | "ISODate": false, 2172 | "listFiles": false, 2173 | "load": false, 2174 | "ls": false, 2175 | "md5sumFile": false, 2176 | "mkdir": false, 2177 | "Mongo": false, 2178 | "NumberInt": false, 2179 | "NumberLong": false, 2180 | "ObjectId": false, 2181 | "PlanCache": false, 2182 | "print": false, 2183 | "printjson": false, 2184 | "pwd": false, 2185 | "quit": false, 2186 | "removeFile": false, 2187 | "rs": false, 2188 | "sh": false, 2189 | "UUID": false, 2190 | "version": false, 2191 | "WriteResult": false 2192 | }, 2193 | "nashorn": { 2194 | "__DIR__": false, 2195 | "__FILE__": false, 2196 | "__LINE__": false, 2197 | "com": false, 2198 | "edu": false, 2199 | "exit": false, 2200 | "java": false, 2201 | "Java": false, 2202 | "javafx": false, 2203 | "JavaImporter": false, 2204 | "javax": false, 2205 | "JSAdapter": false, 2206 | "load": false, 2207 | "loadWithNewGlobal": false, 2208 | "org": false, 2209 | "Packages": false, 2210 | "print": false, 2211 | "quit": false 2212 | }, 2213 | "node": { 2214 | "__dirname": false, 2215 | "__filename": false, 2216 | "AbortController": false, 2217 | "AbortSignal": false, 2218 | "AsyncDisposableStack": false, 2219 | "atob": false, 2220 | "Blob": false, 2221 | "BroadcastChannel": false, 2222 | "btoa": false, 2223 | "Buffer": false, 2224 | "ByteLengthQueuingStrategy": false, 2225 | "clearImmediate": false, 2226 | "clearInterval": false, 2227 | "clearTimeout": false, 2228 | "CloseEvent": false, 2229 | "CompressionStream": false, 2230 | "console": false, 2231 | "CountQueuingStrategy": false, 2232 | "crypto": false, 2233 | "Crypto": false, 2234 | "CryptoKey": false, 2235 | "CustomEvent": false, 2236 | "DecompressionStream": false, 2237 | "DisposableStack": false, 2238 | "DOMException": false, 2239 | "Event": false, 2240 | "EventTarget": false, 2241 | "exports": true, 2242 | "fetch": false, 2243 | "File": false, 2244 | "FormData": false, 2245 | "global": false, 2246 | "Headers": false, 2247 | "MessageChannel": false, 2248 | "MessageEvent": false, 2249 | "MessagePort": false, 2250 | "module": false, 2251 | "navigator": false, 2252 | "Navigator": false, 2253 | "performance": false, 2254 | "Performance": false, 2255 | "PerformanceEntry": false, 2256 | "PerformanceMark": false, 2257 | "PerformanceMeasure": false, 2258 | "PerformanceObserver": false, 2259 | "PerformanceObserverEntryList": false, 2260 | "PerformanceResourceTiming": false, 2261 | "process": false, 2262 | "queueMicrotask": false, 2263 | "ReadableByteStreamController": false, 2264 | "ReadableStream": false, 2265 | "ReadableStreamBYOBReader": false, 2266 | "ReadableStreamBYOBRequest": false, 2267 | "ReadableStreamDefaultController": false, 2268 | "ReadableStreamDefaultReader": false, 2269 | "Request": false, 2270 | "require": false, 2271 | "Response": false, 2272 | "setImmediate": false, 2273 | "setInterval": false, 2274 | "setTimeout": false, 2275 | "structuredClone": false, 2276 | "SubtleCrypto": false, 2277 | "SuppressedError": false, 2278 | "TextDecoder": false, 2279 | "TextDecoderStream": false, 2280 | "TextEncoder": false, 2281 | "TextEncoderStream": false, 2282 | "TransformStream": false, 2283 | "TransformStreamDefaultController": false, 2284 | "URL": false, 2285 | "URLPattern": false, 2286 | "URLSearchParams": false, 2287 | "WebAssembly": false, 2288 | "WebSocket": false, 2289 | "WritableStream": false, 2290 | "WritableStreamDefaultController": false, 2291 | "WritableStreamDefaultWriter": false 2292 | }, 2293 | "nodeBuiltin": { 2294 | "AbortController": false, 2295 | "AbortSignal": false, 2296 | "AsyncDisposableStack": false, 2297 | "atob": false, 2298 | "Blob": false, 2299 | "BroadcastChannel": false, 2300 | "btoa": false, 2301 | "Buffer": false, 2302 | "ByteLengthQueuingStrategy": false, 2303 | "clearImmediate": false, 2304 | "clearInterval": false, 2305 | "clearTimeout": false, 2306 | "CloseEvent": false, 2307 | "CompressionStream": false, 2308 | "console": false, 2309 | "CountQueuingStrategy": false, 2310 | "crypto": false, 2311 | "Crypto": false, 2312 | "CryptoKey": false, 2313 | "CustomEvent": false, 2314 | "DecompressionStream": false, 2315 | "DisposableStack": false, 2316 | "DOMException": false, 2317 | "Event": false, 2318 | "EventTarget": false, 2319 | "fetch": false, 2320 | "File": false, 2321 | "FormData": false, 2322 | "global": false, 2323 | "Headers": false, 2324 | "MessageChannel": false, 2325 | "MessageEvent": false, 2326 | "MessagePort": false, 2327 | "navigator": false, 2328 | "Navigator": false, 2329 | "performance": false, 2330 | "Performance": false, 2331 | "PerformanceEntry": false, 2332 | "PerformanceMark": false, 2333 | "PerformanceMeasure": false, 2334 | "PerformanceObserver": false, 2335 | "PerformanceObserverEntryList": false, 2336 | "PerformanceResourceTiming": false, 2337 | "process": false, 2338 | "queueMicrotask": false, 2339 | "ReadableByteStreamController": false, 2340 | "ReadableStream": false, 2341 | "ReadableStreamBYOBReader": false, 2342 | "ReadableStreamBYOBRequest": false, 2343 | "ReadableStreamDefaultController": false, 2344 | "ReadableStreamDefaultReader": false, 2345 | "Request": false, 2346 | "Response": false, 2347 | "setImmediate": false, 2348 | "setInterval": false, 2349 | "setTimeout": false, 2350 | "structuredClone": false, 2351 | "SubtleCrypto": false, 2352 | "SuppressedError": false, 2353 | "TextDecoder": false, 2354 | "TextDecoderStream": false, 2355 | "TextEncoder": false, 2356 | "TextEncoderStream": false, 2357 | "TransformStream": false, 2358 | "TransformStreamDefaultController": false, 2359 | "URL": false, 2360 | "URLPattern": false, 2361 | "URLSearchParams": false, 2362 | "WebAssembly": false, 2363 | "WebSocket": false, 2364 | "WritableStream": false, 2365 | "WritableStreamDefaultController": false, 2366 | "WritableStreamDefaultWriter": false 2367 | }, 2368 | "phantomjs": { 2369 | "console": true, 2370 | "exports": true, 2371 | "phantom": true, 2372 | "require": true, 2373 | "WebPage": true 2374 | }, 2375 | "prototypejs": { 2376 | "$": false, 2377 | "$$": false, 2378 | "$A": false, 2379 | "$break": false, 2380 | "$continue": false, 2381 | "$F": false, 2382 | "$H": false, 2383 | "$R": false, 2384 | "$w": false, 2385 | "Abstract": false, 2386 | "Ajax": false, 2387 | "Autocompleter": false, 2388 | "Builder": false, 2389 | "Class": false, 2390 | "Control": false, 2391 | "Draggable": false, 2392 | "Draggables": false, 2393 | "Droppables": false, 2394 | "Effect": false, 2395 | "Element": false, 2396 | "Enumerable": false, 2397 | "Event": false, 2398 | "Field": false, 2399 | "Form": false, 2400 | "Hash": false, 2401 | "Insertion": false, 2402 | "ObjectRange": false, 2403 | "PeriodicalExecuter": false, 2404 | "Position": false, 2405 | "Prototype": false, 2406 | "Scriptaculous": false, 2407 | "Selector": false, 2408 | "Sortable": false, 2409 | "SortableObserver": false, 2410 | "Sound": false, 2411 | "Template": false, 2412 | "Toggle": false, 2413 | "Try": false 2414 | }, 2415 | "protractor": { 2416 | "$": false, 2417 | "$$": false, 2418 | "browser": false, 2419 | "by": false, 2420 | "By": false, 2421 | "DartObject": false, 2422 | "element": false, 2423 | "protractor": false 2424 | }, 2425 | "qunit": { 2426 | "asyncTest": false, 2427 | "deepEqual": false, 2428 | "equal": false, 2429 | "expect": false, 2430 | "module": false, 2431 | "notDeepEqual": false, 2432 | "notEqual": false, 2433 | "notOk": false, 2434 | "notPropEqual": false, 2435 | "notStrictEqual": false, 2436 | "ok": false, 2437 | "propEqual": false, 2438 | "QUnit": false, 2439 | "raises": false, 2440 | "start": false, 2441 | "stop": false, 2442 | "strictEqual": false, 2443 | "test": false, 2444 | "throws": false 2445 | }, 2446 | "rhino": { 2447 | "defineClass": false, 2448 | "deserialize": false, 2449 | "gc": false, 2450 | "help": false, 2451 | "importClass": false, 2452 | "importPackage": false, 2453 | "java": false, 2454 | "load": false, 2455 | "loadClass": false, 2456 | "Packages": false, 2457 | "print": false, 2458 | "quit": false, 2459 | "readFile": false, 2460 | "readUrl": false, 2461 | "runCommand": false, 2462 | "seal": false, 2463 | "serialize": false, 2464 | "spawn": false, 2465 | "sync": false, 2466 | "toint32": false, 2467 | "version": false 2468 | }, 2469 | "serviceworker": { 2470 | "AbortController": false, 2471 | "AbortPaymentEvent": false, 2472 | "AbortSignal": false, 2473 | "addEventListener": false, 2474 | "ai": false, 2475 | "AI": false, 2476 | "AICreateMonitor": false, 2477 | "AsyncDisposableStack": false, 2478 | "atob": false, 2479 | "BackgroundFetchEvent": false, 2480 | "BackgroundFetchManager": false, 2481 | "BackgroundFetchRecord": false, 2482 | "BackgroundFetchRegistration": false, 2483 | "BackgroundFetchUpdateUIEvent": false, 2484 | "BarcodeDetector": false, 2485 | "Blob": false, 2486 | "BroadcastChannel": false, 2487 | "btoa": false, 2488 | "ByteLengthQueuingStrategy": false, 2489 | "Cache": false, 2490 | "caches": false, 2491 | "CacheStorage": false, 2492 | "CanMakePaymentEvent": false, 2493 | "CanvasGradient": false, 2494 | "CanvasPattern": false, 2495 | "clearInterval": false, 2496 | "clearTimeout": false, 2497 | "Client": false, 2498 | "clients": false, 2499 | "Clients": false, 2500 | "CloseEvent": false, 2501 | "CompressionStream": false, 2502 | "console": false, 2503 | "cookieStore": false, 2504 | "CookieStore": false, 2505 | "CookieStoreManager": false, 2506 | "CountQueuingStrategy": false, 2507 | "createImageBitmap": false, 2508 | "CropTarget": false, 2509 | "crossOriginIsolated": false, 2510 | "crypto": false, 2511 | "Crypto": false, 2512 | "CryptoKey": false, 2513 | "CSSSkewX": false, 2514 | "CSSSkewY": false, 2515 | "CustomEvent": false, 2516 | "DecompressionStream": false, 2517 | "dispatchEvent": false, 2518 | "DisposableStack": false, 2519 | "DOMException": false, 2520 | "DOMMatrix": false, 2521 | "DOMMatrixReadOnly": false, 2522 | "DOMPoint": false, 2523 | "DOMPointReadOnly": false, 2524 | "DOMQuad": false, 2525 | "DOMRect": false, 2526 | "DOMRectReadOnly": false, 2527 | "DOMStringList": false, 2528 | "ErrorEvent": false, 2529 | "Event": false, 2530 | "EventSource": false, 2531 | "EventTarget": false, 2532 | "ExtendableCookieChangeEvent": false, 2533 | "ExtendableEvent": false, 2534 | "ExtendableMessageEvent": false, 2535 | "fetch": false, 2536 | "FetchEvent": false, 2537 | "File": false, 2538 | "FileList": false, 2539 | "FileReader": false, 2540 | "FileSystemDirectoryHandle": false, 2541 | "FileSystemFileHandle": false, 2542 | "FileSystemHandle": false, 2543 | "FileSystemWritableFileStream": false, 2544 | "FontFace": false, 2545 | "fonts": false, 2546 | "FormData": false, 2547 | "GPU": false, 2548 | "GPUAdapter": false, 2549 | "GPUAdapterInfo": false, 2550 | "GPUBindGroup": false, 2551 | "GPUBindGroupLayout": false, 2552 | "GPUBuffer": false, 2553 | "GPUBufferUsage": false, 2554 | "GPUCanvasContext": false, 2555 | "GPUColorWrite": false, 2556 | "GPUCommandBuffer": false, 2557 | "GPUCommandEncoder": false, 2558 | "GPUCompilationInfo": false, 2559 | "GPUCompilationMessage": false, 2560 | "GPUComputePassEncoder": false, 2561 | "GPUComputePipeline": false, 2562 | "GPUDevice": false, 2563 | "GPUDeviceLostInfo": false, 2564 | "GPUError": false, 2565 | "GPUExternalTexture": false, 2566 | "GPUInternalError": false, 2567 | "GPUMapMode": false, 2568 | "GPUOutOfMemoryError": false, 2569 | "GPUPipelineError": false, 2570 | "GPUPipelineLayout": false, 2571 | "GPUQuerySet": false, 2572 | "GPUQueue": false, 2573 | "GPURenderBundle": false, 2574 | "GPURenderBundleEncoder": false, 2575 | "GPURenderPassEncoder": false, 2576 | "GPURenderPipeline": false, 2577 | "GPUSampler": false, 2578 | "GPUShaderModule": false, 2579 | "GPUShaderStage": false, 2580 | "GPUSupportedFeatures": false, 2581 | "GPUSupportedLimits": false, 2582 | "GPUTexture": false, 2583 | "GPUTextureUsage": false, 2584 | "GPUTextureView": false, 2585 | "GPUUncapturedErrorEvent": false, 2586 | "GPUValidationError": false, 2587 | "Headers": false, 2588 | "IDBCursor": false, 2589 | "IDBCursorWithValue": false, 2590 | "IDBDatabase": false, 2591 | "IDBFactory": false, 2592 | "IDBIndex": false, 2593 | "IDBKeyRange": false, 2594 | "IDBObjectStore": false, 2595 | "IDBOpenDBRequest": false, 2596 | "IDBRequest": false, 2597 | "IDBTransaction": false, 2598 | "IDBVersionChangeEvent": false, 2599 | "ImageBitmap": false, 2600 | "ImageBitmapRenderingContext": false, 2601 | "ImageData": false, 2602 | "importScripts": false, 2603 | "indexedDB": false, 2604 | "InstallEvent": false, 2605 | "isSecureContext": false, 2606 | "LanguageDetector": false, 2607 | "location": false, 2608 | "Lock": false, 2609 | "LockManager": false, 2610 | "MediaCapabilities": false, 2611 | "MessageChannel": false, 2612 | "MessageEvent": false, 2613 | "MessagePort": false, 2614 | "NavigationPreloadManager": false, 2615 | "navigator": false, 2616 | "NavigatorUAData": false, 2617 | "NetworkInformation": false, 2618 | "Notification": false, 2619 | "NotificationEvent": false, 2620 | "Observable": false, 2621 | "OffscreenCanvas": false, 2622 | "OffscreenCanvasRenderingContext2D": false, 2623 | "onabortpayment": true, 2624 | "onactivate": true, 2625 | "onbackgroundfetchabort": true, 2626 | "onbackgroundfetchclick": true, 2627 | "onbackgroundfetchfail": true, 2628 | "onbackgroundfetchsuccess": true, 2629 | "oncanmakepayment": true, 2630 | "oncookiechange": true, 2631 | "onerror": true, 2632 | "onfetch": true, 2633 | "oninstall": true, 2634 | "onlanguagechange": true, 2635 | "onmessage": true, 2636 | "onmessageerror": true, 2637 | "onnotificationclick": true, 2638 | "onnotificationclose": true, 2639 | "onpaymentrequest": true, 2640 | "onperiodicsync": true, 2641 | "onpush": true, 2642 | "onpushsubscriptionchange": true, 2643 | "onrejectionhandled": true, 2644 | "onsync": true, 2645 | "onunhandledrejection": true, 2646 | "origin": false, 2647 | "Path2D": false, 2648 | "PaymentRequestEvent": false, 2649 | "performance": false, 2650 | "Performance": false, 2651 | "PerformanceEntry": false, 2652 | "PerformanceMark": false, 2653 | "PerformanceMeasure": false, 2654 | "PerformanceObserver": false, 2655 | "PerformanceObserverEntryList": false, 2656 | "PerformanceResourceTiming": false, 2657 | "PerformanceServerTiming": false, 2658 | "PeriodicSyncEvent": false, 2659 | "PeriodicSyncManager": false, 2660 | "Permissions": false, 2661 | "PermissionStatus": false, 2662 | "PromiseRejectionEvent": false, 2663 | "PushEvent": false, 2664 | "PushManager": false, 2665 | "PushMessageData": false, 2666 | "PushSubscription": false, 2667 | "PushSubscriptionOptions": false, 2668 | "queueMicrotask": false, 2669 | "ReadableByteStreamController": false, 2670 | "ReadableStream": false, 2671 | "ReadableStreamBYOBReader": false, 2672 | "ReadableStreamBYOBRequest": false, 2673 | "ReadableStreamDefaultController": false, 2674 | "ReadableStreamDefaultReader": false, 2675 | "registration": false, 2676 | "removeEventListener": false, 2677 | "ReportBody": false, 2678 | "reportError": false, 2679 | "ReportingObserver": false, 2680 | "Request": false, 2681 | "Response": false, 2682 | "RestrictionTarget": false, 2683 | "scheduler": false, 2684 | "Scheduler": false, 2685 | "SecurityPolicyViolationEvent": false, 2686 | "self": false, 2687 | "serviceWorker": false, 2688 | "ServiceWorker": false, 2689 | "ServiceWorkerGlobalScope": false, 2690 | "ServiceWorkerRegistration": false, 2691 | "setInterval": false, 2692 | "setTimeout": false, 2693 | "skipWaiting": false, 2694 | "StorageBucket": false, 2695 | "StorageBucketManager": false, 2696 | "StorageManager": false, 2697 | "structuredClone": false, 2698 | "Subscriber": false, 2699 | "SubtleCrypto": false, 2700 | "SuppressedError": false, 2701 | "SyncEvent": false, 2702 | "SyncManager": false, 2703 | "TaskController": false, 2704 | "TaskPriorityChangeEvent": false, 2705 | "TaskSignal": false, 2706 | "TextDecoder": false, 2707 | "TextDecoderStream": false, 2708 | "TextEncoder": false, 2709 | "TextEncoderStream": false, 2710 | "TextMetrics": false, 2711 | "TransformStream": false, 2712 | "TransformStreamDefaultController": false, 2713 | "TrustedHTML": false, 2714 | "TrustedScript": false, 2715 | "TrustedScriptURL": false, 2716 | "TrustedTypePolicy": false, 2717 | "TrustedTypePolicyFactory": false, 2718 | "trustedTypes": false, 2719 | "URL": false, 2720 | "URLPattern": false, 2721 | "URLSearchParams": false, 2722 | "UserActivation": false, 2723 | "WebAssembly": false, 2724 | "WebGL2RenderingContext": false, 2725 | "WebGLActiveInfo": false, 2726 | "WebGLBuffer": false, 2727 | "WebGLContextEvent": false, 2728 | "WebGLFramebuffer": false, 2729 | "WebGLObject": false, 2730 | "WebGLProgram": false, 2731 | "WebGLQuery": false, 2732 | "WebGLRenderbuffer": false, 2733 | "WebGLRenderingContext": false, 2734 | "WebGLSampler": false, 2735 | "WebGLShader": false, 2736 | "WebGLShaderPrecisionFormat": false, 2737 | "WebGLSync": false, 2738 | "WebGLTexture": false, 2739 | "WebGLTransformFeedback": false, 2740 | "WebGLUniformLocation": false, 2741 | "WebGLVertexArrayObject": false, 2742 | "WebSocket": false, 2743 | "WebSocketError": false, 2744 | "WebSocketStream": false, 2745 | "WebTransport": false, 2746 | "WebTransportBidirectionalStream": false, 2747 | "WebTransportDatagramDuplexStream": false, 2748 | "WebTransportError": false, 2749 | "WGSLLanguageFeatures": false, 2750 | "when": false, 2751 | "WindowClient": false, 2752 | "WorkerGlobalScope": false, 2753 | "WorkerLocation": false, 2754 | "WorkerNavigator": false, 2755 | "WritableStream": false, 2756 | "WritableStreamDefaultController": false, 2757 | "WritableStreamDefaultWriter": false 2758 | }, 2759 | "shared-node-browser": { 2760 | "AbortController": false, 2761 | "AbortSignal": false, 2762 | "AsyncDisposableStack": false, 2763 | "atob": false, 2764 | "Blob": false, 2765 | "BroadcastChannel": false, 2766 | "btoa": false, 2767 | "ByteLengthQueuingStrategy": false, 2768 | "clearInterval": false, 2769 | "clearTimeout": false, 2770 | "CloseEvent": false, 2771 | "CompressionStream": false, 2772 | "console": false, 2773 | "CountQueuingStrategy": false, 2774 | "crypto": false, 2775 | "Crypto": false, 2776 | "CryptoKey": false, 2777 | "CustomEvent": false, 2778 | "DecompressionStream": false, 2779 | "DisposableStack": false, 2780 | "DOMException": false, 2781 | "Event": false, 2782 | "EventTarget": false, 2783 | "fetch": false, 2784 | "File": false, 2785 | "FormData": false, 2786 | "Headers": false, 2787 | "MessageChannel": false, 2788 | "MessageEvent": false, 2789 | "MessagePort": false, 2790 | "navigator": false, 2791 | "Navigator": false, 2792 | "performance": false, 2793 | "Performance": false, 2794 | "PerformanceEntry": false, 2795 | "PerformanceMark": false, 2796 | "PerformanceMeasure": false, 2797 | "PerformanceObserver": false, 2798 | "PerformanceObserverEntryList": false, 2799 | "PerformanceResourceTiming": false, 2800 | "queueMicrotask": false, 2801 | "ReadableByteStreamController": false, 2802 | "ReadableStream": false, 2803 | "ReadableStreamBYOBReader": false, 2804 | "ReadableStreamBYOBRequest": false, 2805 | "ReadableStreamDefaultController": false, 2806 | "ReadableStreamDefaultReader": false, 2807 | "Request": false, 2808 | "Response": false, 2809 | "setInterval": false, 2810 | "setTimeout": false, 2811 | "structuredClone": false, 2812 | "SubtleCrypto": false, 2813 | "SuppressedError": false, 2814 | "TextDecoder": false, 2815 | "TextDecoderStream": false, 2816 | "TextEncoder": false, 2817 | "TextEncoderStream": false, 2818 | "TransformStream": false, 2819 | "TransformStreamDefaultController": false, 2820 | "URL": false, 2821 | "URLPattern": false, 2822 | "URLSearchParams": false, 2823 | "WebAssembly": false, 2824 | "WebSocket": false, 2825 | "WritableStream": false, 2826 | "WritableStreamDefaultController": false, 2827 | "WritableStreamDefaultWriter": false 2828 | }, 2829 | "shelljs": { 2830 | "cat": false, 2831 | "cd": false, 2832 | "chmod": false, 2833 | "cmd": false, 2834 | "config": false, 2835 | "cp": false, 2836 | "dirs": false, 2837 | "echo": false, 2838 | "env": false, 2839 | "error": false, 2840 | "errorCode": false, 2841 | "exec": false, 2842 | "exit": false, 2843 | "find": false, 2844 | "grep": false, 2845 | "head": false, 2846 | "ln": false, 2847 | "ls": false, 2848 | "mkdir": false, 2849 | "mv": false, 2850 | "popd": false, 2851 | "pushd": false, 2852 | "pwd": false, 2853 | "rm": false, 2854 | "sed": false, 2855 | "set": false, 2856 | "ShellString": false, 2857 | "sort": false, 2858 | "tail": false, 2859 | "tempdir": false, 2860 | "test": false, 2861 | "touch": false, 2862 | "uniq": false, 2863 | "which": false 2864 | }, 2865 | "vitest": { 2866 | "afterAll": false, 2867 | "afterEach": false, 2868 | "assert": false, 2869 | "assertType": false, 2870 | "beforeAll": false, 2871 | "beforeEach": false, 2872 | "chai": false, 2873 | "describe": false, 2874 | "expect": false, 2875 | "expectTypeOf": false, 2876 | "it": false, 2877 | "onTestFailed": false, 2878 | "onTestFinished": false, 2879 | "suite": false, 2880 | "test": false, 2881 | "vi": false, 2882 | "vitest": false 2883 | }, 2884 | "webextensions": { 2885 | "browser": false, 2886 | "chrome": false, 2887 | "opr": false 2888 | }, 2889 | "worker": { 2890 | "AbortController": false, 2891 | "AbortSignal": false, 2892 | "addEventListener": false, 2893 | "ai": false, 2894 | "AI": false, 2895 | "AICreateMonitor": false, 2896 | "AsyncDisposableStack": false, 2897 | "atob": false, 2898 | "AudioData": false, 2899 | "AudioDecoder": false, 2900 | "AudioEncoder": false, 2901 | "BackgroundFetchManager": false, 2902 | "BackgroundFetchRecord": false, 2903 | "BackgroundFetchRegistration": false, 2904 | "BarcodeDetector": false, 2905 | "Blob": false, 2906 | "BroadcastChannel": false, 2907 | "btoa": false, 2908 | "ByteLengthQueuingStrategy": false, 2909 | "Cache": false, 2910 | "caches": false, 2911 | "CacheStorage": false, 2912 | "cancelAnimationFrame": false, 2913 | "CanvasGradient": false, 2914 | "CanvasPattern": false, 2915 | "clearInterval": false, 2916 | "clearTimeout": false, 2917 | "close": false, 2918 | "CloseEvent": false, 2919 | "CompressionStream": false, 2920 | "console": false, 2921 | "CountQueuingStrategy": false, 2922 | "createImageBitmap": false, 2923 | "CropTarget": false, 2924 | "crossOriginIsolated": false, 2925 | "crypto": false, 2926 | "Crypto": false, 2927 | "CryptoKey": false, 2928 | "CSSSkewX": false, 2929 | "CSSSkewY": false, 2930 | "CustomEvent": false, 2931 | "DecompressionStream": false, 2932 | "DedicatedWorkerGlobalScope": false, 2933 | "dispatchEvent": false, 2934 | "DisposableStack": false, 2935 | "DOMException": false, 2936 | "DOMMatrix": false, 2937 | "DOMMatrixReadOnly": false, 2938 | "DOMPoint": false, 2939 | "DOMPointReadOnly": false, 2940 | "DOMQuad": false, 2941 | "DOMRect": false, 2942 | "DOMRectReadOnly": false, 2943 | "DOMStringList": false, 2944 | "EncodedAudioChunk": false, 2945 | "EncodedVideoChunk": false, 2946 | "ErrorEvent": false, 2947 | "Event": false, 2948 | "EventSource": false, 2949 | "EventTarget": false, 2950 | "fetch": false, 2951 | "File": false, 2952 | "FileList": false, 2953 | "FileReader": false, 2954 | "FileReaderSync": false, 2955 | "FileSystemDirectoryHandle": false, 2956 | "FileSystemFileHandle": false, 2957 | "FileSystemHandle": false, 2958 | "FileSystemObserver": false, 2959 | "FileSystemSyncAccessHandle": false, 2960 | "FileSystemWritableFileStream": false, 2961 | "FontFace": false, 2962 | "fonts": false, 2963 | "FormData": false, 2964 | "GPU": false, 2965 | "GPUAdapter": false, 2966 | "GPUAdapterInfo": false, 2967 | "GPUBindGroup": false, 2968 | "GPUBindGroupLayout": false, 2969 | "GPUBuffer": false, 2970 | "GPUBufferUsage": false, 2971 | "GPUCanvasContext": false, 2972 | "GPUColorWrite": false, 2973 | "GPUCommandBuffer": false, 2974 | "GPUCommandEncoder": false, 2975 | "GPUCompilationInfo": false, 2976 | "GPUCompilationMessage": false, 2977 | "GPUComputePassEncoder": false, 2978 | "GPUComputePipeline": false, 2979 | "GPUDevice": false, 2980 | "GPUDeviceLostInfo": false, 2981 | "GPUError": false, 2982 | "GPUExternalTexture": false, 2983 | "GPUInternalError": false, 2984 | "GPUMapMode": false, 2985 | "GPUOutOfMemoryError": false, 2986 | "GPUPipelineError": false, 2987 | "GPUPipelineLayout": false, 2988 | "GPUQuerySet": false, 2989 | "GPUQueue": false, 2990 | "GPURenderBundle": false, 2991 | "GPURenderBundleEncoder": false, 2992 | "GPURenderPassEncoder": false, 2993 | "GPURenderPipeline": false, 2994 | "GPUSampler": false, 2995 | "GPUShaderModule": false, 2996 | "GPUShaderStage": false, 2997 | "GPUSupportedFeatures": false, 2998 | "GPUSupportedLimits": false, 2999 | "GPUTexture": false, 3000 | "GPUTextureUsage": false, 3001 | "GPUTextureView": false, 3002 | "GPUUncapturedErrorEvent": false, 3003 | "GPUValidationError": false, 3004 | "Headers": false, 3005 | "HID": false, 3006 | "HIDConnectionEvent": false, 3007 | "HIDDevice": false, 3008 | "HIDInputReportEvent": false, 3009 | "IDBCursor": false, 3010 | "IDBCursorWithValue": false, 3011 | "IDBDatabase": false, 3012 | "IDBFactory": false, 3013 | "IDBIndex": false, 3014 | "IDBKeyRange": false, 3015 | "IDBObjectStore": false, 3016 | "IDBOpenDBRequest": false, 3017 | "IDBRequest": false, 3018 | "IDBTransaction": false, 3019 | "IDBVersionChangeEvent": false, 3020 | "IdleDetector": false, 3021 | "ImageBitmap": false, 3022 | "ImageBitmapRenderingContext": false, 3023 | "ImageData": false, 3024 | "ImageDecoder": false, 3025 | "ImageTrack": false, 3026 | "ImageTrackList": false, 3027 | "importScripts": false, 3028 | "indexedDB": false, 3029 | "isSecureContext": false, 3030 | "LanguageDetector": false, 3031 | "location": false, 3032 | "Lock": false, 3033 | "LockManager": false, 3034 | "MediaCapabilities": false, 3035 | "MediaSource": false, 3036 | "MediaSourceHandle": false, 3037 | "MessageChannel": false, 3038 | "MessageEvent": false, 3039 | "MessagePort": false, 3040 | "name": false, 3041 | "NavigationPreloadManager": false, 3042 | "navigator": false, 3043 | "NavigatorUAData": false, 3044 | "NetworkInformation": false, 3045 | "Notification": false, 3046 | "Observable": false, 3047 | "OffscreenCanvas": false, 3048 | "OffscreenCanvasRenderingContext2D": false, 3049 | "onerror": true, 3050 | "onlanguagechange": true, 3051 | "onmessage": true, 3052 | "onmessageerror": true, 3053 | "onrejectionhandled": true, 3054 | "onunhandledrejection": true, 3055 | "origin": false, 3056 | "Path2D": false, 3057 | "performance": false, 3058 | "Performance": false, 3059 | "PerformanceEntry": false, 3060 | "PerformanceMark": false, 3061 | "PerformanceMeasure": false, 3062 | "PerformanceObserver": false, 3063 | "PerformanceObserverEntryList": false, 3064 | "PerformanceResourceTiming": false, 3065 | "PerformanceServerTiming": false, 3066 | "PeriodicSyncManager": false, 3067 | "Permissions": false, 3068 | "PermissionStatus": false, 3069 | "PERSISTENT": false, 3070 | "postMessage": false, 3071 | "PressureObserver": false, 3072 | "PressureRecord": false, 3073 | "ProgressEvent": false, 3074 | "PromiseRejectionEvent": false, 3075 | "PushManager": false, 3076 | "PushSubscription": false, 3077 | "PushSubscriptionOptions": false, 3078 | "queueMicrotask": false, 3079 | "ReadableByteStreamController": false, 3080 | "ReadableStream": false, 3081 | "ReadableStreamBYOBReader": false, 3082 | "ReadableStreamBYOBRequest": false, 3083 | "ReadableStreamDefaultController": false, 3084 | "ReadableStreamDefaultReader": false, 3085 | "removeEventListener": false, 3086 | "ReportBody": false, 3087 | "reportError": false, 3088 | "ReportingObserver": false, 3089 | "Request": false, 3090 | "requestAnimationFrame": false, 3091 | "Response": false, 3092 | "RestrictionTarget": false, 3093 | "RTCDataChannel": false, 3094 | "RTCEncodedAudioFrame": false, 3095 | "RTCEncodedVideoFrame": false, 3096 | "scheduler": false, 3097 | "Scheduler": false, 3098 | "SecurityPolicyViolationEvent": false, 3099 | "self": false, 3100 | "Serial": false, 3101 | "SerialPort": false, 3102 | "ServiceWorkerRegistration": false, 3103 | "setInterval": false, 3104 | "setTimeout": false, 3105 | "SourceBuffer": false, 3106 | "SourceBufferList": false, 3107 | "StorageBucket": false, 3108 | "StorageBucketManager": false, 3109 | "StorageManager": false, 3110 | "structuredClone": false, 3111 | "Subscriber": false, 3112 | "SubtleCrypto": false, 3113 | "SuppressedError": false, 3114 | "SyncManager": false, 3115 | "TaskController": false, 3116 | "TaskPriorityChangeEvent": false, 3117 | "TaskSignal": false, 3118 | "TEMPORARY": false, 3119 | "TextDecoder": false, 3120 | "TextDecoderStream": false, 3121 | "TextEncoder": false, 3122 | "TextEncoderStream": false, 3123 | "TextMetrics": false, 3124 | "TransformStream": false, 3125 | "TransformStreamDefaultController": false, 3126 | "TrustedHTML": false, 3127 | "TrustedScript": false, 3128 | "TrustedScriptURL": false, 3129 | "TrustedTypePolicy": false, 3130 | "TrustedTypePolicyFactory": false, 3131 | "trustedTypes": false, 3132 | "URL": false, 3133 | "URLPattern": false, 3134 | "URLSearchParams": false, 3135 | "USB": false, 3136 | "USBAlternateInterface": false, 3137 | "USBConfiguration": false, 3138 | "USBConnectionEvent": false, 3139 | "USBDevice": false, 3140 | "USBEndpoint": false, 3141 | "USBInterface": false, 3142 | "USBInTransferResult": false, 3143 | "USBIsochronousInTransferPacket": false, 3144 | "USBIsochronousInTransferResult": false, 3145 | "USBIsochronousOutTransferPacket": false, 3146 | "USBIsochronousOutTransferResult": false, 3147 | "USBOutTransferResult": false, 3148 | "UserActivation": false, 3149 | "VideoColorSpace": false, 3150 | "VideoDecoder": false, 3151 | "VideoEncoder": false, 3152 | "VideoFrame": false, 3153 | "WebAssembly": false, 3154 | "WebGL2RenderingContext": false, 3155 | "WebGLActiveInfo": false, 3156 | "WebGLBuffer": false, 3157 | "WebGLContextEvent": false, 3158 | "WebGLFramebuffer": false, 3159 | "WebGLObject": false, 3160 | "WebGLProgram": false, 3161 | "WebGLQuery": false, 3162 | "WebGLRenderbuffer": false, 3163 | "WebGLRenderingContext": false, 3164 | "WebGLSampler": false, 3165 | "WebGLShader": false, 3166 | "WebGLShaderPrecisionFormat": false, 3167 | "WebGLSync": false, 3168 | "WebGLTexture": false, 3169 | "WebGLTransformFeedback": false, 3170 | "WebGLUniformLocation": false, 3171 | "WebGLVertexArrayObject": false, 3172 | "webkitRequestFileSystem": false, 3173 | "webkitRequestFileSystemSync": false, 3174 | "webkitResolveLocalFileSystemSyncURL": false, 3175 | "webkitResolveLocalFileSystemURL": false, 3176 | "WebSocket": false, 3177 | "WebSocketError": false, 3178 | "WebSocketStream": false, 3179 | "WebTransport": false, 3180 | "WebTransportBidirectionalStream": false, 3181 | "WebTransportDatagramDuplexStream": false, 3182 | "WebTransportError": false, 3183 | "WGSLLanguageFeatures": false, 3184 | "when": false, 3185 | "Worker": false, 3186 | "WorkerGlobalScope": false, 3187 | "WorkerLocation": false, 3188 | "WorkerNavigator": false, 3189 | "WritableStream": false, 3190 | "WritableStreamDefaultController": false, 3191 | "WritableStreamDefaultWriter": false, 3192 | "XMLHttpRequest": false, 3193 | "XMLHttpRequestEventTarget": false, 3194 | "XMLHttpRequestUpload": false 3195 | }, 3196 | "wsh": { 3197 | "ActiveXObject": false, 3198 | "CollectGarbage": false, 3199 | "Debug": false, 3200 | "Enumerator": false, 3201 | "GetObject": false, 3202 | "RuntimeObject": false, 3203 | "ScriptEngine": false, 3204 | "ScriptEngineBuildVersion": false, 3205 | "ScriptEngineMajorVersion": false, 3206 | "ScriptEngineMinorVersion": false, 3207 | "VBArray": false, 3208 | "WScript": false, 3209 | "WSH": false 3210 | }, 3211 | "yui": { 3212 | "YAHOO": false, 3213 | "YAHOO_config": false, 3214 | "YUI": false, 3215 | "YUI_config": false 3216 | } 3217 | } 3218 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | module.exports = require('./globals.json'); 3 | -------------------------------------------------------------------------------- /index.test-d.ts: -------------------------------------------------------------------------------- 1 | import {expectType, expectError, expectAssignable} from 'tsd'; 2 | import {type ReadonlyDeep} from 'type-fest'; 3 | import globals from './index.js'; 4 | 5 | expectAssignable>>>(globals); 6 | expectType(globals.builtin.Array); 7 | expectError((globals.builtin.Array = true)); 8 | -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Sindre Sorhus (https://sindresorhus.com) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "globals", 3 | "version": "16.2.0", 4 | "description": "Global identifiers from different JavaScript environments", 5 | "license": "MIT", 6 | "repository": "sindresorhus/globals", 7 | "funding": "https://github.com/sponsors/sindresorhus", 8 | "author": { 9 | "name": "Sindre Sorhus", 10 | "email": "sindresorhus@gmail.com", 11 | "url": "https://sindresorhus.com" 12 | }, 13 | "sideEffects": false, 14 | "engines": { 15 | "node": ">=18" 16 | }, 17 | "scripts": { 18 | "test": "npm run build && xo && ava && tsd", 19 | "prepare": "npm run build", 20 | "update": "node scripts/update.mjs", 21 | "update:browser": "node scripts/update.mjs --environment=browser", 22 | "update:builtin": "node scripts/update.mjs --environment=builtin", 23 | "update:nodeBuiltin": "node scripts/update.mjs --environment=nodeBuiltin", 24 | "update:worker": "node scripts/update.mjs --environment=worker", 25 | "update:serviceworker": "node scripts/update.mjs --environment=serviceworker", 26 | "update:shelljs": "node scripts/update.mjs --environment=shelljs", 27 | "update:jest": "node scripts/update.mjs --environment=jest", 28 | "update:vitest": "node scripts/update.mjs --environment=vitest", 29 | "build": "run-s build:data build:types", 30 | "build:data": "node scripts/generate-data.mjs", 31 | "build:types": "node scripts/generate-types.mjs" 32 | }, 33 | "files": [ 34 | "index.js", 35 | "index.d.ts", 36 | "globals.json" 37 | ], 38 | "keywords": [ 39 | "globals", 40 | "global", 41 | "identifiers", 42 | "variables", 43 | "vars", 44 | "jshint", 45 | "eslint", 46 | "environments" 47 | ], 48 | "devDependencies": { 49 | "@vitest/eslint-plugin": "^1.1.44", 50 | "ava": "^6.3.0", 51 | "cheerio": "^1.0.0", 52 | "eslint-plugin-jest": "^28.11.0", 53 | "get-port": "^7.1.0", 54 | "nano-spawn": "^0.2.0", 55 | "npm-run-all2": "^8.0.1", 56 | "outdent": "^0.8.0", 57 | "puppeteer": "^24.9.0", 58 | "shelljs": "^0.9.2", 59 | "tsd": "^0.32.0", 60 | "type-fest": "^4.41.0", 61 | "xo": "^0.60.0" 62 | }, 63 | "xo": { 64 | "rules": { 65 | "unicorn/prefer-module": "off" 66 | }, 67 | "overrides": [ 68 | { 69 | "files": [ 70 | "data/*.mjs" 71 | ], 72 | "rules": { 73 | "import/no-anonymous-default-export": "off", 74 | "camelcase": "off", 75 | "unicorn/filename-case": [ 76 | "error", 77 | { 78 | "cases": { 79 | "camelCase": true, 80 | "kebabCase": true 81 | } 82 | } 83 | ] 84 | } 85 | }, 86 | { 87 | "files": [ 88 | "scripts/*.mjs" 89 | ], 90 | "rules": { 91 | "n/no-unsupported-features/node-builtins": "off" 92 | } 93 | }, 94 | { 95 | "files": [ 96 | "scripts/browser/assets/**/*.mjs" 97 | ], 98 | "envs": [ 99 | "browser", 100 | "worker", 101 | "serviceworker" 102 | ], 103 | "rules": { 104 | "n/no-unsupported-features/node-builtins": "off", 105 | "unicorn/prefer-add-event-listener": "off" 106 | } 107 | } 108 | ] 109 | }, 110 | "tsd": { 111 | "compilerOptions": { 112 | "resolveJsonModule": true 113 | } 114 | } 115 | } 116 | -------------------------------------------------------------------------------- /puppeteer.config.cjs: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | // Will download when execute 4 | module.exports = { 5 | skipDownload: true, 6 | }; 7 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # globals 2 | 3 | > Global identifiers from different JavaScript environments 4 | 5 | It's just a [JSON file](globals.json), so you can use it in any environment. 6 | 7 | This package is used by ESLint 8 and earlier. For ESLint 9 and later, you should depend on this package directly in [your ESLint config](https://eslint.org/docs/latest/use/configure/language-options#predefined-global-variables). 8 | 9 | ## Install 10 | 11 | ```sh 12 | npm install globals 13 | ``` 14 | 15 | ## Usage 16 | 17 | ```js 18 | import globals from 'globals'; 19 | 20 | console.log(globals.browser); 21 | /* 22 | { 23 | addEventListener: false, 24 | applicationCache: false, 25 | ArrayBuffer: false, 26 | atob: false, 27 | … 28 | } 29 | */ 30 | ``` 31 | 32 | Each global is given a value of `true` or `false`. A value of `true` indicates that the variable may be overwritten. A value of `false` indicates that the variable should be considered read-only. This information is used by static analysis tools to flag incorrect behavior. We assume all variables should be `false` unless we hear otherwise. 33 | 34 | For Node.js this package provides two sets of globals: 35 | 36 | - `globals.nodeBuiltin`: Globals available to all code running in Node.js. 37 | These will usually be available as properties on the `globalThis` object and include `process`, `Buffer`, but not CommonJS arguments like `require`. 38 | See: https://nodejs.org/api/globals.html 39 | - `globals.node`: A combination of the globals from `nodeBuiltin` plus all CommonJS arguments ("CommonJS module scope"). 40 | See: https://nodejs.org/api/modules.html#modules_the_module_scope 41 | 42 | When analyzing code that is known to run outside of a CommonJS wrapper, for example, JavaScript modules, `nodeBuiltin` can find accidental CommonJS references. 43 | -------------------------------------------------------------------------------- /scripts/browser/assets/audio-worklet.mjs: -------------------------------------------------------------------------------- 1 | import {initAudioWorklet} from './main.mjs'; 2 | 3 | initAudioWorklet(); 4 | -------------------------------------------------------------------------------- /scripts/browser/assets/main.mjs: -------------------------------------------------------------------------------- 1 | const EXECUTE_COMMAND_SIGNAL = 'get-globals'; 2 | 3 | const environments = [ 4 | {environment: 'browser', getGlobals: getBrowserGlobals}, 5 | {environment: 'worker', getGlobals: getWebWorkerGlobals}, 6 | {environment: 'serviceworker', getGlobals: getServiceWorkerGlobals}, 7 | ]; 8 | 9 | function getGlobalThisProperties({expectSecureContext = true} = {}) { 10 | if (expectSecureContext && !globalThis.isSecureContext) { 11 | throw new Error('Expected a secure context.'); 12 | } 13 | 14 | const keys = []; 15 | 16 | for ( 17 | let object = globalThis; 18 | object && object !== Object.prototype; 19 | object = Object.getPrototypeOf(object) 20 | ) { 21 | keys.push(...Object.getOwnPropertyNames(object)); 22 | } 23 | 24 | return keys.filter(key => key !== 'constructor'); 25 | } 26 | 27 | function sendResult({ 28 | port = globalThis, 29 | receivePort = port, 30 | sendPort = receivePort, 31 | getGlobals = getGlobalThisProperties, 32 | } = {}) { 33 | receivePort.onmessage = receivedMessage => { 34 | if (receivedMessage.data !== EXECUTE_COMMAND_SIGNAL) { 35 | return; 36 | } 37 | 38 | const message = {}; 39 | try { 40 | message.result = getGlobals(); 41 | } catch (error) { 42 | message.error = error; 43 | throw error; 44 | } finally { 45 | const port = typeof sendPort === 'function' ? sendPort(receivedMessage) : sendPort; 46 | port.postMessage(message); 47 | } 48 | }; 49 | } 50 | 51 | function receiveResult({ 52 | port, 53 | receivePort = port, 54 | sendPort = receivePort, 55 | }) { 56 | return new Promise((resolve, reject) => { 57 | receivePort.onmessage = ({data: {result, error}}) => { 58 | if (error) { 59 | reject(error); 60 | } else { 61 | resolve(result); 62 | } 63 | }; 64 | 65 | sendPort.postMessage(EXECUTE_COMMAND_SIGNAL); 66 | }); 67 | } 68 | 69 | let webWorker; 70 | function getWebWorkerGlobals() { 71 | webWorker ??= new Worker('./assets/web-worker.mjs', {type: 'module'}); 72 | return receiveResult({port: webWorker}); 73 | } 74 | 75 | function initWebWorker() { 76 | sendResult(); 77 | } 78 | 79 | const SERVICE_WORK_URL = './assets/service-worker.mjs'; 80 | let serviceWorker; 81 | async function getServiceWorkerGlobals() { 82 | const serviceWorkerContainer = navigator.serviceWorker; 83 | if (!serviceWorker) { 84 | let registration = await serviceWorkerContainer.getRegistration(SERVICE_WORK_URL); 85 | if (registration) { 86 | await registration.update(); 87 | } else { 88 | registration = await serviceWorkerContainer.register(SERVICE_WORK_URL, {type: 'module'}); 89 | } 90 | 91 | serviceWorker = registration.active ?? registration.waiting ?? registration.installing; 92 | serviceWorkerContainer.startMessages(); 93 | } 94 | 95 | return receiveResult({receivePort: serviceWorkerContainer, sendPort: serviceWorker}); 96 | } 97 | 98 | async function initServiceWorker() { 99 | sendResult({ 100 | sendPort: message => message.source, 101 | }); 102 | } 103 | 104 | async function getBrowserGlobals() { 105 | const globals = getGlobalThisProperties(); 106 | const audioWorkletGlobals = await getAudioWorkletGlobals(); 107 | return [...new Set([...globals, ...audioWorkletGlobals])]; 108 | } 109 | 110 | const AUDIO_WORKLET_PROCESSOR_NAME = `${EXECUTE_COMMAND_SIGNAL}-processor`; 111 | let audioWorkletNode; 112 | async function getAudioWorkletGlobals() { 113 | if (!audioWorkletNode) { 114 | const context = new AudioContext(); 115 | await context.audioWorklet.addModule('./assets/audio-worklet.mjs'); 116 | audioWorkletNode = new AudioWorkletNode(context, AUDIO_WORKLET_PROCESSOR_NAME); 117 | } 118 | 119 | return receiveResult({port: audioWorkletNode.port}); 120 | } 121 | 122 | function initAudioWorklet() { 123 | registerProcessor(AUDIO_WORKLET_PROCESSOR_NAME, class AudioWorkletGetGlobalsProcessor extends AudioWorkletProcessor { 124 | constructor() { 125 | super(); 126 | 127 | sendResult({ 128 | port: this.port, 129 | getGlobals: () => getGlobalThisProperties({expectSecureContext: false}), 130 | }); 131 | } 132 | 133 | process() { 134 | return true; 135 | } 136 | }); 137 | } 138 | 139 | function initPage() { 140 | // Exposed for Node.js to call 141 | Object.defineProperty(globalThis, '__getGlobals', { 142 | enumerable: false, 143 | value(environment) { 144 | return environments.find(({environment: name}) => name === environment).getGlobals(); 145 | }, 146 | }); 147 | 148 | const mainContainer = document.body; 149 | 150 | for (const {environment, getGlobals} of environments) { 151 | const container = document.createElement('details'); 152 | const summary = Object.assign(document.createElement('summary'), { 153 | textContent: environment, 154 | }); 155 | const button = Object.assign(document.createElement('button'), { 156 | type: 'button', 157 | textContent: `Get '${environment}' globals`, 158 | }); 159 | const result = document.createElement('pre'); 160 | button.addEventListener('click', async () => { 161 | container.open = true; 162 | button.disabled = true; 163 | result.textContent = `Loading '${environment}' globals ...`; 164 | try { 165 | const globals = await getGlobals(); 166 | result.textContent = JSON.stringify(globals, undefined, 2); 167 | } catch (error) { 168 | result.textContent = error; 169 | } finally { 170 | button.disabled = false; 171 | } 172 | }); 173 | 174 | container.append(summary); 175 | container.append(button); 176 | container.append(result); 177 | mainContainer.append(container); 178 | } 179 | } 180 | 181 | export { 182 | initPage, 183 | initWebWorker, 184 | initServiceWorker, 185 | initAudioWorklet, 186 | }; 187 | -------------------------------------------------------------------------------- /scripts/browser/assets/service-worker.mjs: -------------------------------------------------------------------------------- 1 | import {initServiceWorker} from './main.mjs'; 2 | 3 | initServiceWorker(); 4 | -------------------------------------------------------------------------------- /scripts/browser/assets/web-worker.mjs: -------------------------------------------------------------------------------- 1 | import {initWebWorker} from './main.mjs'; 2 | 3 | initWebWorker(); 4 | -------------------------------------------------------------------------------- /scripts/browser/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Document 7 | 8 | 9 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /scripts/browser/readme.md: -------------------------------------------------------------------------------- 1 | # Start debug 2 | 3 | ```sh 4 | node --watch start.mjs 5 | ``` 6 | -------------------------------------------------------------------------------- /scripts/browser/server.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises'; 2 | import http from 'node:http'; 3 | import {inspect} from 'node:util'; 4 | import getPort from 'get-port'; 5 | 6 | async function startServer({silent = false, port: preferredPort} = {}) { 7 | const port = await getPort({port: preferredPort}); 8 | 9 | const server = http.createServer(async (request, response) => { 10 | let {url} = request; 11 | if (!silent) { 12 | console.debug(url); 13 | } 14 | 15 | if (url === '/') { 16 | url = '/index.html'; 17 | } 18 | 19 | // Only allow `.mjs` and `.html` 20 | if (!/\.(?:html|mjs)$/.test(url)) { 21 | response.statusCode = 400; 22 | return; 23 | } 24 | 25 | const file = new URL(url.slice(1), import.meta.url); 26 | let content; 27 | 28 | try { 29 | content = await fs.readFile(file, 'utf8'); 30 | } catch (error) { 31 | if (!silent) { 32 | console.error(error); 33 | } 34 | 35 | response.statusCode = error.code === 'ENOENT' ? 400 : 500; 36 | response.end(inspect(error)); 37 | return; 38 | } 39 | 40 | response.statusCode = 200; 41 | response.setHeader( 42 | 'Content-Type', 43 | url.endsWith('.mjs') ? 'application/javascript' : 'text/html', 44 | ); 45 | 46 | response.end(content); 47 | }); 48 | 49 | // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts 50 | const hostname = '127.0.0.1'; 51 | server.listen(port, hostname); 52 | 53 | const url = `http://${hostname}:${port}`; 54 | 55 | const close = () => new Promise(resolve => { 56 | server.close(resolve); 57 | }); 58 | 59 | return { 60 | url, 61 | close, 62 | }; 63 | } 64 | 65 | export {startServer}; 66 | -------------------------------------------------------------------------------- /scripts/browser/start.mjs: -------------------------------------------------------------------------------- 1 | import process from 'node:process'; 2 | import {startServer} from './server.mjs'; 3 | 4 | const server = await startServer({port: 3000}); 5 | 6 | console.log(`Server started, navigate to ${server.url} start debug.`); 7 | 8 | process.once('exit', async () => { 9 | await server.close(); 10 | }); 11 | -------------------------------------------------------------------------------- /scripts/create-yearly-es-globals.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs'; 2 | 3 | const year = new Date().getFullYear(); 4 | const dataFile = new URL(`../data/es${year + 1}.mjs`, import.meta.url); 5 | const workflowFile = new URL('../.github/workflows/es-yearly-globals.yml', import.meta.url); 6 | 7 | fs.writeFileSync( 8 | dataFile, 9 | `export {default} from './es${year}.mjs';\n`, 10 | ); 11 | 12 | fs.writeFileSync( 13 | workflowFile, 14 | fs.readFileSync(workflowFile, 'utf8') 15 | .replaceAll( 16 | `Add \`es${year + 1}\` globals`, 17 | `Add \`es${year + 2}\` globals`, 18 | ), 19 | ); 20 | 21 | console.log(`✅ es${year + 1} globals added, see you next year.`); 22 | -------------------------------------------------------------------------------- /scripts/generate-data.mjs: -------------------------------------------------------------------------------- 1 | import * as fs from 'node:fs/promises'; 2 | import path from 'node:path'; 3 | import {readGlobals} from '../utilities.mjs'; 4 | 5 | const DATA_FILE = new URL('../globals.json', import.meta.url); 6 | const DATA_DIRECTORY = new URL('../data/', import.meta.url); 7 | 8 | async function getData() { 9 | const files = await fs.readdir(DATA_DIRECTORY); 10 | const environments = files.map(file => path.basename(file, '.mjs')) 11 | .sort((a, b) => a.localeCompare(b)); 12 | const data = await Promise.all( 13 | environments.map(async environment => ({environment, globals: await readGlobals(environment)})), 14 | ); 15 | 16 | return Object.fromEntries(data.map(({environment, globals}) => [environment, globals])); 17 | } 18 | 19 | const data = await getData(); 20 | await fs.writeFile(DATA_FILE, JSON.stringify(data, undefined, '\t') + '\n'); 21 | -------------------------------------------------------------------------------- /scripts/generate-types.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs'; 2 | import globals from '../index.js'; 3 | 4 | const getGroupTypeName = group => `Globals${group[0].toUpperCase() + group.slice(1).replaceAll('-', '')}`; 5 | 6 | const groups = {}; 7 | const output = [ 8 | '// This file is autogenerated by scripts/generate-types.mjs', 9 | '// Do NOT modify this file manually\n', 10 | ]; 11 | 12 | for (const group of Object.keys(globals)) { 13 | const groupType = getGroupTypeName(group); 14 | groups[group] = groupType; 15 | 16 | output.push(`type ${getGroupTypeName(group)} = {`); 17 | 18 | for (const [rule, status] of Object.entries(globals[group])) { 19 | output.push(` readonly '${rule}': ${status};`); 20 | } 21 | 22 | output.push('}\n'); 23 | } 24 | 25 | output.push('type Globals = {'); 26 | 27 | for (const [group, groupType] of Object.entries(groups)) { 28 | output.push(` readonly '${group}': ${groupType};`); 29 | } 30 | 31 | output.push('}\n', 'declare const globals: Globals;\n', 'export = globals;'); 32 | 33 | fs.writeFileSync( 34 | new URL('../index.d.ts', import.meta.url), 35 | output.join('\n'), 36 | ); 37 | -------------------------------------------------------------------------------- /scripts/get-browser-globals.mjs: -------------------------------------------------------------------------------- 1 | import process from 'node:process'; 2 | import puppeteer from 'puppeteer'; 3 | import {createGlobals} from './utilities.mjs'; 4 | import {startServer} from './browser/server.mjs'; 5 | 6 | const ignoredGlobals = new Set([ 7 | // Chrome only 8 | 'chrome', 9 | 10 | // Firefox only 11 | 'netscape', 12 | 'CSSMozDocumentRule', 13 | 'mozInnerScreenX', 14 | 'mozInnerScreenY', 15 | 16 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/BeforeInstallPromptEvent 17 | 'BeforeInstallPromptEvent', 18 | // Can't find documentation 19 | 'CSS2Properties', 20 | // Deprecated https://developer.mozilla.org/en-US/docs/Web/API/Window/captureEvents 21 | 'captureEvents', 22 | // Can't find documentation 23 | 'Directory', 24 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/dump 25 | 'dump', 26 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/fullScreen 27 | 'fullScreen', 28 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/window/getDefaultComputedStyle 29 | 'getDefaultComputedStyle', 30 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/InternalError 31 | 'InternalError', 32 | // Can't find documentation 33 | 'KeyEvent', 34 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/MouseScrollEvent 35 | 'MouseScrollEvent', 36 | // Can't find documentation 37 | 'PaintRequest', 38 | // Can't find documentation 39 | 'PaintRequestList', 40 | // Can't find documentation 41 | 'PopupBlockedEvent', 42 | // Deprecated https://developer.mozilla.org/en-US/docs/Web/API/Window/releaseEvents 43 | 'releaseEvents', 44 | // Can't find documentation 45 | 'ScrollAreaEvent', 46 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollByLines 47 | 'scrollByLines', 48 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollByLines 49 | 'scrollByLines', 50 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollByPages 51 | 'scrollByPages', 52 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollMaxX 53 | 'scrollMaxX', 54 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollMaxY 55 | 'scrollMaxY', 56 | // Can't find documentation 57 | 'setResizable', 58 | // Non-standard https://developer.mozilla.org/en-US/docs/Web/API/Window/updateCommands 59 | 'updateCommands', 60 | ]); 61 | 62 | const shouldExclude = name => 63 | name.startsWith('__') 64 | // Chrome only 65 | || /^(?:webkit|WebKit)[A-Z]/.test(name) 66 | || name.startsWith('onwebkit') 67 | // Firefox only 68 | || name.startsWith('onmoz') 69 | || ignoredGlobals.has(name); 70 | 71 | const isWritable = name => 72 | name === 'location' 73 | || name.startsWith('on'); 74 | 75 | const puppeteerBrowsers = [ 76 | 'chrome', 77 | 'chrome-headless-shell', 78 | 'firefox', 79 | ]; 80 | 81 | async function downloadBrowser({product} = {}) { 82 | const {downloadBrowsers} = await import('puppeteer/internal/node/install.js'); 83 | const originalEnv = {...process.env}; 84 | 85 | const envOverrides = { 86 | PUPPETEER_SKIP_DOWNLOAD: JSON.stringify(false), 87 | ...Object.fromEntries(puppeteerBrowsers.map(browser => [ 88 | `PUPPETEER_${browser.replaceAll('-', '_').toUpperCase()}_SKIP_DOWNLOAD`, 89 | JSON.stringify(browser !== product), 90 | ])), 91 | }; 92 | 93 | Object.assign(process.env, envOverrides); 94 | 95 | try { 96 | await downloadBrowsers(); 97 | } finally { 98 | for (const env of Object.keys(envOverrides)) { 99 | if (Object.hasOwn(originalEnv)) { 100 | process.env[env] = originalEnv[env]; 101 | } else { 102 | delete process.env[env]; 103 | } 104 | } 105 | } 106 | } 107 | 108 | async function getGlobalsInBrowser(environment, product = 'chrome') { 109 | await downloadBrowser({product}); 110 | 111 | const browser = await puppeteer.launch({product}); 112 | const page = await browser.newPage(); 113 | 114 | let server; 115 | try { 116 | server = await startServer({silent: true}); 117 | await page.goto(server.url); 118 | return await page.evaluate(`globalThis.__getGlobals(${JSON.stringify(environment)})`); 119 | } finally { 120 | await browser.close(); 121 | await server?.close(); 122 | } 123 | } 124 | 125 | async function getBrowserGlobals() { 126 | const chromeGlobals = await getGlobalsInBrowser('browser'); 127 | const firefoxGlobals = await getGlobalsInBrowser('browser', 'firefox'); 128 | 129 | return createGlobals( 130 | [ 131 | ...chromeGlobals, 132 | ...firefoxGlobals, 133 | ], 134 | { 135 | shouldExclude, 136 | isWritable, 137 | }, 138 | ); 139 | } 140 | 141 | async function getWebWorkerGlobals() { 142 | const properties = await getGlobalsInBrowser('worker'); 143 | 144 | return createGlobals( 145 | properties, 146 | { 147 | shouldExclude: name => name.startsWith('__'), 148 | isWritable: name => name.startsWith('on'), 149 | }, 150 | ); 151 | } 152 | 153 | async function getServiceWorkerGlobals() { 154 | const properties = await getGlobalsInBrowser('serviceworker'); 155 | 156 | return createGlobals( 157 | [ 158 | // Only safari supported https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/pushsubscriptionchange_event#browser_compatibility 159 | 'onpushsubscriptionchange', 160 | ...properties, 161 | ], 162 | { 163 | shouldExclude: name => name.startsWith('__'), 164 | isWritable: name => name.startsWith('on'), 165 | }, 166 | ); 167 | } 168 | 169 | export {getBrowserGlobals, getWebWorkerGlobals, getServiceWorkerGlobals}; 170 | -------------------------------------------------------------------------------- /scripts/get-builtin-globals.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises'; 2 | import * as cheerio from 'cheerio'; 3 | 4 | // https://tc39.es/ecma262/ 5 | const SPECIFICATION_URLS = [ 6 | 'https://raw.githubusercontent.com/tc39/ecma262/HEAD/spec.html', 7 | 'https://cdn.jsdelivr.net/gh/tc39/ecma262/spec.html', 8 | ]; 9 | const CACHE_FILE = new URL('../.cache/spec.html', import.meta.url); 10 | 11 | const additionalGlobals = [ 12 | // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects#internationalization 13 | // https://www.ecma-international.org/publications-and-standards/standards/ecma-402/ 14 | 'Intl', 15 | 16 | // Annex B 17 | // https://tc39.es/ecma262/#sec-additional-built-in-properties 18 | 'escape', 19 | 'unescape', 20 | ]; 21 | 22 | const getText = async url => { 23 | const response = await fetch(url); 24 | const text = await response.text(); 25 | return text; 26 | }; 27 | 28 | const getSpecification = async () => { 29 | let stat; 30 | 31 | try { 32 | stat = await fs.stat(CACHE_FILE); 33 | } catch {} 34 | 35 | if (stat) { 36 | if (Date.now() - stat.ctimeMs < /* 10 hours */ 10 * 60 * 60 * 1000) { 37 | return fs.readFile(CACHE_FILE, 'utf8'); 38 | } 39 | 40 | await fs.rm(CACHE_FILE); 41 | } 42 | 43 | const text = await Promise.any(SPECIFICATION_URLS.map(url => getText(url))); 44 | 45 | await fs.mkdir(new URL('./', CACHE_FILE), {recursive: true}); 46 | await fs.writeFile(CACHE_FILE, text); 47 | 48 | return text; 49 | }; 50 | 51 | function * getGlobalObjects(specification) { 52 | const $ = cheerio.load(specification); 53 | 54 | for (const element of $('emu-clause#sec-global-object > emu-clause h1')) { 55 | const property = $(element).text().trim().split(/\s/)[0]; 56 | if (Object.hasOwn(globalThis, property)) { 57 | yield property; 58 | } 59 | } 60 | } 61 | 62 | export default async function getBuiltinGlobals() { 63 | const specification = await getSpecification(); 64 | 65 | return Object.fromEntries( 66 | [ 67 | ...getGlobalObjects(specification), 68 | ...additionalGlobals, 69 | ].map(name => [name, false]), 70 | ); 71 | } 72 | -------------------------------------------------------------------------------- /scripts/get-jest-globals.mjs: -------------------------------------------------------------------------------- 1 | import module from 'node:module'; 2 | 3 | // https://github.com/jest-community/eslint-plugin-jest/blob/main/src/globals.json 4 | export default function getJestGlobals() { 5 | const require = module.createRequire(import.meta.url); 6 | const globals = require('eslint-plugin-jest/lib/globals.json'); 7 | return globals; 8 | } 9 | -------------------------------------------------------------------------------- /scripts/get-node-builtin-globals.mjs: -------------------------------------------------------------------------------- 1 | import {getGlobalThisProperties, createGlobals} from './utilities.mjs'; 2 | 3 | export default function getNodeBuiltinGlobals() { 4 | return createGlobals( 5 | getGlobalThisProperties(), 6 | { 7 | shouldExclude: name => name.startsWith('__'), 8 | }, 9 | ); 10 | } 11 | -------------------------------------------------------------------------------- /scripts/get-shelljs-globals.mjs: -------------------------------------------------------------------------------- 1 | import shelljs from 'shelljs'; 2 | 3 | // https://github.com/shelljs/shelljs/blob/2ff87eff00456ac5f21c67d3bb0699e5bdfa8851/global.js#L4-L6 4 | export default function getShelljsGlobals() { 5 | return Object.fromEntries(Object.keys(shelljs).map(name => [name, false])); 6 | } 7 | -------------------------------------------------------------------------------- /scripts/get-vitest-globals.mjs: -------------------------------------------------------------------------------- 1 | import vitest from '@vitest/eslint-plugin'; 2 | 3 | // https://github.com/vitest-dev/eslint-plugin-vitest/blob/main/src/index.ts#L269-L285 4 | export default function getVitestGlobals() { 5 | return Object.fromEntries(Object.keys(vitest.environments.env.globals).map(name => [name, false])); 6 | } 7 | -------------------------------------------------------------------------------- /scripts/update.mjs: -------------------------------------------------------------------------------- 1 | import {parseArgs} from 'node:util'; 2 | import {outdent} from 'outdent'; 3 | import spawn from 'nano-spawn'; 4 | import getBuiltinGlobals from './get-builtin-globals.mjs'; 5 | import getNodeBuiltinGlobals from './get-node-builtin-globals.mjs'; 6 | import { 7 | getBrowserGlobals, 8 | getWebWorkerGlobals, 9 | getServiceWorkerGlobals, 10 | } from './get-browser-globals.mjs'; 11 | import getShelljsGlobals from './get-shelljs-globals.mjs'; 12 | import getJestGlobals from './get-jest-globals.mjs'; 13 | import {updateGlobals} from './utilities.mjs'; 14 | import getVitestGlobals from './get-vitest-globals.mjs'; 15 | 16 | const ALL_JOBS = [ 17 | { 18 | environment: 'builtin', 19 | getGlobals: getBuiltinGlobals, 20 | incremental: false, 21 | }, 22 | { 23 | environment: 'nodeBuiltin', 24 | getGlobals: getNodeBuiltinGlobals, 25 | }, 26 | { 27 | environment: 'browser', 28 | getGlobals: getBrowserGlobals, 29 | }, 30 | { 31 | environment: 'worker', 32 | getGlobals: getWebWorkerGlobals, 33 | }, 34 | { 35 | environment: 'serviceworker', 36 | getGlobals: getServiceWorkerGlobals, 37 | }, 38 | { 39 | environment: 'shelljs', 40 | getGlobals: getShelljsGlobals, 41 | incremental: false, 42 | }, 43 | { 44 | environment: 'jest', 45 | getGlobals: getJestGlobals, 46 | incremental: false, 47 | }, 48 | { 49 | environment: 'vitest', 50 | getGlobals: getVitestGlobals, 51 | incremental: false, 52 | }, 53 | ]; 54 | 55 | async function run(options) { 56 | const jobs = options.environment 57 | ? ALL_JOBS.filter(job => job.environment === options.environment) 58 | : ALL_JOBS; 59 | 60 | for (const {environment, getGlobals, incremental = true} of jobs) { 61 | const excludeBuiltins = environment !== 'builtin'; 62 | const { 63 | added, 64 | removed, 65 | } 66 | // eslint-disable-next-line no-await-in-loop 67 | = await updateGlobals({ 68 | environment, 69 | getGlobals, 70 | dryRun: options.dry, 71 | incremental: options.clean ? false : incremental, 72 | excludeBuiltins, 73 | }); 74 | 75 | console.log(`✅ ${environment} globals updated.`); 76 | 77 | if (added.length > 0) { 78 | console.log(); 79 | console.log( 80 | outdent` 81 | Added(${added.length}): 82 | ${added.map(name => ` + ${name}`).join('\n')} 83 | `, 84 | ); 85 | } 86 | 87 | if (removed.length > 0) { 88 | console.log(); 89 | console.log( 90 | outdent` 91 | Removed(${removed.length}): 92 | ${removed.map(name => ` - ${name}`).join('\n')} 93 | `, 94 | ); 95 | } 96 | } 97 | 98 | if (!options.dry) { 99 | try { 100 | await spawn('npm', ['run', 'build'], {stdio: 'inherit'}); 101 | } catch {} 102 | 103 | try { 104 | await spawn('npx', ['xo', '--fix'], {stdio: 'inherit'}); 105 | } catch {} 106 | } 107 | } 108 | 109 | const { 110 | values: options, 111 | } = parseArgs({ 112 | options: { 113 | environment: { 114 | type: 'string', 115 | }, 116 | dry: { 117 | type: 'boolean', 118 | default: false, 119 | }, 120 | clean: { 121 | type: 'boolean', 122 | default: false, 123 | }, 124 | }, 125 | }); 126 | 127 | await run(options); 128 | -------------------------------------------------------------------------------- /scripts/utilities.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises'; 2 | import {outdent} from 'outdent'; 3 | import { 4 | DATA_DIRECTORY, 5 | unique, 6 | sortObject, 7 | readGlobals, 8 | } from '../utilities.mjs'; 9 | 10 | const writeGlobals = async (environment, globals) => { 11 | const file = new URL(`${environment}.mjs`, DATA_DIRECTORY); 12 | 13 | const code = outdent` 14 | // This file is autogenerated by scripts 15 | // Do NOT modify this file manually 16 | 17 | export default ${JSON.stringify(sortObject(globals), undefined, '\t')}; 18 | `; 19 | await fs.writeFile(file, code + '\n'); 20 | }; 21 | 22 | async function updateGlobals({ 23 | environment, 24 | getGlobals, 25 | dryRun, 26 | incremental, 27 | excludeBuiltins, 28 | }) { 29 | let updated = await getGlobals(); 30 | const original = await readGlobals(environment, {ignoreNonExits: true}); 31 | 32 | if (incremental) { 33 | updated = {...original, ...updated}; 34 | } 35 | 36 | if (excludeBuiltins) { 37 | for (const name of Object.keys(await readGlobals('builtin'))) { 38 | delete updated[name]; 39 | } 40 | } 41 | 42 | if (!dryRun) { 43 | await writeGlobals(environment, updated); 44 | } 45 | 46 | const added = Object.keys(updated).filter(property => !Object.hasOwn(original, property)); 47 | const removed = Object.keys(original).filter(property => !Object.hasOwn(updated, property)); 48 | 49 | return { 50 | added, 51 | removed, 52 | }; 53 | } 54 | 55 | function getGlobalThisProperties() { 56 | const keys = []; 57 | 58 | for ( 59 | let object = globalThis; 60 | object && object !== Object.prototype; 61 | object = Object.getPrototypeOf(object) 62 | ) { 63 | keys.push(...Object.getOwnPropertyNames(object)); 64 | } 65 | 66 | return keys.filter(key => key !== 'constructor'); 67 | } 68 | 69 | async function createGlobals(names, { 70 | shouldExclude, 71 | isWritable = () => false, 72 | }) { 73 | names = unique(names); 74 | 75 | if (shouldExclude) { 76 | names = names.filter(name => !shouldExclude(name)); 77 | } 78 | 79 | return Object.fromEntries(names.map(name => [name, isWritable(name) ?? false])); 80 | } 81 | 82 | export { 83 | updateGlobals, 84 | getGlobalThisProperties, 85 | createGlobals, 86 | }; 87 | -------------------------------------------------------------------------------- /test.mjs: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs/promises'; 2 | import test from 'ava'; 3 | import {DATA_DIRECTORY, readGlobals} from './utilities.mjs'; 4 | import globals from './index.js'; 5 | 6 | test('main', t => { 7 | t.is(typeof globals, 'object'); 8 | t.true(Object.keys(globals).length > 10 && Object.keys(globals).length < 1000); 9 | }); 10 | 11 | test('ensure alphabetical order', t => { 12 | for (const env of Object.keys(globals)) { 13 | const keys = Object.keys(globals[env]); 14 | t.deepEqual( 15 | [...keys], keys.sort((a, b) => a.localeCompare(b)), 16 | `The \`${env}\` keys don't have the correct alphabetical order`, 17 | ); 18 | } 19 | }); 20 | 21 | test('`node` is `nodeBuiltin` with CommonJS arguments', t => { 22 | // `globals.node` has `global`` which isn't a CommonJS argument and doesn't include 23 | // `__filename` and `__dirname` which are. 24 | const commonjsArguments = { 25 | __dirname: false, 26 | __filename: false, 27 | exports: true, 28 | module: false, 29 | require: false, 30 | }; 31 | 32 | t.deepEqual({...globals.nodeBuiltin, ...commonjsArguments}, globals.node); 33 | 34 | // Ensure that there's no overlap between true globals and the CommonJS arguments above. 35 | for (const builtin of Object.keys(globals.nodeBuiltin)) { 36 | t.is( 37 | commonjsArguments[builtin], 38 | undefined, 39 | `The builtin ${builtin} is not a CommonJS argument`, 40 | ); 41 | } 42 | }); 43 | 44 | test('should not contain builtins', t => { 45 | const builtins = new Set(Object.keys(globals.builtin)); 46 | 47 | for (const [env, envGlobals] of Object.entries(globals)) { 48 | if (env === 'builtin' || /^es\d+$/.test(env)) { 49 | continue; 50 | } 51 | 52 | const keys = Object.keys(envGlobals).filter(key => builtins.has(key)); 53 | 54 | t.deepEqual( 55 | keys, 56 | [], 57 | `The \`${env}\` keys should not contain builtins.`, 58 | ); 59 | } 60 | }); 61 | 62 | test('es versions', t => { 63 | const builtins = new Map(Object.entries(globals.builtin)); 64 | 65 | const esVersions = Object.keys(globals) 66 | .filter(key => /^es(?:3|5|\d{4})$/.test(key)) 67 | .sort((versionA, versionB) => Number(versionA.slice(2)) - Number(versionB.slice(2))); 68 | 69 | let previousVersion; 70 | 71 | for (const esVersion of esVersions) { 72 | const data = globals[esVersion]; 73 | for (const [key, value] of Object.entries(data)) { 74 | t.true(builtins.has(key), `The builtin '${key}' in '${esVersion}' is missing in 'builtin'.`); 75 | t.is(value, builtins.get(key), `Value of '${key}' should be the same as 'builtin'.`); 76 | } 77 | 78 | if (previousVersion) { 79 | t.deepEqual( 80 | previousVersion.globals.filter(key => !Object.hasOwn(data, key)), 81 | [], 82 | `The builtins in '${previousVersion.esVersion}' are missing in '${esVersion}'.`, 83 | ); 84 | } 85 | 86 | previousVersion = {esVersion, globals: Object.keys(globals[esVersion])}; 87 | } 88 | 89 | const latestVersion = esVersions.at(-1); 90 | t.deepEqual(globals[latestVersion], globals.builtin, `'${latestVersion}' should be the same as 'builtin'.`); 91 | }); 92 | 93 | test('globals.json', async t => { 94 | const files = await fs.readdir(DATA_DIRECTORY); 95 | const environments = files.filter(filename => filename.endsWith('.mjs')).map(filename => filename.slice(0, -4)); 96 | 97 | const jsData = Object.fromEntries( 98 | await Promise.all(environments.map(async environment => [environment, await readGlobals(environment)])), 99 | ); 100 | 101 | t.deepEqual( 102 | jsData, 103 | globals, 104 | ); 105 | }); 106 | -------------------------------------------------------------------------------- /utilities.mjs: -------------------------------------------------------------------------------- 1 | const DATA_DIRECTORY = new URL('data/', import.meta.url); 2 | 3 | const readGlobals = async (environment, {ignoreNonExits} = {}) => { 4 | const file = new URL(`${environment}.mjs`, DATA_DIRECTORY); 5 | file.searchParams.set('ts', Date.now()); 6 | 7 | let data; 8 | 9 | try { 10 | ({default: data} = await import(file)); 11 | } catch (error) { 12 | if (ignoreNonExits && error.code === 'ERR_MODULE_NOT_FOUND') { 13 | return {}; 14 | } 15 | 16 | throw error; 17 | } 18 | 19 | return data; 20 | }; 21 | 22 | const sortObject = object => 23 | Object.fromEntries( 24 | Object.entries(object).sort(([propertyA], [propertyB]) => 25 | propertyA.localeCompare(propertyB), 26 | ), 27 | ); 28 | 29 | function unique(array) { 30 | return [...new Set(array)]; 31 | } 32 | 33 | function mergeGlobals(globalsA, globalsB) { 34 | const existsInA = Object.keys(globalsB).filter(name => Object.hasOwn(globalsA, name)); 35 | if (existsInA.length > 0) { 36 | throw new Error(`Already exits:\n${existsInA.map(name => ` - ${name}`).join('\n')}`); 37 | } 38 | 39 | const existsInB = Object.keys(globalsA).filter(name => Object.hasOwn(globalsB, name)); 40 | if (existsInB.length > 0) { 41 | throw new Error(`Already exits:\n${existsInB.map(name => ` - ${name}`).join('\n')}`); 42 | } 43 | 44 | return sortObject({...globalsA, ...globalsB}); 45 | } 46 | 47 | function getIntersectionGlobals(globalsA, globalsB) { 48 | return sortObject( 49 | Object.fromEntries([ 50 | ...Object.entries(globalsA).filter(([name]) => Object.hasOwn(globalsB, name)), 51 | ...Object.entries(globalsB).filter(([name]) => Object.hasOwn(globalsA, name)), 52 | ]), 53 | ); 54 | } 55 | 56 | export { 57 | DATA_DIRECTORY, 58 | unique, 59 | sortObject, 60 | mergeGlobals, 61 | getIntersectionGlobals, 62 | readGlobals, 63 | }; 64 | --------------------------------------------------------------------------------