diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 0000000..cbb720f --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn build-library diff --git a/LIBRARY.md b/LIBRARY.md index ae8fad1..77a765f 100644 --- a/LIBRARY.md +++ b/LIBRARY.md @@ -437,3 +437,5 @@ | `XMLHttpRequest.send` | Send data via a web request | [Docs](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send) | | `XMLHttpRequest.setRequestHeader` | Set a request header | [Docs](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader) | | `XMLHttpRequest.XMLHttpRequest` | Communicate with a web server | [Docs](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/XMLHttpRequest) | +## `bind` calls +For each method listed above, Sandworm also intercepts `bind` calls. To allow `bind` calls with more than one argument, the `bind.args` permission is required. [Read more](README.md#bind-calls). \ No newline at end of file diff --git a/cli/frontend/build/static/js/bundle.js b/cli/frontend/build/static/js/bundle.js index 9472e9d..373ffb1 100644 --- a/cli/frontend/build/static/js/bundle.js +++ b/cli/frontend/build/static/js/bundle.js @@ -1506,16 +1506,17 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "nodeLibrary": () => (/* binding */ nodeLibrary), /* harmony export */ "webLibrary": () => (/* binding */ webLibrary) /* harmony export */ }); -/* harmony import */ var _library_web__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./library/web */ "../../src/library/web.js"); -/* harmony import */ var _library_web__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_library_web__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _library_node__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./library/node */ "../../src/library/node.js"); -/* harmony import */ var _library_node__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_library_node__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _library_web_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./library/web.json */ "../../src/library/web.json"); +/* harmony import */ var _library_node_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./library/node.json */ "../../src/library/node.json"); +/* harmony import */ var _library_builder__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./library/builder */ "../../src/library/builder.js"); +/* harmony import */ var _library_builder__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_library_builder__WEBPACK_IMPORTED_MODULE_2__); /* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ "./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js"); __webpack_require__.$Refresh$.runtime = __webpack_require__(/*! ./node_modules/react-refresh/runtime.js */ "./node_modules/react-refresh/runtime.js"); + const processLibrary = library => library.reduce((acc, v) => { const family = acc.find(l => l.name === v.name); @@ -1528,8 +1529,8 @@ const processLibrary = library => library.reduce((acc, v) => { return acc; }, []).sort((a, b) => a.name.localeCompare(b.name)); -const webLibrary = processLibrary(_library_web__WEBPACK_IMPORTED_MODULE_0___default()()); -const nodeLibrary = processLibrary(_library_node__WEBPACK_IMPORTED_MODULE_1___default()()); +const webLibrary = processLibrary((0,_library_builder__WEBPACK_IMPORTED_MODULE_2__.buildWebLibraryFrom)(_library_web_json__WEBPACK_IMPORTED_MODULE_0__)); +const nodeLibrary = processLibrary((0,_library_builder__WEBPACK_IMPORTED_MODULE_2__.buildNodeLibraryFrom)(_library_node_json__WEBPACK_IMPORTED_MODULE_1__)); const $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId; const $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports( @@ -38438,8 +38439,8 @@ const node = _ref2 => { }; module.exports = { - web, - node + buildNodeLibraryFrom: lib => lib.map(family => node(family)), + buildWebLibraryFrom: lib => lib.reduce((acc, cur) => [...acc, ...web(cur)], []) }; const $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId; @@ -38459,2055 +38460,6 @@ if (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Pr /***/ }), -/***/ "../../src/library/node.js": -/*!*********************************!*\ - !*** ../../src/library/node.js ***! - \*********************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ "./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js"); -__webpack_require__.$Refresh$.runtime = __webpack_require__(/*! ./node_modules/react-refresh/runtime.js */ "./node_modules/react-refresh/runtime.js"); - -const { - node: builder -} = __webpack_require__(/*! ./builder */ "../../src/library/builder.js"); - -const library = () => [{ - name: 'child_process', - methods: [{ - name: 'exec', - description: 'Spawn a shell and execute an arbitrary command', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback', - needsExplicitPermission: true - }, { - name: 'execFile', - description: 'Spawn a shell and execute an arbitrary file', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback', - needsExplicitPermission: true - }, { - name: 'fork', - description: 'Fork a child process', - url: 'https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options' - }, { - name: 'spawn', - description: 'Spawn a new process', - url: 'https://nodejs.org/api/child_process.html#child_processspawncommand-args-options' - }, { - name: 'execFileSync', - description: 'Spawn a shell and execute an arbitrary file', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options', - needsExplicitPermission: true - }, { - name: 'execSync', - description: 'Spawn a shell and execute an arbitrary command', - url: 'https://nodejs.org/api/child_process.html#child_processexecsynccommand-options', - needsExplicitPermission: true - }, { - name: 'spawnSync', - description: 'Spawn a new process', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options' - }] -}, { - name: 'cluster', - methods: [{ - name: 'disconnect', - description: 'Disconnect a worker from its parent process', - url: 'https://nodejs.org/api/cluster.html#workerdisconnect' - }, { - name: 'fork', - description: 'Fork a new worker process', - url: 'https://nodejs.org/api/cluster.html#clusterforkenv' - }, { - name: 'setupPrimary', - description: 'Change the default fork behavior of cluster.fork', - url: 'https://nodejs.org/api/cluster.html#clustersetupprimarysettings' - }, { - name: 'setupMaster', - description: 'Change the default fork behavior of cluster.fork', - url: 'https://nodejs.org/api/cluster.html#clustersetupmastersettings' - }] -}, { - name: 'dgram', - methods: [{ - name: 'createSocket', - description: 'Create a datagram socket', - url: 'https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_type_callback' - }] -}, { - name: 'dns', - methods: [{ - name: 'Resolver', - isConstructor: true, - description: 'Create a DNS resolver', - url: 'https://nodejs.org/api/dns.html#dns_class_dns_resolver' - }, { - name: 'getServers', - description: 'Get the list of current DNS servers', - url: 'https://nodejs.org/api/dns.html#dns_dns_getservers' - }, { - name: 'lookup', - description: 'Resolve a host name into the first found A or AAAA record', - url: 'https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback' - }, { - name: 'lookupService', - description: 'Resolve the given address and port into a host name and service', - url: 'https://nodejs.org/api/dns.html#dnslookupserviceaddress-port-callback' - }, { - name: 'resolve', - description: 'Resolve a host name into an array of records', - url: 'https://nodejs.org/api/dns.html#dnsresolvehostname-rrtype-callback' - }, { - name: 'resolve4', - description: 'Resolve a host name to an IPv4 address', - url: 'https://nodejs.org/api/dns.html#dnsresolve4hostname-options-callback' - }, { - name: 'resolve6', - description: 'Resolve a host name to an IPv6 address', - url: 'https://nodejs.org/api/dns.html#dnsresolve6hostname-options-callback' - }, { - name: 'resolveAny', - description: 'Resolve a host name to an array of records', - url: 'https://nodejs.org/api/dns.html#dnsresolveanyhostname-callback' - }, { - name: 'resolveCname', - description: 'Resolve a host name to an array of CNAME records', - url: 'https://nodejs.org/api/dns.html#dnsresolvecnamehostname-callback' - }, { - name: 'resolveCaa', - description: 'Resolve a host name to an array of CAA records', - url: 'https://nodejs.org/api/dns.html#dnsresolvecaahostname-callback' - }, { - name: 'resolveMx', - description: 'Resolve a host name to an array of MX records', - url: 'https://nodejs.org/api/dns.html#dnsresolvemxhostname-callback' - }, { - name: 'resolveNaptr', - description: 'Resolve a host name to an array of NAPTR records', - url: 'https://nodejs.org/api/dns.html#dnsresolvenaptrhostname-callback' - }, { - name: 'resolveNs', - description: 'Resolve a host name to an array of NS records', - url: 'https://nodejs.org/api/dns.html#dnsresolvenshostname-callback' - }, { - name: 'resolvePtr', - description: 'Resolve a host name to an array of PTR records', - url: 'https://nodejs.org/api/dns.html#dnsresolveptrhostname-callback' - }, { - name: 'resolveSoa', - description: 'Resolve a host name to an SOA record', - url: 'https://nodejs.org/api/dns.html#dnsresolvesoahostname-callback' - }, { - name: 'resolveSrv', - description: 'Resolve a host name to an array of SRV records', - url: 'https://nodejs.org/api/dns.html#dnsresolvesrvhostname-callback' - }, { - name: 'resolveTxt', - description: 'Resolve a host name to an array of TXT records', - url: 'https://nodejs.org/api/dns.html#dnsresolvetxthostname-callback' - }, { - name: 'reverse', - description: 'Perform a reverse lookup for the given address', - url: 'https://nodejs.org/api/dns.html#dnsreverseip-callback' - }, { - name: 'setDefaultResultOrder', - description: 'Set the default order for result records', - url: 'https://nodejs.org/api/dns.html#dnssetdefaultresultorderorder' - }, { - name: 'setServers', - description: 'Set the list of DNS servers to be used', - url: 'https://nodejs.org/api/dns.html#dns_dns_setservers_servers' - }] -}, { - name: 'fetch', - methods: [{ - name: 'fetch', - description: 'Communicate with a web server', - url: 'https://nodejs.org/api/fetch/' - }], - globalMethod: true -}, { - name: 'eval', - methods: [{ - name: 'eval', - description: 'Run arbitrary JS code from a string', - url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval', - needsExplicitPermission: true - }], - globalMethod: true -}, { - name: 'Function', - methods: [{ - name: 'Function', - description: 'Create a new function from an arbitrary string', - url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function', - needsExplicitPermission: true - }], - globalMethod: true -}, { - name: 'fs', - methods: [// Callback API - { - name: 'access', - description: "Test a user's permissions for a file or directory", - url: 'https://nodejs.org/api/fs.html#fsaccesspath-mode-callback' - }, { - name: 'appendFile', - description: 'Append to a file', - url: 'https://nodejs.org/api/fs.html#fsappendfilepath-data-options-callback' - }, { - name: 'chmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fschmodpath-mode-callback' - }, { - name: 'chown', - description: 'Change file ownership', - url: 'https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback' - }, { - name: 'close', - description: 'Close a file descriptor', - url: 'https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback' - }, { - name: 'copyFile', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback' - }, { - name: 'cp', - description: 'Copy a directory', - url: 'https://nodejs.org/api/fs.html#fscpsrc-dest-options-callback' - }, { - name: 'createReadStream', - description: 'Create a readable stream', - url: 'https://nodejs.org/api/fs.html#fscreatereadstreampath-options' - }, { - name: 'createWriteStream', - description: 'Create a writable stream', - url: 'https://nodejs.org/api/fs.html#fscreatewritestreampath-options' - }, { - name: 'exists', - description: 'Test whether or not a file exists', - url: 'https://nodejs.org/api/fs.html#fsexistspath-callback' - }, { - name: 'fchmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fsfchmodfd-mode-callback' - }, { - name: 'fchown', - description: 'Change file ownership', - url: 'https://nodejs.org/api/fs.html#fsfchownfd-uid-gid-callback' - }, { - name: 'fdatasync', - description: 'Force all currently queued I/O operations to completion', - url: 'https://nodejs.org/api/fs.html#fsfdatasyncfd-callback' - }, { - name: 'fstat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsfstatfd-options-callback' - }, { - name: 'fsync', - description: 'Request data to be flushed to the storage device', - url: 'https://nodejs.org/api/fs.html#fsfsyncfd-callback' - }, { - name: 'ftruncate', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fsftruncatefd-len-callback' - }, { - name: 'futimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsfutimesfd-atime-mtime-callback' - }, { - name: 'lchmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fslchmodpath-mode-callback' - }, { - name: 'lchown', - description: 'Change file ownership', - url: 'https://nodejs.org/api/fs.html#fslchownpath-uid-gid-callback' - }, { - name: 'lutimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fslutimespath-atime-mtime-callback' - }, { - name: 'link', - description: 'Create a new link', - url: 'https://nodejs.org/api/fs.html#fslinkexistingpath-newpath-callback' - }, { - name: 'lstat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fslstatpath-options-callback' - }, { - name: 'mkdir', - description: 'Create a directory', - url: 'https://nodejs.org/api/fs.html#fsmkdirpath-options-callback' - }, { - name: 'mkdtemp', - description: 'Create a unique temporary directory', - url: 'https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback' - }, { - name: 'open', - description: 'Open a file', - url: 'https://nodejs.org/api/fs.html#fsopenpath-flags-mode-callback' - }, { - name: 'opendir', - description: 'Open a directory', - url: 'https://nodejs.org/api/fs.html#fsopendirpath-options-callback' - }, { - name: 'read', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadfd-buffer-offset-length-position-callback' - }, { - name: 'readdir', - description: 'Read a directory', - url: 'https://nodejs.org/api/fs.html#fsreaddirpath-options-callback' - }, { - name: 'readFile', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadfilepath-options-callback' - }, { - name: 'readlink', - description: 'Read a symbolic link', - url: 'https://nodejs.org/api/fs.html#fsreadlinkpath-options-callback' - }, { - name: 'readv', - description: 'Read from a file', - url: 'https://nodejs.org/api/fs.html#fsreadvfd-buffers-position-callback' - }, { - name: 'realpath', - description: 'Resolve a canonical path', - url: 'https://nodejs.org/api/fs.html#fsrealpathpath-options-callback' - }, { - name: 'rename', - description: 'Rename a file or directory', - url: 'https://nodejs.org/api/fs.html#fsrenameoldpath-newpath-callback' - }, { - name: 'rmdir', - description: 'Remove a directory', - url: 'https://nodejs.org/api/fs.html#fsrmdirpath-options-callback' - }, { - name: 'rm', - description: 'Remove a file', - url: 'https://nodejs.org/api/fs.html#fsrmpath-options-callback' - }, { - name: 'stat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsstatpath-options-callback' - }, { - name: 'symlink', - description: 'Create a symbolic link', - url: 'https://nodejs.org/api/fs.html#fssymlinktarget-path-type-callback' - }, { - name: 'truncate', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fstruncatepath-len-callback' - }, { - name: 'unlink', - description: 'Delete a file', - url: 'https://nodejs.org/api/fs.html#fsunlinkpath-callback' - }, { - name: 'unwatchFile', - description: 'Stop watching a file for changes', - url: 'https://nodejs.org/api/fs.html#fsunwatchfilefilename-listener' - }, { - name: 'utimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsutimespath-atime-mtime-callback' - }, { - name: 'watch', - description: 'Monitor a file for changes', - url: 'https://nodejs.org/api/fs.html#fswatchfilename-options-listener' - }, { - name: 'watchFile', - description: 'Monitor a file for changes', - url: 'https://nodejs.org/api/fs.html#fswatchfilefilename-options-listener' - }, { - name: 'write', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritefd-buffer-offset-length-position-callback' - }, { - name: 'writeFile', - description: 'Write a file', - url: 'https://nodejs.org/api/fs.html#fswritefilefile-data-options-callback' - }, { - name: 'writev', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritevfd-buffers-position-callback' - }, // Synchronous API - { - name: 'accessSync', - description: "Test a user's permissions for a file or directory", - url: 'https://nodejs.org/api/fs.html#fsaccesssyncpath-mode' - }, { - name: 'appendFileSync', - description: 'Append data to a file', - url: 'https://nodejs.org/api/fs.html#fsappendfilesyncpath-data-options' - }, { - name: 'chmodSync', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fschmodsyncpath-mode' - }, { - name: 'chownSync', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fschownsyncpath-uid-gid' - }, { - name: 'closeSync', - description: 'Close a file', - url: 'https://nodejs.org/api/fs.html#fsclosesyncfd' - }, { - name: 'copyFileSync', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fscopyfilesyncsrc-dest-mode' - }, { - name: 'cpSync', - description: 'Copy a directory', - url: 'https://nodejs.org/api/fs.html#fscpsyncsrc-dest-options' - }, { - name: 'existsSync', - description: 'Test whether a file exists', - url: 'https://nodejs.org/api/fs.html#fsexistssyncpath' - }, { - name: 'fchmodSync', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fsfchmodsyncfd-mode' - }, { - name: 'fchownSync', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fsfchownsyncfd-uid-gid' - }, { - name: 'fdatasyncSync', - description: 'Force all currently queued I/O operations to completion', - url: 'https://nodejs.org/api/fs.html#fsfdatasyncsyncfd' - }, { - name: 'fstatSync', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsfstatsyncfd-options' - }, { - name: 'fsyncSync', - description: 'Force all data to be flushed to the storage device', - url: 'https://nodejs.org/api/fs.html#fsfsyncsyncfd' - }, { - name: 'ftruncateSync', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fsftruncatesyncfd-len' - }, { - name: 'futimesSync', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsfutimessyncfd-atime-mtime' - }, { - name: 'lchmodSync', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fslchmodsyncpath-mode' - }, { - name: 'lchownSync', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fslchownsyncpath-uid-gid' - }, { - name: 'lutimesSync', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fslutimessyncpath-atime-mtime' - }, { - name: 'linkSync', - description: 'Create a hard link', - url: 'https://nodejs.org/api/fs.html#fslinksyncexistingpath-newpath' - }, { - name: 'lstatSync', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fslstatsyncpath-options' - }, { - name: 'mkdirSync', - description: 'Create a directory', - url: 'https://nodejs.org/api/fs.html#fsmkdirsyncpath-options' - }, { - name: 'mkdtempSync', - description: 'Create a temporary directory', - url: 'https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options' - }, { - name: 'openSync', - description: 'Open a file', - url: 'https://nodejs.org/api/fs.html#fsopensyncpath-flags-mode' - }, { - name: 'opendirSync', - description: 'Open a directory', - url: 'https://nodejs.org/api/fs.html#fsopendirsyncpath-options' - }, { - name: 'readSync', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadsyncfd-buffer-offset-length-position' - }, { - name: 'readdirSync', - description: 'Read a directory', - url: 'https://nodejs.org/api/fs.html#fsreaddirsyncpath-options' - }, { - name: 'readFileSync', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadfilesyncpath-options' - }, { - name: 'readlinkSync', - description: 'Read a symbolic link', - url: 'https://nodejs.org/api/fs.html#fsreadlinksyncpath-options' - }, { - name: 'readvSync', - description: 'Read from a file', - url: 'https://nodejs.org/api/fs.html#fsreadvsyncfd-buffers-position' - }, { - name: 'realpathSync', - description: 'Return canonical absolute pathname', - url: 'https://nodejs.org/api/fs.html#fsrealpathsyncpath-options' - }, { - name: 'renameSync', - description: 'Rename a file or directory', - url: 'https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath' - }, { - name: 'rmdirSync', - description: 'Remove a directory', - url: 'https://nodejs.org/api/fs.html#fsrmdirsyncpath-options' - }, { - name: 'rmSync', - description: 'Remove a file', - url: 'https://nodejs.org/api/fs.html#fsrmsyncpath-options' - }, { - name: 'statSync', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsstatsyncpath-options' - }, { - name: 'symlinkSync', - description: 'Create a symbolic link', - url: 'https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type' - }, { - name: 'truncateSync', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fstruncatesyncpath-len' - }, { - name: 'unlinkSync', - description: 'Delete a file', - url: 'https://nodejs.org/api/fs.html#fsunlinksyncpath' - }, { - name: 'utimesSync', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsutimessyncpath-atime-mtime' - }, { - name: 'writeSync', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritesyncfd-buffer-offset-length-position' - }, { - name: 'writeFileSync', - description: 'Write a file', - url: 'https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options' - }, { - name: 'writevSync', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritevsyncfd-buffers-position' - }] -}, { - name: 'fs/promises', - methods: [{ - name: 'access', - description: "Test a user's permissions for a file or directory", - url: 'https://nodejs.org/api/fs.html#fspromisesaccesspath-mode' - }, { - name: 'appendFile', - description: 'Append data to a file', - url: 'https://nodejs.org/api/fs.html#fspromisesappendfilepath-data-options' - }, { - name: 'chmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fspromiseschmodpath-mode' - }, { - name: 'chown', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fspromiseschownpath-uid-gid' - }, { - name: 'copyFile', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fspromisescopyfilesrc-dest-mode' - }, { - name: 'cp', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fspromisescpsrc-dest-options' - }, { - name: 'lchmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fspromiseslchmodpath-mode' - }, { - name: 'lchown', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fspromiseslchownpath-uid-gid' - }, { - name: 'lutimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fspromiseslutimespath-atime-mtime' - }, { - name: 'link', - description: 'Create a hard link', - url: 'https://nodejs.org/api/fs.html#fspromiseslinkexistingpath-newpath' - }, { - name: 'lstat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fspromiseslstatpath-options' - }, { - name: 'mkdir', - description: 'Create a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesmkdirpath-options' - }, { - name: 'mkdtemp', - description: 'Create a temporary directory', - url: 'https://nodejs.org/api/fs.html#fspromisesmkdtempprefix-options' - }, { - name: 'open', - description: 'Open a file', - url: 'hhttps://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode' - }, { - name: 'opendir', - description: 'Open a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesopendirpath-options' - }, { - name: 'readdir', - description: 'Read a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesreaddirpath-options' - }, { - name: 'readFile', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fspromisesreadfilepath-options' - }, { - name: 'readlink', - description: 'Read a symbolic link', - url: 'https://nodejs.org/api/fs.html#fspromisesreadlinkpath-options' - }, { - name: 'realpath', - description: 'Return canonical absolute pathname', - url: 'https://nodejs.org/api/fs.html#fspromisesrealpathpath-options' - }, { - name: 'rename', - description: 'Rename a file or directory', - url: 'https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath' - }, { - name: 'rmdir', - description: 'Remove a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesrmdirpath-options' - }, { - name: 'rm', - description: 'Remove a file', - url: 'https://nodejs.org/api/fs.html#fspromisesrmpath-options' - }, { - name: 'stat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fspromisesstatpath-options' - }, { - name: 'symlink', - description: 'Create a symbolic link', - url: 'https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type' - }, { - name: 'truncate', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fspromisestruncatepath-len' - }, { - name: 'unlink', - description: 'Delete a file', - url: 'https://nodejs.org/api/fs.html#fspromisesunlinkpath' - }, { - name: 'utimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fspromisesutimespath-atime-mtime' - }, { - name: 'watch', - description: 'Watch for changes on a file', - url: 'https://nodejs.org/api/fs.html#fspromiseswatchfilename-options' - }, { - name: 'writeFile', - description: 'Write data to a file', - url: 'https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options' - }] -}, { - name: 'http', - methods: [{ - name: 'Agent', - description: 'Manage HTTP connection persistence and reuse', - url: 'https://nodejs.org/api/http.html#class-httpagent' - }, { - name: 'createServer', - description: 'Create a new HTTP server', - url: 'https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener' - }, { - name: 'get', - description: 'Send a GET request to a server', - url: 'https://nodejs.org/api/http.html#httpgetoptions-callback' - }, { - name: 'request', - description: 'Send an HTTP request to a server', - url: 'https://nodejs.org/api/http.html#httprequestoptions-callback' - }] -}, { - name: 'http2', - methods: [{ - name: 'createServer', - description: 'Create a new HTTP/2 server', - url: 'https://nodejs.org/api/http2.html#http2createserveroptions-onrequesthandler' - }, { - name: 'createSecureServer', - description: 'Create a new secure HTTP/2 server', - url: 'https://nodejs.org/api/http2.html#http2createsecureserveroptions-onrequesthandler' - }, { - name: 'connect', - description: 'Establish a connection to a server', - url: 'https://nodejs.org/api/http2.html#http2connectauthority-options-listener' - }, { - name: 'getDefaultSettings', - description: 'Get the default settings for a HTTP/2 session', - url: 'https://nodejs.org/api/http2.html#http2getdefaultsettings' - }, { - name: 'getPackedSettings', - description: 'Get the current settings for a HTTP/2 session', - url: 'https://nodejs.org/api/http2.html#http2getpackedsettings' - }, { - name: 'getUnpackedSettings', - description: 'Get the current settings for a HTTP/2 session', - url: 'hhttps://nodejs.org/api/http2.html#http2getunpackedsettingsbuf' - }] -}, { - name: 'https', - methods: [{ - name: 'Agent', - description: 'Manage HTTPS connection persistence and reuse', - url: 'https://nodejs.org/api/https.html#class-httpsagent' - }, { - name: 'createServer', - description: 'Create a new HTTPS server', - url: 'https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener' - }, { - name: 'get', - description: 'Send a GET request to a server', - url: 'https://nodejs.org/api/https.html#httpsgetoptions-callback' - }, { - name: 'request', - description: 'Send an HTTPS request to a server', - url: 'https://nodejs.org/api/https.html#httpsrequestoptions-callback' - }] -}, { - name: 'inspector', - methods: [{ - name: 'close', - description: 'Close a V8 inspector', - url: 'https://nodejs.org/api/inspector.html#inspectorclose' - }, { - name: 'open', - description: 'Open a V8 inspector', - url: 'https://nodejs.org/api/inspector.html#inspectoropenport-host-wait' - }, { - name: 'url', - description: 'Get the URL of the V8 inspector', - url: 'https://nodejs.org/api/inspector.html#inspectorurl' - }, { - name: 'waitForDebugger', - description: 'Wait for the V8 debugger to connect', - url: 'https://nodejs.org/api/inspector.html#inspectorwaitfordebugger' - }, { - name: 'Session', - isConstructor: true, - description: 'Create a new V8 inspector session', - url: 'https://nodejs.org/api/inspector.html#class-inspectorsession' - }] -}, { - name: 'net', - methods: [{ - name: 'Server', - description: 'Create a new TCP server', - url: 'https://nodejs.org/api/net.html#class-netserver' - }, { - name: 'Socket', - description: 'Create a new TCP socket', - url: 'https://nodejs.org/api/net.html#class-netsocket' - }, { - name: 'connect', - description: 'Connect to a remote TCP server', - url: 'https://nodejs.org/api/net.html#netconnect' - }, { - name: 'createConnection', - description: 'Connect to a remote TCP server', - url: 'https://nodejs.org/api/net.html#netcreateconnection' - }, { - name: 'createServer', - description: 'Create a new TCP server', - url: 'https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener' - }] -}, { - name: 'os', - methods: [{ - name: 'arch', - description: 'Get the CPU architecture', - url: 'https://nodejs.org/api/os.html#osarch' - }, { - name: 'cpus', - description: 'Get CPU information', - url: 'https://nodejs.org/api/os.html#oscpus' - }, { - name: 'endianness', - description: 'Get the endianness of the CPU', - url: 'https://nodejs.org/api/os.html#osendianness' - }, { - name: 'freemem', - description: 'Get the amount of free system memory', - url: 'https://nodejs.org/api/os.html#osfreemem' - }, { - name: 'getPriority', - description: 'Get the scheduling priority for a process', - url: 'https://nodejs.org/api/os.html#osgetprioritypid' - }, { - name: 'homedir', - description: 'Get the home directory path for the current user', - url: 'https://nodejs.org/api/os.html#oshomedir' - }, { - name: 'hostname', - description: 'Get the hostname of the OS', - url: 'https://nodejs.org/api/os.html#oshostname' - }, { - name: 'loadavg', - description: 'Get system load average information', - url: 'https://nodejs.org/api/os.html#osloadavg' - }, { - name: 'networkInterfaces', - description: 'Get a list of network interfaces', - url: 'https://nodejs.org/api/os.html#osnetworkinterfaces' - }, { - name: 'platform', - description: 'Get the operating system platform', - url: 'https://nodejs.org/api/os.html#osplatform' - }, { - name: 'release', - description: 'Get the operating system release', - url: 'https://nodejs.org/api/os.html#osrelease' - }, { - name: 'setPriority', - description: 'Set the scheduling priority for a process', - url: 'https://nodejs.org/api/os.html#ossetprioritypid-priority' - }, { - name: 'tmpdir', - description: 'Get the path of a temporary directory', - url: 'https://nodejs.org/api/os.html#ostmpdir' - }, { - name: 'totalmem', - description: 'Get the total amount of system memory', - url: 'https://nodejs.org/api/os.html#ostotalmem' - }, { - name: 'type', - description: 'Get the operating system name', - url: 'https://nodejs.org/api/os.html#ostype' - }, { - name: 'uptime', - description: 'Get the system uptime', - url: 'https://nodejs.org/api/os.html#osuptime' - }, { - name: 'userInfo', - description: 'Get current user information', - url: 'https://nodejs.org/api/os.html#osuserinfooptions' - }, { - name: 'version', - description: 'Get the kernel version', - url: 'https://nodejs.org/api/os.html#osversion' - }] -}, { - name: 'process', - methods: [{ - name: 'abort', - description: 'Exit the Node.js process immediately', - url: 'https://nodejs.org/api/process.html#processabort' - }, { - name: 'chdir', - description: 'Change the current working directory', - url: 'https://nodejs.org/api/process.html#processchdirdirectory' - }, { - name: 'cpuUsage', - description: 'Get current process CPU usage info', - url: 'https://nodejs.org/api/process.html#processcpuusagepreviousvalue' - }, { - name: 'cwd', - description: 'Get the current working directory', - url: 'https://nodejs.org/api/process.html#processcwd' - }, { - name: 'disconnect', - description: 'Disconnect child process from parent', - url: 'https://nodejs.org/api/process.html#processdisconnect' - }, { - name: 'dlopen', - description: 'Load C++ addons', - url: 'https://nodejs.org/api/process.html#processdlopenmodule-filename-flags', - needsExplicitPermission: true - }, { - name: 'emitWarning', - description: 'Emit a custom process warning', - url: 'https://nodejs.org/api/process.html#processemitwarningwarning-options' - }, { - name: 'exit', - description: 'Exit the Node.js process', - url: 'https://nodejs.org/api/process.html#processexitcode' - }, { - name: 'getActiveResourcesInfo', - description: 'Get a list of resources currently keeping the event loop alive', - url: 'https://nodejs.org/api/process.html#processgetactiveresourcesinfo' - }, { - name: 'getegid', - description: 'Get the effective group id of the Node.js process', - url: 'https://nodejs.org/api/process.html#processgetegid' - }, { - name: 'geteuid', - description: 'Get the effective numerical user id', - url: 'https://nodejs.org/api/process.html#processgeteuid' - }, { - name: 'getgid', - description: 'Get the numerical group id of the process', - url: 'https://nodejs.org/api/process.html#processgetgid' - }, { - name: 'getgroups', - description: 'Get the list of supplementary group ids', - url: 'https://nodejs.org/api/process.html#processgetgroups' - }, { - name: 'getuid', - description: 'Get the numerical user id of the process', - url: 'https://nodejs.org/api/process.html#processgetuid' - }, { - name: 'hasUncaughtExceptionCaptureCallback', - description: 'Find out if there is an uncaught exception callback set', - url: 'https://nodejs.org/api/process.html#processhasuncaughtexceptioncapturecallback' - }, { - name: 'hrtime', - description: 'Get high resolution time', - url: 'https://nodejs.org/api/process.html#processhrtimetime' - }, { - name: 'initgroups', - description: 'Initialize the group access list', - url: 'https://nodejs.org/api/process.html#processinitgroupsuser-extragroup' - }, { - name: 'kill', - description: 'Kill a process', - url: 'https://nodejs.org/api/process.html#processkillpid-signal' - }, { - name: 'memoryUsage', - description: 'Get memory usage information', - url: 'https://nodejs.org/api/process.html#processmemoryusage' - }, { - name: 'resourceUsage', - description: 'Get resource usage information', - url: 'https://nodejs.org/api/process.html#processresourceusage' - }, { - name: 'send', - description: 'Send a message to a process', - url: 'https://nodejs.org/api/process.html#processsendmessage-sendhandle-options-callback' - }, { - name: 'setegid', - description: 'Set the effective group id of the process', - url: 'https://nodejs.org/api/process.html#processsetegidid' - }, { - name: 'seteuid', - description: 'Set the effective user id of the process', - url: 'https://nodejs.org/api/process.html#processseteuidid' - }, { - name: 'setgid', - description: 'Set the group id of the process', - url: 'https://nodejs.org/api/process.html#processsetgidid' - }, { - name: 'setgroups', - description: 'Set the supplementary group ids of the process', - url: 'https://nodejs.org/api/process.html#processsetgroupsgroups' - }, { - name: 'setuid', - description: 'Set the user id of the process', - url: 'https://nodejs.org/api/process.html#processsetuidid' - }, { - name: 'setSourceMapsEnabled', - description: 'Enable/disable source maps', - url: 'https://nodejs.org/api/process.html#processsetsourcemapsenabledval' - }, { - name: 'setUncaughtExceptionCaptureCallback', - description: 'Set a callback to run when there is an uncaught exception', - url: 'https://nodejs.org/api/process.html#processsetuncaughtexceptioncapturecallbackfn' - }, { - name: 'umask', - description: 'Set the file mode creation mask', - url: 'https://nodejs.org/api/process.html#processumask' - }, { - name: 'uptime', - description: 'Get the process uptime', - url: 'https://nodejs.org/api/process.html#processuptime' - }, { - name: 'on', - description: 'Add a listener for a process event', - url: 'https://nodejs.org/api/process.html#process-events' - }] -}, { - name: 'timers', - methods: [{ - name: 'setImmediate', - description: 'Queue a function for execution', - url: 'https://nodejs.org/api/timers.html#setimmediatecallback-args' - }, { - name: 'setInterval', - description: 'Set a repeating timer to execute a function', - url: 'https://nodejs.org/api/timers.html#setintervalcallback-delay-args' - }, { - name: 'setTimeout', - description: 'Set a timer to execute a function', - url: 'https://nodejs.org/api/timers.html#settimeoutcallback-delay-args' - }, { - name: 'clearImmediate', - description: 'Cancel a setImmediate callback', - url: 'https://nodejs.org/api/timers.html#clearimmediateimmediate' - }, { - name: 'clearInterval', - description: 'Cancel a setInterval callback', - url: 'https://nodejs.org/api/timers.html#clearintervaltimeout' - }, { - name: 'clearTimeout', - description: 'Cancel a setTimeout callback', - url: 'https://nodejs.org/api/timers.html#cleartimeouttimeout' - }] -}, { - name: 'timers/promises', - methods: [{ - name: 'setImmediate', - description: 'Queue a function for execution', - url: 'https://nodejs.org/api/timers.html#timerspromisessetimmediatevalue-options' - }, { - name: 'setInterval', - description: 'Set a repeating timer to execute a function', - url: 'https://nodejs.org/api/timers.html#timerspromisessetintervaldelay-value-options' - }, { - name: 'setTimeout', - description: 'Set a timer to execute a function', - url: 'https://nodejs.org/api/timers.html#timerspromisessettimeoutdelay-value-options' - }] -}, { - name: 'tls', - methods: [{ - name: 'Server', - description: 'Create a new TLS server', - url: 'https://nodejs.org/api/tls.html#class-tlsserver' - }, { - name: 'TLSSocket', - description: 'Create a new TLS socket', - url: 'https://nodejs.org/api/tls.html#class-tlstlssocket' - }, { - name: 'checkServerIdentity', - description: 'Verify that a server certificate is valid for a given host', - url: 'https://nodejs.org/api/tls.html#tlscheckserveridentityhostname-cert' - }, { - name: 'connect', - description: 'Connect to a TLS server', - url: 'https://nodejs.org/api/tls.html#tlsconnectoptions-callback' - }, { - name: 'createSecureContext', - description: 'Create a new secure context', - url: 'https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions' - }, { - name: 'createSecurePair', - description: 'Create a new secure pair', - url: 'https://nodejs.org/api/tls.html#tlscreatesecurepaircontext-isserver-requestcert-rejectunauthorized-options' - }, { - name: 'createServer', - description: 'Create a new TLS server', - url: 'https://nodejs.org/api/tls.html#tlscreateserveroptions-secureconnectionlistener' - }, { - name: 'getCiphers', - description: 'Get a list of supported TLS ciphers', - url: 'https://nodejs.org/api/tls.html#tlsgetciphers' - }] -}, { - name: 'trace_events', - methods: [{ - name: 'createTracing', - description: 'Centralize system tracing information', - url: 'https://nodejs.org/api/tracing.html#trace_eventscreatetracingoptions' - }, { - name: 'getEnabledCategories', - description: 'Get the enabled trace event categories', - url: 'https://nodejs.org/api/tracing.html#trace_eventsgetenabledcategories' - }] -}, { - name: 'v8', - methods: [{ - name: 'cachedDataVersionTag', - description: 'Get a version tag derived from the V8 version, command-line flags, and detected CPU features', - url: 'https://nodejs.org/api/v8.html#v8cacheddataversiontag' - }, { - name: 'getHeapCodeStatistics', - description: 'Get statistics about code and its metadata in the heap', - url: 'https://nodejs.org/api/v8.html#v8getheapcodestatistics' - }, { - name: 'getHeapSnapshot', - description: 'Generate a snapshot of the current V8 heap', - url: 'https://nodejs.org/api/v8.html#v8getheapsnapshot' - }, { - name: 'getHeapSpaceStatistics', - description: 'Get statistics about the V8 heap spaces', - url: 'https://nodejs.org/api/v8.html#v8getheapspacestatistics' - }, { - name: 'getHeapStatistics', - description: 'Get detailed V8 heap statistics', - url: 'https://nodejs.org/api/v8.html#v8getheapstatistics' - }, { - name: 'setFlagsFromString', - description: 'Programmatically set V8 command-line flags', - url: 'https://nodejs.org/api/v8.html#v8setflagsfromstringflags' - }, { - name: 'stopCoverage', - description: 'Stop collecting JavaScript code coverage collection', - url: 'https://nodejs.org/api/v8.html#v8stopcoverage' - }, { - name: 'takeCoverage', - description: 'Write code coverage data to disk', - url: 'https://nodejs.org/api/v8.html#v8takecoverage' - }, { - name: 'writeHeapSnapshot', - description: 'Write a heap snapshot to a file', - url: 'https://nodejs.org/api/v8.html#v8writeheapsnapshotfilename' - }, { - name: 'serialize', - description: 'Serialize value into a buffer', - url: 'https://nodejs.org/api/v8.html#v8serializevalue' - }, { - name: 'deserialize', - description: 'Deserialize value from a buffer', - url: 'https://nodejs.org/api/v8.html#v8deserializebuffer' - }] -}, { - name: 'vm', - methods: [{ - name: 'Script', - isConstructor: true, - description: 'Precompile arbitrary code to execute later', - url: 'https://nodejs.org/api/vm.html#class-vmscript', - needsExplicitPermission: true - }, { - name: 'SourceTextModule', - description: 'Create a module defined from ECMAScript source text', - url: 'https://nodejs.org/api/vm.html#class-vmsourcetextmodule' - }, { - name: 'SyntheticModule', - description: 'Create a WebIDL synthetic module', - url: 'https://nodejs.org/api/vm.html#class-vmsyntheticmodule' - }, { - name: 'compileFunction', - description: 'Compile a JavaScript function', - url: 'https://nodejs.org/api/vm.html#vmcompilefunctioncode-params-options' - }, { - name: 'createContext', - description: 'Create a new execution context', - url: 'https://nodejs.org/api/vm.html#vmcreatecontextcontextobject-options' - }, { - name: 'isContext', - description: 'Check if the given object is an execution context', - url: 'https://nodejs.org/api/vm.html#vmiscontextobject' - }, { - name: 'measureMemory', - description: 'Measure V8 memory usage', - url: 'https://nodejs.org/api/vm.html#vmmeasurememoryoptions' - }, { - name: 'runInContext', - description: 'Run arbitrary code in a context', - url: 'https://nodejs.org/api/vm.html#vmrunincontextcode-contextifiedobject-options', - needsExplicitPermission: true - }, { - name: 'runInNewContext', - description: 'Run arbitrary code in a new context', - url: 'https://nodejs.org/api/vm.html#vmruninnewcontextcode-contextobject-options', - needsExplicitPermission: true - }, { - name: 'runInThisContext', - description: 'Run arbitrary code in the current context', - url: 'https://nodejs.org/api/vm.html#vmruninthiscontextcode-options', - needsExplicitPermission: true - }] -}, { - name: 'wasi', - methods: [{ - name: 'WASI', - isConstructor: true, - description: 'Give WebAssembly apps access to the underlying OS', - url: 'https://nodejs.org/api/wasi.html#new-wasioptions', - needsExplicitPermission: true - }] -}, { - name: 'worker_threads', - methods: [{ - name: 'Worker', - isConstructor: true, - description: 'Create a new independent JavaScript execution thread', - url: 'https://nodejs.org/api/worker_threads.html#class-worker' - }, { - name: 'getEnvironmentData', - description: 'Get thread environment data', - url: 'https://nodejs.org/api/worker_threads.html#workergetenvironmentdatakey' - }, { - name: 'markAsUntransferable', - description: 'Mark a buffer as untransferable between threads', - url: 'https://nodejs.org/api/worker_threads.html#workermarkasuntransferableobject' - }, { - name: 'moveMessagePortToContext', - description: 'Move a message port to a different context', - url: 'https://nodejs.org/api/worker_threads.html#workermovemessageporttocontextport-contextifiedsandbox' - }, { - name: 'receiveMessageOnPort', - description: 'Receive single a message on a port', - url: 'https://nodejs.org/api/worker_threads.html#workerreceivemessageonportport' - }, { - name: 'setEnvironmentData', - description: 'Set thread environment data', - url: 'https://nodejs.org/api/worker_threads.html#workersetenvironmentdatakey-value' - }] -}].map(lib => builder(lib)); - -module.exports = library; - -const $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId; -const $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports( - $ReactRefreshModuleId$ -); - -function $ReactRefreshModuleRuntime$(exports) { - if (false) {} -} - -if (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Promise) { - $ReactRefreshCurrentExports$.then($ReactRefreshModuleRuntime$); -} else { - $ReactRefreshModuleRuntime$($ReactRefreshCurrentExports$); -} - -/***/ }), - -/***/ "../../src/library/web.js": -/*!********************************!*\ - !*** ../../src/library/web.js ***! - \********************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* provided dependency */ var __react_refresh_utils__ = __webpack_require__(/*! ./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js */ "./node_modules/@pmmmwh/react-refresh-webpack-plugin/lib/runtime/RefreshUtils.js"); -__webpack_require__.$Refresh$.runtime = __webpack_require__(/*! ./node_modules/react-refresh/runtime.js */ "./node_modules/react-refresh/runtime.js"); - -const { - web: builder -} = __webpack_require__(/*! ./builder */ "../../src/library/builder.js"); - -const library = () => [{ - name: 'AudioContext', - globalConstructor: true, - constructorDescription: 'Enable execution of audio processing or decoding.', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/AudioContext' -}, { - // swReg.backgroundFetch - name: 'BackgroundFetchManager', - methods: [{ - name: 'fetch', - description: 'Register URLs for background fetch', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/fetch' - }, { - name: 'get', - description: 'Get info on background fetch job', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/get' - }, { - name: 'getIds', - description: 'Return the IDs of all registered background fetches', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/getIds' - }] -}, { - name: 'BackgroundTasks', - globalMethods: [{ - name: 'requestIdleCallback', - description: 'Queue task to be executed in the background', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback' - }, { - name: 'cancelIdleCallback', - description: 'Cancel a previously queued background task', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelIdleCallback' - }] -}, { - name: 'Beacon', - navigatorMethods: [{ - name: 'sendBeacon', - description: 'Send an asynchronous request that does not expect a response', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon' - }] -}, { - // navigator.bluetooth - name: 'Bluetooth', - methods: [{ - name: 'getAvailability', - description: 'Is the browser able to use Bluetooth', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getAvailability' - }, { - name: 'getDevices', - description: 'Get a list of available Bluetooth devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getDevices' - }, { - name: 'requestDevice', - description: 'Request a Bluetooth device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/requestDevice' - }] -}, { - // navigator.clipboard - name: 'Clipboard', - methods: [{ - name: 'read', - description: 'Request arbitrary data from the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read' - }, { - name: 'readText', - description: 'Request text from the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText' - }, { - name: 'write', - description: 'Write arbitrary data to the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write' - }, { - name: 'writeText', - description: 'Write text to the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText' - }] -}, { - // navigator.contacts - name: 'ContactsManager', - methods: [{ - name: 'select', - description: 'Retrieve contact information from user device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/select' - }, { - name: 'getProperties', - description: 'List all available contact properties', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/getProperties' - }] -}, { - name: 'ContentIndex', - methods: [{ - name: 'add', - description: 'Register offline enabled content with the browser', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/add' - }, { - name: 'delete', - description: 'Delete an offline enabled content', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/delete' - }, { - name: 'getAll', - description: 'Get all offline enabled content', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/getAll' - }] -}, { - // self.cookieStore - name: 'CookieStore', - methods: [{ - name: 'delete', - description: 'Delete a cookie', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/delete' - }, { - name: 'get', - description: 'Get a cookie', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/get' - }, { - name: 'getAll', - description: 'Get all cookies', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/getAll' - }, { - name: 'set', - description: 'Set a cookie', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/set' - }] -}, { - // navigator.credentials - name: 'CredentialsContainer', - methods: [{ - name: 'create', - description: 'Create a new Credential instance', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/create' - }, { - name: 'get', - description: 'Retrieve saved authentication credentials', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/get' - }, { - name: 'preventSilentAccess', - description: 'Set if automatic log in is allowed', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/preventSilentAccess' - }, { - name: 'store', - description: 'Store user authentication credentials', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/store' - }] -}, { - name: 'EventSource', - globalConstructor: true, - constructorDescription: 'Recieve events from a server, via a persistent connection', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/EventSource' -}, { - // self.fetch - name: 'Fetch', - globalMethods: [{ - name: 'fetch', - description: 'Communicate with a web server', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/fetch' - }] -}, { - name: 'FileReader', - globalConstructor: true, - constructorDescription: 'Read the contents of a user file', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader', - methods: [{ - name: 'abort', - description: 'Abort reading file', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/abort' - }, { - name: 'readAsArrayBuffer', - description: 'Read file as ArrayBuffer', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsArrayBuffer' - }, { - name: 'readAsBinaryString', - description: 'Read file as binary string', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsBinaryString' - }, { - name: 'readAsDataURL', - description: 'Read file as data URL', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL' - }, { - name: 'readAsText', - description: 'Read file as text', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsText' - }] -}, { - name: 'FileReaderSync', - globalConstructor: true, - constructorDescription: 'Read the contents of a user file', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync', - methods: [{ - name: 'readAsArrayBuffer', - description: 'Read file as ArrayBuffer', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsArrayBuffer' - }, { - name: 'readAsBinaryString', - description: 'Read file as binary string', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsBinaryString' - }, { - name: 'readAsDataURL', - description: 'Read file as data URL', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsDataURL' - }, { - name: 'readAsText', - description: 'Read file as text', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsText' - }] -}, { - name: 'FileSystem', - globalMethods: [{ - name: 'showOpenFilePicker', - description: 'Prompt user to allow reading a file from his system', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker' - }, { - name: 'showSaveFilePicker', - description: 'Prompt user to allow saving a file to his system', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/window/showSaveFilePicker' - }, { - name: 'showDirectoryPicker', - description: 'Prompt user to allow reading a directory from his system', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/window/showDirectoryPicker' - }] -}, { - name: 'Gamepad', - navigatorMethods: [{ - name: 'getGamepads', - description: 'Get a list of connected gamepads', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getGamepads' - }] -}, { - // navigator.geolocation - name: 'Geolocation', - methods: [{ - name: 'clearWatch', - description: 'Stop tracking user location', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/clearWatch' - }, { - name: 'getCurrentPosition', - description: 'Get user location', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition' - }, { - name: 'watchPosition', - description: 'Track user location', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition' - }] -}, { - // navigator.getBattery() - name: 'Battery', - navigatorMethods: [{ - name: 'getBattery', - description: 'Get device battery information', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery' - }] -}, { - // navigator.hid - name: 'HID', - methods: [{ - name: 'getDevices', - description: 'List connected Human Interface Devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/HID/getDevices' - }, { - name: 'requestDevice', - description: 'Connect to a Human Interface Device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/HID/requestDevice' - }] -}, { - // window.history - name: 'History', - methods: [{ - name: 'back', - description: 'Go back in navigation history', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/back' - }, { - name: 'forward', - description: 'Go forward in navigation history', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/forward' - }, { - name: 'go', - description: 'Go to a specific point in the navigation history', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/go' - }, { - name: 'pushState', - description: 'Add a new entry to the history stack', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/pushState' - }, { - name: 'replaceState', - description: 'Replace the current entry in the history stack', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState' - }] -}, { - // window.indexedDB - name: 'IDBFactory', - methods: [{ - name: 'cmp', - description: 'Compare two database keys', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/cmp' - }, { - name: 'databases', - description: 'List all available databases', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/databases' - }, { - name: 'deleteDatabase', - description: 'Delete a database', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/deleteDatabase' - }, { - name: 'open', - description: 'Open a database', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/open' - }] -}, { - name: 'ImageCapture', - globalConstructor: true, - constructorDescription: 'Enable the capture of images or photos from a camera', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture', - methods: [{ - name: 'getPhotoCapabilities', - description: 'Get the capabilities of the camera', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoCapabilities' - }, { - name: 'getPhotoSettings', - description: 'Get the settings of the camera', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoSettings' - }, { - name: 'grabFrame', - description: 'Take a snapshot of the live video stream', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/grabFrame' - }, { - name: 'takePhoto', - description: 'Take a single exposure using the video capture device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/takePhoto' - }] -}, { - // navigator.mediaDevices - name: 'MediaDevices', - methods: [{ - name: 'enumerateDevices', - description: 'List all connected media devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices' - }, { - name: 'getDisplayMedia', - description: 'Capture the contents of a display or portion thereof', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia' - }, { - name: 'getSupportedConstraints', - description: 'Get the supported media device constraints', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getSupportedConstraints' - }, { - name: 'getUserMedia', - description: 'Request access to user media devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia' - }, { - name: 'selectAudioOutput', - description: 'Select an audio output device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/selectAudioOutput' - }] -}, { - name: 'MediaRecorder', - globalConstructor: true, - constructorDescription: 'Record audio and video', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder' -}, { - name: 'MediaStream', - globalConstructor: true, - constructorDescription: 'A stream of media content', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaStream/MediaStream' -}, { - name: 'MessageChannel', - globalConstructor: true, - constructorDescription: 'A channel for passing messages between threads', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel/MessageChannel', - globalMethods: [{ - name: 'postMessage', - description: 'Send cross-origin communication between windows', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage' - }] -}, { - // navigator.requestMIDIAccess() - name: 'MIDI', - navigatorMethods: [{ - name: 'requestMIDIAccess', - description: 'Request access to connected MIDI devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMIDIAccess' - }] -}, { - name: 'Notification', - globalConstructor: true, - constructorDescription: 'Create a user notification', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification', - methods: [{ - name: 'requestPermission', - description: 'Request permission to show notifications', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Notification/requestPermission' - }], - swrMethods: [{ - name: 'showNotification', - description: 'Show a browser notification', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification' - }, { - name: 'getNotifications', - description: 'List received notifications', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/getNotifications' - }] -}, { - name: 'PaymentRequest', - globalConstructor: true, - constructorDescription: 'Create a payment request', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/PaymentRequest/PaymentRequest' -}, { - name: 'PerformanceObserver', - globalConstructor: true, - constructorDescription: 'Monitor the performance of the page', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver/PerformanceObserver' -}, { - // swReg.periodicSync - name: 'PeriodicSyncManager', - methods: [{ - name: 'register', - description: 'Registers a periodic background sync request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/register' - }, { - name: 'unregister', - description: 'Unregisters a periodic background sync request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/unregister' - }, { - name: 'getTags', - description: 'List registered periodic sync requests', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/getTags' - }] -}, { - // navigator.permissions - name: 'Permissions', - methods: [{ - name: 'query', - description: 'Get user permission status for a given API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query' - }, { - name: 'revoke', - description: 'Revoke a user permission for a given API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Permissions/revoke' - }] -}, { - name: 'PresentationRequest', - globalConstructor: true, - constructorDescription: 'Create a presentation request', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/PresentationRequest', - methods: [{ - name: 'start', - description: 'Start a presentation', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/start' - }, { - name: 'reconnect', - description: 'Reconnect to a presentation', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/reconnect' - }, { - name: 'getAvailability', - description: 'Get availability for starting presentations', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/getAvailability' - }] -}, { - // swReg.pushManager - name: 'PushManager', - methods: [{ - name: 'getSubscription', - description: 'Get the current push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/getSubscription' - }, { - name: 'hasPermission', - description: 'Get push subscription permission state', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/hasPermission' - }, { - name: 'permissionState', - description: 'Get push subscription permission state', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/permissionState' - }, { - name: 'register', - description: 'Register a push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/register' - }, { - name: 'registrations', - description: 'List of registered push subscriptions', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/registrations' - }, { - name: 'subscribe', - description: 'Subscribe to a push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe' - }, { - name: 'unregister', - description: 'Unregister a push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/unregister' - }] -}, { - name: 'ReportingObserver', - globalConstructor: true, - constructorDescription: 'Collect and access reports on various issues', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/ReportingObserver/ReportingObserver' -}, { - name: 'Scheduler', - methods: [{ - name: 'postTask', - description: 'Create a new scheduled task', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/postTask' - }] -}, { - name: 'Selection', - globalMethods: [{ - name: 'getSelection', - description: 'Get the current webpage selection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection' - }], - documentMethods: [{ - name: 'getSelection', - description: 'Get the current webpage selection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Document/getSelection' - }] -}, { - name: 'Sensor', - globalConstructors: [{ - name: 'AbsoluteOrientationSensor', - description: 'Absolute orientation sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/AbsoluteOrientationSensor' - }, { - name: 'Accelerometer', - description: 'Accelerometer sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Accelerometer' - }, { - name: 'AmbientLightSensor', - description: 'Ambient light sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/AmbientLightSensor' - }, { - name: 'GravitySensor', - description: 'Gravity sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/GravitySensor' - }, { - name: 'Gyroscope', - description: 'Gyroscope sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Gyroscope' - }, { - name: 'LinearAccelerationSensor', - description: 'Linear acceleration sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/LinearAccelerationSensor' - }, { - name: 'Magnetometer', - description: 'Magnetometer sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Magnetometer' - }, { - name: 'RelativeOrientationSensor', - description: 'Relative orientation sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/RelativeOrientationSensor' - }] -}, { - // navigator.share() - name: 'Share', - navigatorMethods: [{ - name: 'share', - description: 'Share content to user-selected targets', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share' - }, { - name: 'canShare', - description: 'Check if sharing is supported', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/canShare' - }] -}, { - name: 'SpeechRecognition', - globalConstructors: [{ - name: 'SpeechRecognition', - description: 'Use the speech recognition API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/SpeechRecognition' - }, { - name: 'webkitSpeechRecognition', - description: 'Use the speech recognition API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/webkitSpeechRecognition' - }], - methods: [{ - name: 'abort', - description: 'Abort a speech recognition process', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/abort' - }, { - name: 'start', - description: 'Start a speech recognition process', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/start' - }, { - name: 'stop', - description: 'Stop a speech recognition process', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/stop' - }] -}, { - // self.speechSynthesis - name: 'SpeechSynthesis', - globalPropertyMethods: [{ - name: 'cancel', - description: 'Cancel speech synthesis', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/cancel' - }, { - name: 'getVoices', - description: 'Get the list of available voices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/getVoices' - }, { - name: 'pause', - description: 'Pause speech synthesis', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/pause' - }, { - name: 'resume', - description: 'Resume speech synthesis', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/resume' - }, { - name: 'speak', - description: 'Speak text', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/speak' - }], - globalProperty: 'speechSynthesis' -}, { - // self.localStorage - name: 'Storage', - methods: [{ - name: 'getItem', - description: 'Return an item from local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem' - }, { - name: 'setItem', - description: 'Save an item to local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem' - }, { - name: 'removeItem', - description: 'Remove an item from local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/removeItem' - }, { - name: 'clear', - description: 'Clear local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/clear' - }, { - name: 'key', - description: 'Return the name of the nth key in local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/key' - }] -}, { - name: 'StorageAccess', - documentMethods: [{ - name: 'requestStorageAccess', - description: 'Request access to first-party storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Document/requestStorageAccess' - }, { - name: 'hasStorageAccess', - description: 'Check if storage access is granted', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Document/hasStorageAccess' - }] -}, { - // navigator.storage - name: 'StorageManager', - methods: [{ - name: 'estimate', - description: 'Returns current storage space - used and available', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate' - }, { - name: 'persist', - description: 'Request permission to use persistent storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist' - }, { - name: 'persisted', - description: 'Check if persistent storage is granted', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persisted' - }] -}, { - // self.crypto.subtle - name: 'SubtleCrypto', - methods: [{ - name: 'decrypt', - description: 'Decrypt data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/decrypt' - }, { - name: 'deriveBits', - description: 'Derive bits from a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveBits' - }, { - name: 'deriveKey', - description: 'Derive a secret key from a master key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey' - }, { - name: 'digest', - description: 'Generate a crypto digest from data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest' - }, { - name: 'encrypt', - description: 'Encrypt data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt' - }, { - name: 'exportKey', - description: 'Export a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/exportKey' - }, { - name: 'generateKey', - description: 'Generate a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey' - }, { - name: 'importKey', - description: 'Import a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey' - }, { - name: 'sign', - description: 'Sign data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/sign' - }, { - name: 'unwrapKey', - description: 'Unwrap a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/unwrapKey' - }, { - name: 'verify', - description: 'Verify data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/verify' - }, { - name: 'wrapKey', - description: 'Wrap a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/wrapKey' - }] -}, { - // navigator.usb - name: 'USB', - methods: [{ - name: 'getDevices', - description: 'Get a list of paired attached USB devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/USB/getDevices' - }, { - name: 'requestDevice', - description: 'Request access to a USB device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice' - }] -}, { - name: 'Vibration', - navigatorMethods: [{ - name: 'vibrate', - description: 'Vibrate the device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate' - }] -}, { - // navigator.wakeLock - name: 'WakeLock', - methods: [{ - name: 'request', - description: 'Request a device wake lock', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/WakeLock/request' - }] -}, { - name: 'WebSocket', - globalConstructor: true, - constructorDescription: 'Create a new WebSocket object', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket', - methods: [{ - name: 'close', - description: 'Close a websocket connection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close' - }, { - name: 'send', - description: 'Send data on a websocket connection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send' - }] -}, { - name: 'Worker', - globalConstructor: true, - constructorDescription: 'Create a new web worker', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker', - methods: [{ - name: 'postMessage', - description: 'Post a message to a web worker', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage' - }, { - name: 'terminate', - description: 'Terminate a web worker', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Worker/terminate' - }] -}, { - name: 'SharedWorker', - globalConstructor: true, - constructorDescription: 'Create a new shared worker', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker' -}, { - name: 'XMLHttpRequest', - globalConstructor: true, - constructorDescription: 'Communicate with a web server', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/XMLHttpRequest', - methods: [{ - name: 'abort', - description: 'Abort an web request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort' - }, { - name: 'getAllResponseHeaders', - description: 'Get all response headers', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders' - }, { - name: 'getResponseHeader', - description: 'Get a response header', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader' - }, { - name: 'open', - description: 'Open a web request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open' - }, { - name: 'overrideMimeType', - description: 'Override the MIME type', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/overrideMimeType' - }, { - name: 'send', - description: 'Send data via a web request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send' - }, { - name: 'setRequestHeader', - description: 'Set a request header', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader' - }] -}].reduce((acc, cur) => [...acc, ...builder(cur)], []); - -module.exports = library; - -const $ReactRefreshModuleId$ = __webpack_require__.$Refresh$.moduleId; -const $ReactRefreshCurrentExports$ = __react_refresh_utils__.getModuleExports( - $ReactRefreshModuleId$ -); - -function $ReactRefreshModuleRuntime$(exports) { - if (false) {} -} - -if (typeof Promise !== 'undefined' && $ReactRefreshCurrentExports$ instanceof Promise) { - $ReactRefreshCurrentExports$.then($ReactRefreshModuleRuntime$); -} else { - $ReactRefreshModuleRuntime$($ReactRefreshCurrentExports$); -} - -/***/ }), - /***/ "./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[2]!./node_modules/source-map-loader/dist/cjs.js!./src/index.css": /*!******************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[2]!./node_modules/source-map-loader/dist/cjs.js!./src/index.css ***! @@ -40529,7 +38481,7 @@ __webpack_require__.r(__webpack_exports__); var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); ___CSS_LOADER_EXPORT___.push([module.id, "@import url(https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css);"]); // Module -___CSS_LOADER_EXPORT___.push([module.id, "/*\n! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.left-0 {\n left: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.right-0 {\n right: 0px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.mt-3 {\n margin-top: 0.75rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.ml-3 {\n margin-left: 0.75rem;\n}\n.mt-5 {\n margin-top: 1.25rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mt-8 {\n margin-top: 2rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mb-10 {\n margin-bottom: 2.5rem;\n}\n.block {\n display: block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.contents {\n display: contents;\n}\n.h-full {\n height: 100%;\n}\n.h-3\\/5 {\n height: 60%;\n}\n.h-2 {\n height: 0.5rem;\n}\n.max-h-full {\n max-height: 100%;\n}\n.max-h-40 {\n max-height: 10rem;\n}\n.min-h-0 {\n min-height: 0px;\n}\n.w-full {\n width: 100%;\n}\n.w-1\\/2 {\n width: 50%;\n}\n.w-3\\/5 {\n width: 60%;\n}\n.w-2 {\n width: 0.5rem;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.flex-shrink {\n flex-shrink: 1;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n.select-all {\n -webkit-user-select: all;\n user-select: all;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.gap-10 {\n gap: 2.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-8 {\n gap: 2rem;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-scroll {\n overflow: scroll;\n}\n.truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.border-2 {\n border-width: 2px;\n}\n.border {\n border-width: 1px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-dotted {\n border-style: dotted;\n}\n.border-zinc-500 {\n --tw-border-opacity: 1;\n border-color: rgb(113 113 122 / var(--tw-border-opacity));\n}\n.border-lime-600 {\n --tw-border-opacity: 1;\n border-color: rgb(101 163 13 / var(--tw-border-opacity));\n}\n.border-zinc-900 {\n --tw-border-opacity: 1;\n border-color: rgb(24 24 27 / var(--tw-border-opacity));\n}\n.border-lime-400 {\n --tw-border-opacity: 1;\n border-color: rgb(163 230 53 / var(--tw-border-opacity));\n}\n.bg-lime-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(54 83 20 / var(--tw-bg-opacity));\n}\n.bg-zinc-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(24 24 27 / var(--tw-bg-opacity));\n}\n.bg-zinc-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(39 39 42 / var(--tw-bg-opacity));\n}\n.bg-zinc-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(82 82 91 / var(--tw-bg-opacity));\n}\n.bg-zinc-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(63 63 70 / var(--tw-bg-opacity));\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n.bg-lime-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(63 98 18 / var(--tw-bg-opacity));\n}\n.bg-yellow-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(113 63 18 / var(--tw-bg-opacity));\n}\n.bg-opacity-75 {\n --tw-bg-opacity: 0.75;\n}\n.p-10 {\n padding: 2.5rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-12 {\n padding: 3rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-7 {\n padding: 1.75rem;\n}\n.px-10 {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.text-neutral-200 {\n --tw-text-opacity: 1;\n color: rgb(229 229 229 / var(--tw-text-opacity));\n}\n.text-neutral-300 {\n --tw-text-opacity: 1;\n color: rgb(212 212 212 / var(--tw-text-opacity));\n}\n.text-zinc-300 {\n --tw-text-opacity: 1;\n color: rgb(212 212 216 / var(--tw-text-opacity));\n}\n.text-zinc-400 {\n --tw-text-opacity: 1;\n color: rgb(161 161 170 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.text-neutral-400 {\n --tw-text-opacity: 1;\n color: rgb(163 163 163 / var(--tw-text-opacity));\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity));\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\nbody {\n margin: 0;\n background-color: rgb(21, 21, 24);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body, #root {\n height: 100%;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n\n.selection\\:bg-lime-900 *::selection {\n --tw-bg-opacity: 1;\n background-color: rgb(54 83 20 / var(--tw-bg-opacity));\n}\n\n.selection\\:bg-lime-900::selection {\n --tw-bg-opacity: 1;\n background-color: rgb(54 83 20 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-lime-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(77 124 15 / var(--tw-bg-opacity));\n}\n", "",{"version":3,"sources":["webpack://./src/index.css",""],"names":[],"mappings":"AAAA;;CAAc,CAAd;;;CAAc;;AAAd;;;EAAA,sBAAc,EAAd,MAAc;EAAd,eAAc,EAAd,MAAc;EAAd,mBAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;AAAA;;AAAd;;EAAA,gBAAc;AAAA;;AAAd;;;;;CAAc;;AAAd;EAAA,gBAAc,EAAd,MAAc;EAAd,8BAAc,EAAd,MAAc,EAAd,MAAc;EAAd,WAAc,EAAd,MAAc;EAAd,4NAAc,EAAd,MAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,SAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;AAAA;;AAAd;;;;CAAc;;AAAd;EAAA,SAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,iCAAc;AAAA;;AAAd;;CAAc;;AAAd;;;;;;EAAA,kBAAc;EAAd,oBAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,cAAc;EAAd,wBAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,mBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;;;EAAA,+GAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,cAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,cAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,wBAAc;AAAA;;AAAd;EAAA,eAAc;AAAA;;AAAd;EAAA,WAAc;AAAA;;AAAd;;;;CAAc;;AAAd;EAAA,cAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;EAAd,yBAAc,EAAd,MAAc;AAAA;;AAAd;;;;CAAc;;AAAd;;;;;EAAA,oBAAc,EAAd,MAAc;EAAd,eAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;EAAd,SAAc,EAAd,MAAc;EAAd,UAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,oBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;;;EAAA,0BAAc,EAAd,MAAc;EAAd,6BAAc,EAAd,MAAc;EAAd,sBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,aAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,gBAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,wBAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,YAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,6BAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,wBAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,0BAAc,EAAd,MAAc;EAAd,aAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,kBAAc;AAAA;;AAAd;;CAAc;;AAAd;;;;;;;;;;;;;EAAA,SAAc;AAAA;;AAAd;EAAA,SAAc;EAAd,UAAc;AAAA;;AAAd;EAAA,UAAc;AAAA;;AAAd;;;EAAA,gBAAc;EAAd,SAAc;EAAd,UAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,gBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;EAAA,UAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,eAAc;AAAA;;AAAd;;CAAc;AAAd;EAAA,eAAc;AAAA;;AAAd;;;;CAAc;;AAAd;;;;;;;;EAAA,cAAc,EAAd,MAAc;EAAd,sBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,eAAc;EAAd,YAAc;AAAA;;AAAd;EAAA,wBAAc;EAAd,wBAAc;EAAd,mBAAc;EAAd,mBAAc;EAAd,cAAc;EAAd,cAAc;EAAd,cAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,aAAc;EAAd,kBAAc;EAAd,sCAAc;EAAd,eAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,kBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,sCAAc;EAAd,kCAAc;EAAd,2BAAc;EAAd,sBAAc;EAAd,8BAAc;EAAd,YAAc;EAAd,kBAAc;EAAd,gBAAc;EAAd,iBAAc;EAAd,kBAAc;EAAd,cAAc;EAAd,gBAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd;AAAc;;AAAd;EAAA,wBAAc;EAAd,wBAAc;EAAd,mBAAc;EAAd,mBAAc;EAAd,cAAc;EAAd,cAAc;EAAd,cAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,aAAc;EAAd,kBAAc;EAAd,sCAAc;EAAd,eAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,kBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,sCAAc;EAAd,kCAAc;EAAd,2BAAc;EAAd,sBAAc;EAAd,8BAAc;EAAd,YAAc;EAAd,kBAAc;EAAd,gBAAc;EAAd,iBAAc;EAAd,kBAAc;EAAd,cAAc;EAAd,gBAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd;AAAc;AAEd;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,yBAAmB;UAAnB;AAAmB;AAAnB;EAAA,wBAAmB;UAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,gBAAmB;EAAnB,uBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,qBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,0EAAmB;EAAnB,8FAAmB;EAAnB;AAAmB;AAAnB;EAAA,gFAAmB;EAAnB,oGAAmB;EAAnB;AAAmB;AAAnB;EAAA,gDAAmB;EAAnB,6DAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;;AAInB;EACE,SAAS;EACT,iCAAiC;EACjC;;cAEY;EACZ,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;EACE,YAAY;AACd;;AAEA;EACE;aACW;AACb;;AAvBA;EAAA,mBCAA;EDAA;CCAA;;ADAA;EAAA,mBCAA;EDAA;CCAA;;ADAA;EAAA,mBCAA;EDAA;CCAA","sourcesContent":["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@import url(\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css\");\n\nbody {\n margin: 0;\n background-color: rgb(21, 21, 24);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body, #root {\n height: 100%;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",null],"sourceRoot":""}]); +___CSS_LOADER_EXPORT___.push([module.id, "/*\n! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n*,\n::before,\n::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n::before,\n::after {\n --tw-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n*/\n\nhtml {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */ /* 3 */\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\nbody {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\nhr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\nabbr:where([title]) {\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\na {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font family by default.\n2. Correct the odd `em` font sizing in all browsers.\n*/\n\ncode,\nkbd,\nsamp,\npre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\nsmall {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\ntable {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\nbutton,\n[type='button'],\n[type='reset'],\n[type='submit'] {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\nprogress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n::-webkit-inner-spin-button,\n::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n[type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\nsummary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\nblockquote,\ndl,\ndd,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\nhr,\nfigure,\np,\npre {\n margin: 0;\n}\n\nfieldset {\n margin: 0;\n padding: 0;\n}\n\nlegend {\n padding: 0;\n}\n\nol,\nul,\nmenu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\ntextarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\ninput::placeholder,\ntextarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\nbutton,\n[role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n:disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\nimg,\nsvg,\nvideo,\ncanvas,\naudio,\niframe,\nembed,\nobject {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\nimg,\nvideo {\n max-width: 100%;\n height: auto;\n}\n\n*, ::before, ::after {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n\n::backdrop {\n --tw-border-spacing-x: 0;\n --tw-border-spacing-y: 0;\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-pan-x: ;\n --tw-pan-y: ;\n --tw-pinch-zoom: ;\n --tw-scroll-snap-strictness: proximity;\n --tw-ordinal: ;\n --tw-slashed-zero: ;\n --tw-numeric-figure: ;\n --tw-numeric-spacing: ;\n --tw-numeric-fraction: ;\n --tw-ring-inset: ;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-color: rgb(59 130 246 / 0.5);\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n --tw-blur: ;\n --tw-brightness: ;\n --tw-contrast: ;\n --tw-grayscale: ;\n --tw-hue-rotate: ;\n --tw-invert: ;\n --tw-saturate: ;\n --tw-sepia: ;\n --tw-drop-shadow: ;\n --tw-backdrop-blur: ;\n --tw-backdrop-brightness: ;\n --tw-backdrop-contrast: ;\n --tw-backdrop-grayscale: ;\n --tw-backdrop-hue-rotate: ;\n --tw-backdrop-invert: ;\n --tw-backdrop-opacity: ;\n --tw-backdrop-saturate: ;\n --tw-backdrop-sepia: ;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.left-0 {\n left: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.right-0 {\n right: 0px;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.mt-3 {\n margin-top: 0.75rem;\n}\n.ml-1 {\n margin-left: 0.25rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.ml-3 {\n margin-left: 0.75rem;\n}\n.mt-5 {\n margin-top: 1.25rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.mt-8 {\n margin-top: 2rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.ml-4 {\n margin-left: 1rem;\n}\n.mb-2 {\n margin-bottom: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mb-10 {\n margin-bottom: 2.5rem;\n}\n.block {\n display: block;\n}\n.inline {\n display: inline;\n}\n.flex {\n display: flex;\n}\n.h-full {\n height: 100%;\n}\n.h-3\\/5 {\n height: 60%;\n}\n.h-2 {\n height: 0.5rem;\n}\n.max-h-full {\n max-height: 100%;\n}\n.max-h-40 {\n max-height: 10rem;\n}\n.min-h-0 {\n min-height: 0px;\n}\n.w-full {\n width: 100%;\n}\n.w-1\\/2 {\n width: 50%;\n}\n.w-3\\/5 {\n width: 60%;\n}\n.w-2 {\n width: 0.5rem;\n}\n.min-w-0 {\n min-width: 0px;\n}\n.flex-shrink {\n flex-shrink: 1;\n}\n.flex-shrink-0 {\n flex-shrink: 0;\n}\n.flex-grow {\n flex-grow: 1;\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.select-none {\n -webkit-user-select: none;\n user-select: none;\n}\n.select-all {\n -webkit-user-select: all;\n user-select: all;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-center {\n align-items: center;\n}\n.justify-center {\n justify-content: center;\n}\n.gap-10 {\n gap: 2.5rem;\n}\n.gap-3 {\n gap: 0.75rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-8 {\n gap: 2rem;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-scroll {\n overflow: scroll;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.border-2 {\n border-width: 2px;\n}\n.border {\n border-width: 1px;\n}\n.border-b-2 {\n border-bottom-width: 2px;\n}\n.border-b {\n border-bottom-width: 1px;\n}\n.border-dotted {\n border-style: dotted;\n}\n.border-zinc-500 {\n --tw-border-opacity: 1;\n border-color: rgb(113 113 122 / var(--tw-border-opacity));\n}\n.border-lime-600 {\n --tw-border-opacity: 1;\n border-color: rgb(101 163 13 / var(--tw-border-opacity));\n}\n.border-zinc-900 {\n --tw-border-opacity: 1;\n border-color: rgb(24 24 27 / var(--tw-border-opacity));\n}\n.border-lime-400 {\n --tw-border-opacity: 1;\n border-color: rgb(163 230 53 / var(--tw-border-opacity));\n}\n.bg-lime-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(54 83 20 / var(--tw-bg-opacity));\n}\n.bg-zinc-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(24 24 27 / var(--tw-bg-opacity));\n}\n.bg-zinc-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(39 39 42 / var(--tw-bg-opacity));\n}\n.bg-zinc-600 {\n --tw-bg-opacity: 1;\n background-color: rgb(82 82 91 / var(--tw-bg-opacity));\n}\n.bg-zinc-700 {\n --tw-bg-opacity: 1;\n background-color: rgb(63 63 70 / var(--tw-bg-opacity));\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity));\n}\n.bg-lime-800 {\n --tw-bg-opacity: 1;\n background-color: rgb(63 98 18 / var(--tw-bg-opacity));\n}\n.bg-yellow-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(113 63 18 / var(--tw-bg-opacity));\n}\n.bg-opacity-75 {\n --tw-bg-opacity: 0.75;\n}\n.p-10 {\n padding: 2.5rem;\n}\n.p-5 {\n padding: 1.25rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-3 {\n padding: 0.75rem;\n}\n.p-12 {\n padding: 3rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-7 {\n padding: 1.75rem;\n}\n.px-10 {\n padding-left: 2.5rem;\n padding-right: 2.5rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n}\n.px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.text-neutral-200 {\n --tw-text-opacity: 1;\n color: rgb(229 229 229 / var(--tw-text-opacity));\n}\n.text-neutral-300 {\n --tw-text-opacity: 1;\n color: rgb(212 212 212 / var(--tw-text-opacity));\n}\n.text-zinc-300 {\n --tw-text-opacity: 1;\n color: rgb(212 212 216 / var(--tw-text-opacity));\n}\n.text-zinc-400 {\n --tw-text-opacity: 1;\n color: rgb(161 161 170 / var(--tw-text-opacity));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity));\n}\n.text-neutral-400 {\n --tw-text-opacity: 1;\n color: rgb(163 163 163 / var(--tw-text-opacity));\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity));\n}\n.opacity-60 {\n opacity: 0.6;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-inner {\n --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.filter {\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n\nbody {\n margin: 0;\n background-color: rgb(21, 21, 24);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body, #root {\n height: 100%;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n\n.selection\\:bg-lime-900 *::selection {\n --tw-bg-opacity: 1;\n background-color: rgb(54 83 20 / var(--tw-bg-opacity));\n}\n\n.selection\\:bg-lime-900::selection {\n --tw-bg-opacity: 1;\n background-color: rgb(54 83 20 / var(--tw-bg-opacity));\n}\n\n.hover\\:bg-lime-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(77 124 15 / var(--tw-bg-opacity));\n}\n", "",{"version":3,"sources":["webpack://./src/index.css",""],"names":[],"mappings":"AAAA;;CAAc,CAAd;;;CAAc;;AAAd;;;EAAA,sBAAc,EAAd,MAAc;EAAd,eAAc,EAAd,MAAc;EAAd,mBAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;AAAA;;AAAd;;EAAA,gBAAc;AAAA;;AAAd;;;;;CAAc;;AAAd;EAAA,gBAAc,EAAd,MAAc;EAAd,8BAAc,EAAd,MAAc,EAAd,MAAc;EAAd,WAAc,EAAd,MAAc;EAAd,4NAAc,EAAd,MAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,SAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;AAAA;;AAAd;;;;CAAc;;AAAd;EAAA,SAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,iCAAc;AAAA;;AAAd;;CAAc;;AAAd;;;;;;EAAA,kBAAc;EAAd,oBAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,cAAc;EAAd,wBAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,mBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;;;EAAA,+GAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,cAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,cAAc;EAAd,cAAc;EAAd,kBAAc;EAAd,wBAAc;AAAA;;AAAd;EAAA,eAAc;AAAA;;AAAd;EAAA,WAAc;AAAA;;AAAd;;;;CAAc;;AAAd;EAAA,cAAc,EAAd,MAAc;EAAd,qBAAc,EAAd,MAAc;EAAd,yBAAc,EAAd,MAAc;AAAA;;AAAd;;;;CAAc;;AAAd;;;;;EAAA,oBAAc,EAAd,MAAc;EAAd,eAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;EAAd,SAAc,EAAd,MAAc;EAAd,UAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,oBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;;;EAAA,0BAAc,EAAd,MAAc;EAAd,6BAAc,EAAd,MAAc;EAAd,sBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,aAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,gBAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,wBAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,YAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,6BAAc,EAAd,MAAc;EAAd,oBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,wBAAc;AAAA;;AAAd;;;CAAc;;AAAd;EAAA,0BAAc,EAAd,MAAc;EAAd,aAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,kBAAc;AAAA;;AAAd;;CAAc;;AAAd;;;;;;;;;;;;;EAAA,SAAc;AAAA;;AAAd;EAAA,SAAc;EAAd,UAAc;AAAA;;AAAd;EAAA,UAAc;AAAA;;AAAd;;;EAAA,gBAAc;EAAd,SAAc;EAAd,UAAc;AAAA;;AAAd;;CAAc;;AAAd;EAAA,gBAAc;AAAA;;AAAd;;;CAAc;;AAAd;;EAAA,UAAc,EAAd,MAAc;EAAd,cAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,eAAc;AAAA;;AAAd;;CAAc;AAAd;EAAA,eAAc;AAAA;;AAAd;;;;CAAc;;AAAd;;;;;;;;EAAA,cAAc,EAAd,MAAc;EAAd,sBAAc,EAAd,MAAc;AAAA;;AAAd;;CAAc;;AAAd;;EAAA,eAAc;EAAd,YAAc;AAAA;;AAAd;EAAA,wBAAc;EAAd,wBAAc;EAAd,mBAAc;EAAd,mBAAc;EAAd,cAAc;EAAd,cAAc;EAAd,cAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,aAAc;EAAd,kBAAc;EAAd,sCAAc;EAAd,eAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,kBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,sCAAc;EAAd,kCAAc;EAAd,2BAAc;EAAd,sBAAc;EAAd,8BAAc;EAAd,YAAc;EAAd,kBAAc;EAAd,gBAAc;EAAd,iBAAc;EAAd,kBAAc;EAAd,cAAc;EAAd,gBAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd;AAAc;;AAAd;EAAA,wBAAc;EAAd,wBAAc;EAAd,mBAAc;EAAd,mBAAc;EAAd,cAAc;EAAd,cAAc;EAAd,cAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,aAAc;EAAd,kBAAc;EAAd,sCAAc;EAAd,eAAc;EAAd,oBAAc;EAAd,sBAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,kBAAc;EAAd,2BAAc;EAAd,4BAAc;EAAd,sCAAc;EAAd,kCAAc;EAAd,2BAAc;EAAd,sBAAc;EAAd,8BAAc;EAAd,YAAc;EAAd,kBAAc;EAAd,gBAAc;EAAd,iBAAc;EAAd,kBAAc;EAAd,cAAc;EAAd,gBAAc;EAAd,aAAc;EAAd,mBAAc;EAAd,qBAAc;EAAd,2BAAc;EAAd,yBAAc;EAAd,0BAAc;EAAd,2BAAc;EAAd,uBAAc;EAAd,wBAAc;EAAd,yBAAc;EAAd;AAAc;AAEd;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,yBAAmB;UAAnB;AAAmB;AAAnB;EAAA,wBAAmB;UAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,sBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,qBAAmB;EAAnB;AAAmB;AAAnB;EAAA,iBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,kBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA,mBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA,oBAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;AAAnB;EAAA,0EAAmB;EAAnB,8FAAmB;EAAnB;AAAmB;AAAnB;EAAA,gFAAmB;EAAnB,oGAAmB;EAAnB;AAAmB;AAAnB;EAAA,gDAAmB;EAAnB,6DAAmB;EAAnB;AAAmB;AAAnB;EAAA;AAAmB;;AAInB;EACE,SAAS;EACT,iCAAiC;EACjC;;cAEY;EACZ,mCAAmC;EACnC,kCAAkC;AACpC;;AAEA;EACE,YAAY;AACd;;AAEA;EACE;aACW;AACb;;AAvBA;EAAA,mBCAA;EDAA;CCAA;;ADAA;EAAA,mBCAA;EDAA;CCAA;;ADAA;EAAA,mBCAA;EDAA;CCAA","sourcesContent":["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n@import url(\"https://cdn.jsdelivr.net/npm/bootstrap-icons@1.9.1/font/bootstrap-icons.css\");\n\nbody {\n margin: 0;\n background-color: rgb(21, 21, 24);\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body, #root {\n height: 100%;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",null],"sourceRoot":""}]); // Exports ___CSS_LOADER_EXPORT___.locals = {}; /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); @@ -40931,6 +38883,28 @@ if (true) { } } +/***/ }), + +/***/ "../../src/library/node.json": +/*!***********************************!*\ + !*** ../../src/library/node.json ***! + \***********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"name":"child_process","methods":[{"name":"exec","description":"Spawn a shell and execute an arbitrary command","url":"https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback","needsExplicitPermission":true},{"name":"execFile","description":"Spawn a shell and execute an arbitrary file","url":"https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback","needsExplicitPermission":true},{"name":"fork","description":"Fork a child process","url":"https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options"},{"name":"spawn","description":"Spawn a new process","url":"https://nodejs.org/api/child_process.html#child_processspawncommand-args-options"},{"name":"execFileSync","description":"Spawn a shell and execute an arbitrary file","url":"https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options","needsExplicitPermission":true},{"name":"execSync","description":"Spawn a shell and execute an arbitrary command","url":"https://nodejs.org/api/child_process.html#child_processexecsynccommand-options","needsExplicitPermission":true},{"name":"spawnSync","description":"Spawn a new process","url":"https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options"}]},{"name":"cluster","methods":[{"name":"disconnect","description":"Disconnect a worker from its parent process","url":"https://nodejs.org/api/cluster.html#workerdisconnect"},{"name":"fork","description":"Fork a new worker process","url":"https://nodejs.org/api/cluster.html#clusterforkenv"},{"name":"setupPrimary","description":"Change the default fork behavior of cluster.fork","url":"https://nodejs.org/api/cluster.html#clustersetupprimarysettings"},{"name":"setupMaster","description":"Change the default fork behavior of cluster.fork","url":"https://nodejs.org/api/cluster.html#clustersetupmastersettings"}]},{"name":"dgram","methods":[{"name":"createSocket","description":"Create a datagram socket","url":"https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_type_callback"}]},{"name":"dns","methods":[{"name":"Resolver","isConstructor":true,"description":"Create a DNS resolver","url":"https://nodejs.org/api/dns.html#dns_class_dns_resolver"},{"name":"getServers","description":"Get the list of current DNS servers","url":"https://nodejs.org/api/dns.html#dns_dns_getservers"},{"name":"lookup","description":"Resolve a host name into the first found A or AAAA record","url":"https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback"},{"name":"lookupService","description":"Resolve the given address and port into a host name and service","url":"https://nodejs.org/api/dns.html#dnslookupserviceaddress-port-callback"},{"name":"resolve","description":"Resolve a host name into an array of records","url":"https://nodejs.org/api/dns.html#dnsresolvehostname-rrtype-callback"},{"name":"resolve4","description":"Resolve a host name to an IPv4 address","url":"https://nodejs.org/api/dns.html#dnsresolve4hostname-options-callback"},{"name":"resolve6","description":"Resolve a host name to an IPv6 address","url":"https://nodejs.org/api/dns.html#dnsresolve6hostname-options-callback"},{"name":"resolveAny","description":"Resolve a host name to an array of records","url":"https://nodejs.org/api/dns.html#dnsresolveanyhostname-callback"},{"name":"resolveCname","description":"Resolve a host name to an array of CNAME records","url":"https://nodejs.org/api/dns.html#dnsresolvecnamehostname-callback"},{"name":"resolveCaa","description":"Resolve a host name to an array of CAA records","url":"https://nodejs.org/api/dns.html#dnsresolvecaahostname-callback"},{"name":"resolveMx","description":"Resolve a host name to an array of MX records","url":"https://nodejs.org/api/dns.html#dnsresolvemxhostname-callback"},{"name":"resolveNaptr","description":"Resolve a host name to an array of NAPTR records","url":"https://nodejs.org/api/dns.html#dnsresolvenaptrhostname-callback"},{"name":"resolveNs","description":"Resolve a host name to an array of NS records","url":"https://nodejs.org/api/dns.html#dnsresolvenshostname-callback"},{"name":"resolvePtr","description":"Resolve a host name to an array of PTR records","url":"https://nodejs.org/api/dns.html#dnsresolveptrhostname-callback"},{"name":"resolveSoa","description":"Resolve a host name to an SOA record","url":"https://nodejs.org/api/dns.html#dnsresolvesoahostname-callback"},{"name":"resolveSrv","description":"Resolve a host name to an array of SRV records","url":"https://nodejs.org/api/dns.html#dnsresolvesrvhostname-callback"},{"name":"resolveTxt","description":"Resolve a host name to an array of TXT records","url":"https://nodejs.org/api/dns.html#dnsresolvetxthostname-callback"},{"name":"reverse","description":"Perform a reverse lookup for the given address","url":"https://nodejs.org/api/dns.html#dnsreverseip-callback"},{"name":"setDefaultResultOrder","description":"Set the default order for result records","url":"https://nodejs.org/api/dns.html#dnssetdefaultresultorderorder"},{"name":"setServers","description":"Set the list of DNS servers to be used","url":"https://nodejs.org/api/dns.html#dns_dns_setservers_servers"}]},{"name":"fetch","methods":[{"name":"fetch","description":"Communicate with a web server","url":"https://nodejs.org/api/fetch/"}],"globalMethod":true},{"name":"eval","methods":[{"name":"eval","description":"Run arbitrary JS code from a string","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval","needsExplicitPermission":true}],"globalMethod":true},{"name":"Function","methods":[{"name":"Function","description":"Create a new function from an arbitrary string","url":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function","needsExplicitPermission":true}],"globalMethod":true},{"name":"fs","methods":[{"name":"access","description":"Test a user\'s permissions for a file or directory","url":"https://nodejs.org/api/fs.html#fsaccesspath-mode-callback"},{"name":"appendFile","description":"Append to a file","url":"https://nodejs.org/api/fs.html#fsappendfilepath-data-options-callback"},{"name":"chmod","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fschmodpath-mode-callback"},{"name":"chown","description":"Change file ownership","url":"https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback"},{"name":"close","description":"Close a file descriptor","url":"https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback"},{"name":"copyFile","description":"Copy a file","url":"https://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback"},{"name":"cp","description":"Copy a directory","url":"https://nodejs.org/api/fs.html#fscpsrc-dest-options-callback"},{"name":"createReadStream","description":"Create a readable stream","url":"https://nodejs.org/api/fs.html#fscreatereadstreampath-options"},{"name":"createWriteStream","description":"Create a writable stream","url":"https://nodejs.org/api/fs.html#fscreatewritestreampath-options"},{"name":"exists","description":"Test whether or not a file exists","url":"https://nodejs.org/api/fs.html#fsexistspath-callback"},{"name":"fchmod","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fsfchmodfd-mode-callback"},{"name":"fchown","description":"Change file ownership","url":"https://nodejs.org/api/fs.html#fsfchownfd-uid-gid-callback"},{"name":"fdatasync","description":"Force all currently queued I/O operations to completion","url":"https://nodejs.org/api/fs.html#fsfdatasyncfd-callback"},{"name":"fstat","description":"Get file status","url":"https://nodejs.org/api/fs.html#fsfstatfd-options-callback"},{"name":"fsync","description":"Request data to be flushed to the storage device","url":"https://nodejs.org/api/fs.html#fsfsyncfd-callback"},{"name":"ftruncate","description":"Truncate a file to a specified length","url":"https://nodejs.org/api/fs.html#fsftruncatefd-len-callback"},{"name":"futimes","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fsfutimesfd-atime-mtime-callback"},{"name":"lchmod","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fslchmodpath-mode-callback"},{"name":"lchown","description":"Change file ownership","url":"https://nodejs.org/api/fs.html#fslchownpath-uid-gid-callback"},{"name":"lutimes","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fslutimespath-atime-mtime-callback"},{"name":"link","description":"Create a new link","url":"https://nodejs.org/api/fs.html#fslinkexistingpath-newpath-callback"},{"name":"lstat","description":"Get file status","url":"https://nodejs.org/api/fs.html#fslstatpath-options-callback"},{"name":"mkdir","description":"Create a directory","url":"https://nodejs.org/api/fs.html#fsmkdirpath-options-callback"},{"name":"mkdtemp","description":"Create a unique temporary directory","url":"https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback"},{"name":"open","description":"Open a file","url":"https://nodejs.org/api/fs.html#fsopenpath-flags-mode-callback"},{"name":"opendir","description":"Open a directory","url":"https://nodejs.org/api/fs.html#fsopendirpath-options-callback"},{"name":"read","description":"Read a file","url":"https://nodejs.org/api/fs.html#fsreadfd-buffer-offset-length-position-callback"},{"name":"readdir","description":"Read a directory","url":"https://nodejs.org/api/fs.html#fsreaddirpath-options-callback"},{"name":"readFile","description":"Read a file","url":"https://nodejs.org/api/fs.html#fsreadfilepath-options-callback"},{"name":"readlink","description":"Read a symbolic link","url":"https://nodejs.org/api/fs.html#fsreadlinkpath-options-callback"},{"name":"readv","description":"Read from a file","url":"https://nodejs.org/api/fs.html#fsreadvfd-buffers-position-callback"},{"name":"realpath","description":"Resolve a canonical path","url":"https://nodejs.org/api/fs.html#fsrealpathpath-options-callback"},{"name":"rename","description":"Rename a file or directory","url":"https://nodejs.org/api/fs.html#fsrenameoldpath-newpath-callback"},{"name":"rmdir","description":"Remove a directory","url":"https://nodejs.org/api/fs.html#fsrmdirpath-options-callback"},{"name":"rm","description":"Remove a file","url":"https://nodejs.org/api/fs.html#fsrmpath-options-callback"},{"name":"stat","description":"Get file status","url":"https://nodejs.org/api/fs.html#fsstatpath-options-callback"},{"name":"symlink","description":"Create a symbolic link","url":"https://nodejs.org/api/fs.html#fssymlinktarget-path-type-callback"},{"name":"truncate","description":"Truncate a file to a specified length","url":"https://nodejs.org/api/fs.html#fstruncatepath-len-callback"},{"name":"unlink","description":"Delete a file","url":"https://nodejs.org/api/fs.html#fsunlinkpath-callback"},{"name":"unwatchFile","description":"Stop watching a file for changes","url":"https://nodejs.org/api/fs.html#fsunwatchfilefilename-listener"},{"name":"utimes","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fsutimespath-atime-mtime-callback"},{"name":"watch","description":"Monitor a file for changes","url":"https://nodejs.org/api/fs.html#fswatchfilename-options-listener"},{"name":"watchFile","description":"Monitor a file for changes","url":"https://nodejs.org/api/fs.html#fswatchfilefilename-options-listener"},{"name":"write","description":"Write to a file","url":"https://nodejs.org/api/fs.html#fswritefd-buffer-offset-length-position-callback"},{"name":"writeFile","description":"Write a file","url":"https://nodejs.org/api/fs.html#fswritefilefile-data-options-callback"},{"name":"writev","description":"Write to a file","url":"https://nodejs.org/api/fs.html#fswritevfd-buffers-position-callback"},{"name":"accessSync","description":"Test a user\'s permissions for a file or directory","url":"https://nodejs.org/api/fs.html#fsaccesssyncpath-mode"},{"name":"appendFileSync","description":"Append data to a file","url":"https://nodejs.org/api/fs.html#fsappendfilesyncpath-data-options"},{"name":"chmodSync","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fschmodsyncpath-mode"},{"name":"chownSync","description":"Change file owner","url":"https://nodejs.org/api/fs.html#fschownsyncpath-uid-gid"},{"name":"closeSync","description":"Close a file","url":"https://nodejs.org/api/fs.html#fsclosesyncfd"},{"name":"copyFileSync","description":"Copy a file","url":"https://nodejs.org/api/fs.html#fscopyfilesyncsrc-dest-mode"},{"name":"cpSync","description":"Copy a directory","url":"https://nodejs.org/api/fs.html#fscpsyncsrc-dest-options"},{"name":"existsSync","description":"Test whether a file exists","url":"https://nodejs.org/api/fs.html#fsexistssyncpath"},{"name":"fchmodSync","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fsfchmodsyncfd-mode"},{"name":"fchownSync","description":"Change file owner","url":"https://nodejs.org/api/fs.html#fsfchownsyncfd-uid-gid"},{"name":"fdatasyncSync","description":"Force all currently queued I/O operations to completion","url":"https://nodejs.org/api/fs.html#fsfdatasyncsyncfd"},{"name":"fstatSync","description":"Get file status","url":"https://nodejs.org/api/fs.html#fsfstatsyncfd-options"},{"name":"fsyncSync","description":"Force all data to be flushed to the storage device","url":"https://nodejs.org/api/fs.html#fsfsyncsyncfd"},{"name":"ftruncateSync","description":"Truncate a file to a specified length","url":"https://nodejs.org/api/fs.html#fsftruncatesyncfd-len"},{"name":"futimesSync","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fsfutimessyncfd-atime-mtime"},{"name":"lchmodSync","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fslchmodsyncpath-mode"},{"name":"lchownSync","description":"Change file owner","url":"https://nodejs.org/api/fs.html#fslchownsyncpath-uid-gid"},{"name":"lutimesSync","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fslutimessyncpath-atime-mtime"},{"name":"linkSync","description":"Create a hard link","url":"https://nodejs.org/api/fs.html#fslinksyncexistingpath-newpath"},{"name":"lstatSync","description":"Get file status","url":"https://nodejs.org/api/fs.html#fslstatsyncpath-options"},{"name":"mkdirSync","description":"Create a directory","url":"https://nodejs.org/api/fs.html#fsmkdirsyncpath-options"},{"name":"mkdtempSync","description":"Create a temporary directory","url":"https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options"},{"name":"openSync","description":"Open a file","url":"https://nodejs.org/api/fs.html#fsopensyncpath-flags-mode"},{"name":"opendirSync","description":"Open a directory","url":"https://nodejs.org/api/fs.html#fsopendirsyncpath-options"},{"name":"readSync","description":"Read a file","url":"https://nodejs.org/api/fs.html#fsreadsyncfd-buffer-offset-length-position"},{"name":"readdirSync","description":"Read a directory","url":"https://nodejs.org/api/fs.html#fsreaddirsyncpath-options"},{"name":"readFileSync","description":"Read a file","url":"https://nodejs.org/api/fs.html#fsreadfilesyncpath-options"},{"name":"readlinkSync","description":"Read a symbolic link","url":"https://nodejs.org/api/fs.html#fsreadlinksyncpath-options"},{"name":"readvSync","description":"Read from a file","url":"https://nodejs.org/api/fs.html#fsreadvsyncfd-buffers-position"},{"name":"realpathSync","description":"Return canonical absolute pathname","url":"https://nodejs.org/api/fs.html#fsrealpathsyncpath-options"},{"name":"renameSync","description":"Rename a file or directory","url":"https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath"},{"name":"rmdirSync","description":"Remove a directory","url":"https://nodejs.org/api/fs.html#fsrmdirsyncpath-options"},{"name":"rmSync","description":"Remove a file","url":"https://nodejs.org/api/fs.html#fsrmsyncpath-options"},{"name":"statSync","description":"Get file status","url":"https://nodejs.org/api/fs.html#fsstatsyncpath-options"},{"name":"symlinkSync","description":"Create a symbolic link","url":"https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type"},{"name":"truncateSync","description":"Truncate a file to a specified length","url":"https://nodejs.org/api/fs.html#fstruncatesyncpath-len"},{"name":"unlinkSync","description":"Delete a file","url":"https://nodejs.org/api/fs.html#fsunlinksyncpath"},{"name":"utimesSync","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fsutimessyncpath-atime-mtime"},{"name":"writeSync","description":"Write to a file","url":"https://nodejs.org/api/fs.html#fswritesyncfd-buffer-offset-length-position"},{"name":"writeFileSync","description":"Write a file","url":"https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options"},{"name":"writevSync","description":"Write to a file","url":"https://nodejs.org/api/fs.html#fswritevsyncfd-buffers-position"}]},{"name":"fs/promises","methods":[{"name":"access","description":"Test a user\'s permissions for a file or directory","url":"https://nodejs.org/api/fs.html#fspromisesaccesspath-mode"},{"name":"appendFile","description":"Append data to a file","url":"https://nodejs.org/api/fs.html#fspromisesappendfilepath-data-options"},{"name":"chmod","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fspromiseschmodpath-mode"},{"name":"chown","description":"Change file owner","url":"https://nodejs.org/api/fs.html#fspromiseschownpath-uid-gid"},{"name":"copyFile","description":"Copy a file","url":"https://nodejs.org/api/fs.html#fspromisescopyfilesrc-dest-mode"},{"name":"cp","description":"Copy a file","url":"https://nodejs.org/api/fs.html#fspromisescpsrc-dest-options"},{"name":"lchmod","description":"Change file permissions","url":"https://nodejs.org/api/fs.html#fspromiseslchmodpath-mode"},{"name":"lchown","description":"Change file owner","url":"https://nodejs.org/api/fs.html#fspromiseslchownpath-uid-gid"},{"name":"lutimes","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fspromiseslutimespath-atime-mtime"},{"name":"link","description":"Create a hard link","url":"https://nodejs.org/api/fs.html#fspromiseslinkexistingpath-newpath"},{"name":"lstat","description":"Get file status","url":"https://nodejs.org/api/fs.html#fspromiseslstatpath-options"},{"name":"mkdir","description":"Create a directory","url":"https://nodejs.org/api/fs.html#fspromisesmkdirpath-options"},{"name":"mkdtemp","description":"Create a temporary directory","url":"https://nodejs.org/api/fs.html#fspromisesmkdtempprefix-options"},{"name":"open","description":"Open a file","url":"hhttps://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode"},{"name":"opendir","description":"Open a directory","url":"https://nodejs.org/api/fs.html#fspromisesopendirpath-options"},{"name":"readdir","description":"Read a directory","url":"https://nodejs.org/api/fs.html#fspromisesreaddirpath-options"},{"name":"readFile","description":"Read a file","url":"https://nodejs.org/api/fs.html#fspromisesreadfilepath-options"},{"name":"readlink","description":"Read a symbolic link","url":"https://nodejs.org/api/fs.html#fspromisesreadlinkpath-options"},{"name":"realpath","description":"Return canonical absolute pathname","url":"https://nodejs.org/api/fs.html#fspromisesrealpathpath-options"},{"name":"rename","description":"Rename a file or directory","url":"https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath"},{"name":"rmdir","description":"Remove a directory","url":"https://nodejs.org/api/fs.html#fspromisesrmdirpath-options"},{"name":"rm","description":"Remove a file","url":"https://nodejs.org/api/fs.html#fspromisesrmpath-options"},{"name":"stat","description":"Get file status","url":"https://nodejs.org/api/fs.html#fspromisesstatpath-options"},{"name":"symlink","description":"Create a symbolic link","url":"https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type"},{"name":"truncate","description":"Truncate a file to a specified length","url":"https://nodejs.org/api/fs.html#fspromisestruncatepath-len"},{"name":"unlink","description":"Delete a file","url":"https://nodejs.org/api/fs.html#fspromisesunlinkpath"},{"name":"utimes","description":"Change file timestamps","url":"https://nodejs.org/api/fs.html#fspromisesutimespath-atime-mtime"},{"name":"watch","description":"Watch for changes on a file","url":"https://nodejs.org/api/fs.html#fspromiseswatchfilename-options"},{"name":"writeFile","description":"Write data to a file","url":"https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options"}]},{"name":"http","methods":[{"name":"Agent","description":"Manage HTTP connection persistence and reuse","url":"https://nodejs.org/api/http.html#class-httpagent"},{"name":"createServer","description":"Create a new HTTP server","url":"https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener"},{"name":"get","description":"Send a GET request to a server","url":"https://nodejs.org/api/http.html#httpgetoptions-callback"},{"name":"request","description":"Send an HTTP request to a server","url":"https://nodejs.org/api/http.html#httprequestoptions-callback"}]},{"name":"http2","methods":[{"name":"createServer","description":"Create a new HTTP/2 server","url":"https://nodejs.org/api/http2.html#http2createserveroptions-onrequesthandler"},{"name":"createSecureServer","description":"Create a new secure HTTP/2 server","url":"https://nodejs.org/api/http2.html#http2createsecureserveroptions-onrequesthandler"},{"name":"connect","description":"Establish a connection to a server","url":"https://nodejs.org/api/http2.html#http2connectauthority-options-listener"},{"name":"getDefaultSettings","description":"Get the default settings for a HTTP/2 session","url":"https://nodejs.org/api/http2.html#http2getdefaultsettings"},{"name":"getPackedSettings","description":"Get the current settings for a HTTP/2 session","url":"https://nodejs.org/api/http2.html#http2getpackedsettings"},{"name":"getUnpackedSettings","description":"Get the current settings for a HTTP/2 session","url":"hhttps://nodejs.org/api/http2.html#http2getunpackedsettingsbuf"}]},{"name":"https","methods":[{"name":"Agent","description":"Manage HTTPS connection persistence and reuse","url":"https://nodejs.org/api/https.html#class-httpsagent"},{"name":"createServer","description":"Create a new HTTPS server","url":"https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener"},{"name":"get","description":"Send a GET request to a server","url":"https://nodejs.org/api/https.html#httpsgetoptions-callback"},{"name":"request","description":"Send an HTTPS request to a server","url":"https://nodejs.org/api/https.html#httpsrequestoptions-callback"}]},{"name":"inspector","methods":[{"name":"close","description":"Close a V8 inspector","url":"https://nodejs.org/api/inspector.html#inspectorclose"},{"name":"open","description":"Open a V8 inspector","url":"https://nodejs.org/api/inspector.html#inspectoropenport-host-wait"},{"name":"url","description":"Get the URL of the V8 inspector","url":"https://nodejs.org/api/inspector.html#inspectorurl"},{"name":"waitForDebugger","description":"Wait for the V8 debugger to connect","url":"https://nodejs.org/api/inspector.html#inspectorwaitfordebugger"},{"name":"Session","isConstructor":true,"description":"Create a new V8 inspector session","url":"https://nodejs.org/api/inspector.html#class-inspectorsession"}]},{"name":"net","methods":[{"name":"Server","description":"Create a new TCP server","url":"https://nodejs.org/api/net.html#class-netserver"},{"name":"Socket","description":"Create a new TCP socket","url":"https://nodejs.org/api/net.html#class-netsocket"},{"name":"connect","description":"Connect to a remote TCP server","url":"https://nodejs.org/api/net.html#netconnect"},{"name":"createConnection","description":"Connect to a remote TCP server","url":"https://nodejs.org/api/net.html#netcreateconnection"},{"name":"createServer","description":"Create a new TCP server","url":"https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener"}]},{"name":"os","methods":[{"name":"arch","description":"Get the CPU architecture","url":"https://nodejs.org/api/os.html#osarch"},{"name":"cpus","description":"Get CPU information","url":"https://nodejs.org/api/os.html#oscpus"},{"name":"endianness","description":"Get the endianness of the CPU","url":"https://nodejs.org/api/os.html#osendianness"},{"name":"freemem","description":"Get the amount of free system memory","url":"https://nodejs.org/api/os.html#osfreemem"},{"name":"getPriority","description":"Get the scheduling priority for a process","url":"https://nodejs.org/api/os.html#osgetprioritypid"},{"name":"homedir","description":"Get the home directory path for the current user","url":"https://nodejs.org/api/os.html#oshomedir"},{"name":"hostname","description":"Get the hostname of the OS","url":"https://nodejs.org/api/os.html#oshostname"},{"name":"loadavg","description":"Get system load average information","url":"https://nodejs.org/api/os.html#osloadavg"},{"name":"networkInterfaces","description":"Get a list of network interfaces","url":"https://nodejs.org/api/os.html#osnetworkinterfaces"},{"name":"platform","description":"Get the operating system platform","url":"https://nodejs.org/api/os.html#osplatform"},{"name":"release","description":"Get the operating system release","url":"https://nodejs.org/api/os.html#osrelease"},{"name":"setPriority","description":"Set the scheduling priority for a process","url":"https://nodejs.org/api/os.html#ossetprioritypid-priority"},{"name":"tmpdir","description":"Get the path of a temporary directory","url":"https://nodejs.org/api/os.html#ostmpdir"},{"name":"totalmem","description":"Get the total amount of system memory","url":"https://nodejs.org/api/os.html#ostotalmem"},{"name":"type","description":"Get the operating system name","url":"https://nodejs.org/api/os.html#ostype"},{"name":"uptime","description":"Get the system uptime","url":"https://nodejs.org/api/os.html#osuptime"},{"name":"userInfo","description":"Get current user information","url":"https://nodejs.org/api/os.html#osuserinfooptions"},{"name":"version","description":"Get the kernel version","url":"https://nodejs.org/api/os.html#osversion"}]},{"name":"process","methods":[{"name":"abort","description":"Exit the Node.js process immediately","url":"https://nodejs.org/api/process.html#processabort"},{"name":"chdir","description":"Change the current working directory","url":"https://nodejs.org/api/process.html#processchdirdirectory"},{"name":"cpuUsage","description":"Get current process CPU usage info","url":"https://nodejs.org/api/process.html#processcpuusagepreviousvalue"},{"name":"cwd","description":"Get the current working directory","url":"https://nodejs.org/api/process.html#processcwd"},{"name":"disconnect","description":"Disconnect child process from parent","url":"https://nodejs.org/api/process.html#processdisconnect"},{"name":"dlopen","description":"Load C++ addons","url":"https://nodejs.org/api/process.html#processdlopenmodule-filename-flags","needsExplicitPermission":true},{"name":"emitWarning","description":"Emit a custom process warning","url":"https://nodejs.org/api/process.html#processemitwarningwarning-options"},{"name":"exit","description":"Exit the Node.js process","url":"https://nodejs.org/api/process.html#processexitcode"},{"name":"getActiveResourcesInfo","description":"Get a list of resources currently keeping the event loop alive","url":"https://nodejs.org/api/process.html#processgetactiveresourcesinfo"},{"name":"getegid","description":"Get the effective group id of the Node.js process","url":"https://nodejs.org/api/process.html#processgetegid"},{"name":"geteuid","description":"Get the effective numerical user id","url":"https://nodejs.org/api/process.html#processgeteuid"},{"name":"getgid","description":"Get the numerical group id of the process","url":"https://nodejs.org/api/process.html#processgetgid"},{"name":"getgroups","description":"Get the list of supplementary group ids","url":"https://nodejs.org/api/process.html#processgetgroups"},{"name":"getuid","description":"Get the numerical user id of the process","url":"https://nodejs.org/api/process.html#processgetuid"},{"name":"hasUncaughtExceptionCaptureCallback","description":"Find out if there is an uncaught exception callback set","url":"https://nodejs.org/api/process.html#processhasuncaughtexceptioncapturecallback"},{"name":"hrtime","description":"Get high resolution time","url":"https://nodejs.org/api/process.html#processhrtimetime"},{"name":"initgroups","description":"Initialize the group access list","url":"https://nodejs.org/api/process.html#processinitgroupsuser-extragroup"},{"name":"kill","description":"Kill a process","url":"https://nodejs.org/api/process.html#processkillpid-signal"},{"name":"memoryUsage","description":"Get memory usage information","url":"https://nodejs.org/api/process.html#processmemoryusage"},{"name":"resourceUsage","description":"Get resource usage information","url":"https://nodejs.org/api/process.html#processresourceusage"},{"name":"send","description":"Send a message to a process","url":"https://nodejs.org/api/process.html#processsendmessage-sendhandle-options-callback"},{"name":"setegid","description":"Set the effective group id of the process","url":"https://nodejs.org/api/process.html#processsetegidid"},{"name":"seteuid","description":"Set the effective user id of the process","url":"https://nodejs.org/api/process.html#processseteuidid"},{"name":"setgid","description":"Set the group id of the process","url":"https://nodejs.org/api/process.html#processsetgidid"},{"name":"setgroups","description":"Set the supplementary group ids of the process","url":"https://nodejs.org/api/process.html#processsetgroupsgroups"},{"name":"setuid","description":"Set the user id of the process","url":"https://nodejs.org/api/process.html#processsetuidid"},{"name":"setSourceMapsEnabled","description":"Enable/disable source maps","url":"https://nodejs.org/api/process.html#processsetsourcemapsenabledval"},{"name":"setUncaughtExceptionCaptureCallback","description":"Set a callback to run when there is an uncaught exception","url":"https://nodejs.org/api/process.html#processsetuncaughtexceptioncapturecallbackfn"},{"name":"umask","description":"Set the file mode creation mask","url":"https://nodejs.org/api/process.html#processumask"},{"name":"uptime","description":"Get the process uptime","url":"https://nodejs.org/api/process.html#processuptime"},{"name":"on","description":"Add a listener for a process event","url":"https://nodejs.org/api/process.html#process-events"}]},{"name":"timers","methods":[{"name":"setImmediate","description":"Queue a function for execution","url":"https://nodejs.org/api/timers.html#setimmediatecallback-args"},{"name":"setInterval","description":"Set a repeating timer to execute a function","url":"https://nodejs.org/api/timers.html#setintervalcallback-delay-args"},{"name":"setTimeout","description":"Set a timer to execute a function","url":"https://nodejs.org/api/timers.html#settimeoutcallback-delay-args"},{"name":"clearImmediate","description":"Cancel a setImmediate callback","url":"https://nodejs.org/api/timers.html#clearimmediateimmediate"},{"name":"clearInterval","description":"Cancel a setInterval callback","url":"https://nodejs.org/api/timers.html#clearintervaltimeout"},{"name":"clearTimeout","description":"Cancel a setTimeout callback","url":"https://nodejs.org/api/timers.html#cleartimeouttimeout"}]},{"name":"timers/promises","methods":[{"name":"setImmediate","description":"Queue a function for execution","url":"https://nodejs.org/api/timers.html#timerspromisessetimmediatevalue-options"},{"name":"setInterval","description":"Set a repeating timer to execute a function","url":"https://nodejs.org/api/timers.html#timerspromisessetintervaldelay-value-options"},{"name":"setTimeout","description":"Set a timer to execute a function","url":"https://nodejs.org/api/timers.html#timerspromisessettimeoutdelay-value-options"}]},{"name":"tls","methods":[{"name":"Server","description":"Create a new TLS server","url":"https://nodejs.org/api/tls.html#class-tlsserver"},{"name":"TLSSocket","description":"Create a new TLS socket","url":"https://nodejs.org/api/tls.html#class-tlstlssocket"},{"name":"checkServerIdentity","description":"Verify that a server certificate is valid for a given host","url":"https://nodejs.org/api/tls.html#tlscheckserveridentityhostname-cert"},{"name":"connect","description":"Connect to a TLS server","url":"https://nodejs.org/api/tls.html#tlsconnectoptions-callback"},{"name":"createSecureContext","description":"Create a new secure context","url":"https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions"},{"name":"createSecurePair","description":"Create a new secure pair","url":"https://nodejs.org/api/tls.html#tlscreatesecurepaircontext-isserver-requestcert-rejectunauthorized-options"},{"name":"createServer","description":"Create a new TLS server","url":"https://nodejs.org/api/tls.html#tlscreateserveroptions-secureconnectionlistener"},{"name":"getCiphers","description":"Get a list of supported TLS ciphers","url":"https://nodejs.org/api/tls.html#tlsgetciphers"}]},{"name":"trace_events","methods":[{"name":"createTracing","description":"Centralize system tracing information","url":"https://nodejs.org/api/tracing.html#trace_eventscreatetracingoptions"},{"name":"getEnabledCategories","description":"Get the enabled trace event categories","url":"https://nodejs.org/api/tracing.html#trace_eventsgetenabledcategories"}]},{"name":"v8","methods":[{"name":"cachedDataVersionTag","description":"Get a version tag derived from the V8 version, command-line flags, and detected CPU features","url":"https://nodejs.org/api/v8.html#v8cacheddataversiontag"},{"name":"getHeapCodeStatistics","description":"Get statistics about code and its metadata in the heap","url":"https://nodejs.org/api/v8.html#v8getheapcodestatistics"},{"name":"getHeapSnapshot","description":"Generate a snapshot of the current V8 heap","url":"https://nodejs.org/api/v8.html#v8getheapsnapshot"},{"name":"getHeapSpaceStatistics","description":"Get statistics about the V8 heap spaces","url":"https://nodejs.org/api/v8.html#v8getheapspacestatistics"},{"name":"getHeapStatistics","description":"Get detailed V8 heap statistics","url":"https://nodejs.org/api/v8.html#v8getheapstatistics"},{"name":"setFlagsFromString","description":"Programmatically set V8 command-line flags","url":"https://nodejs.org/api/v8.html#v8setflagsfromstringflags"},{"name":"stopCoverage","description":"Stop collecting JavaScript code coverage collection","url":"https://nodejs.org/api/v8.html#v8stopcoverage"},{"name":"takeCoverage","description":"Write code coverage data to disk","url":"https://nodejs.org/api/v8.html#v8takecoverage"},{"name":"writeHeapSnapshot","description":"Write a heap snapshot to a file","url":"https://nodejs.org/api/v8.html#v8writeheapsnapshotfilename"},{"name":"serialize","description":"Serialize value into a buffer","url":"https://nodejs.org/api/v8.html#v8serializevalue"},{"name":"deserialize","description":"Deserialize value from a buffer","url":"https://nodejs.org/api/v8.html#v8deserializebuffer"}]},{"name":"vm","methods":[{"name":"Script","isConstructor":true,"description":"Precompile arbitrary code to execute later","url":"https://nodejs.org/api/vm.html#class-vmscript","needsExplicitPermission":true},{"name":"SourceTextModule","description":"Create a module defined from ECMAScript source text","url":"https://nodejs.org/api/vm.html#class-vmsourcetextmodule"},{"name":"SyntheticModule","description":"Create a WebIDL synthetic module","url":"https://nodejs.org/api/vm.html#class-vmsyntheticmodule"},{"name":"compileFunction","description":"Compile a JavaScript function","url":"https://nodejs.org/api/vm.html#vmcompilefunctioncode-params-options"},{"name":"createContext","description":"Create a new execution context","url":"https://nodejs.org/api/vm.html#vmcreatecontextcontextobject-options"},{"name":"isContext","description":"Check if the given object is an execution context","url":"https://nodejs.org/api/vm.html#vmiscontextobject"},{"name":"measureMemory","description":"Measure V8 memory usage","url":"https://nodejs.org/api/vm.html#vmmeasurememoryoptions"},{"name":"runInContext","description":"Run arbitrary code in a context","url":"https://nodejs.org/api/vm.html#vmrunincontextcode-contextifiedobject-options","needsExplicitPermission":true},{"name":"runInNewContext","description":"Run arbitrary code in a new context","url":"https://nodejs.org/api/vm.html#vmruninnewcontextcode-contextobject-options","needsExplicitPermission":true},{"name":"runInThisContext","description":"Run arbitrary code in the current context","url":"https://nodejs.org/api/vm.html#vmruninthiscontextcode-options","needsExplicitPermission":true}]},{"name":"wasi","methods":[{"name":"WASI","isConstructor":true,"description":"Give WebAssembly apps access to the underlying OS","url":"https://nodejs.org/api/wasi.html#new-wasioptions","needsExplicitPermission":true}]},{"name":"worker_threads","methods":[{"name":"Worker","isConstructor":true,"description":"Create a new independent JavaScript execution thread","url":"https://nodejs.org/api/worker_threads.html#class-worker"},{"name":"getEnvironmentData","description":"Get thread environment data","url":"https://nodejs.org/api/worker_threads.html#workergetenvironmentdatakey"},{"name":"markAsUntransferable","description":"Mark a buffer as untransferable between threads","url":"https://nodejs.org/api/worker_threads.html#workermarkasuntransferableobject"},{"name":"moveMessagePortToContext","description":"Move a message port to a different context","url":"https://nodejs.org/api/worker_threads.html#workermovemessageporttocontextport-contextifiedsandbox"},{"name":"receiveMessageOnPort","description":"Receive single a message on a port","url":"https://nodejs.org/api/worker_threads.html#workerreceivemessageonportport"},{"name":"setEnvironmentData","description":"Set thread environment data","url":"https://nodejs.org/api/worker_threads.html#workersetenvironmentdatakey-value"}]}]'); + +/***/ }), + +/***/ "../../src/library/web.json": +/*!**********************************!*\ + !*** ../../src/library/web.json ***! + \**********************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"name":"AudioContext","globalConstructor":true,"constructorDescription":"Enable execution of audio processing or decoding.","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/AudioContext"},{"name":"BackgroundFetchManager","methods":[{"name":"fetch","description":"Register URLs for background fetch","url":"https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/fetch"},{"name":"get","description":"Get info on background fetch job","url":"https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/get"},{"name":"getIds","description":"Return the IDs of all registered background fetches","url":"https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/getIds"}]},{"name":"BackgroundTasks","globalMethods":[{"name":"requestIdleCallback","description":"Queue task to be executed in the background","url":"https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback"},{"name":"cancelIdleCallback","description":"Cancel a previously queued background task","url":"https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelIdleCallback"}]},{"name":"Beacon","navigatorMethods":[{"name":"sendBeacon","description":"Send an asynchronous request that does not expect a response","url":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon"}]},{"name":"Bluetooth","methods":[{"name":"getAvailability","description":"Is the browser able to use Bluetooth","url":"https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getAvailability"},{"name":"getDevices","description":"Get a list of available Bluetooth devices","url":"https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getDevices"},{"name":"requestDevice","description":"Request a Bluetooth device","url":"https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/requestDevice"}]},{"name":"Clipboard","methods":[{"name":"read","description":"Request arbitrary data from the clipboard","url":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read"},{"name":"readText","description":"Request text from the clipboard","url":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText"},{"name":"write","description":"Write arbitrary data to the clipboard","url":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write"},{"name":"writeText","description":"Write text to the clipboard","url":"https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText"}]},{"name":"ContactsManager","methods":[{"name":"select","description":"Retrieve contact information from user device","url":"https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/select"},{"name":"getProperties","description":"List all available contact properties","url":"https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/getProperties"}]},{"name":"ContentIndex","methods":[{"name":"add","description":"Register offline enabled content with the browser","url":"https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/add"},{"name":"delete","description":"Delete an offline enabled content","url":"https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/delete"},{"name":"getAll","description":"Get all offline enabled content","url":"https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/getAll"}]},{"name":"CookieStore","methods":[{"name":"delete","description":"Delete a cookie","url":"https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/delete"},{"name":"get","description":"Get a cookie","url":"https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/get"},{"name":"getAll","description":"Get all cookies","url":"https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/getAll"},{"name":"set","description":"Set a cookie","url":"https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/set"}]},{"name":"CredentialsContainer","methods":[{"name":"create","description":"Create a new Credential instance","url":"https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/create"},{"name":"get","description":"Retrieve saved authentication credentials","url":"https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/get"},{"name":"preventSilentAccess","description":"Set if automatic log in is allowed","url":"https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/preventSilentAccess"},{"name":"store","description":"Store user authentication credentials","url":"https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/store"}]},{"name":"EventSource","globalConstructor":true,"constructorDescription":"Recieve events from a server, via a persistent connection","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/EventSource"},{"name":"Fetch","globalMethods":[{"name":"fetch","description":"Communicate with a web server","url":"https://developer.mozilla.org/en-US/docs/Web/API/fetch"}]},{"name":"FileReader","globalConstructor":true,"constructorDescription":"Read the contents of a user file","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader","methods":[{"name":"abort","description":"Abort reading file","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader/abort"},{"name":"readAsArrayBuffer","description":"Read file as ArrayBuffer","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsArrayBuffer"},{"name":"readAsBinaryString","description":"Read file as binary string","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsBinaryString"},{"name":"readAsDataURL","description":"Read file as data URL","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL"},{"name":"readAsText","description":"Read file as text","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsText"}]},{"name":"FileReaderSync","globalConstructor":true,"constructorDescription":"Read the contents of a user file","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync","methods":[{"name":"readAsArrayBuffer","description":"Read file as ArrayBuffer","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsArrayBuffer"},{"name":"readAsBinaryString","description":"Read file as binary string","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsBinaryString"},{"name":"readAsDataURL","description":"Read file as data URL","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsDataURL"},{"name":"readAsText","description":"Read file as text","url":"https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsText"}]},{"name":"FileSystem","globalMethods":[{"name":"showOpenFilePicker","description":"Prompt user to allow reading a file from his system","url":"https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker"},{"name":"showSaveFilePicker","description":"Prompt user to allow saving a file to his system","url":"https://developer.mozilla.org/en-US/docs/Web/API/window/showSaveFilePicker"},{"name":"showDirectoryPicker","description":"Prompt user to allow reading a directory from his system","url":"https://developer.mozilla.org/en-US/docs/Web/API/window/showDirectoryPicker"}]},{"name":"Gamepad","navigatorMethods":[{"name":"getGamepads","description":"Get a list of connected gamepads","url":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getGamepads"}]},{"name":"Geolocation","methods":[{"name":"clearWatch","description":"Stop tracking user location","url":"https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/clearWatch"},{"name":"getCurrentPosition","description":"Get user location","url":"https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition"},{"name":"watchPosition","description":"Track user location","url":"https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition"}]},{"name":"Battery","navigatorMethods":[{"name":"getBattery","description":"Get device battery information","url":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery"}]},{"name":"HID","methods":[{"name":"getDevices","description":"List connected Human Interface Devices","url":"https://developer.mozilla.org/en-US/docs/Web/API/HID/getDevices"},{"name":"requestDevice","description":"Connect to a Human Interface Device","url":"https://developer.mozilla.org/en-US/docs/Web/API/HID/requestDevice"}]},{"name":"History","methods":[{"name":"back","description":"Go back in navigation history","url":"https://developer.mozilla.org/en-US/docs/Web/API/History/back"},{"name":"forward","description":"Go forward in navigation history","url":"https://developer.mozilla.org/en-US/docs/Web/API/History/forward"},{"name":"go","description":"Go to a specific point in the navigation history","url":"https://developer.mozilla.org/en-US/docs/Web/API/History/go"},{"name":"pushState","description":"Add a new entry to the history stack","url":"https://developer.mozilla.org/en-US/docs/Web/API/History/pushState"},{"name":"replaceState","description":"Replace the current entry in the history stack","url":"https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState"}]},{"name":"IDBFactory","methods":[{"name":"cmp","description":"Compare two database keys","url":"https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/cmp"},{"name":"databases","description":"List all available databases","url":"https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/databases"},{"name":"deleteDatabase","description":"Delete a database","url":"https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/deleteDatabase"},{"name":"open","description":"Open a database","url":"https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/open"}]},{"name":"ImageCapture","globalConstructor":true,"constructorDescription":"Enable the capture of images or photos from a camera","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture","methods":[{"name":"getPhotoCapabilities","description":"Get the capabilities of the camera","url":"https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoCapabilities"},{"name":"getPhotoSettings","description":"Get the settings of the camera","url":"https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoSettings"},{"name":"grabFrame","description":"Take a snapshot of the live video stream","url":"https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/grabFrame"},{"name":"takePhoto","description":"Take a single exposure using the video capture device","url":"https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/takePhoto"}]},{"name":"MediaDevices","methods":[{"name":"enumerateDevices","description":"List all connected media devices","url":"https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices"},{"name":"getDisplayMedia","description":"Capture the contents of a display or portion thereof","url":"https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia"},{"name":"getSupportedConstraints","description":"Get the supported media device constraints","url":"https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getSupportedConstraints"},{"name":"getUserMedia","description":"Request access to user media devices","url":"https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia"},{"name":"selectAudioOutput","description":"Select an audio output device","url":"https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/selectAudioOutput"}]},{"name":"MediaRecorder","globalConstructor":true,"constructorDescription":"Record audio and video","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder"},{"name":"MediaStream","globalConstructor":true,"constructorDescription":"A stream of media content","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/MediaStream/MediaStream"},{"name":"MessageChannel","globalConstructor":true,"constructorDescription":"A channel for passing messages between threads","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel/MessageChannel","globalMethods":[{"name":"postMessage","description":"Send cross-origin communication between windows","url":"https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage"}]},{"name":"MIDI","navigatorMethods":[{"name":"requestMIDIAccess","description":"Request access to connected MIDI devices","url":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMIDIAccess"}]},{"name":"Notification","globalConstructor":true,"constructorDescription":"Create a user notification","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification","methods":[{"name":"requestPermission","description":"Request permission to show notifications","url":"https://developer.mozilla.org/en-US/docs/Web/API/Notification/requestPermission"}],"swrMethods":[{"name":"showNotification","description":"Show a browser notification","url":"https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification"},{"name":"getNotifications","description":"List received notifications","url":"https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/getNotifications"}]},{"name":"PaymentRequest","globalConstructor":true,"constructorDescription":"Create a payment request","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/PaymentRequest/PaymentRequest"},{"name":"PerformanceObserver","globalConstructor":true,"constructorDescription":"Monitor the performance of the page","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver/PerformanceObserver"},{"name":"PeriodicSyncManager","methods":[{"name":"register","description":"Registers a periodic background sync request","url":"https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/register"},{"name":"unregister","description":"Unregisters a periodic background sync request","url":"https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/unregister"},{"name":"getTags","description":"List registered periodic sync requests","url":"https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/getTags"}]},{"name":"Permissions","methods":[{"name":"query","description":"Get user permission status for a given API","url":"https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query"},{"name":"revoke","description":"Revoke a user permission for a given API","url":"https://developer.mozilla.org/en-US/docs/Web/API/Permissions/revoke"}]},{"name":"PresentationRequest","globalConstructor":true,"constructorDescription":"Create a presentation request","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/PresentationRequest","methods":[{"name":"start","description":"Start a presentation","url":"https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/start"},{"name":"reconnect","description":"Reconnect to a presentation","url":"https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/reconnect"},{"name":"getAvailability","description":"Get availability for starting presentations","url":"https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/getAvailability"}]},{"name":"PushManager","methods":[{"name":"getSubscription","description":"Get the current push subscription","url":"https://developer.mozilla.org/en-US/docs/Web/API/PushManager/getSubscription"},{"name":"hasPermission","description":"Get push subscription permission state","url":"https://developer.mozilla.org/en-US/docs/Web/API/PushManager/hasPermission"},{"name":"permissionState","description":"Get push subscription permission state","url":"https://developer.mozilla.org/en-US/docs/Web/API/PushManager/permissionState"},{"name":"register","description":"Register a push subscription","url":"https://developer.mozilla.org/en-US/docs/Web/API/PushManager/register"},{"name":"registrations","description":"List of registered push subscriptions","url":"https://developer.mozilla.org/en-US/docs/Web/API/PushManager/registrations"},{"name":"subscribe","description":"Subscribe to a push subscription","url":"https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe"},{"name":"unregister","description":"Unregister a push subscription","url":"https://developer.mozilla.org/en-US/docs/Web/API/PushManager/unregister"}]},{"name":"ReportingObserver","globalConstructor":true,"constructorDescription":"Collect and access reports on various issues","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/ReportingObserver/ReportingObserver"},{"name":"Scheduler","methods":[{"name":"postTask","description":"Create a new scheduled task","url":"https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/postTask"}]},{"name":"Selection","globalMethods":[{"name":"getSelection","description":"Get the current webpage selection","url":"https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection"}],"documentMethods":[{"name":"getSelection","description":"Get the current webpage selection","url":"https://developer.mozilla.org/en-US/docs/Web/API/Document/getSelection"}]},{"name":"Sensor","globalConstructors":[{"name":"AbsoluteOrientationSensor","description":"Absolute orientation sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/AbsoluteOrientationSensor"},{"name":"Accelerometer","description":"Accelerometer sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/Accelerometer"},{"name":"AmbientLightSensor","description":"Ambient light sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/AmbientLightSensor"},{"name":"GravitySensor","description":"Gravity sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/GravitySensor"},{"name":"Gyroscope","description":"Gyroscope sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/Gyroscope"},{"name":"LinearAccelerationSensor","description":"Linear acceleration sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/LinearAccelerationSensor"},{"name":"Magnetometer","description":"Magnetometer sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/Magnetometer"},{"name":"RelativeOrientationSensor","description":"Relative orientation sensor","url":"https://developer.mozilla.org/en-US/docs/Web/API/RelativeOrientationSensor"}]},{"name":"Share","navigatorMethods":[{"name":"share","description":"Share content to user-selected targets","url":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share"},{"name":"canShare","description":"Check if sharing is supported","url":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/canShare"}]},{"name":"SpeechRecognition","globalConstructors":[{"name":"SpeechRecognition","description":"Use the speech recognition API","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/SpeechRecognition"},{"name":"webkitSpeechRecognition","description":"Use the speech recognition API","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/webkitSpeechRecognition"}],"methods":[{"name":"abort","description":"Abort a speech recognition process","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/abort"},{"name":"start","description":"Start a speech recognition process","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/start"},{"name":"stop","description":"Stop a speech recognition process","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/stop"}]},{"name":"SpeechSynthesis","globalPropertyMethods":[{"name":"cancel","description":"Cancel speech synthesis","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/cancel"},{"name":"getVoices","description":"Get the list of available voices","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/getVoices"},{"name":"pause","description":"Pause speech synthesis","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/pause"},{"name":"resume","description":"Resume speech synthesis","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/resume"},{"name":"speak","description":"Speak text","url":"https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/speak"}],"globalProperty":"speechSynthesis"},{"name":"Storage","methods":[{"name":"getItem","description":"Return an item from local storage","url":"https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem"},{"name":"setItem","description":"Save an item to local storage","url":"https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem"},{"name":"removeItem","description":"Remove an item from local storage","url":"https://developer.mozilla.org/en-US/docs/Web/API/Storage/removeItem"},{"name":"clear","description":"Clear local storage","url":"https://developer.mozilla.org/en-US/docs/Web/API/Storage/clear"},{"name":"key","description":"Return the name of the nth key in local storage","url":"https://developer.mozilla.org/en-US/docs/Web/API/Storage/key"}]},{"name":"StorageAccess","documentMethods":[{"name":"requestStorageAccess","description":"Request access to first-party storage","url":"https://developer.mozilla.org/en-US/docs/Web/API/Document/requestStorageAccess"},{"name":"hasStorageAccess","description":"Check if storage access is granted","url":"https://developer.mozilla.org/en-US/docs/Web/API/Document/hasStorageAccess"}]},{"name":"StorageManager","methods":[{"name":"estimate","description":"Returns current storage space - used and available","url":"https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate"},{"name":"persist","description":"Request permission to use persistent storage","url":"https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist"},{"name":"persisted","description":"Check if persistent storage is granted","url":"https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persisted"}]},{"name":"SubtleCrypto","methods":[{"name":"decrypt","description":"Decrypt data","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/decrypt"},{"name":"deriveBits","description":"Derive bits from a crypto key","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveBits"},{"name":"deriveKey","description":"Derive a secret key from a master key","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey"},{"name":"digest","description":"Generate a crypto digest from data","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest"},{"name":"encrypt","description":"Encrypt data","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt"},{"name":"exportKey","description":"Export a crypto key","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/exportKey"},{"name":"generateKey","description":"Generate a crypto key","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey"},{"name":"importKey","description":"Import a crypto key","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey"},{"name":"sign","description":"Sign data","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/sign"},{"name":"unwrapKey","description":"Unwrap a crypto key","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/unwrapKey"},{"name":"verify","description":"Verify data","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/verify"},{"name":"wrapKey","description":"Wrap a crypto key","url":"https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/wrapKey"}]},{"name":"USB","methods":[{"name":"getDevices","description":"Get a list of paired attached USB devices","url":"https://developer.mozilla.org/en-US/docs/Web/API/USB/getDevices"},{"name":"requestDevice","description":"Request access to a USB device","url":"https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice"}]},{"name":"Vibration","navigatorMethods":[{"name":"vibrate","description":"Vibrate the device","url":"https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate"}]},{"name":"WakeLock","methods":[{"name":"request","description":"Request a device wake lock","url":"https://developer.mozilla.org/en-US/docs/Web/API/WakeLock/request"}]},{"name":"WebSocket","globalConstructor":true,"constructorDescription":"Create a new WebSocket object","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket","methods":[{"name":"close","description":"Close a websocket connection","url":"https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close"},{"name":"send","description":"Send data on a websocket connection","url":"https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send"}]},{"name":"Worker","globalConstructor":true,"constructorDescription":"Create a new web worker","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker","methods":[{"name":"postMessage","description":"Post a message to a web worker","url":"https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage"},{"name":"terminate","description":"Terminate a web worker","url":"https://developer.mozilla.org/en-US/docs/Web/API/Worker/terminate"}]},{"name":"SharedWorker","globalConstructor":true,"constructorDescription":"Create a new shared worker","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker"},{"name":"XMLHttpRequest","globalConstructor":true,"constructorDescription":"Communicate with a web server","constructorUrl":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/XMLHttpRequest","methods":[{"name":"abort","description":"Abort an web request","url":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort"},{"name":"getAllResponseHeaders","description":"Get all response headers","url":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders"},{"name":"getResponseHeader","description":"Get a response header","url":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader"},{"name":"open","description":"Open a web request","url":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open"},{"name":"overrideMimeType","description":"Override the MIME type","url":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/overrideMimeType"},{"name":"send","description":"Send data via a web request","url":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send"},{"name":"setRequestHeader","description":"Set a request header","url":"https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader"}]}]'); + /***/ }) /******/ }); diff --git a/cli/frontend/src/libraries.js b/cli/frontend/src/libraries.js index 8daa178..5a2cb8d 100644 --- a/cli/frontend/src/libraries.js +++ b/cli/frontend/src/libraries.js @@ -1,5 +1,6 @@ -import webLibraryGenerator from './library/web'; -import nodeLibraryGenerator from './library/node'; +import webLibraryData from './library/web.json'; +import nodeLibraryData from './library/node.json'; +import { buildNodeLibraryFrom, buildWebLibraryFrom } from './library/builder'; const processLibrary = (library) => library @@ -16,5 +17,5 @@ const processLibrary = (library) => }, []) .sort((a, b) => a.name.localeCompare(b.name)); -export const webLibrary = processLibrary(webLibraryGenerator()); -export const nodeLibrary = processLibrary(nodeLibraryGenerator()); +export const webLibrary = processLibrary(buildWebLibraryFrom(webLibraryData)); +export const nodeLibrary = processLibrary(buildNodeLibraryFrom(nodeLibraryData)); diff --git a/dist/index.js b/dist/index.js index d176c2c..f76c585 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,2 +1,2 @@ /*! For license information please see index.js.LICENSE.txt */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Sandworm=t():e.Sandworm=t()}(this,(()=>(()=>{var e={244:(e,t,r)=>{function n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r{var n=r(244).node;e.exports=function(){return[{name:"child_process",methods:[{name:"exec",description:"Spawn a shell and execute an arbitrary command",url:"https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback",needsExplicitPermission:!0},{name:"execFile",description:"Spawn a shell and execute an arbitrary file",url:"https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback",needsExplicitPermission:!0},{name:"fork",description:"Fork a child process",url:"https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options"},{name:"spawn",description:"Spawn a new process",url:"https://nodejs.org/api/child_process.html#child_processspawncommand-args-options"},{name:"execFileSync",description:"Spawn a shell and execute an arbitrary file",url:"https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options",needsExplicitPermission:!0},{name:"execSync",description:"Spawn a shell and execute an arbitrary command",url:"https://nodejs.org/api/child_process.html#child_processexecsynccommand-options",needsExplicitPermission:!0},{name:"spawnSync",description:"Spawn a new process",url:"https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options"}]},{name:"cluster",methods:[{name:"disconnect",description:"Disconnect a worker from its parent process",url:"https://nodejs.org/api/cluster.html#workerdisconnect"},{name:"fork",description:"Fork a new worker process",url:"https://nodejs.org/api/cluster.html#clusterforkenv"},{name:"setupPrimary",description:"Change the default fork behavior of cluster.fork",url:"https://nodejs.org/api/cluster.html#clustersetupprimarysettings"},{name:"setupMaster",description:"Change the default fork behavior of cluster.fork",url:"https://nodejs.org/api/cluster.html#clustersetupmastersettings"}]},{name:"dgram",methods:[{name:"createSocket",description:"Create a datagram socket",url:"https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_type_callback"}]},{name:"dns",methods:[{name:"Resolver",isConstructor:!0,description:"Create a DNS resolver",url:"https://nodejs.org/api/dns.html#dns_class_dns_resolver"},{name:"getServers",description:"Get the list of current DNS servers",url:"https://nodejs.org/api/dns.html#dns_dns_getservers"},{name:"lookup",description:"Resolve a host name into the first found A or AAAA record",url:"https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback"},{name:"lookupService",description:"Resolve the given address and port into a host name and service",url:"https://nodejs.org/api/dns.html#dnslookupserviceaddress-port-callback"},{name:"resolve",description:"Resolve a host name into an array of records",url:"https://nodejs.org/api/dns.html#dnsresolvehostname-rrtype-callback"},{name:"resolve4",description:"Resolve a host name to an IPv4 address",url:"https://nodejs.org/api/dns.html#dnsresolve4hostname-options-callback"},{name:"resolve6",description:"Resolve a host name to an IPv6 address",url:"https://nodejs.org/api/dns.html#dnsresolve6hostname-options-callback"},{name:"resolveAny",description:"Resolve a host name to an array of records",url:"https://nodejs.org/api/dns.html#dnsresolveanyhostname-callback"},{name:"resolveCname",description:"Resolve a host name to an array of CNAME records",url:"https://nodejs.org/api/dns.html#dnsresolvecnamehostname-callback"},{name:"resolveCaa",description:"Resolve a host name to an array of CAA records",url:"https://nodejs.org/api/dns.html#dnsresolvecaahostname-callback"},{name:"resolveMx",description:"Resolve a host name to an array of MX records",url:"https://nodejs.org/api/dns.html#dnsresolvemxhostname-callback"},{name:"resolveNaptr",description:"Resolve a host name to an array of NAPTR records",url:"https://nodejs.org/api/dns.html#dnsresolvenaptrhostname-callback"},{name:"resolveNs",description:"Resolve a host name to an array of NS records",url:"https://nodejs.org/api/dns.html#dnsresolvenshostname-callback"},{name:"resolvePtr",description:"Resolve a host name to an array of PTR records",url:"https://nodejs.org/api/dns.html#dnsresolveptrhostname-callback"},{name:"resolveSoa",description:"Resolve a host name to an SOA record",url:"https://nodejs.org/api/dns.html#dnsresolvesoahostname-callback"},{name:"resolveSrv",description:"Resolve a host name to an array of SRV records",url:"https://nodejs.org/api/dns.html#dnsresolvesrvhostname-callback"},{name:"resolveTxt",description:"Resolve a host name to an array of TXT records",url:"https://nodejs.org/api/dns.html#dnsresolvetxthostname-callback"},{name:"reverse",description:"Perform a reverse lookup for the given address",url:"https://nodejs.org/api/dns.html#dnsreverseip-callback"},{name:"setDefaultResultOrder",description:"Set the default order for result records",url:"https://nodejs.org/api/dns.html#dnssetdefaultresultorderorder"},{name:"setServers",description:"Set the list of DNS servers to be used",url:"https://nodejs.org/api/dns.html#dns_dns_setservers_servers"}]},{name:"fetch",methods:[{name:"fetch",description:"Communicate with a web server",url:"https://nodejs.org/api/fetch/"}],globalMethod:!0},{name:"eval",methods:[{name:"eval",description:"Run arbitrary JS code from a string",url:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval",needsExplicitPermission:!0}],globalMethod:!0},{name:"Function",methods:[{name:"Function",description:"Create a new function from an arbitrary string",url:"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function",needsExplicitPermission:!0}],globalMethod:!0},{name:"fs",methods:[{name:"access",description:"Test a user's permissions for a file or directory",url:"https://nodejs.org/api/fs.html#fsaccesspath-mode-callback"},{name:"appendFile",description:"Append to a file",url:"https://nodejs.org/api/fs.html#fsappendfilepath-data-options-callback"},{name:"chmod",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fschmodpath-mode-callback"},{name:"chown",description:"Change file ownership",url:"https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback"},{name:"close",description:"Close a file descriptor",url:"https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback"},{name:"copyFile",description:"Copy a file",url:"https://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback"},{name:"cp",description:"Copy a directory",url:"https://nodejs.org/api/fs.html#fscpsrc-dest-options-callback"},{name:"createReadStream",description:"Create a readable stream",url:"https://nodejs.org/api/fs.html#fscreatereadstreampath-options"},{name:"createWriteStream",description:"Create a writable stream",url:"https://nodejs.org/api/fs.html#fscreatewritestreampath-options"},{name:"exists",description:"Test whether or not a file exists",url:"https://nodejs.org/api/fs.html#fsexistspath-callback"},{name:"fchmod",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fsfchmodfd-mode-callback"},{name:"fchown",description:"Change file ownership",url:"https://nodejs.org/api/fs.html#fsfchownfd-uid-gid-callback"},{name:"fdatasync",description:"Force all currently queued I/O operations to completion",url:"https://nodejs.org/api/fs.html#fsfdatasyncfd-callback"},{name:"fstat",description:"Get file status",url:"https://nodejs.org/api/fs.html#fsfstatfd-options-callback"},{name:"fsync",description:"Request data to be flushed to the storage device",url:"https://nodejs.org/api/fs.html#fsfsyncfd-callback"},{name:"ftruncate",description:"Truncate a file to a specified length",url:"https://nodejs.org/api/fs.html#fsftruncatefd-len-callback"},{name:"futimes",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fsfutimesfd-atime-mtime-callback"},{name:"lchmod",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fslchmodpath-mode-callback"},{name:"lchown",description:"Change file ownership",url:"https://nodejs.org/api/fs.html#fslchownpath-uid-gid-callback"},{name:"lutimes",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fslutimespath-atime-mtime-callback"},{name:"link",description:"Create a new link",url:"https://nodejs.org/api/fs.html#fslinkexistingpath-newpath-callback"},{name:"lstat",description:"Get file status",url:"https://nodejs.org/api/fs.html#fslstatpath-options-callback"},{name:"mkdir",description:"Create a directory",url:"https://nodejs.org/api/fs.html#fsmkdirpath-options-callback"},{name:"mkdtemp",description:"Create a unique temporary directory",url:"https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback"},{name:"open",description:"Open a file",url:"https://nodejs.org/api/fs.html#fsopenpath-flags-mode-callback"},{name:"opendir",description:"Open a directory",url:"https://nodejs.org/api/fs.html#fsopendirpath-options-callback"},{name:"read",description:"Read a file",url:"https://nodejs.org/api/fs.html#fsreadfd-buffer-offset-length-position-callback"},{name:"readdir",description:"Read a directory",url:"https://nodejs.org/api/fs.html#fsreaddirpath-options-callback"},{name:"readFile",description:"Read a file",url:"https://nodejs.org/api/fs.html#fsreadfilepath-options-callback"},{name:"readlink",description:"Read a symbolic link",url:"https://nodejs.org/api/fs.html#fsreadlinkpath-options-callback"},{name:"readv",description:"Read from a file",url:"https://nodejs.org/api/fs.html#fsreadvfd-buffers-position-callback"},{name:"realpath",description:"Resolve a canonical path",url:"https://nodejs.org/api/fs.html#fsrealpathpath-options-callback"},{name:"rename",description:"Rename a file or directory",url:"https://nodejs.org/api/fs.html#fsrenameoldpath-newpath-callback"},{name:"rmdir",description:"Remove a directory",url:"https://nodejs.org/api/fs.html#fsrmdirpath-options-callback"},{name:"rm",description:"Remove a file",url:"https://nodejs.org/api/fs.html#fsrmpath-options-callback"},{name:"stat",description:"Get file status",url:"https://nodejs.org/api/fs.html#fsstatpath-options-callback"},{name:"symlink",description:"Create a symbolic link",url:"https://nodejs.org/api/fs.html#fssymlinktarget-path-type-callback"},{name:"truncate",description:"Truncate a file to a specified length",url:"https://nodejs.org/api/fs.html#fstruncatepath-len-callback"},{name:"unlink",description:"Delete a file",url:"https://nodejs.org/api/fs.html#fsunlinkpath-callback"},{name:"unwatchFile",description:"Stop watching a file for changes",url:"https://nodejs.org/api/fs.html#fsunwatchfilefilename-listener"},{name:"utimes",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fsutimespath-atime-mtime-callback"},{name:"watch",description:"Monitor a file for changes",url:"https://nodejs.org/api/fs.html#fswatchfilename-options-listener"},{name:"watchFile",description:"Monitor a file for changes",url:"https://nodejs.org/api/fs.html#fswatchfilefilename-options-listener"},{name:"write",description:"Write to a file",url:"https://nodejs.org/api/fs.html#fswritefd-buffer-offset-length-position-callback"},{name:"writeFile",description:"Write a file",url:"https://nodejs.org/api/fs.html#fswritefilefile-data-options-callback"},{name:"writev",description:"Write to a file",url:"https://nodejs.org/api/fs.html#fswritevfd-buffers-position-callback"},{name:"accessSync",description:"Test a user's permissions for a file or directory",url:"https://nodejs.org/api/fs.html#fsaccesssyncpath-mode"},{name:"appendFileSync",description:"Append data to a file",url:"https://nodejs.org/api/fs.html#fsappendfilesyncpath-data-options"},{name:"chmodSync",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fschmodsyncpath-mode"},{name:"chownSync",description:"Change file owner",url:"https://nodejs.org/api/fs.html#fschownsyncpath-uid-gid"},{name:"closeSync",description:"Close a file",url:"https://nodejs.org/api/fs.html#fsclosesyncfd"},{name:"copyFileSync",description:"Copy a file",url:"https://nodejs.org/api/fs.html#fscopyfilesyncsrc-dest-mode"},{name:"cpSync",description:"Copy a directory",url:"https://nodejs.org/api/fs.html#fscpsyncsrc-dest-options"},{name:"existsSync",description:"Test whether a file exists",url:"https://nodejs.org/api/fs.html#fsexistssyncpath"},{name:"fchmodSync",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fsfchmodsyncfd-mode"},{name:"fchownSync",description:"Change file owner",url:"https://nodejs.org/api/fs.html#fsfchownsyncfd-uid-gid"},{name:"fdatasyncSync",description:"Force all currently queued I/O operations to completion",url:"https://nodejs.org/api/fs.html#fsfdatasyncsyncfd"},{name:"fstatSync",description:"Get file status",url:"https://nodejs.org/api/fs.html#fsfstatsyncfd-options"},{name:"fsyncSync",description:"Force all data to be flushed to the storage device",url:"https://nodejs.org/api/fs.html#fsfsyncsyncfd"},{name:"ftruncateSync",description:"Truncate a file to a specified length",url:"https://nodejs.org/api/fs.html#fsftruncatesyncfd-len"},{name:"futimesSync",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fsfutimessyncfd-atime-mtime"},{name:"lchmodSync",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fslchmodsyncpath-mode"},{name:"lchownSync",description:"Change file owner",url:"https://nodejs.org/api/fs.html#fslchownsyncpath-uid-gid"},{name:"lutimesSync",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fslutimessyncpath-atime-mtime"},{name:"linkSync",description:"Create a hard link",url:"https://nodejs.org/api/fs.html#fslinksyncexistingpath-newpath"},{name:"lstatSync",description:"Get file status",url:"https://nodejs.org/api/fs.html#fslstatsyncpath-options"},{name:"mkdirSync",description:"Create a directory",url:"https://nodejs.org/api/fs.html#fsmkdirsyncpath-options"},{name:"mkdtempSync",description:"Create a temporary directory",url:"https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options"},{name:"openSync",description:"Open a file",url:"https://nodejs.org/api/fs.html#fsopensyncpath-flags-mode"},{name:"opendirSync",description:"Open a directory",url:"https://nodejs.org/api/fs.html#fsopendirsyncpath-options"},{name:"readSync",description:"Read a file",url:"https://nodejs.org/api/fs.html#fsreadsyncfd-buffer-offset-length-position"},{name:"readdirSync",description:"Read a directory",url:"https://nodejs.org/api/fs.html#fsreaddirsyncpath-options"},{name:"readFileSync",description:"Read a file",url:"https://nodejs.org/api/fs.html#fsreadfilesyncpath-options"},{name:"readlinkSync",description:"Read a symbolic link",url:"https://nodejs.org/api/fs.html#fsreadlinksyncpath-options"},{name:"readvSync",description:"Read from a file",url:"https://nodejs.org/api/fs.html#fsreadvsyncfd-buffers-position"},{name:"realpathSync",description:"Return canonical absolute pathname",url:"https://nodejs.org/api/fs.html#fsrealpathsyncpath-options"},{name:"renameSync",description:"Rename a file or directory",url:"https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath"},{name:"rmdirSync",description:"Remove a directory",url:"https://nodejs.org/api/fs.html#fsrmdirsyncpath-options"},{name:"rmSync",description:"Remove a file",url:"https://nodejs.org/api/fs.html#fsrmsyncpath-options"},{name:"statSync",description:"Get file status",url:"https://nodejs.org/api/fs.html#fsstatsyncpath-options"},{name:"symlinkSync",description:"Create a symbolic link",url:"https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type"},{name:"truncateSync",description:"Truncate a file to a specified length",url:"https://nodejs.org/api/fs.html#fstruncatesyncpath-len"},{name:"unlinkSync",description:"Delete a file",url:"https://nodejs.org/api/fs.html#fsunlinksyncpath"},{name:"utimesSync",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fsutimessyncpath-atime-mtime"},{name:"writeSync",description:"Write to a file",url:"https://nodejs.org/api/fs.html#fswritesyncfd-buffer-offset-length-position"},{name:"writeFileSync",description:"Write a file",url:"https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options"},{name:"writevSync",description:"Write to a file",url:"https://nodejs.org/api/fs.html#fswritevsyncfd-buffers-position"}]},{name:"fs/promises",methods:[{name:"access",description:"Test a user's permissions for a file or directory",url:"https://nodejs.org/api/fs.html#fspromisesaccesspath-mode"},{name:"appendFile",description:"Append data to a file",url:"https://nodejs.org/api/fs.html#fspromisesappendfilepath-data-options"},{name:"chmod",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fspromiseschmodpath-mode"},{name:"chown",description:"Change file owner",url:"https://nodejs.org/api/fs.html#fspromiseschownpath-uid-gid"},{name:"copyFile",description:"Copy a file",url:"https://nodejs.org/api/fs.html#fspromisescopyfilesrc-dest-mode"},{name:"cp",description:"Copy a file",url:"https://nodejs.org/api/fs.html#fspromisescpsrc-dest-options"},{name:"lchmod",description:"Change file permissions",url:"https://nodejs.org/api/fs.html#fspromiseslchmodpath-mode"},{name:"lchown",description:"Change file owner",url:"https://nodejs.org/api/fs.html#fspromiseslchownpath-uid-gid"},{name:"lutimes",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fspromiseslutimespath-atime-mtime"},{name:"link",description:"Create a hard link",url:"https://nodejs.org/api/fs.html#fspromiseslinkexistingpath-newpath"},{name:"lstat",description:"Get file status",url:"https://nodejs.org/api/fs.html#fspromiseslstatpath-options"},{name:"mkdir",description:"Create a directory",url:"https://nodejs.org/api/fs.html#fspromisesmkdirpath-options"},{name:"mkdtemp",description:"Create a temporary directory",url:"https://nodejs.org/api/fs.html#fspromisesmkdtempprefix-options"},{name:"open",description:"Open a file",url:"hhttps://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode"},{name:"opendir",description:"Open a directory",url:"https://nodejs.org/api/fs.html#fspromisesopendirpath-options"},{name:"readdir",description:"Read a directory",url:"https://nodejs.org/api/fs.html#fspromisesreaddirpath-options"},{name:"readFile",description:"Read a file",url:"https://nodejs.org/api/fs.html#fspromisesreadfilepath-options"},{name:"readlink",description:"Read a symbolic link",url:"https://nodejs.org/api/fs.html#fspromisesreadlinkpath-options"},{name:"realpath",description:"Return canonical absolute pathname",url:"https://nodejs.org/api/fs.html#fspromisesrealpathpath-options"},{name:"rename",description:"Rename a file or directory",url:"https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath"},{name:"rmdir",description:"Remove a directory",url:"https://nodejs.org/api/fs.html#fspromisesrmdirpath-options"},{name:"rm",description:"Remove a file",url:"https://nodejs.org/api/fs.html#fspromisesrmpath-options"},{name:"stat",description:"Get file status",url:"https://nodejs.org/api/fs.html#fspromisesstatpath-options"},{name:"symlink",description:"Create a symbolic link",url:"https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type"},{name:"truncate",description:"Truncate a file to a specified length",url:"https://nodejs.org/api/fs.html#fspromisestruncatepath-len"},{name:"unlink",description:"Delete a file",url:"https://nodejs.org/api/fs.html#fspromisesunlinkpath"},{name:"utimes",description:"Change file timestamps",url:"https://nodejs.org/api/fs.html#fspromisesutimespath-atime-mtime"},{name:"watch",description:"Watch for changes on a file",url:"https://nodejs.org/api/fs.html#fspromiseswatchfilename-options"},{name:"writeFile",description:"Write data to a file",url:"https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options"}]},{name:"http",methods:[{name:"Agent",description:"Manage HTTP connection persistence and reuse",url:"https://nodejs.org/api/http.html#class-httpagent"},{name:"createServer",description:"Create a new HTTP server",url:"https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener"},{name:"get",description:"Send a GET request to a server",url:"https://nodejs.org/api/http.html#httpgetoptions-callback"},{name:"request",description:"Send an HTTP request to a server",url:"https://nodejs.org/api/http.html#httprequestoptions-callback"}]},{name:"http2",methods:[{name:"createServer",description:"Create a new HTTP/2 server",url:"https://nodejs.org/api/http2.html#http2createserveroptions-onrequesthandler"},{name:"createSecureServer",description:"Create a new secure HTTP/2 server",url:"https://nodejs.org/api/http2.html#http2createsecureserveroptions-onrequesthandler"},{name:"connect",description:"Establish a connection to a server",url:"https://nodejs.org/api/http2.html#http2connectauthority-options-listener"},{name:"getDefaultSettings",description:"Get the default settings for a HTTP/2 session",url:"https://nodejs.org/api/http2.html#http2getdefaultsettings"},{name:"getPackedSettings",description:"Get the current settings for a HTTP/2 session",url:"https://nodejs.org/api/http2.html#http2getpackedsettings"},{name:"getUnpackedSettings",description:"Get the current settings for a HTTP/2 session",url:"hhttps://nodejs.org/api/http2.html#http2getunpackedsettingsbuf"}]},{name:"https",methods:[{name:"Agent",description:"Manage HTTPS connection persistence and reuse",url:"https://nodejs.org/api/https.html#class-httpsagent"},{name:"createServer",description:"Create a new HTTPS server",url:"https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener"},{name:"get",description:"Send a GET request to a server",url:"https://nodejs.org/api/https.html#httpsgetoptions-callback"},{name:"request",description:"Send an HTTPS request to a server",url:"https://nodejs.org/api/https.html#httpsrequestoptions-callback"}]},{name:"inspector",methods:[{name:"close",description:"Close a V8 inspector",url:"https://nodejs.org/api/inspector.html#inspectorclose"},{name:"open",description:"Open a V8 inspector",url:"https://nodejs.org/api/inspector.html#inspectoropenport-host-wait"},{name:"url",description:"Get the URL of the V8 inspector",url:"https://nodejs.org/api/inspector.html#inspectorurl"},{name:"waitForDebugger",description:"Wait for the V8 debugger to connect",url:"https://nodejs.org/api/inspector.html#inspectorwaitfordebugger"},{name:"Session",isConstructor:!0,description:"Create a new V8 inspector session",url:"https://nodejs.org/api/inspector.html#class-inspectorsession"}]},{name:"net",methods:[{name:"Server",description:"Create a new TCP server",url:"https://nodejs.org/api/net.html#class-netserver"},{name:"Socket",description:"Create a new TCP socket",url:"https://nodejs.org/api/net.html#class-netsocket"},{name:"connect",description:"Connect to a remote TCP server",url:"https://nodejs.org/api/net.html#netconnect"},{name:"createConnection",description:"Connect to a remote TCP server",url:"https://nodejs.org/api/net.html#netcreateconnection"},{name:"createServer",description:"Create a new TCP server",url:"https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener"}]},{name:"os",methods:[{name:"arch",description:"Get the CPU architecture",url:"https://nodejs.org/api/os.html#osarch"},{name:"cpus",description:"Get CPU information",url:"https://nodejs.org/api/os.html#oscpus"},{name:"endianness",description:"Get the endianness of the CPU",url:"https://nodejs.org/api/os.html#osendianness"},{name:"freemem",description:"Get the amount of free system memory",url:"https://nodejs.org/api/os.html#osfreemem"},{name:"getPriority",description:"Get the scheduling priority for a process",url:"https://nodejs.org/api/os.html#osgetprioritypid"},{name:"homedir",description:"Get the home directory path for the current user",url:"https://nodejs.org/api/os.html#oshomedir"},{name:"hostname",description:"Get the hostname of the OS",url:"https://nodejs.org/api/os.html#oshostname"},{name:"loadavg",description:"Get system load average information",url:"https://nodejs.org/api/os.html#osloadavg"},{name:"networkInterfaces",description:"Get a list of network interfaces",url:"https://nodejs.org/api/os.html#osnetworkinterfaces"},{name:"platform",description:"Get the operating system platform",url:"https://nodejs.org/api/os.html#osplatform"},{name:"release",description:"Get the operating system release",url:"https://nodejs.org/api/os.html#osrelease"},{name:"setPriority",description:"Set the scheduling priority for a process",url:"https://nodejs.org/api/os.html#ossetprioritypid-priority"},{name:"tmpdir",description:"Get the path of a temporary directory",url:"https://nodejs.org/api/os.html#ostmpdir"},{name:"totalmem",description:"Get the total amount of system memory",url:"https://nodejs.org/api/os.html#ostotalmem"},{name:"type",description:"Get the operating system name",url:"https://nodejs.org/api/os.html#ostype"},{name:"uptime",description:"Get the system uptime",url:"https://nodejs.org/api/os.html#osuptime"},{name:"userInfo",description:"Get current user information",url:"https://nodejs.org/api/os.html#osuserinfooptions"},{name:"version",description:"Get the kernel version",url:"https://nodejs.org/api/os.html#osversion"}]},{name:"process",methods:[{name:"abort",description:"Exit the Node.js process immediately",url:"https://nodejs.org/api/process.html#processabort"},{name:"chdir",description:"Change the current working directory",url:"https://nodejs.org/api/process.html#processchdirdirectory"},{name:"cpuUsage",description:"Get current process CPU usage info",url:"https://nodejs.org/api/process.html#processcpuusagepreviousvalue"},{name:"cwd",description:"Get the current working directory",url:"https://nodejs.org/api/process.html#processcwd"},{name:"disconnect",description:"Disconnect child process from parent",url:"https://nodejs.org/api/process.html#processdisconnect"},{name:"dlopen",description:"Load C++ addons",url:"https://nodejs.org/api/process.html#processdlopenmodule-filename-flags",needsExplicitPermission:!0},{name:"emitWarning",description:"Emit a custom process warning",url:"https://nodejs.org/api/process.html#processemitwarningwarning-options"},{name:"exit",description:"Exit the Node.js process",url:"https://nodejs.org/api/process.html#processexitcode"},{name:"getActiveResourcesInfo",description:"Get a list of resources currently keeping the event loop alive",url:"https://nodejs.org/api/process.html#processgetactiveresourcesinfo"},{name:"getegid",description:"Get the effective group id of the Node.js process",url:"https://nodejs.org/api/process.html#processgetegid"},{name:"geteuid",description:"Get the effective numerical user id",url:"https://nodejs.org/api/process.html#processgeteuid"},{name:"getgid",description:"Get the numerical group id of the process",url:"https://nodejs.org/api/process.html#processgetgid"},{name:"getgroups",description:"Get the list of supplementary group ids",url:"https://nodejs.org/api/process.html#processgetgroups"},{name:"getuid",description:"Get the numerical user id of the process",url:"https://nodejs.org/api/process.html#processgetuid"},{name:"hasUncaughtExceptionCaptureCallback",description:"Find out if there is an uncaught exception callback set",url:"https://nodejs.org/api/process.html#processhasuncaughtexceptioncapturecallback"},{name:"hrtime",description:"Get high resolution time",url:"https://nodejs.org/api/process.html#processhrtimetime"},{name:"initgroups",description:"Initialize the group access list",url:"https://nodejs.org/api/process.html#processinitgroupsuser-extragroup"},{name:"kill",description:"Kill a process",url:"https://nodejs.org/api/process.html#processkillpid-signal"},{name:"memoryUsage",description:"Get memory usage information",url:"https://nodejs.org/api/process.html#processmemoryusage"},{name:"resourceUsage",description:"Get resource usage information",url:"https://nodejs.org/api/process.html#processresourceusage"},{name:"send",description:"Send a message to a process",url:"https://nodejs.org/api/process.html#processsendmessage-sendhandle-options-callback"},{name:"setegid",description:"Set the effective group id of the process",url:"https://nodejs.org/api/process.html#processsetegidid"},{name:"seteuid",description:"Set the effective user id of the process",url:"https://nodejs.org/api/process.html#processseteuidid"},{name:"setgid",description:"Set the group id of the process",url:"https://nodejs.org/api/process.html#processsetgidid"},{name:"setgroups",description:"Set the supplementary group ids of the process",url:"https://nodejs.org/api/process.html#processsetgroupsgroups"},{name:"setuid",description:"Set the user id of the process",url:"https://nodejs.org/api/process.html#processsetuidid"},{name:"setSourceMapsEnabled",description:"Enable/disable source maps",url:"https://nodejs.org/api/process.html#processsetsourcemapsenabledval"},{name:"setUncaughtExceptionCaptureCallback",description:"Set a callback to run when there is an uncaught exception",url:"https://nodejs.org/api/process.html#processsetuncaughtexceptioncapturecallbackfn"},{name:"umask",description:"Set the file mode creation mask",url:"https://nodejs.org/api/process.html#processumask"},{name:"uptime",description:"Get the process uptime",url:"https://nodejs.org/api/process.html#processuptime"},{name:"on",description:"Add a listener for a process event",url:"https://nodejs.org/api/process.html#process-events"}]},{name:"timers",methods:[{name:"setImmediate",description:"Queue a function for execution",url:"https://nodejs.org/api/timers.html#setimmediatecallback-args"},{name:"setInterval",description:"Set a repeating timer to execute a function",url:"https://nodejs.org/api/timers.html#setintervalcallback-delay-args"},{name:"setTimeout",description:"Set a timer to execute a function",url:"https://nodejs.org/api/timers.html#settimeoutcallback-delay-args"},{name:"clearImmediate",description:"Cancel a setImmediate callback",url:"https://nodejs.org/api/timers.html#clearimmediateimmediate"},{name:"clearInterval",description:"Cancel a setInterval callback",url:"https://nodejs.org/api/timers.html#clearintervaltimeout"},{name:"clearTimeout",description:"Cancel a setTimeout callback",url:"https://nodejs.org/api/timers.html#cleartimeouttimeout"}]},{name:"timers/promises",methods:[{name:"setImmediate",description:"Queue a function for execution",url:"https://nodejs.org/api/timers.html#timerspromisessetimmediatevalue-options"},{name:"setInterval",description:"Set a repeating timer to execute a function",url:"https://nodejs.org/api/timers.html#timerspromisessetintervaldelay-value-options"},{name:"setTimeout",description:"Set a timer to execute a function",url:"https://nodejs.org/api/timers.html#timerspromisessettimeoutdelay-value-options"}]},{name:"tls",methods:[{name:"Server",description:"Create a new TLS server",url:"https://nodejs.org/api/tls.html#class-tlsserver"},{name:"TLSSocket",description:"Create a new TLS socket",url:"https://nodejs.org/api/tls.html#class-tlstlssocket"},{name:"checkServerIdentity",description:"Verify that a server certificate is valid for a given host",url:"https://nodejs.org/api/tls.html#tlscheckserveridentityhostname-cert"},{name:"connect",description:"Connect to a TLS server",url:"https://nodejs.org/api/tls.html#tlsconnectoptions-callback"},{name:"createSecureContext",description:"Create a new secure context",url:"https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions"},{name:"createSecurePair",description:"Create a new secure pair",url:"https://nodejs.org/api/tls.html#tlscreatesecurepaircontext-isserver-requestcert-rejectunauthorized-options"},{name:"createServer",description:"Create a new TLS server",url:"https://nodejs.org/api/tls.html#tlscreateserveroptions-secureconnectionlistener"},{name:"getCiphers",description:"Get a list of supported TLS ciphers",url:"https://nodejs.org/api/tls.html#tlsgetciphers"}]},{name:"trace_events",methods:[{name:"createTracing",description:"Centralize system tracing information",url:"https://nodejs.org/api/tracing.html#trace_eventscreatetracingoptions"},{name:"getEnabledCategories",description:"Get the enabled trace event categories",url:"https://nodejs.org/api/tracing.html#trace_eventsgetenabledcategories"}]},{name:"v8",methods:[{name:"cachedDataVersionTag",description:"Get a version tag derived from the V8 version, command-line flags, and detected CPU features",url:"https://nodejs.org/api/v8.html#v8cacheddataversiontag"},{name:"getHeapCodeStatistics",description:"Get statistics about code and its metadata in the heap",url:"https://nodejs.org/api/v8.html#v8getheapcodestatistics"},{name:"getHeapSnapshot",description:"Generate a snapshot of the current V8 heap",url:"https://nodejs.org/api/v8.html#v8getheapsnapshot"},{name:"getHeapSpaceStatistics",description:"Get statistics about the V8 heap spaces",url:"https://nodejs.org/api/v8.html#v8getheapspacestatistics"},{name:"getHeapStatistics",description:"Get detailed V8 heap statistics",url:"https://nodejs.org/api/v8.html#v8getheapstatistics"},{name:"setFlagsFromString",description:"Programmatically set V8 command-line flags",url:"https://nodejs.org/api/v8.html#v8setflagsfromstringflags"},{name:"stopCoverage",description:"Stop collecting JavaScript code coverage collection",url:"https://nodejs.org/api/v8.html#v8stopcoverage"},{name:"takeCoverage",description:"Write code coverage data to disk",url:"https://nodejs.org/api/v8.html#v8takecoverage"},{name:"writeHeapSnapshot",description:"Write a heap snapshot to a file",url:"https://nodejs.org/api/v8.html#v8writeheapsnapshotfilename"},{name:"serialize",description:"Serialize value into a buffer",url:"https://nodejs.org/api/v8.html#v8serializevalue"},{name:"deserialize",description:"Deserialize value from a buffer",url:"https://nodejs.org/api/v8.html#v8deserializebuffer"}]},{name:"vm",methods:[{name:"Script",isConstructor:!0,description:"Precompile arbitrary code to execute later",url:"https://nodejs.org/api/vm.html#class-vmscript",needsExplicitPermission:!0},{name:"SourceTextModule",description:"Create a module defined from ECMAScript source text",url:"https://nodejs.org/api/vm.html#class-vmsourcetextmodule"},{name:"SyntheticModule",description:"Create a WebIDL synthetic module",url:"https://nodejs.org/api/vm.html#class-vmsyntheticmodule"},{name:"compileFunction",description:"Compile a JavaScript function",url:"https://nodejs.org/api/vm.html#vmcompilefunctioncode-params-options"},{name:"createContext",description:"Create a new execution context",url:"https://nodejs.org/api/vm.html#vmcreatecontextcontextobject-options"},{name:"isContext",description:"Check if the given object is an execution context",url:"https://nodejs.org/api/vm.html#vmiscontextobject"},{name:"measureMemory",description:"Measure V8 memory usage",url:"https://nodejs.org/api/vm.html#vmmeasurememoryoptions"},{name:"runInContext",description:"Run arbitrary code in a context",url:"https://nodejs.org/api/vm.html#vmrunincontextcode-contextifiedobject-options",needsExplicitPermission:!0},{name:"runInNewContext",description:"Run arbitrary code in a new context",url:"https://nodejs.org/api/vm.html#vmruninnewcontextcode-contextobject-options",needsExplicitPermission:!0},{name:"runInThisContext",description:"Run arbitrary code in the current context",url:"https://nodejs.org/api/vm.html#vmruninthiscontextcode-options",needsExplicitPermission:!0}]},{name:"wasi",methods:[{name:"WASI",isConstructor:!0,description:"Give WebAssembly apps access to the underlying OS",url:"https://nodejs.org/api/wasi.html#new-wasioptions",needsExplicitPermission:!0}]},{name:"worker_threads",methods:[{name:"Worker",isConstructor:!0,description:"Create a new independent JavaScript execution thread",url:"https://nodejs.org/api/worker_threads.html#class-worker"},{name:"getEnvironmentData",description:"Get thread environment data",url:"https://nodejs.org/api/worker_threads.html#workergetenvironmentdatakey"},{name:"markAsUntransferable",description:"Mark a buffer as untransferable between threads",url:"https://nodejs.org/api/worker_threads.html#workermarkasuntransferableobject"},{name:"moveMessagePortToContext",description:"Move a message port to a different context",url:"https://nodejs.org/api/worker_threads.html#workermovemessageporttocontextport-contextifiedsandbox"},{name:"receiveMessageOnPort",description:"Receive single a message on a port",url:"https://nodejs.org/api/worker_threads.html#workerreceivemessageonportport"},{name:"setEnvironmentData",description:"Set thread environment data",url:"https://nodejs.org/api/worker_threads.html#workersetenvironmentdatakey-value"}]}].map((function(e){return n(e)}))}},212:(e,t,r)=>{function n(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?o(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r{"use strict";t.byteLength=function(e){var t=l(e),r=t[0],n=t[1];return 3*(r+n)/4-n},t.toByteArray=function(e){var t,r,i=l(e),s=i[0],a=i[1],c=new o(function(e,t,r){return 3*(t+r)/4-r}(0,s,a)),p=0,u=a>0?s-4:s;for(r=0;r>16&255,c[p++]=t>>8&255,c[p++]=255&t;return 2===a&&(t=n[e.charCodeAt(r)]<<2|n[e.charCodeAt(r+1)]>>4,c[p++]=255&t),1===a&&(t=n[e.charCodeAt(r)]<<10|n[e.charCodeAt(r+1)]<<4|n[e.charCodeAt(r+2)]>>2,c[p++]=t>>8&255,c[p++]=255&t),c},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],s=16383,a=0,l=n-o;al?l:a+s));return 1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"=")),i.join("")};for(var r=[],n=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,a=i.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");return-1===r&&(r=t),[r,r===t?0:4-r%4]}function c(e,t,n){for(var o,i,s=[],a=t;a>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return s.join("")}n["-".charCodeAt(0)]=62,n["_".charCodeAt(0)]=63},764:(e,t,r)=>{"use strict";const n=r(742),o=r(645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=l,t.SlowBuffer=function(e){return+e!=e&&(e=0),l.alloc(+e)},t.INSPECT_MAX_BYTES=50;const s=2147483647;function a(e){if(e>s)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,l.prototype),t}function l(e,t,r){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return u(e)}return c(e,t,r)}function c(e,t,r){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!l.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const r=0|m(e,t);let n=a(r);const o=n.write(e,t);return o!==r&&(n=n.slice(0,o)),n}(e,t);if(ArrayBuffer.isView(e))return function(e){if(J(e,Uint8Array)){const t=new Uint8Array(e);return h(t.buffer,t.byteOffset,t.byteLength)}return d(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(J(e,ArrayBuffer)||e&&J(e.buffer,ArrayBuffer))return h(e,t,r);if("undefined"!=typeof SharedArrayBuffer&&(J(e,SharedArrayBuffer)||e&&J(e.buffer,SharedArrayBuffer)))return h(e,t,r);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const n=e.valueOf&&e.valueOf();if(null!=n&&n!==e)return l.from(n,t,r);const o=function(e){if(l.isBuffer(e)){const t=0|f(e.length),r=a(t);return 0===r.length||e.copy(r,0,0,t),r}return void 0!==e.length?"number"!=typeof e.length||K(e.length)?a(0):d(e):"Buffer"===e.type&&Array.isArray(e.data)?d(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return l.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function p(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function u(e){return p(e),a(e<0?0:0|f(e))}function d(e){const t=e.length<0?0:0|f(e.length),r=a(t);for(let n=0;n=s)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+s.toString(16)+" bytes");return 0|e}function m(e,t){if(l.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||J(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const r=e.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return $(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return V(e).length;default:if(o)return n?-1:$(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,r){let n=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return R(this,t,r);case"utf8":case"utf-8":return k(this,t,r);case"ascii":return I(this,t,r);case"latin1":case"binary":return U(this,t,r);case"base64":return P(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function y(e,t,r){const n=e[t];e[t]=e[r],e[r]=n}function v(e,t,r,n,o){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),K(r=+r)&&(r=o?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(o)return-1;r=e.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof t&&(t=l.from(t,n)),l.isBuffer(t))return 0===t.length?-1:b(e,t,r,n,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):b(e,[t],r,n,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,r,n,o){let i,s=1,a=e.length,l=t.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(e.length<2||t.length<2)return-1;s=2,a/=2,l/=2,r/=2}function c(e,t){return 1===s?e[t]:e.readUInt16BE(t*s)}if(o){let n=-1;for(i=r;ia&&(r=a-l),i=r;i>=0;i--){let r=!0;for(let n=0;no&&(n=o):n=o;const i=t.length;let s;for(n>i/2&&(n=i/2),s=0;s>8,o=r%256,i.push(o),i.push(n);return i}(t,e.length-r),e,r,n)}function P(e,t,r){return 0===t&&r===e.length?n.fromByteArray(e):n.fromByteArray(e.slice(t,r))}function k(e,t,r){r=Math.min(e.length,r);const n=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+s<=r){let r,n,a,l;switch(s){case 1:t<128&&(i=t);break;case 2:r=e[o+1],128==(192&r)&&(l=(31&t)<<6|63&r,l>127&&(i=l));break;case 3:r=e[o+1],n=e[o+2],128==(192&r)&&128==(192&n)&&(l=(15&t)<<12|(63&r)<<6|63&n,l>2047&&(l<55296||l>57343)&&(i=l));break;case 4:r=e[o+1],n=e[o+2],a=e[o+3],128==(192&r)&&128==(192&n)&&128==(192&a)&&(l=(15&t)<<18|(63&r)<<12|(63&n)<<6|63&a,l>65535&&l<1114112&&(i=l))}}null===i?(i=65533,s=1):i>65535&&(i-=65536,n.push(i>>>10&1023|55296),i=56320|1023&i),n.push(i),o+=s}return function(e){const t=e.length;if(t<=_)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn.length?(l.isBuffer(t)||(t=l.from(t)),t.copy(n,o)):Uint8Array.prototype.set.call(n,t,o);else{if(!l.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(n,o)}o+=t.length}return n},l.byteLength=m,l.prototype._isBuffer=!0,l.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tr&&(e+=" ... "),""},i&&(l.prototype[i]=l.prototype.inspect),l.prototype.compare=function(e,t,r,n,o){if(J(e,Uint8Array)&&(e=l.from(e,e.offset,e.byteLength)),!l.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),t<0||r>e.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&t>=r)return 0;if(n>=o)return-1;if(t>=r)return 1;if(this===e)return 0;let i=(o>>>=0)-(n>>>=0),s=(r>>>=0)-(t>>>=0);const a=Math.min(i,s),c=this.slice(n,o),p=e.slice(t,r);for(let e=0;e>>=0,isFinite(r)?(r>>>=0,void 0===n&&(n="utf8")):(n=r,r=void 0)}const o=this.length-t;if((void 0===r||r>o)&&(r=o),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");let i=!1;for(;;)switch(n){case"hex":return w(this,e,t,r);case"utf8":case"utf-8":return S(this,e,t,r);case"ascii":case"latin1":case"binary":return A(this,e,t,r);case"base64":return j(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},l.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const _=4096;function I(e,t,r){let n="";r=Math.min(e.length,r);for(let o=t;on)&&(r=n);let o="";for(let n=t;nr)throw new RangeError("Trying to access beyond buffer length")}function O(e,t,r,n,o,i){if(!l.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function L(e,t,r,n,o){F(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i,i>>=8,e[r++]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,s>>=8,e[r++]=s,r}function M(e,t,r,n,o){F(t,n,o,e,r,7);let i=Number(t&BigInt(4294967295));e[r+7]=i,i>>=8,e[r+6]=i,i>>=8,e[r+5]=i,i>>=8,e[r+4]=i;let s=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=s,s>>=8,e[r+2]=s,s>>=8,e[r+1]=s,s>>=8,e[r]=s,r+8}function W(e,t,r,n,o,i){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function B(e,t,r,n,i){return t=+t,r>>>=0,i||W(e,0,r,4),o.write(e,t,r,n,23,4),r+4}function z(e,t,r,n,i){return t=+t,r>>>=0,i||W(e,0,r,8),o.write(e,t,r,n,52,8),r+8}l.prototype.slice=function(e,t){const r=this.length;(e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t>>=0,t>>>=0,r||x(e,t,this.length);let n=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,r||x(e,t,this.length);let n=this[e+--t],o=1;for(;t>0&&(o*=256);)n+=this[e+--t]*o;return n},l.prototype.readUint8=l.prototype.readUInt8=function(e,t){return e>>>=0,t||x(e,1,this.length),this[e]},l.prototype.readUint16LE=l.prototype.readUInt16LE=function(e,t){return e>>>=0,t||x(e,2,this.length),this[e]|this[e+1]<<8},l.prototype.readUint16BE=l.prototype.readUInt16BE=function(e,t){return e>>>=0,t||x(e,2,this.length),this[e]<<8|this[e+1]},l.prototype.readUint32LE=l.prototype.readUInt32LE=function(e,t){return e>>>=0,t||x(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},l.prototype.readUint32BE=l.prototype.readUInt32BE=function(e,t){return e>>>=0,t||x(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},l.prototype.readBigUInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||N(e,this.length-8);const n=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+r*2**24;return BigInt(n)+(BigInt(o)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||N(e,this.length-8);const n=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+r;return(BigInt(n)<>>=0,t>>>=0,r||x(e,t,this.length);let n=this[e],o=1,i=0;for(;++i=o&&(n-=Math.pow(2,8*t)),n},l.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||x(e,t,this.length);let n=t,o=1,i=this[e+--n];for(;n>0&&(o*=256);)i+=this[e+--n]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},l.prototype.readInt8=function(e,t){return e>>>=0,t||x(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},l.prototype.readInt16LE=function(e,t){e>>>=0,t||x(e,2,this.length);const r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt16BE=function(e,t){e>>>=0,t||x(e,2,this.length);const r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},l.prototype.readInt32LE=function(e,t){return e>>>=0,t||x(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},l.prototype.readInt32BE=function(e,t){return e>>>=0,t||x(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},l.prototype.readBigInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||N(e,this.length-8);const n=this[e+4]+256*this[e+5]+65536*this[e+6]+(r<<24);return(BigInt(n)<>>=0,"offset");const t=this[e],r=this[e+7];void 0!==t&&void 0!==r||N(e,this.length-8);const n=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(n)<>>=0,t||x(e,4,this.length),o.read(this,e,!0,23,4)},l.prototype.readFloatBE=function(e,t){return e>>>=0,t||x(e,4,this.length),o.read(this,e,!1,23,4)},l.prototype.readDoubleLE=function(e,t){return e>>>=0,t||x(e,8,this.length),o.read(this,e,!0,52,8)},l.prototype.readDoubleBE=function(e,t){return e>>>=0,t||x(e,8,this.length),o.read(this,e,!1,52,8)},l.prototype.writeUintLE=l.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||O(this,e,t,r,Math.pow(2,8*r)-1,0);let o=1,i=0;for(this[t]=255&e;++i>>=0,r>>>=0,n||O(this,e,t,r,Math.pow(2,8*r)-1,0);let o=r-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+r},l.prototype.writeUint8=l.prototype.writeUInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,255,0),this[t]=255&e,t+1},l.prototype.writeUint16LE=l.prototype.writeUInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeUint16BE=l.prototype.writeUInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeUint32LE=l.prototype.writeUInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},l.prototype.writeUint32BE=l.prototype.writeUInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigUInt64LE=Q((function(e,t=0){return L(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeBigUInt64BE=Q((function(e,t=0){return M(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),l.prototype.writeIntLE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);O(this,e,t,r,n-1,-n)}let o=0,i=1,s=0;for(this[t]=255&e;++o>0)-s&255;return t+r},l.prototype.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){const n=Math.pow(2,8*r-1);O(this,e,t,r,n-1,-n)}let o=r-1,i=1,s=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===s&&0!==this[t+o+1]&&(s=1),this[t+o]=(e/i>>0)-s&255;return t+r},l.prototype.writeInt8=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},l.prototype.writeInt16LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},l.prototype.writeInt16BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},l.prototype.writeInt32LE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},l.prototype.writeInt32BE=function(e,t,r){return e=+e,t>>>=0,r||O(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},l.prototype.writeBigInt64LE=Q((function(e,t=0){return L(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeBigInt64BE=Q((function(e,t=0){return M(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),l.prototype.writeFloatLE=function(e,t,r){return B(this,e,t,!0,r)},l.prototype.writeFloatBE=function(e,t,r){return B(this,e,t,!1,r)},l.prototype.writeDoubleLE=function(e,t,r){return z(this,e,t,!0,r)},l.prototype.writeDoubleBE=function(e,t,r){return z(this,e,t,!1,r)},l.prototype.copy=function(e,t,r,n){if(!l.isBuffer(e))throw new TypeError("argument should be a Buffer");if(r||(r=0),n||0===n||(n=this.length),t>=e.length&&(t=e.length),t||(t=0),n>0&&n=this.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),e.length-t>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(o=t;o=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function F(e,t,r,n,o,i){if(e>r||e3?0===t||t===BigInt(0)?`>= 0${n} and < 2${n} ** ${8*(i+1)}${n}`:`>= -(2${n} ** ${8*(i+1)-1}${n}) and < 2 ** ${8*(i+1)-1}${n}`:`>= ${t}${n} and <= ${r}${n}`,new T.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,r){q(t,"offset"),void 0!==e[t]&&void 0!==e[t+r]||N(t,e.length-(r+1))}(n,o,i)}function q(e,t){if("number"!=typeof e)throw new T.ERR_INVALID_ARG_TYPE(t,"number",e)}function N(e,t,r){if(Math.floor(e)!==e)throw q(e,r),new T.ERR_OUT_OF_RANGE(r||"offset","an integer",e);if(t<0)throw new T.ERR_BUFFER_OUT_OF_BOUNDS;throw new T.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}G("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),G("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),G("ERR_OUT_OF_RANGE",(function(e,t,r){let n=`The value of "${e}" is out of range.`,o=r;return Number.isInteger(r)&&Math.abs(r)>2**32?o=D(String(r)):"bigint"==typeof r&&(o=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(o=D(o)),o+="n"),n+=` It must be ${t}. Received ${o}`,n}),RangeError);const H=/[^+/0-9A-Za-z-_]/g;function $(e,t){let r;t=t||1/0;const n=e.length;let o=null;const i=[];for(let s=0;s55295&&r<57344){if(!o){if(r>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(s+1===n){(t-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(t-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((t-=1)<0)break;i.push(r)}else if(r<2048){if((t-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function V(e){return n.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(H,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function X(e,t,r,n){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+r]=e[o];return o}function J(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function K(e){return e!=e}const Y=function(){const e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){const n=16*r;for(let o=0;o<16;++o)t[n+o]=e[r]+e[o]}return t}();function Q(e){return"undefined"==typeof BigInt?Z:e}function Z(){throw new Error("BigInt not supported")}},645:(e,t)=>{t.read=function(e,t,r,n,o){var i,s,a=8*o-n-1,l=(1<>1,p=-7,u=r?o-1:0,d=r?-1:1,h=e[t+u];for(u+=d,i=h&(1<<-p)-1,h>>=-p,p+=a;p>0;i=256*i+e[t+u],u+=d,p-=8);for(s=i&(1<<-p)-1,i>>=-p,p+=n;p>0;s=256*s+e[t+u],u+=d,p-=8);if(0===i)i=1-c;else{if(i===l)return s?NaN:1/0*(h?-1:1);s+=Math.pow(2,n),i-=c}return(h?-1:1)*s*Math.pow(2,i-n)},t.write=function(e,t,r,n,o,i){var s,a,l,c=8*i-o-1,p=(1<>1,d=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,h=n?0:i-1,f=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=p):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),(t+=s+u>=1?d/l:d*Math.pow(2,1-u))*l>=2&&(s++,l/=2),s+u>=p?(a=0,s=p):s+u>=1?(a=(t*l-1)*Math.pow(2,o),s+=u):(a=t*Math.pow(2,u-1)*Math.pow(2,o),s=0));o>=8;e[r+h]=255&a,h+=f,a/=256,o-=8);for(s=s<0;e[r+h]=255&s,h+=f,s/=256,c-=8);e[r+h-f]|=128*m}},86:(e,t,r)=>{var n=r(305),o=Object.prototype.hasOwnProperty,i="undefined"!=typeof Map;function s(){this._array=[],this._set=i?new Map:Object.create(null)}s.fromArray=function(e,t){for(var r=new s,n=0,o=e.length;n=0)return t}else{var r=n.toSetString(e);if(o.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},s.prototype.at=function(e){if(e>=0&&e{var n=r(167);t.encode=function(e){var t,r="",o=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&o,(o>>>=5)>0&&(t|=32),r+=n.encode(t)}while(o>0);return r},t.decode=function(e,t,r){var o,i,s,a,l=e.length,c=0,p=0;do{if(t>=l)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));o=!!(32&i),c+=(i&=31)<>1,1==(1&s)?-a:a),r.rest=t}},167:(e,t)=>{var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e{function r(e,n,o,i,s,a){var l=Math.floor((n-e)/2)+e,c=s(o,i[l],!0);return 0===c?l:c>0?n-l>1?r(l,n,o,i,s,a):a==t.LEAST_UPPER_BOUND?n1?r(e,l,o,i,s,a):a==t.LEAST_UPPER_BOUND?l:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,o,i){if(0===n.length)return-1;var s=r(-1,n.length,e,n,o,i||t.GREATEST_LOWER_BOUND);if(s<0)return-1;for(;s-1>=0&&0===o(n[s],n[s-1],!0);)--s;return s}},688:(e,t,r)=>{var n=r(305);function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}o.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},o.prototype.add=function(e){var t,r,o,i,s,a;r=e,o=(t=this._last).generatedLine,i=r.generatedLine,s=t.generatedColumn,a=r.generatedColumn,i>o||i==o&&a>=s||n.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(n.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.H=o},523:(e,t)=>{function r(e){function t(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return function e(r,n,o,i){if(o{var n=r(305),o=r(183),i=r(86).I,s=r(520),a=r(523).U;function l(e,t){var r=e;return"string"==typeof e&&(r=n.parseSourceMapInput(e)),null!=r.sections?new h(r,t):new c(r,t)}function c(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var o=n.getArg(r,"version"),s=n.getArg(r,"sources"),a=n.getArg(r,"names",[]),l=n.getArg(r,"sourceRoot",null),c=n.getArg(r,"sourcesContent",null),p=n.getArg(r,"mappings"),u=n.getArg(r,"file",null);if(o!=this._version)throw new Error("Unsupported version: "+o);l&&(l=n.normalize(l)),s=s.map(String).map(n.normalize).map((function(e){return l&&n.isAbsolute(l)&&n.isAbsolute(e)?n.relative(l,e):e})),this._names=i.fromArray(a.map(String),!0),this._sources=i.fromArray(s,!0),this._absoluteSources=this._sources.toArray().map((function(e){return n.computeSourceURL(l,e,t)})),this.sourceRoot=l,this.sourcesContent=c,this._mappings=p,this._sourceMapURL=t,this.file=u}function p(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}l.fromSourceMap=function(e,t){return c.fromSourceMap(e,t)},l.prototype._version=3,l.prototype.__generatedMappings=null,Object.defineProperty(l.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),l.prototype.__originalMappings=null,Object.defineProperty(l.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),l.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},l.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},l.GENERATED_ORDER=1,l.ORIGINAL_ORDER=2,l.GREATEST_LOWER_BOUND=1,l.LEAST_UPPER_BOUND=2,l.prototype.eachMapping=function(e,t,r){var o,i=t||null;switch(r||l.GENERATED_ORDER){case l.GENERATED_ORDER:o=this._generatedMappings;break;case l.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}for(var s=this.sourceRoot,a=e.bind(i),c=this._names,p=this._sources,u=this._sourceMapURL,d=0,h=o.length;d=0){var a=this._originalMappings[s];if(void 0===e.column)for(var l=a.originalLine;a&&a.originalLine===l;)i.push({line:n.getArg(a,"generatedLine",null),column:n.getArg(a,"generatedColumn",null),lastColumn:n.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++s];else for(var c=a.originalColumn;a&&a.originalLine===t&&a.originalColumn==c;)i.push({line:n.getArg(a,"generatedLine",null),column:n.getArg(a,"generatedColumn",null),lastColumn:n.getArg(a,"lastGeneratedColumn",null)}),a=this._originalMappings[++s]}return i},t.SourceMapConsumer=l,c.prototype=Object.create(l.prototype),c.prototype.consumer=l,c.prototype._findSourceIndex=function(e){var t,r=e;if(null!=this.sourceRoot&&(r=n.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(t=0;t0&&(e[t]=n,e[t+1]=r)}else if(n<20)for(let n=t;nt;r--){let t=e[r-1],n=e[r];if(u(t,n)<=0)break;e[r-1]=n,e[r]=t}else a(e,u,t)}function h(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var o=n.getArg(r,"version"),s=n.getArg(r,"sections");if(o!=this._version)throw new Error("Unsupported version: "+o);this._sources=new i,this._names=new i;var a={line:-1,column:0};this._sections=s.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var r=n.getArg(e,"offset"),o=n.getArg(r,"line"),i=n.getArg(r,"column");if(o1&&(r.source=m+o[1],m+=o[1],r.originalLine=h+o[2],h=r.originalLine,r.originalLine+=1,r.originalColumn=f+o[3],f=r.originalColumn,o.length>4&&(r.name=g+o[4],g+=o[4])),S.push(r),"number"==typeof r.originalLine){let e=r.source;for(;w.length<=e;)w.push(null);null===w[e]&&(w[e]=[]),w[e].push(r)}}d(S,A),this.__generatedMappings=S;for(var j=0;j=0){var o=this._generatedMappings[r];if(o.generatedLine===t.generatedLine){var i=n.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),i=n.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var s=n.getArg(o,"name",null);return null!==s&&(s=this._names.at(s)),{source:i,line:n.getArg(o,"originalLine",null),column:n.getArg(o,"originalColumn",null),name:s}}}return{source:null,line:null,column:null,name:null}},c.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},c.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];var o,i=e;if(null!=this.sourceRoot&&(i=n.relative(this.sourceRoot,i)),null!=this.sourceRoot&&(o=n.urlParse(this.sourceRoot))){var s=i.replace(/^file:\/\//,"");if("file"==o.scheme&&this._sources.has(s))return this.sourcesContent[this._sources.indexOf(s)];if((!o.path||"/"==o.path)&&this._sources.has("/"+i))return this.sourcesContent[this._sources.indexOf("/"+i)]}if(t)return null;throw new Error('"'+i+'" is not in the SourceMap.')},c.prototype.generatedPositionFor=function(e){var t=n.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var r={source:t,originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")},o=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(e,"bias",l.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===r.source)return{line:n.getArg(i,"generatedLine",null),column:n.getArg(i,"generatedColumn",null),lastColumn:n.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},h.prototype=Object.create(l.prototype),h.prototype.constructor=l,h.prototype._version=3,Object.defineProperty(h.prototype,"sources",{get:function(){for(var e=[],t=0;t{var n=r(520),o=r(305),i=r(86).I,s=r(688).H;function a(e){e||(e={}),this._file=o.getArg(e,"file",null),this._sourceRoot=o.getArg(e,"sourceRoot",null),this._skipValidation=o.getArg(e,"skipValidation",!1),this._sources=new i,this._names=new i,this._mappings=new s,this._sourcesContents=null}a.prototype._version=3,a.fromSourceMap=function(e){var t=e.sourceRoot,r=new a({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=o.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)})),e.sources.forEach((function(n){var i=n;null!==t&&(i=o.relative(t,n)),r._sources.has(i)||r._sources.add(i);var s=e.sourceContentFor(n);null!=s&&r.setSourceContent(n,s)})),r},a.prototype.addMapping=function(e){var t=o.getArg(e,"generated"),r=o.getArg(e,"original",null),n=o.getArg(e,"source",null),i=o.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},a.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=o.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[o.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[o.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},a.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var s=this._sourceRoot;null!=s&&(n=o.relative(s,n));var a=new i,l=new i;this._mappings.unsortedForEach((function(t){if(t.source===n&&null!=t.originalLine){var i=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=i.source&&(t.source=i.source,null!=r&&(t.source=o.join(r,t.source)),null!=s&&(t.source=o.relative(s,t.source)),t.originalLine=i.line,t.originalColumn=i.column,null!=i.name&&(t.name=i.name))}var c=t.source;null==c||a.has(c)||a.add(c);var p=t.name;null==p||l.has(p)||l.add(p)}),this),this._sources=a,this._names=l,e.sources.forEach((function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=o.join(r,t)),null!=s&&(t=o.relative(s,t)),this.setSourceContent(t,n))}),this)},a.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},a.prototype._serializeMappings=function(){for(var e,t,r,i,s=0,a=1,l=0,c=0,p=0,u=0,d="",h=this._mappings.toArray(),f=0,m=h.length;f0){if(!o.compareByGeneratedPositionsInflated(t,h[f-1]))continue;e+=","}e+=n.encode(t.generatedColumn-s),s=t.generatedColumn,null!=t.source&&(i=this._sources.indexOf(t.source),e+=n.encode(i-u),u=i,e+=n.encode(t.originalLine-1-c),c=t.originalLine-1,e+=n.encode(t.originalColumn-l),l=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=n.encode(r-p),p=r)),d+=e}return d},a.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=o.relative(t,e));var r=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null}),this)},a.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},a.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.h=a},231:(e,t,r)=>{var n=r(508).h,o=r(305),i=/(\r?\n)/,s="$$$isSourceNode$$$";function a(e,t,r,n,o){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==o?null:o,this[s]=!0,null!=n&&this.add(n)}a.fromStringWithSourceMap=function(e,t,r){var n=new a,s=e.split(i),l=0,c=function(){return e()+(e()||"");function e(){return l=0;t--)this.prepend(e[t]);else{if(!e[s]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},a.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r0){for(t=[],r=0;r{t.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function o(e){var t=e.match(r);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}t.urlParse=o,t.urlGenerate=i;var s,a,l=(s=function(e){var r=e,n=o(e);if(n){if(!n.path)return e;r=n.path}for(var s=t.isAbsolute(r),a=[],l=0,c=0;;){if(l=c,-1===(c=r.indexOf("/",l))){a.push(r.slice(l));break}for(a.push(r.slice(l,c));c=0;c--)"."===(p=a[c])?a.splice(c,1):".."===p?u++:u>0&&(""===p?(a.splice(c+1,u),u=0):(a.splice(c,2),u--));return""===(r=a.join("/"))&&(r=s?"/":"."),n?(n.path=r,i(n)):r},a=[],function(e){for(var t=0;t32&&a.pop(),n});function c(e,t){""===e&&(e="."),""===t&&(t=".");var r=o(t),s=o(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),i(r);if(r||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,i(s);var a="/"===t.charAt(0)?t:l(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=a,i(s)):a}t.normalize=l,t.join=c,t.isAbsolute=function(e){return"/"===e.charAt(0)||r.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var p=!("__proto__"in Object.create(null));function u(e){return e}function d(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function h(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=p?u:function(e){return d(e)?"$"+e:e},t.fromSetString=p?u:function(e){return d(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,r){var n=h(e.source,t.source);return 0!==n||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||r||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:h(e.name,t.name)},t.compareByOriginalPositionsNoSource=function(e,t,r){var n;return 0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)||r||0!=(n=e.generatedColumn-t.generatedColumn)||0!=(n=e.generatedLine-t.generatedLine)?n:h(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||r||0!==(n=h(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:h(e.name,t.name)},t.compareByGeneratedPositionsDeflatedNoLine=function(e,t,r){var n=e.generatedColumn-t.generatedColumn;return 0!==n||r||0!==(n=h(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:h(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r||0!=(r=e.generatedColumn-t.generatedColumn)||0!==(r=h(e.source,t.source))||0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)?r:h(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,r){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),r){var n=o(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){var s=n.path.lastIndexOf("/");s>=0&&(n.path=n.path.substring(0,s+1))}t=c(i(n),t)}return l(t)}},298:(e,t,r)=>{r(508).h,t.SourceMapConsumer=r(529).SourceMapConsumer,r(231)}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var n={};return(()=>{"use strict";function e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function t(t){for(var r=1;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r$e});var a,l={},c=function(e){var t,r,n=(e||"").trim();if(Object.keys(l).includes(n))return l[n];var o,s,a,c,p=[];if((a=n.match(/at (.+) \(eval at .+ \((.+)\), .+\)/))||(a=n.match(/at (.+) \((.+)\)/))||"at "!==n.slice(0,3)&&(a=n.match(/(.*)@(.*)/)))o=i(a,2)[1],p=(a[2].match(/(.*):(\d+):(\d+)/)||a[2].match(/(.*):(\d+)/)||[]).slice(1);else{if(!(a=n.match(/^(at\s+)*(.+):(\d+):(\d+)/)))return void(l[n]=void 0);p=a.slice(2)}if(null!==(t=o)&&void 0!==t&&null!==(r=t.includes)&&void 0!==r&&r.call(t," [as ")){var u=i(o.slice(0,-1).split(" [as "),2);o=u[0],s=u[1]}return l[n]={beforeParse:n,file:(c=p[0]||"",c.replace(/\\/g,"/")),line:parseInt(p[1]||"",10)||void 0,column:parseInt(p[2]||"",10)||void 0,name:o,alias:s},l[n]},p=function(){var e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;var r=((new Error).stack||"").split("\n");return Error.stackTraceLimit=e,r.map(c).filter((function(e){return void 0!==e})).map((function(e,r,n){var o=n[r+1],i=n[r-1];return t(t({},e),{},{caller:o?o.alias||o.name:void 0,called:i?i.alias||i.name:void 0})}))},u=r(298),d=r(764).Buffer;function h(e){return h="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},h(e)}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var a=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(a&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),C(r),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;C(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:k(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},e}function g(e,t,r,n,o,i,s){try{var a=e[i](s),l=a.value}catch(e){return void r(e)}a.done?t(l):Promise.resolve(l).then(n,o)}function y(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function s(e){g(i,n,o,s,a,"next",e)}function a(e){g(i,n,o,s,a,"throw",e)}s(void 0)}))}}try{a=require("fs")}catch(e){}var v=/^data:application\/json[^,]+base64,/,b=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,w=console,S=function(){var e=y(m().mark((function e(t){var r;return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(t);case 3:return r=e.sent,e.abrupt("return",r.text());case 7:return e.prev=7,e.t0=e.catch(0),w.error(e.t0),e.abrupt("return",null);case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(t){return e.apply(this,arguments)}}(),A=function(){var e=y(m().mark((function e(t){return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a){e.next=2;break}return e.abrupt("return",null);case 2:return e.abrupt("return",new Promise((function(e){a.readFile(t,{encoding:"utf8"},(function(t,r){t&&(w.error(t),e(null)),e(r)}))})));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),j=function(e){try{var t=new URL(e);return S(t)}catch(t){return A(e)}},C=function(){var e=y(m().mark((function e(t){var r,n,o,i,s,a,l,c,p;return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,w.debug("loading source from ".concat(t)),e.next=4,j(t);case 4:if(n=e.sent,null==(o=null==n||null===(r=n.match)||void 0===r?void 0:r.call(n,b))||!o[1]){e.next=28;break}if(w.debug("found sourcemap reference"),i=o[1],!v.test(i)){e.next=15;break}w.debug("loading inline sourcemap"),a=i.slice(i.indexOf(",")+1),s="function"==typeof atob?atob(a):d.from(a,"base64").toString(),e.next=22;break;case 15:return(l=t.split("/")).splice(-1,1),c=[].concat((h=l,function(e){if(Array.isArray(e))return f(e)}(h)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(h)||function(e,t){if(e){if("string"==typeof e)return f(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?f(e,t):void 0}}(h)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[i]).join("/"),w.debug("loading sourcemap from ".concat(c)),e.next=21,j(c);case 21:s=e.sent;case 22:if(!s){e.next=28;break}return e.next=25,new u.SourceMapConsumer(s);case 25:return p=e.sent,w.debug("loaded sourcemap"),e.abrupt("return",p);case 28:return w.debug("sourcemap not available"),e.abrupt("return",null);case 32:return e.prev=32,e.t0=e.catch(0),w.error(e.t0),e.abrupt("return",null);case 36:case"end":return e.stop()}var h}),e,null,[[0,32]])})));return function(t){return e.apply(this,arguments)}}(),P=function(){var e=y(m().mark((function e(t){var r,n;return m().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,w.debug("loading sourcemap from ".concat(t)),e.next=4,j(t);case 4:if(!(r=e.sent)){e.next=10;break}return e.next=8,new u.SourceMapConsumer(r);case 8:return n=e.sent,e.abrupt("return",n);case 10:return w.debug("sourcemap not available"),e.abrupt("return",null);case 14:return e.prev=14,e.t0=e.catch(0),w.error(e.t0),e.abrupt("return",null);case 18:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t){return e.apply(this,arguments)}}();function k(e){return k="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},k(e)}var _="undefined"!=typeof window||"undefined"!=typeof self,I="object"===("undefined"==typeof process?"undefined":k(process))&&"object"===k(process.versions)&&!!process.versions.node,U="NODE",R="WEB",E="UNKNOWN";const x=function(){try{return _?R:I?U:E}catch(e){return E}};var O=r(212),L=r.n(O),M=r(57),W=r.n(M),B=["debug","info","warn","error"],z={level:"warn"};B.forEach((function(e){z[e]=function(){var t;z.level&&B.indexOf(z.level)<=B.indexOf(e)&&(t=console)[e].apply(t,arguments)}}));const T=z;function G(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function D(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function F(e){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F(e)}var q;try{q=require("http")}catch(e){}var N="undefined"!=typeof XMLHttpRequest;q||N||T.error("tracking disabled for this platform: no HTTP or XMLHttpRequest available");var H,$={},V=[],X="127.0.0.1",J=7071,K=!1,Y=function(e){K=!!e};q&&($.http={request:q.request}),N&&($.xmlhttprequest={XMLHttpRequest,open:XMLHttpRequest.prototype.open,send:XMLHttpRequest.prototype.send,setRequestHeader:XMLHttpRequest.prototype.setRequestHeader});var Q=function(){var e=new WeakSet;return function(t,r){if("object"===F(r)&&null!==r){if(e.has(r))return;e.add(r)}return r}},Z=function(){try{if(K||0===V.length)return;if(T.debug("sending tracking..."),x()===U&&q){var e=$.http.request({port:J,host:X,path:"/ingest",method:"POST",headers:{"content-type":"application/json"}},(function(){}));e.on("error",(function(e){return T.error("error tracking call to inspector:",e.message)})),e.end(JSON.stringify(V,Q())),V=[]}else if(N){var t=new $.xmlhttprequest.XMLHttpRequest;$.xmlhttprequest.open.call(t,"POST","http://".concat(X,":").concat(J,"/ingest"),!0),$.xmlhttprequest.setRequestHeader.call(t,"content-type","application/json;charset=UTF-8"),$.xmlhttprequest.send.call(t,JSON.stringify(V,Q())),V=[]}}catch(e){T.error("error tracking call to inspector:",e.message),T.error("attempted to track:",V)}finally{H=null}},ee=function(e,t){e&&"string"==typeof e&&(X=e),t&&"number"==typeof t&&(J=t)};const te=function(e){e&&"object"===F(e)?(V.push(function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&void 0!==arguments[0]?arguments[0]:[];Array.isArray(e)&&(le=-1!==e.findIndex((function(e){return"root"===e.module}))?ne(e):[ae].concat(ne(e)))},fe=function(e){var t=["bind"].concat(ne(e.map((function(e){return e.name}))));le=[{module:/.*/,permissions:t},{module:"root",permissions:t}]},me=function(e){var t=null==e?void 0:e.file,r=t,n=null==e?void 0:e.line,o=null==e?void 0:e.column;if(t&&null!=pe&&pe[t]){var i=pe[t].originalPositionFor({line:e.line,column:e.column});r=i.source,n=i.line,o=i.column}return{item:e,mapping:r,mappingLine:n,mappingColumn:o}},ge=function(e,t){if(e&&"string"==typeof e){if(e.startsWith("node:"))return e.split("/")[0];if(e.includes("node_modules")){var r=e.split("/"),n=r.findIndex((function(e){return"node_modules"===e})),o=r[n+1];if(o.startsWith("@")){var i=r[n+2];i&&(o="".concat(o,"/").concat(i))}return o}if(t){var s;try{s=new URL(e)}catch(e){}if(s)return e}return"root"}},ye=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.stack,r=e.allowURLs,n=void 0!==r&&r;try{var o=(t||p()).map((function(e){return me(e)})).map((function(e){var t=e.item,r=e.mapping,o=e.mappingLine,i=e.mappingColumn,s=ge(r,n);return{caller:t.caller,called:t.called,name:t.name,alias:t.alias,file:t.file,fileLine:t.line,fileColumn:t.column,mapping:r,mappingLine:o,mappingColumn:i,module:s}})),i=o.find((function(e){return"sandworm"!==e.module})),s=o.find((function(e){var t=e.module;return"sandworm"!==t&&void 0!==t&&!t.startsWith("node:")})),a=o.reverse().map((function(e){var t=e.module;return"root"===t||ce.includes(t)||null!=t&&t.startsWith("node:")?void 0:t})).filter((function(e){return void 0!==e})),l="root",c=!1;if(a.length){if(a[0]===a[a.length-1]){var u=re(a,1);l=u[0]}else l=a.filter((function(e,t,r){return r.indexOf(e)===t})).join(">");c=!!a.find((function(e){return e.startsWith("chrome-extension://")||e.startsWith("moz-extension://")}))}return{name:l,stack:o,directCaller:i,lastModuleCaller:s,isExtension:c}}catch(e){return T.error(e),{name:"root",error:e.message}}},ve=function(e){var t,r,n=e.module,o=e.family,i=e.method,s=e.directCaller,a=e.lastModuleCaller;if(null!=s&&null!==(t=s.module)&&void 0!==t&&null!==(r=t.startsWith)&&void 0!==r&&r.call(t,"node:"))return T.debug("-> call has been allowed",a?"as a consequence of `".concat(a.module,"` calling `").concat(a.alias||a.name,".").concat(a.called,"`"):""),!0;var l=function(e){if(Object.keys(se).includes(e))return se[e];var t=le.find((function(t){return t.module===e}));if(t)return se[e]=t.permissions,t.permissions;var r=le.find((function(t){var r=t.module;return r instanceof RegExp&&e.match(r)}));return r?(se[e]=r.permissions,r.permissions):(se[e]=!1,!1)}(n);return"boolean"!=typeof l||i.needsExplicitPermission?!!Array.isArray(l)&&(l.includes(o.name)||l.includes("".concat(o.name,".").concat(i.name))||!i.needsExplicitPermission&&l.includes("*")):l};function be(e){return be="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},be(e)}function we(e,t){if(t&&("object"===be(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function Se(e){var t="function"==typeof Map?new Map:void 0;return Se=function(e){if(null===e||(r=e,-1===Function.toString.call(r).indexOf("[native code]")))return e;var r;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return Ae(e,arguments,Pe(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Ce(n,e)},Se(e)}function Ae(e,t,r){return Ae=je()?Reflect.construct.bind():function(e,t,r){var n=[null];n.push.apply(n,t);var o=new(Function.bind.apply(e,n));return r&&Ce(o,r.prototype),o},Ae.apply(null,arguments)}function je(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function Ce(e,t){return Ce=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ce(e,t)}function Pe(e){return Pe=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Pe(e)}var ke=!0,_e=function(e){ke=!!e},Ie=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&Ce(e,t)}(i,e);var t,r,n,o=(t=i,r=je(),function(){var e,n=Pe(t);if(r){var o=Pe(this).constructor;e=Reflect.construct(n,arguments,o)}else e=n.apply(this,arguments);return we(this,e)});function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=o.call(this,e)).name="SandwormError",t}return n=i,Object.defineProperty(n,"prototype",{writable:!1}),n}(Se(Error));function Ue(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n2&&void 0!==arguments[2]?arguments[2]:function(){};return function(){for(var n,o=ye({allowURLs:!0}),i=o.name,s=o.stack,a=o.directCaller,l=o.lastModuleCaller,c=o.isExtension,p=o.error,u=arguments.length,d=new Array(u),h=0;he.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0;--o){var i=this.tryEntries[o],s=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var a=r.call(i,"catchLoc"),l=r.call(i,"finallyLoc");if(a&&l){if(this.prev=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:C(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),p}},e}function We(e,t,r,n,o,i,s){try{var a=e[i](s),l=a.value}catch(e){return void r(e)}a.done?t(l):Promise.resolve(l).then(n,o)}function Be(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function s(e){We(i,n,o,s,a,"next",e)}function a(e){We(i,n,o,s,a,"throw",e)}s(void 0)}))}}var ze=!1,Te=!1,Ge=[],De=!1,Fe=x(),qe=function(e){return"[object Object]"===Object.prototype.toString.call(e)},Ne=function(){return ze||Fe===R&&self.sandwormInitialized||Fe===U&&r.g.sandwormInitialized},He=function(){ze=!0,Fe===R?self.sandwormInitialized=!0:Fe===U&&(r.g.sandwormInitialized=!0)};const $e={init:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.loadSourceMaps,r=void 0===t?Fe===R:t,n=e.devMode,o=void 0!==n&&n,i=e.verbose,s=void 0!==i&&i,a=e.skipTracking,l=void 0!==a&&a,c=e.trackingIP,u=e.trackingPort,d=e.ignoreExtensions,h=void 0===d||d,f=e.trustedModules,m=void 0===f?[]:f,g=e.permissions,y=void 0===g?[]:g,v=e.allowInitFrom,b=void 0===v?"root":v;try{if(Ne())return T.warn("already initialized"),Promise.resolve();var w=ye({allowURLs:!1}),S=w.name;if(b instanceof RegExp&&!S.match(b)||"string"==typeof b&&S!==b||!(b instanceof RegExp)&&"string"!=typeof b)return T.warn("only root or specified module may call init (called from ".concat(S,")")),Promise.resolve();"boolean"!=typeof o?(T.warn("devMode option must be a boolean, defaulting to false"),De=!1):De=o,!0===s&&(T.level="debug"),Y(l),ee(c,u),Array.isArray(m)?de(m):T.warn("trustedModules option must be an array, defaulting to empty array"),_e(h);var A=[];return Fe===R?A=L()():Fe===U?A=W()():T.debug("current platform is not supported"),De?fe(A):y&&(Array.isArray(y)?he(y):T.warn("permissions option must be an array, defaulting to empty array")),A.forEach((function(e){Ee({family:e,track:function(e){De&&Te&&(Ge.push(e),te(e))}})})),He(),Be(Me().mark((function e(){var t,n;return Me().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!r){e.next=18;break}if(!0!==r){e.next=13;break}return t=p()[1],n=t.file,e.t0=ue,e.t1=n,e.next=9,C(n);case 9:e.t2=e.sent,(0,e.t0)(e.t1,e.t2),e.next=17;break;case 13:if(!qe(r)){e.next=17;break}return e.next=16,Promise.all(Object.keys(r).map(function(){var e=Be(Me().mark((function e(t){return Me().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=t,e.next=3,P(r[t]);case 3:return e.t1=e.sent,e.abrupt("return",[e.t0,e.t1]);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 16:e.sent.forEach((function(e){var t=Oe(e,2),r=t[0],n=t[1];ue(r,n)}));case 17:T.debug("loaded source maps");case 18:e.next=23;break;case 20:e.prev=20,e.t3=e.catch(0),T.error(e.t3);case 23:return e.prev=23,Te=!0,T.debug("initialized"),e.finish(23);case 27:case"end":return e.stop()}}),e,null,[[0,20,23,27]])})))()}catch(e){return T.error(e),Te=!0,T.debug("initialized with errors"),Promise.resolve()}},getHistory:function(){return De?Ge:[]},clearHistory:function(){De&&(Ge=[])},Error:Ie}})(),n.default})())); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Sandworm=t():e.Sandworm=t()}(this,(()=>(()=>{var e={244:(e,t,n)=>{function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n{"use strict";t.byteLength=function(e){var t=u(e),n=t[0],r=t[1];return 3*(n+r)/4-r},t.toByteArray=function(e){var t,n,i=u(e),a=i[0],s=i[1],c=new o(function(e,t,n){return 3*(t+n)/4-n}(0,a,s)),l=0,f=s>0?a-4:a;for(n=0;n>16&255,c[l++]=t>>8&255,c[l++]=255&t;return 2===s&&(t=r[e.charCodeAt(n)]<<2|r[e.charCodeAt(n+1)]>>4,c[l++]=255&t),1===s&&(t=r[e.charCodeAt(n)]<<10|r[e.charCodeAt(n+1)]<<4|r[e.charCodeAt(n+2)]>>2,c[l++]=t>>8&255,c[l++]=255&t),c},t.fromByteArray=function(e){for(var t,r=e.length,o=r%3,i=[],a=16383,s=0,u=r-o;su?u:s+a));return 1===o?(t=e[r-1],i.push(n[t>>2]+n[t<<4&63]+"==")):2===o&&(t=(e[r-2]<<8)+e[r-1],i.push(n[t>>10]+n[t>>4&63]+n[t<<2&63]+"=")),i.join("")};for(var n=[],r=[],o="undefined"!=typeof Uint8Array?Uint8Array:Array,i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,s=i.length;a0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function c(e,t,r){for(var o,i,a=[],s=t;s>18&63]+n[i>>12&63]+n[i>>6&63]+n[63&i]);return a.join("")}r["-".charCodeAt(0)]=62,r["_".charCodeAt(0)]=63},764:(e,t,n)=>{"use strict";const r=n(742),o=n(645),i="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;t.Buffer=u,t.SlowBuffer=function(e){return+e!=e&&(e=0),u.alloc(+e)},t.INSPECT_MAX_BYTES=50;const a=2147483647;function s(e){if(e>a)throw new RangeError('The value "'+e+'" is invalid for option "size"');const t=new Uint8Array(e);return Object.setPrototypeOf(t,u.prototype),t}function u(e,t,n){if("number"==typeof e){if("string"==typeof t)throw new TypeError('The "string" argument must be of type string. Received type number');return f(e)}return c(e,t,n)}function c(e,t,n){if("string"==typeof e)return function(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!u.isEncoding(t))throw new TypeError("Unknown encoding: "+t);const n=0|d(e,t);let r=s(n);const o=r.write(e,t);return o!==n&&(r=r.slice(0,o)),r}(e,t);if(ArrayBuffer.isView(e))return function(e){if(X(e,Uint8Array)){const t=new Uint8Array(e);return p(t.buffer,t.byteOffset,t.byteLength)}return h(e)}(e);if(null==e)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(X(e,ArrayBuffer)||e&&X(e.buffer,ArrayBuffer))return p(e,t,n);if("undefined"!=typeof SharedArrayBuffer&&(X(e,SharedArrayBuffer)||e&&X(e.buffer,SharedArrayBuffer)))return p(e,t,n);if("number"==typeof e)throw new TypeError('The "value" argument must not be of type number. Received type number');const r=e.valueOf&&e.valueOf();if(null!=r&&r!==e)return u.from(r,t,n);const o=function(e){if(u.isBuffer(e)){const t=0|m(e.length),n=s(t);return 0===n.length||e.copy(n,0,0,t),n}return void 0!==e.length?"number"!=typeof e.length||J(e.length)?s(0):h(e):"Buffer"===e.type&&Array.isArray(e.data)?h(e.data):void 0}(e);if(o)return o;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof e[Symbol.toPrimitive])return u.from(e[Symbol.toPrimitive]("string"),t,n);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function f(e){return l(e),s(e<0?0:0|m(e))}function h(e){const t=e.length<0?0:0|m(e.length),n=s(t);for(let r=0;r=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return 0|e}function d(e,t){if(u.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||X(e,ArrayBuffer))return e.byteLength;if("string"!=typeof e)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);const n=e.length,r=arguments.length>2&&!0===arguments[2];if(!r&&0===n)return 0;let o=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":return H(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return Y(e).length;default:if(o)return r?-1:H(e).length;t=(""+t).toLowerCase(),o=!0}}function g(e,t,n){let r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return R(this,t,n);case"utf8":case"utf-8":return O(this,t,n);case"ascii":return x(this,t,n);case"latin1":case"binary":return M(this,t,n);case"base64":return C(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function y(e,t,n){const r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),J(n=+n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"==typeof t&&(t=u.from(t,r)),u.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"==typeof t)return t&=255,"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){let i,a=1,s=e.length,u=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,s/=2,u/=2,n/=2}function c(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){let r=-1;for(i=n;is&&(n=s-u),i=n;i>=0;i--){let n=!0;for(let r=0;ro&&(r=o):r=o;const i=t.length;let a;for(r>i/2&&(r=i/2),a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function C(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function O(e,t,n){n=Math.min(e.length,n);const r=[];let o=t;for(;o239?4:t>223?3:t>191?2:1;if(o+a<=n){let n,r,s,u;switch(a){case 1:t<128&&(i=t);break;case 2:n=e[o+1],128==(192&n)&&(u=(31&t)<<6|63&n,u>127&&(i=u));break;case 3:n=e[o+1],r=e[o+2],128==(192&n)&&128==(192&r)&&(u=(15&t)<<12|(63&n)<<6|63&r,u>2047&&(u<55296||u>57343)&&(i=u));break;case 4:n=e[o+1],r=e[o+2],s=e[o+3],128==(192&n)&&128==(192&r)&&128==(192&s)&&(u=(15&t)<<18|(63&n)<<12|(63&r)<<6|63&s,u>65535&&u<1114112&&(i=u))}}null===i?(i=65533,a=1):i>65535&&(i-=65536,r.push(i>>>10&1023|55296),i=56320|1023&i),r.push(i),o+=a}return function(e){const t=e.length;if(t<=L)return String.fromCharCode.apply(String,e);let n="",r=0;for(;rr.length?(u.isBuffer(t)||(t=u.from(t)),t.copy(r,o)):Uint8Array.prototype.set.call(r,t,o);else{if(!u.isBuffer(t))throw new TypeError('"list" argument must be an Array of Buffers');t.copy(r,o)}o+=t.length}return r},u.byteLength=d,u.prototype._isBuffer=!0,u.prototype.swap16=function(){const e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let t=0;tn&&(e+=" ... "),""},i&&(u.prototype[i]=u.prototype.inspect),u.prototype.compare=function(e,t,n,r,o){if(X(e,Uint8Array)&&(e=u.from(e,e.offset,e.byteLength)),!u.isBuffer(e))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof e);if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;let i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0);const s=Math.min(i,a),c=this.slice(r,o),l=e.slice(t,n);for(let e=0;e>>=0,isFinite(n)?(n>>>=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}const o=this.length-t;if((void 0===n||n>o)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");let i=!1;for(;;)switch(r){case"hex":return w(this,e,t,n);case"utf8":case"utf-8":return S(this,e,t,n);case"ascii":case"latin1":case"binary":return _(this,e,t,n);case"base64":return E(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};const L=4096;function x(e,t,n){let r="";n=Math.min(e.length,n);for(let o=t;or)&&(n=r);let o="";for(let r=t;rn)throw new RangeError("Trying to access beyond buffer length")}function I(e,t,n,r,o,i){if(!u.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function k(e,t,n,r,o){$(t,r,o,e,n,7);let i=Number(t&BigInt(4294967295));e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i,i>>=8,e[n++]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,a>>=8,e[n++]=a,n}function j(e,t,n,r,o){$(t,r,o,e,n,7);let i=Number(t&BigInt(4294967295));e[n+7]=i,i>>=8,e[n+6]=i,i>>=8,e[n+5]=i,i>>=8,e[n+4]=i;let a=Number(t>>BigInt(32)&BigInt(4294967295));return e[n+3]=a,a>>=8,e[n+2]=a,a>>=8,e[n+1]=a,a>>=8,e[n]=a,n+8}function U(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function T(e,t,n,r,i){return t=+t,n>>>=0,i||U(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function N(e,t,n,r,i){return t=+t,n>>>=0,i||U(e,0,n,8),o.write(e,t,n,r,52,8),n+8}u.prototype.slice=function(e,t){const n=this.length;(e=~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),(t=void 0===t?n:~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),t>>=0,t>>>=0,n||B(e,t,this.length);let r=this[e],o=1,i=0;for(;++i>>=0,t>>>=0,n||B(e,t,this.length);let r=this[e+--t],o=1;for(;t>0&&(o*=256);)r+=this[e+--t]*o;return r},u.prototype.readUint8=u.prototype.readUInt8=function(e,t){return e>>>=0,t||B(e,1,this.length),this[e]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(e,t){return e>>>=0,t||B(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(e,t){return e>>>=0,t||B(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(e,t){return e>>>=0,t||B(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(e,t){return e>>>=0,t||B(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readBigUInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=t+256*this[++e]+65536*this[++e]+this[++e]*2**24,o=this[++e]+256*this[++e]+65536*this[++e]+n*2**24;return BigInt(r)+(BigInt(o)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=t*2**24+65536*this[++e]+256*this[++e]+this[++e],o=this[++e]*2**24+65536*this[++e]+256*this[++e]+n;return(BigInt(r)<>>=0,t>>>=0,n||B(e,t,this.length);let r=this[e],o=1,i=0;for(;++i=o&&(r-=Math.pow(2,8*t)),r},u.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||B(e,t,this.length);let r=t,o=1,i=this[e+--r];for(;r>0&&(o*=256);)i+=this[e+--r]*o;return o*=128,i>=o&&(i-=Math.pow(2,8*t)),i},u.prototype.readInt8=function(e,t){return e>>>=0,t||B(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function(e,t){e>>>=0,t||B(e,2,this.length);const n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function(e,t){e>>>=0,t||B(e,2,this.length);const n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function(e,t){return e>>>=0,t||B(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function(e,t){return e>>>=0,t||B(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readBigInt64LE=Q((function(e){q(e>>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=this[e+4]+256*this[e+5]+65536*this[e+6]+(n<<24);return(BigInt(r)<>>=0,"offset");const t=this[e],n=this[e+7];void 0!==t&&void 0!==n||W(e,this.length-8);const r=(t<<24)+65536*this[++e]+256*this[++e]+this[++e];return(BigInt(r)<>>=0,t||B(e,4,this.length),o.read(this,e,!0,23,4)},u.prototype.readFloatBE=function(e,t){return e>>>=0,t||B(e,4,this.length),o.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function(e,t){return e>>>=0,t||B(e,8,this.length),o.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function(e,t){return e>>>=0,t||B(e,8,this.length),o.read(this,e,!1,52,8)},u.prototype.writeUintLE=u.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||I(this,e,t,n,Math.pow(2,8*n)-1,0);let o=1,i=0;for(this[t]=255&e;++i>>=0,n>>>=0,r||I(this,e,t,n,Math.pow(2,8*n)-1,0);let o=n-1,i=1;for(this[t+o]=255&e;--o>=0&&(i*=256);)this[t+o]=e/i&255;return t+n},u.prototype.writeUint8=u.prototype.writeUInt8=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,1,255,0),this[t]=255&e,t+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,65535,0),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,65535,0),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,4294967295,0),this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e,t+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,4294967295,0),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigUInt64LE=Q((function(e,t=0){return k(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeBigUInt64BE=Q((function(e,t=0){return j(this,e,t,BigInt(0),BigInt("0xffffffffffffffff"))})),u.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);I(this,e,t,n,r-1,-r)}let o=0,i=1,a=0;for(this[t]=255&e;++o>0)-a&255;return t+n},u.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){const r=Math.pow(2,8*n-1);I(this,e,t,n,r-1,-r)}let o=n-1,i=1,a=0;for(this[t+o]=255&e;--o>=0&&(i*=256);)e<0&&0===a&&0!==this[t+o+1]&&(a=1),this[t+o]=(e/i>>0)-a&255;return t+n},u.prototype.writeInt8=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,1,127,-128),e<0&&(e=255+e+1),this[t]=255&e,t+1},u.prototype.writeInt16LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,32767,-32768),this[t]=255&e,this[t+1]=e>>>8,t+2},u.prototype.writeInt16BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,2,32767,-32768),this[t]=e>>>8,this[t+1]=255&e,t+2},u.prototype.writeInt32LE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,2147483647,-2147483648),this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24,t+4},u.prototype.writeInt32BE=function(e,t,n){return e=+e,t>>>=0,n||I(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e,t+4},u.prototype.writeBigInt64LE=Q((function(e,t=0){return k(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeBigInt64BE=Q((function(e,t=0){return j(this,e,t,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))})),u.prototype.writeFloatLE=function(e,t,n){return T(this,e,t,!0,n)},u.prototype.writeFloatBE=function(e,t,n){return T(this,e,t,!1,n)},u.prototype.writeDoubleLE=function(e,t,n){return N(this,e,t,!0,n)},u.prototype.writeDoubleBE=function(e,t,n){return N(this,e,t,!1,n)},u.prototype.copy=function(e,t,n,r){if(!u.isBuffer(e))throw new TypeError("argument should be a Buffer");if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(o=t;o=r+4;n-=3)t=`_${e.slice(n-3,n)}${t}`;return`${e.slice(0,n)}${t}`}function $(e,t,n,r,o,i){if(e>n||e3?0===t||t===BigInt(0)?`>= 0${r} and < 2${r} ** ${8*(i+1)}${r}`:`>= -(2${r} ** ${8*(i+1)-1}${r}) and < 2 ** ${8*(i+1)-1}${r}`:`>= ${t}${r} and <= ${n}${r}`,new F.ERR_OUT_OF_RANGE("value",o,e)}!function(e,t,n){q(t,"offset"),void 0!==e[t]&&void 0!==e[t+n]||W(t,e.length-(n+1))}(r,o,i)}function q(e,t){if("number"!=typeof e)throw new F.ERR_INVALID_ARG_TYPE(t,"number",e)}function W(e,t,n){if(Math.floor(e)!==e)throw q(e,n),new F.ERR_OUT_OF_RANGE(n||"offset","an integer",e);if(t<0)throw new F.ERR_BUFFER_OUT_OF_BOUNDS;throw new F.ERR_OUT_OF_RANGE(n||"offset",`>= ${n?1:0} and <= ${t}`,e)}D("ERR_BUFFER_OUT_OF_BOUNDS",(function(e){return e?`${e} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"}),RangeError),D("ERR_INVALID_ARG_TYPE",(function(e,t){return`The "${e}" argument must be of type number. Received type ${typeof t}`}),TypeError),D("ERR_OUT_OF_RANGE",(function(e,t,n){let r=`The value of "${e}" is out of range.`,o=n;return Number.isInteger(n)&&Math.abs(n)>2**32?o=G(String(n)):"bigint"==typeof n&&(o=String(n),(n>BigInt(2)**BigInt(32)||n<-(BigInt(2)**BigInt(32)))&&(o=G(o)),o+="n"),r+=` It must be ${t}. Received ${o}`,r}),RangeError);const z=/[^+/0-9A-Za-z-_]/g;function H(e,t){let n;t=t||1/0;const r=e.length;let o=null;const i=[];for(let a=0;a55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function Y(e){return r.toByteArray(function(e){if((e=(e=e.split("=")[0]).trim().replace(z,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function V(e,t,n,r){let o;for(o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}function X(e,t){return e instanceof t||null!=e&&null!=e.constructor&&null!=e.constructor.name&&e.constructor.name===t.name}function J(e){return e!=e}const K=function(){const e="0123456789abcdef",t=new Array(256);for(let n=0;n<16;++n){const r=16*n;for(let o=0;o<16;++o)t[r+o]=e[n]+e[o]}return t}();function Q(e){return"undefined"==typeof BigInt?Z:e}function Z(){throw new Error("BigInt not supported")}},645:(e,t)=>{t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,u=(1<>1,l=-7,f=n?o-1:0,h=n?-1:1,p=e[t+f];for(f+=h,i=p&(1<<-l)-1,p>>=-l,l+=s;l>0;i=256*i+e[t+f],f+=h,l-=8);for(a=i&(1<<-l)-1,i>>=-l,l+=r;l>0;a=256*a+e[t+f],f+=h,l-=8);if(0===i)i=1-c;else{if(i===u)return a?NaN:1/0*(p?-1:1);a+=Math.pow(2,r),i-=c}return(p?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,u,c=8*i-o-1,l=(1<>1,h=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:i-1,m=r?1:-1,d=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=l):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+f>=1?h/u:h*Math.pow(2,1-f))*u>=2&&(a++,u/=2),a+f>=l?(s=0,a=l):a+f>=1?(s=(t*u-1)*Math.pow(2,o),a+=f):(s=t*Math.pow(2,f-1)*Math.pow(2,o),a=0));o>=8;e[n+p]=255&s,p+=m,s/=256,o-=8);for(a=a<0;e[n+p]=255&a,p+=m,a/=256,c-=8);e[n+p-m]|=128*d}},86:(e,t,n)=>{var r=n(305),o=Object.prototype.hasOwnProperty,i="undefined"!=typeof Map;function a(){this._array=[],this._set=i?new Map:Object.create(null)}a.fromArray=function(e,t){for(var n=new a,r=0,o=e.length;r=0)return t}else{var n=r.toSetString(e);if(o.call(this._set,n))return this._set[n]}throw new Error('"'+e+'" is not in the set.')},a.prototype.at=function(e){if(e>=0&&e{var r=n(167);t.encode=function(e){var t,n="",o=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&o,(o>>>=5)>0&&(t|=32),n+=r.encode(t)}while(o>0);return n},t.decode=function(e,t,n){var o,i,a,s,u=e.length,c=0,l=0;do{if(t>=u)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=r.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));o=!!(32&i),c+=(i&=31)<>1,1==(1&a)?-s:s),n.rest=t}},167:(e,t)=>{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e{function n(e,r,o,i,a,s){var u=Math.floor((r-e)/2)+e,c=a(o,i[u],!0);return 0===c?u:c>0?r-u>1?n(u,r,o,i,a,s):s==t.LEAST_UPPER_BOUND?r1?n(e,u,o,i,a,s):s==t.LEAST_UPPER_BOUND?u:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,r,o,i){if(0===r.length)return-1;var a=n(-1,r.length,e,r,o,i||t.GREATEST_LOWER_BOUND);if(a<0)return-1;for(;a-1>=0&&0===o(r[a],r[a-1],!0);)--a;return a}},688:(e,t,n)=>{var r=n(305);function o(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}o.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},o.prototype.add=function(e){var t,n,o,i,a,s;n=e,o=(t=this._last).generatedLine,i=n.generatedLine,a=t.generatedColumn,s=n.generatedColumn,i>o||i==o&&s>=a||r.compareByGeneratedPositionsInflated(t,n)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},o.prototype.toArray=function(){return this._sorted||(this._array.sort(r.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.H=o},523:(e,t)=>{function n(e){function t(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return function e(n,r,o,i){if(o{var r=n(305),o=n(183),i=n(86).I,a=n(520),s=n(523).U;function u(e,t){var n=e;return"string"==typeof e&&(n=r.parseSourceMapInput(e)),null!=n.sections?new p(n,t):new c(n,t)}function c(e,t){var n=e;"string"==typeof e&&(n=r.parseSourceMapInput(e));var o=r.getArg(n,"version"),a=r.getArg(n,"sources"),s=r.getArg(n,"names",[]),u=r.getArg(n,"sourceRoot",null),c=r.getArg(n,"sourcesContent",null),l=r.getArg(n,"mappings"),f=r.getArg(n,"file",null);if(o!=this._version)throw new Error("Unsupported version: "+o);u&&(u=r.normalize(u)),a=a.map(String).map(r.normalize).map((function(e){return u&&r.isAbsolute(u)&&r.isAbsolute(e)?r.relative(u,e):e})),this._names=i.fromArray(s.map(String),!0),this._sources=i.fromArray(a,!0),this._absoluteSources=this._sources.toArray().map((function(e){return r.computeSourceURL(u,e,t)})),this.sourceRoot=u,this.sourcesContent=c,this._mappings=l,this._sourceMapURL=t,this.file=f}function l(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}u.fromSourceMap=function(e,t){return c.fromSourceMap(e,t)},u.prototype._version=3,u.prototype.__generatedMappings=null,Object.defineProperty(u.prototype,"_generatedMappings",{configurable:!0,enumerable:!0,get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),u.prototype.__originalMappings=null,Object.defineProperty(u.prototype,"_originalMappings",{configurable:!0,enumerable:!0,get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),u.prototype._charIsMappingSeparator=function(e,t){var n=e.charAt(t);return";"===n||","===n},u.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},u.GENERATED_ORDER=1,u.ORIGINAL_ORDER=2,u.GREATEST_LOWER_BOUND=1,u.LEAST_UPPER_BOUND=2,u.prototype.eachMapping=function(e,t,n){var o,i=t||null;switch(n||u.GENERATED_ORDER){case u.GENERATED_ORDER:o=this._generatedMappings;break;case u.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}for(var a=this.sourceRoot,s=e.bind(i),c=this._names,l=this._sources,f=this._sourceMapURL,h=0,p=o.length;h=0){var s=this._originalMappings[a];if(void 0===e.column)for(var u=s.originalLine;s&&s.originalLine===u;)i.push({line:r.getArg(s,"generatedLine",null),column:r.getArg(s,"generatedColumn",null),lastColumn:r.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a];else for(var c=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==c;)i.push({line:r.getArg(s,"generatedLine",null),column:r.getArg(s,"generatedColumn",null),lastColumn:r.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++a]}return i},t.SourceMapConsumer=u,c.prototype=Object.create(u.prototype),c.prototype.consumer=u,c.prototype._findSourceIndex=function(e){var t,n=e;if(null!=this.sourceRoot&&(n=r.relative(this.sourceRoot,n)),this._sources.has(n))return this._sources.indexOf(n);for(t=0;t0&&(e[t]=r,e[t+1]=n)}else if(r<20)for(let r=t;rt;n--){let t=e[n-1],r=e[n];if(f(t,r)<=0)break;e[n-1]=r,e[n]=t}else s(e,f,t)}function p(e,t){var n=e;"string"==typeof e&&(n=r.parseSourceMapInput(e));var o=r.getArg(n,"version"),a=r.getArg(n,"sections");if(o!=this._version)throw new Error("Unsupported version: "+o);this._sources=new i,this._names=new i;var s={line:-1,column:0};this._sections=a.map((function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var n=r.getArg(e,"offset"),o=r.getArg(n,"line"),i=r.getArg(n,"column");if(o1&&(n.source=d+o[1],d+=o[1],n.originalLine=p+o[2],p=n.originalLine,n.originalLine+=1,n.originalColumn=m+o[3],m=n.originalColumn,o.length>4&&(n.name=g+o[4],g+=o[4])),S.push(n),"number"==typeof n.originalLine){let e=n.source;for(;w.length<=e;)w.push(null);null===w[e]&&(w[e]=[]),w[e].push(n)}}h(S,_),this.__generatedMappings=S;for(var E=0;E=0){var o=this._generatedMappings[n];if(o.generatedLine===t.generatedLine){var i=r.getArg(o,"source",null);null!==i&&(i=this._sources.at(i),i=r.computeSourceURL(this.sourceRoot,i,this._sourceMapURL));var a=r.getArg(o,"name",null);return null!==a&&(a=this._names.at(a)),{source:i,line:r.getArg(o,"originalLine",null),column:r.getArg(o,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}},c.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return null==e}))},c.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var n=this._findSourceIndex(e);if(n>=0)return this.sourcesContent[n];var o,i=e;if(null!=this.sourceRoot&&(i=r.relative(this.sourceRoot,i)),null!=this.sourceRoot&&(o=r.urlParse(this.sourceRoot))){var a=i.replace(/^file:\/\//,"");if("file"==o.scheme&&this._sources.has(a))return this.sourcesContent[this._sources.indexOf(a)];if((!o.path||"/"==o.path)&&this._sources.has("/"+i))return this.sourcesContent[this._sources.indexOf("/"+i)]}if(t)return null;throw new Error('"'+i+'" is not in the SourceMap.')},c.prototype.generatedPositionFor=function(e){var t=r.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var n={source:t,originalLine:r.getArg(e,"line"),originalColumn:r.getArg(e,"column")},o=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",r.compareByOriginalPositions,r.getArg(e,"bias",u.GREATEST_LOWER_BOUND));if(o>=0){var i=this._originalMappings[o];if(i.source===n.source)return{line:r.getArg(i,"generatedLine",null),column:r.getArg(i,"generatedColumn",null),lastColumn:r.getArg(i,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},p.prototype=Object.create(u.prototype),p.prototype.constructor=u,p.prototype._version=3,Object.defineProperty(p.prototype,"sources",{get:function(){for(var e=[],t=0;t{var r=n(520),o=n(305),i=n(86).I,a=n(688).H;function s(e){e||(e={}),this._file=o.getArg(e,"file",null),this._sourceRoot=o.getArg(e,"sourceRoot",null),this._skipValidation=o.getArg(e,"skipValidation",!1),this._sources=new i,this._names=new i,this._mappings=new a,this._sourcesContents=null}s.prototype._version=3,s.fromSourceMap=function(e){var t=e.sourceRoot,n=new s({file:e.file,sourceRoot:t});return e.eachMapping((function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=o.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)})),e.sources.forEach((function(r){var i=r;null!==t&&(i=o.relative(t,r)),n._sources.has(i)||n._sources.add(i);var a=e.sourceContentFor(r);null!=a&&n.setSourceContent(r,a)})),n},s.prototype.addMapping=function(e){var t=o.getArg(e,"generated"),n=o.getArg(e,"original",null),r=o.getArg(e,"source",null),i=o.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},s.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=o.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[o.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[o.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},s.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var a=this._sourceRoot;null!=a&&(r=o.relative(a,r));var s=new i,u=new i;this._mappings.unsortedForEach((function(t){if(t.source===r&&null!=t.originalLine){var i=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=i.source&&(t.source=i.source,null!=n&&(t.source=o.join(n,t.source)),null!=a&&(t.source=o.relative(a,t.source)),t.originalLine=i.line,t.originalColumn=i.column,null!=i.name&&(t.name=i.name))}var c=t.source;null==c||s.has(c)||s.add(c);var l=t.name;null==l||u.has(l)||u.add(l)}),this),this._sources=s,this._names=u,e.sources.forEach((function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=o.join(n,t)),null!=a&&(t=o.relative(a,t)),this.setSourceContent(t,r))}),this)},s.prototype._validateMapping=function(e,t,n,r){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},s.prototype._serializeMappings=function(){for(var e,t,n,i,a=0,s=1,u=0,c=0,l=0,f=0,h="",p=this._mappings.toArray(),m=0,d=p.length;m0){if(!o.compareByGeneratedPositionsInflated(t,p[m-1]))continue;e+=","}e+=r.encode(t.generatedColumn-a),a=t.generatedColumn,null!=t.source&&(i=this._sources.indexOf(t.source),e+=r.encode(i-f),f=i,e+=r.encode(t.originalLine-1-c),c=t.originalLine-1,e+=r.encode(t.originalColumn-u),u=t.originalColumn,null!=t.name&&(n=this._names.indexOf(t.name),e+=r.encode(n-l),l=n)),h+=e}return h},s.prototype._generateSourcesContent=function(e,t){return e.map((function(e){if(!this._sourcesContents)return null;null!=t&&(e=o.relative(t,e));var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)},s.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},s.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.h=s},231:(e,t,n)=>{var r=n(508).h,o=n(305),i=/(\r?\n)/,a="$$$isSourceNode$$$";function s(e,t,n,r,o){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==o?null:o,this[a]=!0,null!=r&&this.add(r)}s.fromStringWithSourceMap=function(e,t,n){var r=new s,a=e.split(i),u=0,c=function(){return e()+(e()||"");function e(){return u=0;t--)this.prepend(e[t]);else{if(!e[a]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},s.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n0){for(t=[],n=0;n{t.getArg=function(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')};var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,r=/^data:.+\,.+$/;function o(e){var t=e.match(n);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}t.urlParse=o,t.urlGenerate=i;var a,s,u=(a=function(e){var n=e,r=o(e);if(r){if(!r.path)return e;n=r.path}for(var a=t.isAbsolute(n),s=[],u=0,c=0;;){if(u=c,-1===(c=n.indexOf("/",u))){s.push(n.slice(u));break}for(s.push(n.slice(u,c));c=0;c--)"."===(l=s[c])?s.splice(c,1):".."===l?f++:f>0&&(""===l?(s.splice(c+1,f),f=0):(s.splice(c,2),f--));return""===(n=s.join("/"))&&(n=a?"/":"."),r?(r.path=n,i(r)):n},s=[],function(e){for(var t=0;t32&&s.pop(),r});function c(e,t){""===e&&(e="."),""===t&&(t=".");var n=o(t),a=o(e);if(a&&(e=a.path||"/"),n&&!n.scheme)return a&&(n.scheme=a.scheme),i(n);if(n||t.match(r))return t;if(a&&!a.host&&!a.path)return a.host=t,i(a);var s="/"===t.charAt(0)?t:u(e.replace(/\/+$/,"")+"/"+t);return a?(a.path=s,i(a)):s}t.normalize=u,t.join=c,t.isAbsolute=function(e){return"/"===e.charAt(0)||n.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var n=0;0!==t.indexOf(e+"/");){var r=e.lastIndexOf("/");if(r<0)return t;if((e=e.slice(0,r)).match(/^([^\/]+:\/)?\/*$/))return t;++n}return Array(n+1).join("../")+t.substr(e.length+1)};var l=!("__proto__"in Object.create(null));function f(e){return e}function h(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var n=t-10;n>=0;n--)if(36!==e.charCodeAt(n))return!1;return!0}function p(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=l?f:function(e){return h(e)?"$"+e:e},t.fromSetString=l?f:function(e){return h(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,n){var r=p(e.source,t.source);return 0!==r||0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)||n||0!=(r=e.generatedColumn-t.generatedColumn)||0!=(r=e.generatedLine-t.generatedLine)?r:p(e.name,t.name)},t.compareByOriginalPositionsNoSource=function(e,t,n){var r;return 0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)||n||0!=(r=e.generatedColumn-t.generatedColumn)||0!=(r=e.generatedLine-t.generatedLine)?r:p(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,n){var r=e.generatedLine-t.generatedLine;return 0!==r||0!=(r=e.generatedColumn-t.generatedColumn)||n||0!==(r=p(e.source,t.source))||0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)?r:p(e.name,t.name)},t.compareByGeneratedPositionsDeflatedNoLine=function(e,t,n){var r=e.generatedColumn-t.generatedColumn;return 0!==r||n||0!==(r=p(e.source,t.source))||0!=(r=e.originalLine-t.originalLine)||0!=(r=e.originalColumn-t.originalColumn)?r:p(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n||0!=(n=e.generatedColumn-t.generatedColumn)||0!==(n=p(e.source,t.source))||0!=(n=e.originalLine-t.originalLine)||0!=(n=e.originalColumn-t.originalColumn)?n:p(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,n){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),n){var r=o(n);if(!r)throw new Error("sourceMapURL could not be parsed");if(r.path){var a=r.path.lastIndexOf("/");a>=0&&(r.path=r.path.substring(0,a+1))}t=c(i(r),t)}return u(t)}},298:(e,t,n)=>{n(508).h,t.SourceMapConsumer=n(529).SourceMapConsumer,n(231)}},t={};function n(r){var o=t[r];if(void 0!==o)return o.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var r={};return(()=>{"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);nze});var s,u={},c=function(e){var t,n,r=(e||"").trim();if(Object.keys(u).includes(r))return u[r];var o,a,s,c,l=[];if((s=r.match(/at (.+) \(eval at .+ \((.+)\), .+\)/))||(s=r.match(/at (.+) \((.+)\)/))||"at "!==r.slice(0,3)&&(s=r.match(/(.*)@(.*)/)))o=i(s,2)[1],l=(s[2].match(/(.*):(\d+):(\d+)/)||s[2].match(/(.*):(\d+)/)||[]).slice(1);else{if(!(s=r.match(/^(at\s+)*(.+):(\d+):(\d+)/)))return void(u[r]=void 0);l=s.slice(2)}if(null!==(t=o)&&void 0!==t&&null!==(n=t.includes)&&void 0!==n&&n.call(t," [as ")){var f=i(o.slice(0,-1).split(" [as "),2);o=f[0],a=f[1]}return u[r]={beforeParse:r,file:(c=l[0]||"",c.replace(/\\/g,"/")),line:parseInt(l[1]||"",10)||void 0,column:parseInt(l[2]||"",10)||void 0,name:o,alias:a},u[r]},l=function(){var e=Error.stackTraceLimit;Error.stackTraceLimit=1/0;var n=((new Error).stack||"").split("\n");return Error.stackTraceLimit=e,n.map(c).filter((function(e){return void 0!==e})).map((function(e,n,r){var o=r[n+1],i=r[n-1];return t(t({},e),{},{caller:o?o.alias||o.name:void 0,called:i?i.alias||i.name:void 0})}))},f=n(298),h=n(764).Buffer;function p(e){return p="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},p(e)}function m(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),A(n),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;A(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}function g(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,o)}function y(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){g(i,r,o,a,s,"next",e)}function s(e){g(i,r,o,a,s,"throw",e)}a(void 0)}))}}try{s=require("fs")}catch(e){}var v=/^data:application\/json[^,]+base64,/,b=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,w=console,S=function(){var e=y(d().mark((function e(t){var n;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(t);case 3:return n=e.sent,e.abrupt("return",n.text());case 7:return e.prev=7,e.t0=e.catch(0),w.error(e.t0),e.abrupt("return",null);case 11:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(t){return e.apply(this,arguments)}}(),_=function(){var e=y(d().mark((function e(t){return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(s){e.next=2;break}return e.abrupt("return",null);case 2:return e.abrupt("return",new Promise((function(e){s.readFile(t,{encoding:"utf8"},(function(t,n){t&&(w.error(t),e(null)),e(n)}))})));case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),E=function(e){try{var t=new URL(e);return S(t)}catch(t){return _(e)}},A=function(){var e=y(d().mark((function e(t){var n,r,o,i,a,s,u,c,l;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,w.debug("loading source from ".concat(t)),e.next=4,E(t);case 4:if(r=e.sent,null==(o=null==r||null===(n=r.match)||void 0===n?void 0:n.call(r,b))||!o[1]){e.next=28;break}if(w.debug("found sourcemap reference"),i=o[1],!v.test(i)){e.next=15;break}w.debug("loading inline sourcemap"),s=i.slice(i.indexOf(",")+1),a="function"==typeof atob?atob(s):h.from(s,"base64").toString(),e.next=22;break;case 15:return(u=t.split("/")).splice(-1,1),c=[].concat((p=u,function(e){if(Array.isArray(e))return m(e)}(p)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(p)||function(e,t){if(e){if("string"==typeof e)return m(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m(e,t):void 0}}(p)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),[i]).join("/"),w.debug("loading sourcemap from ".concat(c)),e.next=21,E(c);case 21:a=e.sent;case 22:if(!a){e.next=28;break}return e.next=25,new f.SourceMapConsumer(a);case 25:return l=e.sent,w.debug("loaded sourcemap"),e.abrupt("return",l);case 28:return w.debug("sourcemap not available"),e.abrupt("return",null);case 32:return e.prev=32,e.t0=e.catch(0),w.error(e.t0),e.abrupt("return",null);case 36:case"end":return e.stop()}var p}),e,null,[[0,32]])})));return function(t){return e.apply(this,arguments)}}(),C=function(){var e=y(d().mark((function e(t){var n,r;return d().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,w.debug("loading sourcemap from ".concat(t)),e.next=4,E(t);case 4:if(!(n=e.sent)){e.next=10;break}return e.next=8,new f.SourceMapConsumer(n);case 8:return r=e.sent,e.abrupt("return",r);case 10:return w.debug("sourcemap not available"),e.abrupt("return",null);case 14:return e.prev=14,e.t0=e.catch(0),w.error(e.t0),e.abrupt("return",null);case 18:case"end":return e.stop()}}),e,null,[[0,14]])})));return function(t){return e.apply(this,arguments)}}();function O(e){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O(e)}var L="undefined"!=typeof window||"undefined"!=typeof self,x="object"===("undefined"==typeof process?"undefined":O(process))&&"object"===O(process.versions)&&!!process.versions.node,M="NODE",R="WEB",P="UNKNOWN";const B=function(){try{return L?R:x?M:P}catch(e){return P}},I=JSON.parse('[{"name":"AudioContext","globalConstructor":true},{"name":"BackgroundFetchManager","methods":[{"name":"fetch"},{"name":"get"},{"name":"getIds"}]},{"name":"BackgroundTasks","globalMethods":[{"name":"requestIdleCallback"},{"name":"cancelIdleCallback"}]},{"name":"Beacon","navigatorMethods":[{"name":"sendBeacon"}]},{"name":"Bluetooth","methods":[{"name":"getAvailability"},{"name":"getDevices"},{"name":"requestDevice"}]},{"name":"Clipboard","methods":[{"name":"read"},{"name":"readText"},{"name":"write"},{"name":"writeText"}]},{"name":"ContactsManager","methods":[{"name":"select"},{"name":"getProperties"}]},{"name":"ContentIndex","methods":[{"name":"add"},{"name":"delete"},{"name":"getAll"}]},{"name":"CookieStore","methods":[{"name":"delete"},{"name":"get"},{"name":"getAll"},{"name":"set"}]},{"name":"CredentialsContainer","methods":[{"name":"create"},{"name":"get"},{"name":"preventSilentAccess"},{"name":"store"}]},{"name":"EventSource","globalConstructor":true},{"name":"Fetch","globalMethods":[{"name":"fetch"}]},{"name":"FileReader","globalConstructor":true,"methods":[{"name":"abort"},{"name":"readAsArrayBuffer"},{"name":"readAsBinaryString"},{"name":"readAsDataURL"},{"name":"readAsText"}]},{"name":"FileReaderSync","globalConstructor":true,"methods":[{"name":"readAsArrayBuffer"},{"name":"readAsBinaryString"},{"name":"readAsDataURL"},{"name":"readAsText"}]},{"name":"FileSystem","globalMethods":[{"name":"showOpenFilePicker"},{"name":"showSaveFilePicker"},{"name":"showDirectoryPicker"}]},{"name":"Gamepad","navigatorMethods":[{"name":"getGamepads"}]},{"name":"Geolocation","methods":[{"name":"clearWatch"},{"name":"getCurrentPosition"},{"name":"watchPosition"}]},{"name":"Battery","navigatorMethods":[{"name":"getBattery"}]},{"name":"HID","methods":[{"name":"getDevices"},{"name":"requestDevice"}]},{"name":"History","methods":[{"name":"back"},{"name":"forward"},{"name":"go"},{"name":"pushState"},{"name":"replaceState"}]},{"name":"IDBFactory","methods":[{"name":"cmp"},{"name":"databases"},{"name":"deleteDatabase"},{"name":"open"}]},{"name":"ImageCapture","globalConstructor":true,"methods":[{"name":"getPhotoCapabilities"},{"name":"getPhotoSettings"},{"name":"grabFrame"},{"name":"takePhoto"}]},{"name":"MediaDevices","methods":[{"name":"enumerateDevices"},{"name":"getDisplayMedia"},{"name":"getSupportedConstraints"},{"name":"getUserMedia"},{"name":"selectAudioOutput"}]},{"name":"MediaRecorder","globalConstructor":true},{"name":"MediaStream","globalConstructor":true},{"name":"MessageChannel","globalConstructor":true,"globalMethods":[{"name":"postMessage"}]},{"name":"MIDI","navigatorMethods":[{"name":"requestMIDIAccess"}]},{"name":"Notification","globalConstructor":true,"methods":[{"name":"requestPermission"}],"swrMethods":[{"name":"showNotification"},{"name":"getNotifications"}]},{"name":"PaymentRequest","globalConstructor":true},{"name":"PerformanceObserver","globalConstructor":true},{"name":"PeriodicSyncManager","methods":[{"name":"register"},{"name":"unregister"},{"name":"getTags"}]},{"name":"Permissions","methods":[{"name":"query"},{"name":"revoke"}]},{"name":"PresentationRequest","globalConstructor":true,"methods":[{"name":"start"},{"name":"reconnect"},{"name":"getAvailability"}]},{"name":"PushManager","methods":[{"name":"getSubscription"},{"name":"hasPermission"},{"name":"permissionState"},{"name":"register"},{"name":"registrations"},{"name":"subscribe"},{"name":"unregister"}]},{"name":"ReportingObserver","globalConstructor":true},{"name":"Scheduler","methods":[{"name":"postTask"}]},{"name":"Selection","globalMethods":[{"name":"getSelection"}],"documentMethods":[{"name":"getSelection"}]},{"name":"Sensor","globalConstructors":[{"name":"AbsoluteOrientationSensor"},{"name":"Accelerometer"},{"name":"AmbientLightSensor"},{"name":"GravitySensor"},{"name":"Gyroscope"},{"name":"LinearAccelerationSensor"},{"name":"Magnetometer"},{"name":"RelativeOrientationSensor"}]},{"name":"Share","navigatorMethods":[{"name":"share"},{"name":"canShare"}]},{"name":"SpeechRecognition","globalConstructors":[{"name":"SpeechRecognition"},{"name":"webkitSpeechRecognition"}],"methods":[{"name":"abort"},{"name":"start"},{"name":"stop"}]},{"name":"SpeechSynthesis","globalPropertyMethods":[{"name":"cancel"},{"name":"getVoices"},{"name":"pause"},{"name":"resume"},{"name":"speak"}],"globalProperty":"speechSynthesis"},{"name":"Storage","methods":[{"name":"getItem"},{"name":"setItem"},{"name":"removeItem"},{"name":"clear"},{"name":"key"}]},{"name":"StorageAccess","documentMethods":[{"name":"requestStorageAccess"},{"name":"hasStorageAccess"}]},{"name":"StorageManager","methods":[{"name":"estimate"},{"name":"persist"},{"name":"persisted"}]},{"name":"SubtleCrypto","methods":[{"name":"decrypt"},{"name":"deriveBits"},{"name":"deriveKey"},{"name":"digest"},{"name":"encrypt"},{"name":"exportKey"},{"name":"generateKey"},{"name":"importKey"},{"name":"sign"},{"name":"unwrapKey"},{"name":"verify"},{"name":"wrapKey"}]},{"name":"USB","methods":[{"name":"getDevices"},{"name":"requestDevice"}]},{"name":"Vibration","navigatorMethods":[{"name":"vibrate"}]},{"name":"WakeLock","methods":[{"name":"request"}]},{"name":"WebSocket","globalConstructor":true,"methods":[{"name":"close"},{"name":"send"}]},{"name":"Worker","globalConstructor":true,"methods":[{"name":"postMessage"},{"name":"terminate"}]},{"name":"SharedWorker","globalConstructor":true},{"name":"XMLHttpRequest","globalConstructor":true,"methods":[{"name":"abort"},{"name":"getAllResponseHeaders"},{"name":"getResponseHeader"},{"name":"open"},{"name":"overrideMimeType"},{"name":"send"},{"name":"setRequestHeader"}]}]'),k=JSON.parse('[{"name":"child_process","methods":[{"name":"exec","needsExplicitPermission":true},{"name":"execFile","needsExplicitPermission":true},{"name":"fork"},{"name":"spawn"},{"name":"execFileSync","needsExplicitPermission":true},{"name":"execSync","needsExplicitPermission":true},{"name":"spawnSync"}]},{"name":"cluster","methods":[{"name":"disconnect"},{"name":"fork"},{"name":"setupPrimary"},{"name":"setupMaster"}]},{"name":"dgram","methods":[{"name":"createSocket"}]},{"name":"dns","methods":[{"name":"Resolver","isConstructor":true},{"name":"getServers"},{"name":"lookup"},{"name":"lookupService"},{"name":"resolve"},{"name":"resolve4"},{"name":"resolve6"},{"name":"resolveAny"},{"name":"resolveCname"},{"name":"resolveCaa"},{"name":"resolveMx"},{"name":"resolveNaptr"},{"name":"resolveNs"},{"name":"resolvePtr"},{"name":"resolveSoa"},{"name":"resolveSrv"},{"name":"resolveTxt"},{"name":"reverse"},{"name":"setDefaultResultOrder"},{"name":"setServers"}]},{"name":"fetch","methods":[{"name":"fetch"}],"globalMethod":true},{"name":"eval","methods":[{"name":"eval","needsExplicitPermission":true}],"globalMethod":true},{"name":"Function","methods":[{"name":"Function","needsExplicitPermission":true}],"globalMethod":true},{"name":"fs","methods":[{"name":"access"},{"name":"appendFile"},{"name":"chmod"},{"name":"chown"},{"name":"close"},{"name":"copyFile"},{"name":"cp"},{"name":"createReadStream"},{"name":"createWriteStream"},{"name":"exists"},{"name":"fchmod"},{"name":"fchown"},{"name":"fdatasync"},{"name":"fstat"},{"name":"fsync"},{"name":"ftruncate"},{"name":"futimes"},{"name":"lchmod"},{"name":"lchown"},{"name":"lutimes"},{"name":"link"},{"name":"lstat"},{"name":"mkdir"},{"name":"mkdtemp"},{"name":"open"},{"name":"opendir"},{"name":"read"},{"name":"readdir"},{"name":"readFile"},{"name":"readlink"},{"name":"readv"},{"name":"realpath"},{"name":"rename"},{"name":"rmdir"},{"name":"rm"},{"name":"stat"},{"name":"symlink"},{"name":"truncate"},{"name":"unlink"},{"name":"unwatchFile"},{"name":"utimes"},{"name":"watch"},{"name":"watchFile"},{"name":"write"},{"name":"writeFile"},{"name":"writev"},{"name":"accessSync"},{"name":"appendFileSync"},{"name":"chmodSync"},{"name":"chownSync"},{"name":"closeSync"},{"name":"copyFileSync"},{"name":"cpSync"},{"name":"existsSync"},{"name":"fchmodSync"},{"name":"fchownSync"},{"name":"fdatasyncSync"},{"name":"fstatSync"},{"name":"fsyncSync"},{"name":"ftruncateSync"},{"name":"futimesSync"},{"name":"lchmodSync"},{"name":"lchownSync"},{"name":"lutimesSync"},{"name":"linkSync"},{"name":"lstatSync"},{"name":"mkdirSync"},{"name":"mkdtempSync"},{"name":"openSync"},{"name":"opendirSync"},{"name":"readSync"},{"name":"readdirSync"},{"name":"readFileSync"},{"name":"readlinkSync"},{"name":"readvSync"},{"name":"realpathSync"},{"name":"renameSync"},{"name":"rmdirSync"},{"name":"rmSync"},{"name":"statSync"},{"name":"symlinkSync"},{"name":"truncateSync"},{"name":"unlinkSync"},{"name":"utimesSync"},{"name":"writeSync"},{"name":"writeFileSync"},{"name":"writevSync"}]},{"name":"fs/promises","methods":[{"name":"access"},{"name":"appendFile"},{"name":"chmod"},{"name":"chown"},{"name":"copyFile"},{"name":"cp"},{"name":"lchmod"},{"name":"lchown"},{"name":"lutimes"},{"name":"link"},{"name":"lstat"},{"name":"mkdir"},{"name":"mkdtemp"},{"name":"open"},{"name":"opendir"},{"name":"readdir"},{"name":"readFile"},{"name":"readlink"},{"name":"realpath"},{"name":"rename"},{"name":"rmdir"},{"name":"rm"},{"name":"stat"},{"name":"symlink"},{"name":"truncate"},{"name":"unlink"},{"name":"utimes"},{"name":"watch"},{"name":"writeFile"}]},{"name":"http","methods":[{"name":"Agent"},{"name":"createServer"},{"name":"get"},{"name":"request"}]},{"name":"http2","methods":[{"name":"createServer"},{"name":"createSecureServer"},{"name":"connect"},{"name":"getDefaultSettings"},{"name":"getPackedSettings"},{"name":"getUnpackedSettings"}]},{"name":"https","methods":[{"name":"Agent"},{"name":"createServer"},{"name":"get"},{"name":"request"}]},{"name":"inspector","methods":[{"name":"close"},{"name":"open"},{"name":"url"},{"name":"waitForDebugger"},{"name":"Session","isConstructor":true}]},{"name":"net","methods":[{"name":"Server"},{"name":"Socket"},{"name":"connect"},{"name":"createConnection"},{"name":"createServer"}]},{"name":"os","methods":[{"name":"arch"},{"name":"cpus"},{"name":"endianness"},{"name":"freemem"},{"name":"getPriority"},{"name":"homedir"},{"name":"hostname"},{"name":"loadavg"},{"name":"networkInterfaces"},{"name":"platform"},{"name":"release"},{"name":"setPriority"},{"name":"tmpdir"},{"name":"totalmem"},{"name":"type"},{"name":"uptime"},{"name":"userInfo"},{"name":"version"}]},{"name":"process","methods":[{"name":"abort"},{"name":"chdir"},{"name":"cpuUsage"},{"name":"cwd"},{"name":"disconnect"},{"name":"dlopen","needsExplicitPermission":true},{"name":"emitWarning"},{"name":"exit"},{"name":"getActiveResourcesInfo"},{"name":"getegid"},{"name":"geteuid"},{"name":"getgid"},{"name":"getgroups"},{"name":"getuid"},{"name":"hasUncaughtExceptionCaptureCallback"},{"name":"hrtime"},{"name":"initgroups"},{"name":"kill"},{"name":"memoryUsage"},{"name":"resourceUsage"},{"name":"send"},{"name":"setegid"},{"name":"seteuid"},{"name":"setgid"},{"name":"setgroups"},{"name":"setuid"},{"name":"setSourceMapsEnabled"},{"name":"setUncaughtExceptionCaptureCallback"},{"name":"umask"},{"name":"uptime"},{"name":"on"}]},{"name":"timers","methods":[{"name":"setImmediate"},{"name":"setInterval"},{"name":"setTimeout"},{"name":"clearImmediate"},{"name":"clearInterval"},{"name":"clearTimeout"}]},{"name":"timers/promises","methods":[{"name":"setImmediate"},{"name":"setInterval"},{"name":"setTimeout"}]},{"name":"tls","methods":[{"name":"Server"},{"name":"TLSSocket"},{"name":"checkServerIdentity"},{"name":"connect"},{"name":"createSecureContext"},{"name":"createSecurePair"},{"name":"createServer"},{"name":"getCiphers"}]},{"name":"trace_events","methods":[{"name":"createTracing"},{"name":"getEnabledCategories"}]},{"name":"v8","methods":[{"name":"cachedDataVersionTag"},{"name":"getHeapCodeStatistics"},{"name":"getHeapSnapshot"},{"name":"getHeapSpaceStatistics"},{"name":"getHeapStatistics"},{"name":"setFlagsFromString"},{"name":"stopCoverage"},{"name":"takeCoverage"},{"name":"writeHeapSnapshot"},{"name":"serialize"},{"name":"deserialize"}]},{"name":"vm","methods":[{"name":"Script","isConstructor":true,"needsExplicitPermission":true},{"name":"SourceTextModule"},{"name":"SyntheticModule"},{"name":"compileFunction"},{"name":"createContext"},{"name":"isContext"},{"name":"measureMemory"},{"name":"runInContext","needsExplicitPermission":true},{"name":"runInNewContext","needsExplicitPermission":true},{"name":"runInThisContext","needsExplicitPermission":true}]},{"name":"wasi","methods":[{"name":"WASI","isConstructor":true,"needsExplicitPermission":true}]},{"name":"worker_threads","methods":[{"name":"Worker","isConstructor":true},{"name":"getEnvironmentData"},{"name":"markAsUntransferable"},{"name":"moveMessagePortToContext"},{"name":"receiveMessageOnPort"},{"name":"setEnvironmentData"}]}]');var j=["debug","info","warn","error"],U={level:"warn"};j.forEach((function(e){U[e]=function(){var t;U.level&&j.indexOf(U.level)<=j.indexOf(e)&&(t=console)[e].apply(t,arguments)}}));const T=U;function N(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}var G;try{G=require("http")}catch(e){}var $="undefined"!=typeof XMLHttpRequest;G||$||T.error("tracking disabled for this platform: no HTTP or XMLHttpRequest available");var q,W={},z=[],H="127.0.0.1",Y=7071,V=!1,X=function(e){V=!!e};G&&(W.http={request:G.request}),$&&(W.xmlhttprequest={XMLHttpRequest,open:XMLHttpRequest.prototype.open,send:XMLHttpRequest.prototype.send,setRequestHeader:XMLHttpRequest.prototype.setRequestHeader});var J=function(){var e=new WeakSet;return function(t,n){if("object"===D(n)&&null!==n){if(e.has(n))return;e.add(n)}return n}},K=function(){try{if(V||0===z.length)return;if(T.debug("sending tracking..."),B()===M&&G){var e=W.http.request({port:Y,host:H,path:"/ingest",method:"POST",headers:{"content-type":"application/json"}},(function(){}));e.on("error",(function(e){return T.error("error tracking call to inspector:",e.message)})),e.end(JSON.stringify(z,J())),z=[]}else if($){var t=new W.xmlhttprequest.XMLHttpRequest;W.xmlhttprequest.open.call(t,"POST","http://".concat(H,":").concat(Y,"/ingest"),!0),W.xmlhttprequest.setRequestHeader.call(t,"content-type","application/json;charset=UTF-8"),W.xmlhttprequest.send.call(t,JSON.stringify(z,J())),z=[]}}catch(e){T.error("error tracking call to inspector:",e.message),T.error("attempted to track:",z)}finally{q=null}},Q=function(e,t){e&&"string"==typeof e&&(H=e),t&&"number"==typeof t&&(Y=t)};const Z=function(e){e&&"object"===D(e)?(z.push(function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:[];Array.isArray(e)&&(ae=-1!==e.findIndex((function(e){return"root"===e.module}))?te(e):[ie].concat(te(e)))},he=function(e){var t=["bind"].concat(te(e.map((function(e){return e.name}))));ae=[{module:/.*/,permissions:t},{module:"root",permissions:t}]},pe=function(e){var t=null==e?void 0:e.file,n=t,r=null==e?void 0:e.line,o=null==e?void 0:e.column;if(t&&null!=ue&&ue[t]){var i=ue[t].originalPositionFor({line:e.line,column:e.column});n=i.source,r=i.line,o=i.column}return{item:e,mapping:n,mappingLine:r,mappingColumn:o}},me=function(e,t){if(e&&"string"==typeof e){if(e.startsWith("node:"))return e.split("/")[0];if(e.includes("node_modules")){var n=e.split("/"),r=n.findIndex((function(e){return"node_modules"===e})),o=n[r+1];if(o.startsWith("@")){var i=n[r+2];i&&(o="".concat(o,"/").concat(i))}return o}if(t){var a;try{a=new URL(e)}catch(e){}if(a)return e}return"root"}},de=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.stack,n=e.allowURLs,r=void 0!==n&&n;try{var o=(t||l()).map((function(e){return pe(e)})).map((function(e){var t=e.item,n=e.mapping,o=e.mappingLine,i=e.mappingColumn,a=me(n,r);return{caller:t.caller,called:t.called,name:t.name,alias:t.alias,file:t.file,fileLine:t.line,fileColumn:t.column,mapping:n,mappingLine:o,mappingColumn:i,module:a}})),i=o.find((function(e){return"sandworm"!==e.module})),a=o.find((function(e){var t=e.module;return"sandworm"!==t&&void 0!==t&&!t.startsWith("node:")})),s=o.reverse().map((function(e){var t=e.module;return"root"===t||se.includes(t)||null!=t&&t.startsWith("node:")?void 0:t})).filter((function(e){return void 0!==e})),u="root",c=!1;if(s.length){if(s[0]===s[s.length-1]){var f=ee(s,1);u=f[0]}else u=s.filter((function(e,t,n){return n.indexOf(e)===t})).join(">");c=!!s.find((function(e){return e.startsWith("chrome-extension://")||e.startsWith("moz-extension://")}))}return{name:u,stack:o,directCaller:i,lastModuleCaller:a,isExtension:c}}catch(e){return T.error(e),{name:"root",error:e.message}}},ge=function(e){var t,n,r=e.module,o=e.family,i=e.method,a=e.directCaller,s=e.lastModuleCaller;if(null!=a&&null!==(t=a.module)&&void 0!==t&&null!==(n=t.startsWith)&&void 0!==n&&n.call(t,"node:")&&!i.needsExplicitPermission)return T.debug("-> call has been allowed",s?"as a consequence of `".concat(s.module,"` calling `").concat(s.alias||s.name,".").concat(s.called,"`"):""),!0;var u=function(e){if(Object.keys(oe).includes(e))return oe[e];var t=ae.find((function(t){return t.module===e}));if(t)return oe[e]=t.permissions,t.permissions;var n=ae.find((function(t){var n=t.module;return n instanceof RegExp&&e.match(n)}));return n?(oe[e]=n.permissions,n.permissions):(oe[e]=!1,!1)}(r);return"boolean"!=typeof u||i.needsExplicitPermission?!!Array.isArray(u)&&(u.includes(o.name)||u.includes("".concat(o.name,".").concat(i.name))||!i.needsExplicitPermission&&u.includes("*")):u};function ye(e){return ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ye(e)}function ve(e,t){if(t&&("object"===ye(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function be(e){var t="function"==typeof Map?new Map:void 0;return be=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return we(e,arguments,Ee(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),_e(r,e)},be(e)}function we(e,t,n){return we=Se()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var o=new(Function.bind.apply(e,r));return n&&_e(o,n.prototype),o},we.apply(null,arguments)}function Se(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function _e(e,t){return _e=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},_e(e,t)}function Ee(e){return Ee=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Ee(e)}var Ae=!0,Ce=function(e){Ae=!!e},Oe=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&_e(e,t)}(i,e);var t,n,r,o=(t=i,n=Se(),function(){var e,r=Ee(t);if(n){var o=Ee(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return ve(this,e)});function i(e){var t;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,i),(t=o.call(this,e)).name="SandwormError",t}return r=i,Object.defineProperty(r,"prototype",{writable:!1}),r}(be(Error));function Le(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:function(){};return function(){for(var r,o=de({allowURLs:!0}),i=o.name,a=o.stack,s=o.directCaller,u=o.lastModuleCaller,c=o.isExtension,l=o.error,f=arguments.length,h=new Array(f),p=0;pe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(s&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),_(n),l}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;_(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:A(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),l}},e}function je(e,t,n,r,o,i,a){try{var s=e[i](a),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,o)}function Ue(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var i=e.apply(t,n);function a(e){je(i,r,o,a,s,"next",e)}function s(e){je(i,r,o,a,s,"throw",e)}a(void 0)}))}}var Te=!1,Ne=!1,Fe=[],De=!1,Ge=B(),$e=function(e){return"[object Object]"===Object.prototype.toString.call(e)},qe=function(){return Te||Ge===R&&self.sandwormInitialized||Ge===M&&n.g.sandwormInitialized},We=function(){Te=!0,Ge===R?self.sandwormInitialized=!0:Ge===M&&(n.g.sandwormInitialized=!0)};const ze={init:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.loadSourceMaps,n=void 0===t?Ge===R:t,r=e.devMode,o=void 0!==r&&r,i=e.verbose,a=void 0!==i&&i,s=e.skipTracking,u=void 0!==s&&s,c=e.trackingIP,f=e.trackingPort,h=e.ignoreExtensions,p=void 0===h||h,m=e.trustedModules,d=void 0===m?[]:m,g=e.permissions,y=void 0===g?[]:g,v=e.allowInitFrom,b=void 0===v?"root":v;try{if(qe())return T.warn("already initialized"),Promise.resolve();var w=de({allowURLs:!1}),S=w.name;if(b instanceof RegExp&&!S.match(b)||"string"==typeof b&&S!==b||!(b instanceof RegExp)&&"string"!=typeof b)return T.warn("only root or specified module may call init (called from ".concat(S,")")),Promise.resolve();"boolean"!=typeof o?(T.warn("devMode option must be a boolean, defaulting to false"),De=!1):De=o,!0===a&&(T.level="debug"),X(u),Q(c,f),Array.isArray(d)?le(d):T.warn("trustedModules option must be an array, defaulting to empty array"),Ce(p);var _=[];return Ge===R?_=(0,Re.buildWebLibraryFrom)(I):Ge===M?_=(0,Re.buildNodeLibraryFrom)(k):T.debug("current platform is not supported"),De?he(_):y&&(Array.isArray(y)?fe(y):T.warn("permissions option must be an array, defaulting to empty array")),_.forEach((function(e){Me({family:e,track:function(e){De&&Ne&&(Fe.push(e),Z(e))}})})),We(),Ue(ke().mark((function e(){var t,r;return ke().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!n){e.next=18;break}if(!0!==n){e.next=13;break}return t=l()[1],r=t.file,e.t0=ce,e.t1=r,e.next=9,A(r);case 9:e.t2=e.sent,(0,e.t0)(e.t1,e.t2),e.next=17;break;case 13:if(!$e(n)){e.next=17;break}return e.next=16,Promise.all(Object.keys(n).map(function(){var e=Ue(ke().mark((function e(t){return ke().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=t,e.next=3,C(n[t]);case 3:return e.t1=e.sent,e.abrupt("return",[e.t0,e.t1]);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()));case 16:e.sent.forEach((function(e){var t=Be(e,2),n=t[0],r=t[1];ce(n,r)}));case 17:T.debug("loaded source maps");case 18:e.next=23;break;case 20:e.prev=20,e.t3=e.catch(0),T.error(e.t3);case 23:return e.prev=23,Ne=!0,T.debug("initialized"),e.finish(23);case 27:case"end":return e.stop()}}),e,null,[[0,20,23,27]])})))()}catch(e){return T.error(e),Ne=!0,T.debug("initialized with errors"),Promise.resolve()}},getHistory:function(){return De?Fe:[]},clearHistory:function(){De&&(Fe=[])},Error:Oe}})(),r.default})())); \ No newline at end of file diff --git a/package.json b/package.json index 84f579b..197c1d0 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,11 @@ "test-web": "npx playwright test --config=tests/configs/playwright.config.js", "test-node-ce": "yarn test-node-enforce && yarn test-node-capture", "test-node-all": "yarn test-node-ce && yarn test-node-unit", - "test-all": "yarn test-node-all && yarn test-web" + "test-all": "yarn test-node-all && yarn test-web", + "build-library-md": "node scripts/build-library-md.js", + "build-library-min": "node scripts/build-library-min.js", + "build-library": "yarn build-library-md && yarn build-library-min", + "prepare": "husky install" }, "bin": "cli/index.js", "author": "Sandworm ", @@ -40,6 +44,7 @@ "eslint-plugin-prettier": "^4.2.1", "eslint-plugin-react": "^7.28.0", "eslint-plugin-react-hooks": "^4.3.0", + "husky": "^8.0.0", "jest": "^27.5.1", "jest-junit": "^14.0.0", "playwright-watch": "^1.3.23", diff --git a/scripts/generate-library-md.js b/scripts/build-library-md.js similarity index 54% rename from scripts/generate-library-md.js rename to scripts/build-library-md.js index 78efed1..8a276d2 100644 --- a/scripts/generate-library-md.js +++ b/scripts/build-library-md.js @@ -1,8 +1,9 @@ const {createWriteStream} = require('fs'); const path = require('path'); -const webLibrary = require('../src/library/web'); -const nodeLibrary = require('../src/library/node'); +const webLibrary = require('../src/library/web.json'); +const nodeLibrary = require('../src/library/node.json'); +const {buildNodeLibraryFrom, buildWebLibraryFrom} = require('../src/library/builder'); const filePath = path.join(__dirname, '..', 'LIBRARY.md'); const stream = createWriteStream(filePath, {flags: 'w'}); @@ -20,9 +21,14 @@ const writeLib = (library) => { stream.write('# Sandworm.JS Library\n'); stream.write('## Node\n'); -writeLib(nodeLibrary()); +writeLib(buildNodeLibraryFrom(nodeLibrary)); stream.write('## Web\n'); -writeLib(webLibrary()); +writeLib(buildWebLibraryFrom(webLibrary)); + +stream.write('## `bind` calls\n'); +stream.write( + 'For each method listed above, Sandworm also intercepts `bind` calls. To allow `bind` calls with more than one argument, the `bind.args` permission is required. [Read more](README.md#bind-calls).', +); stream.end(); diff --git a/scripts/build-library-min.js b/scripts/build-library-min.js new file mode 100644 index 0000000..5f94487 --- /dev/null +++ b/scripts/build-library-min.js @@ -0,0 +1,33 @@ +const {writeFileSync} = require('fs'); +const path = require('path'); + +const webLibrary = require('../src/library/web.json'); +const nodeLibrary = require('../src/library/node.json'); + +const webMinLibraryPath = path.join(__dirname, '..', 'src', 'library', 'web.min.json'); +const nodeMinLibraryPath = path.join(__dirname, '..', 'src', 'library', 'node.min.json'); + +const cleanMethod = (method) => ({ + ...method, + description: undefined, + url: undefined, +}); + +[ + {lib: webLibrary, output: webMinLibraryPath}, + {lib: nodeLibrary, output: nodeMinLibraryPath}, +].forEach(({lib, output}) => { + const minimized = lib.map((family) => ({ + ...family, + constructorDescription: undefined, + constructorUrl: undefined, + methods: family.methods?.map(cleanMethod), + globalMethods: family.globalMethods?.map(cleanMethod), + globalPropertyMethods: family.globalPropertyMethods?.map(cleanMethod), + navigatorMethods: family.navigatorMethods?.map(cleanMethod), + documentMethods: family.documentMethods?.map(cleanMethod), + swrMethods: family.swrMethods?.map(cleanMethod), + globalConstructors: family.globalConstructors?.map(cleanMethod), + })); + writeFileSync(output, JSON.stringify(minimized)); +}); diff --git a/src/index.js b/src/index.js index c386e72..05e82fd 100644 --- a/src/index.js +++ b/src/index.js @@ -1,8 +1,8 @@ import {currentStack} from './stack'; import {getSourceMap, getSourceMapFromSource} from './source'; import platform, {PLATFORMS} from './platform'; -import webLibrary from './library/web'; -import nodeLibrary from './library/node'; +import webLibrary from './library/web.min.json'; +import nodeLibrary from './library/node.min.json'; import logger from './logger'; import track, {setSkipTracking, setTrackingServer} from './track'; import { @@ -13,6 +13,7 @@ import { setPermissions, } from './module'; import patch, {SandwormError, setIgnoreExtensions} from './patch'; +import {buildNodeLibraryFrom, buildWebLibraryFrom} from './library/builder'; let initialized = false; let ready = false; @@ -92,9 +93,9 @@ const init = ({ let library = []; if (currentPlatform === PLATFORMS.WEB) { - library = webLibrary(); + library = buildWebLibraryFrom(webLibrary); } else if (currentPlatform === PLATFORMS.NODE) { - library = nodeLibrary(); + library = buildNodeLibraryFrom(nodeLibrary); } else { logger.debug('current platform is not supported'); } diff --git a/src/library/builder.js b/src/library/builder.js index 71195e1..4d7c928 100644 --- a/src/library/builder.js +++ b/src/library/builder.js @@ -91,4 +91,7 @@ const node = ({name, methods, globalMethod}) => { }; }; -module.exports = {web, node}; +module.exports = { + buildNodeLibraryFrom: (lib) => lib.map((family) => node(family)), + buildWebLibraryFrom: (lib) => lib.reduce((acc, cur) => [...acc, ...web(cur)], []), +}; diff --git a/src/library/node.js b/src/library/node.js deleted file mode 100644 index b5b36ed..0000000 --- a/src/library/node.js +++ /dev/null @@ -1,1505 +0,0 @@ -const {node: builder} = require('./builder'); - -const library = () => - [ - { - name: 'child_process', - methods: [ - { - name: 'exec', - description: 'Spawn a shell and execute an arbitrary command', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback', - needsExplicitPermission: true, - }, - { - name: 'execFile', - description: 'Spawn a shell and execute an arbitrary file', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback', - needsExplicitPermission: true, - }, - { - name: 'fork', - description: 'Fork a child process', - url: 'https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options', - }, - { - name: 'spawn', - description: 'Spawn a new process', - url: 'https://nodejs.org/api/child_process.html#child_processspawncommand-args-options', - }, - { - name: 'execFileSync', - description: 'Spawn a shell and execute an arbitrary file', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options', - needsExplicitPermission: true, - }, - { - name: 'execSync', - description: 'Spawn a shell and execute an arbitrary command', - url: 'https://nodejs.org/api/child_process.html#child_processexecsynccommand-options', - needsExplicitPermission: true, - }, - { - name: 'spawnSync', - description: 'Spawn a new process', - url: 'https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options', - }, - ], - }, - { - name: 'cluster', - methods: [ - { - name: 'disconnect', - description: 'Disconnect a worker from its parent process', - url: 'https://nodejs.org/api/cluster.html#workerdisconnect', - }, - { - name: 'fork', - description: 'Fork a new worker process', - url: 'https://nodejs.org/api/cluster.html#clusterforkenv', - }, - { - name: 'setupPrimary', - description: 'Change the default fork behavior of cluster.fork', - url: 'https://nodejs.org/api/cluster.html#clustersetupprimarysettings', - }, - { - name: 'setupMaster', - description: 'Change the default fork behavior of cluster.fork', - url: 'https://nodejs.org/api/cluster.html#clustersetupmastersettings', - }, - ], - }, - { - name: 'dgram', - methods: [ - { - name: 'createSocket', - description: 'Create a datagram socket', - url: 'https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_type_callback', - }, - ], - }, - { - name: 'dns', - methods: [ - { - name: 'Resolver', - isConstructor: true, - description: 'Create a DNS resolver', - url: 'https://nodejs.org/api/dns.html#dns_class_dns_resolver', - }, - { - name: 'getServers', - description: 'Get the list of current DNS servers', - url: 'https://nodejs.org/api/dns.html#dns_dns_getservers', - }, - { - name: 'lookup', - description: 'Resolve a host name into the first found A or AAAA record', - url: 'https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback', - }, - { - name: 'lookupService', - description: 'Resolve the given address and port into a host name and service', - url: 'https://nodejs.org/api/dns.html#dnslookupserviceaddress-port-callback', - }, - { - name: 'resolve', - description: 'Resolve a host name into an array of records', - url: 'https://nodejs.org/api/dns.html#dnsresolvehostname-rrtype-callback', - }, - { - name: 'resolve4', - description: 'Resolve a host name to an IPv4 address', - url: 'https://nodejs.org/api/dns.html#dnsresolve4hostname-options-callback', - }, - { - name: 'resolve6', - description: 'Resolve a host name to an IPv6 address', - url: 'https://nodejs.org/api/dns.html#dnsresolve6hostname-options-callback', - }, - { - name: 'resolveAny', - description: 'Resolve a host name to an array of records', - url: 'https://nodejs.org/api/dns.html#dnsresolveanyhostname-callback', - }, - { - name: 'resolveCname', - description: 'Resolve a host name to an array of CNAME records', - url: 'https://nodejs.org/api/dns.html#dnsresolvecnamehostname-callback', - }, - { - name: 'resolveCaa', - description: 'Resolve a host name to an array of CAA records', - url: 'https://nodejs.org/api/dns.html#dnsresolvecaahostname-callback', - }, - { - name: 'resolveMx', - description: 'Resolve a host name to an array of MX records', - url: 'https://nodejs.org/api/dns.html#dnsresolvemxhostname-callback', - }, - { - name: 'resolveNaptr', - description: 'Resolve a host name to an array of NAPTR records', - url: 'https://nodejs.org/api/dns.html#dnsresolvenaptrhostname-callback', - }, - { - name: 'resolveNs', - description: 'Resolve a host name to an array of NS records', - url: 'https://nodejs.org/api/dns.html#dnsresolvenshostname-callback', - }, - { - name: 'resolvePtr', - description: 'Resolve a host name to an array of PTR records', - url: 'https://nodejs.org/api/dns.html#dnsresolveptrhostname-callback', - }, - { - name: 'resolveSoa', - description: 'Resolve a host name to an SOA record', - url: 'https://nodejs.org/api/dns.html#dnsresolvesoahostname-callback', - }, - { - name: 'resolveSrv', - description: 'Resolve a host name to an array of SRV records', - url: 'https://nodejs.org/api/dns.html#dnsresolvesrvhostname-callback', - }, - { - name: 'resolveTxt', - description: 'Resolve a host name to an array of TXT records', - url: 'https://nodejs.org/api/dns.html#dnsresolvetxthostname-callback', - }, - { - name: 'reverse', - description: 'Perform a reverse lookup for the given address', - url: 'https://nodejs.org/api/dns.html#dnsreverseip-callback', - }, - { - name: 'setDefaultResultOrder', - description: 'Set the default order for result records', - url: 'https://nodejs.org/api/dns.html#dnssetdefaultresultorderorder', - }, - { - name: 'setServers', - description: 'Set the list of DNS servers to be used', - url: 'https://nodejs.org/api/dns.html#dns_dns_setservers_servers', - }, - ], - }, - { - name: 'fetch', - methods: [ - { - name: 'fetch', - description: 'Communicate with a web server', - url: 'https://nodejs.org/api/fetch/', - }, - ], - globalMethod: true, - }, - { - name: 'eval', - methods: [ - { - name: 'eval', - description: 'Run arbitrary JS code from a string', - url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval', - needsExplicitPermission: true, - }, - ], - globalMethod: true, - }, - { - name: 'Function', - methods: [ - { - name: 'Function', - description: 'Create a new function from an arbitrary string', - url: 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function', - needsExplicitPermission: true, - }, - ], - globalMethod: true, - }, - { - name: 'fs', - methods: [ - // Callback API - { - name: 'access', - description: "Test a user's permissions for a file or directory", - url: 'https://nodejs.org/api/fs.html#fsaccesspath-mode-callback', - }, - { - name: 'appendFile', - description: 'Append to a file', - url: 'https://nodejs.org/api/fs.html#fsappendfilepath-data-options-callback', - }, - { - name: 'chmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fschmodpath-mode-callback', - }, - { - name: 'chown', - description: 'Change file ownership', - url: 'https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback', - }, - { - name: 'close', - description: 'Close a file descriptor', - url: 'https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback', - }, - { - name: 'copyFile', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback', - }, - { - name: 'cp', - description: 'Copy a directory', - url: 'https://nodejs.org/api/fs.html#fscpsrc-dest-options-callback', - }, - { - name: 'createReadStream', - description: 'Create a readable stream', - url: 'https://nodejs.org/api/fs.html#fscreatereadstreampath-options', - }, - { - name: 'createWriteStream', - description: 'Create a writable stream', - url: 'https://nodejs.org/api/fs.html#fscreatewritestreampath-options', - }, - { - name: 'exists', - description: 'Test whether or not a file exists', - url: 'https://nodejs.org/api/fs.html#fsexistspath-callback', - }, - { - name: 'fchmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fsfchmodfd-mode-callback', - }, - { - name: 'fchown', - description: 'Change file ownership', - url: 'https://nodejs.org/api/fs.html#fsfchownfd-uid-gid-callback', - }, - { - name: 'fdatasync', - description: 'Force all currently queued I/O operations to completion', - url: 'https://nodejs.org/api/fs.html#fsfdatasyncfd-callback', - }, - { - name: 'fstat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsfstatfd-options-callback', - }, - { - name: 'fsync', - description: 'Request data to be flushed to the storage device', - url: 'https://nodejs.org/api/fs.html#fsfsyncfd-callback', - }, - { - name: 'ftruncate', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fsftruncatefd-len-callback', - }, - { - name: 'futimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsfutimesfd-atime-mtime-callback', - }, - { - name: 'lchmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fslchmodpath-mode-callback', - }, - { - name: 'lchown', - description: 'Change file ownership', - url: 'https://nodejs.org/api/fs.html#fslchownpath-uid-gid-callback', - }, - { - name: 'lutimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fslutimespath-atime-mtime-callback', - }, - { - name: 'link', - description: 'Create a new link', - url: 'https://nodejs.org/api/fs.html#fslinkexistingpath-newpath-callback', - }, - { - name: 'lstat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fslstatpath-options-callback', - }, - { - name: 'mkdir', - description: 'Create a directory', - url: 'https://nodejs.org/api/fs.html#fsmkdirpath-options-callback', - }, - { - name: 'mkdtemp', - description: 'Create a unique temporary directory', - url: 'https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback', - }, - { - name: 'open', - description: 'Open a file', - url: 'https://nodejs.org/api/fs.html#fsopenpath-flags-mode-callback', - }, - { - name: 'opendir', - description: 'Open a directory', - url: 'https://nodejs.org/api/fs.html#fsopendirpath-options-callback', - }, - { - name: 'read', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadfd-buffer-offset-length-position-callback', - }, - { - name: 'readdir', - description: 'Read a directory', - url: 'https://nodejs.org/api/fs.html#fsreaddirpath-options-callback', - }, - { - name: 'readFile', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadfilepath-options-callback', - }, - { - name: 'readlink', - description: 'Read a symbolic link', - url: 'https://nodejs.org/api/fs.html#fsreadlinkpath-options-callback', - }, - { - name: 'readv', - description: 'Read from a file', - url: 'https://nodejs.org/api/fs.html#fsreadvfd-buffers-position-callback', - }, - { - name: 'realpath', - description: 'Resolve a canonical path', - url: 'https://nodejs.org/api/fs.html#fsrealpathpath-options-callback', - }, - { - name: 'rename', - description: 'Rename a file or directory', - url: 'https://nodejs.org/api/fs.html#fsrenameoldpath-newpath-callback', - }, - { - name: 'rmdir', - description: 'Remove a directory', - url: 'https://nodejs.org/api/fs.html#fsrmdirpath-options-callback', - }, - { - name: 'rm', - description: 'Remove a file', - url: 'https://nodejs.org/api/fs.html#fsrmpath-options-callback', - }, - { - name: 'stat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsstatpath-options-callback', - }, - { - name: 'symlink', - description: 'Create a symbolic link', - url: 'https://nodejs.org/api/fs.html#fssymlinktarget-path-type-callback', - }, - { - name: 'truncate', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fstruncatepath-len-callback', - }, - { - name: 'unlink', - description: 'Delete a file', - url: 'https://nodejs.org/api/fs.html#fsunlinkpath-callback', - }, - { - name: 'unwatchFile', - description: 'Stop watching a file for changes', - url: 'https://nodejs.org/api/fs.html#fsunwatchfilefilename-listener', - }, - { - name: 'utimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsutimespath-atime-mtime-callback', - }, - { - name: 'watch', - description: 'Monitor a file for changes', - url: 'https://nodejs.org/api/fs.html#fswatchfilename-options-listener', - }, - { - name: 'watchFile', - description: 'Monitor a file for changes', - url: 'https://nodejs.org/api/fs.html#fswatchfilefilename-options-listener', - }, - { - name: 'write', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritefd-buffer-offset-length-position-callback', - }, - { - name: 'writeFile', - description: 'Write a file', - url: 'https://nodejs.org/api/fs.html#fswritefilefile-data-options-callback', - }, - { - name: 'writev', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritevfd-buffers-position-callback', - }, - // Synchronous API - { - name: 'accessSync', - description: "Test a user's permissions for a file or directory", - url: 'https://nodejs.org/api/fs.html#fsaccesssyncpath-mode', - }, - { - name: 'appendFileSync', - description: 'Append data to a file', - url: 'https://nodejs.org/api/fs.html#fsappendfilesyncpath-data-options', - }, - { - name: 'chmodSync', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fschmodsyncpath-mode', - }, - { - name: 'chownSync', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fschownsyncpath-uid-gid', - }, - { - name: 'closeSync', - description: 'Close a file', - url: 'https://nodejs.org/api/fs.html#fsclosesyncfd', - }, - { - name: 'copyFileSync', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fscopyfilesyncsrc-dest-mode', - }, - { - name: 'cpSync', - description: 'Copy a directory', - url: 'https://nodejs.org/api/fs.html#fscpsyncsrc-dest-options', - }, - { - name: 'existsSync', - description: 'Test whether a file exists', - url: 'https://nodejs.org/api/fs.html#fsexistssyncpath', - }, - { - name: 'fchmodSync', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fsfchmodsyncfd-mode', - }, - { - name: 'fchownSync', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fsfchownsyncfd-uid-gid', - }, - { - name: 'fdatasyncSync', - description: 'Force all currently queued I/O operations to completion', - url: 'https://nodejs.org/api/fs.html#fsfdatasyncsyncfd', - }, - { - name: 'fstatSync', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsfstatsyncfd-options', - }, - { - name: 'fsyncSync', - description: 'Force all data to be flushed to the storage device', - url: 'https://nodejs.org/api/fs.html#fsfsyncsyncfd', - }, - { - name: 'ftruncateSync', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fsftruncatesyncfd-len', - }, - { - name: 'futimesSync', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsfutimessyncfd-atime-mtime', - }, - { - name: 'lchmodSync', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fslchmodsyncpath-mode', - }, - { - name: 'lchownSync', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fslchownsyncpath-uid-gid', - }, - { - name: 'lutimesSync', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fslutimessyncpath-atime-mtime', - }, - { - name: 'linkSync', - description: 'Create a hard link', - url: 'https://nodejs.org/api/fs.html#fslinksyncexistingpath-newpath', - }, - { - name: 'lstatSync', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fslstatsyncpath-options', - }, - { - name: 'mkdirSync', - description: 'Create a directory', - url: 'https://nodejs.org/api/fs.html#fsmkdirsyncpath-options', - }, - { - name: 'mkdtempSync', - description: 'Create a temporary directory', - url: 'https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options', - }, - { - name: 'openSync', - description: 'Open a file', - url: 'https://nodejs.org/api/fs.html#fsopensyncpath-flags-mode', - }, - { - name: 'opendirSync', - description: 'Open a directory', - url: 'https://nodejs.org/api/fs.html#fsopendirsyncpath-options', - }, - { - name: 'readSync', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadsyncfd-buffer-offset-length-position', - }, - { - name: 'readdirSync', - description: 'Read a directory', - url: 'https://nodejs.org/api/fs.html#fsreaddirsyncpath-options', - }, - { - name: 'readFileSync', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fsreadfilesyncpath-options', - }, - { - name: 'readlinkSync', - description: 'Read a symbolic link', - url: 'https://nodejs.org/api/fs.html#fsreadlinksyncpath-options', - }, - { - name: 'readvSync', - description: 'Read from a file', - url: 'https://nodejs.org/api/fs.html#fsreadvsyncfd-buffers-position', - }, - { - name: 'realpathSync', - description: 'Return canonical absolute pathname', - url: 'https://nodejs.org/api/fs.html#fsrealpathsyncpath-options', - }, - { - name: 'renameSync', - description: 'Rename a file or directory', - url: 'https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath', - }, - { - name: 'rmdirSync', - description: 'Remove a directory', - url: 'https://nodejs.org/api/fs.html#fsrmdirsyncpath-options', - }, - { - name: 'rmSync', - description: 'Remove a file', - url: 'https://nodejs.org/api/fs.html#fsrmsyncpath-options', - }, - { - name: 'statSync', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fsstatsyncpath-options', - }, - { - name: 'symlinkSync', - description: 'Create a symbolic link', - url: 'https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type', - }, - { - name: 'truncateSync', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fstruncatesyncpath-len', - }, - { - name: 'unlinkSync', - description: 'Delete a file', - url: 'https://nodejs.org/api/fs.html#fsunlinksyncpath', - }, - { - name: 'utimesSync', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fsutimessyncpath-atime-mtime', - }, - { - name: 'writeSync', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritesyncfd-buffer-offset-length-position', - }, - { - name: 'writeFileSync', - description: 'Write a file', - url: 'https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options', - }, - { - name: 'writevSync', - description: 'Write to a file', - url: 'https://nodejs.org/api/fs.html#fswritevsyncfd-buffers-position', - }, - ], - }, - { - name: 'fs/promises', - methods: [ - { - name: 'access', - description: "Test a user's permissions for a file or directory", - url: 'https://nodejs.org/api/fs.html#fspromisesaccesspath-mode', - }, - { - name: 'appendFile', - description: 'Append data to a file', - url: 'https://nodejs.org/api/fs.html#fspromisesappendfilepath-data-options', - }, - { - name: 'chmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fspromiseschmodpath-mode', - }, - { - name: 'chown', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fspromiseschownpath-uid-gid', - }, - { - name: 'copyFile', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fspromisescopyfilesrc-dest-mode', - }, - { - name: 'cp', - description: 'Copy a file', - url: 'https://nodejs.org/api/fs.html#fspromisescpsrc-dest-options', - }, - { - name: 'lchmod', - description: 'Change file permissions', - url: 'https://nodejs.org/api/fs.html#fspromiseslchmodpath-mode', - }, - { - name: 'lchown', - description: 'Change file owner', - url: 'https://nodejs.org/api/fs.html#fspromiseslchownpath-uid-gid', - }, - { - name: 'lutimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fspromiseslutimespath-atime-mtime', - }, - { - name: 'link', - description: 'Create a hard link', - url: 'https://nodejs.org/api/fs.html#fspromiseslinkexistingpath-newpath', - }, - { - name: 'lstat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fspromiseslstatpath-options', - }, - { - name: 'mkdir', - description: 'Create a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesmkdirpath-options', - }, - { - name: 'mkdtemp', - description: 'Create a temporary directory', - url: 'https://nodejs.org/api/fs.html#fspromisesmkdtempprefix-options', - }, - { - name: 'open', - description: 'Open a file', - url: 'hhttps://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode', - }, - { - name: 'opendir', - description: 'Open a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesopendirpath-options', - }, - { - name: 'readdir', - description: 'Read a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesreaddirpath-options', - }, - { - name: 'readFile', - description: 'Read a file', - url: 'https://nodejs.org/api/fs.html#fspromisesreadfilepath-options', - }, - { - name: 'readlink', - description: 'Read a symbolic link', - url: 'https://nodejs.org/api/fs.html#fspromisesreadlinkpath-options', - }, - { - name: 'realpath', - description: 'Return canonical absolute pathname', - url: 'https://nodejs.org/api/fs.html#fspromisesrealpathpath-options', - }, - { - name: 'rename', - description: 'Rename a file or directory', - url: 'https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath', - }, - { - name: 'rmdir', - description: 'Remove a directory', - url: 'https://nodejs.org/api/fs.html#fspromisesrmdirpath-options', - }, - { - name: 'rm', - description: 'Remove a file', - url: 'https://nodejs.org/api/fs.html#fspromisesrmpath-options', - }, - { - name: 'stat', - description: 'Get file status', - url: 'https://nodejs.org/api/fs.html#fspromisesstatpath-options', - }, - { - name: 'symlink', - description: 'Create a symbolic link', - url: 'https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type', - }, - { - name: 'truncate', - description: 'Truncate a file to a specified length', - url: 'https://nodejs.org/api/fs.html#fspromisestruncatepath-len', - }, - { - name: 'unlink', - description: 'Delete a file', - url: 'https://nodejs.org/api/fs.html#fspromisesunlinkpath', - }, - { - name: 'utimes', - description: 'Change file timestamps', - url: 'https://nodejs.org/api/fs.html#fspromisesutimespath-atime-mtime', - }, - { - name: 'watch', - description: 'Watch for changes on a file', - url: 'https://nodejs.org/api/fs.html#fspromiseswatchfilename-options', - }, - { - name: 'writeFile', - description: 'Write data to a file', - url: 'https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options', - }, - ], - }, - { - name: 'http', - methods: [ - { - name: 'Agent', - description: 'Manage HTTP connection persistence and reuse', - url: 'https://nodejs.org/api/http.html#class-httpagent', - }, - { - name: 'createServer', - description: 'Create a new HTTP server', - url: 'https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener', - }, - { - name: 'get', - description: 'Send a GET request to a server', - url: 'https://nodejs.org/api/http.html#httpgetoptions-callback', - }, - { - name: 'request', - description: 'Send an HTTP request to a server', - url: 'https://nodejs.org/api/http.html#httprequestoptions-callback', - }, - ], - }, - { - name: 'http2', - methods: [ - { - name: 'createServer', - description: 'Create a new HTTP/2 server', - url: 'https://nodejs.org/api/http2.html#http2createserveroptions-onrequesthandler', - }, - { - name: 'createSecureServer', - description: 'Create a new secure HTTP/2 server', - url: 'https://nodejs.org/api/http2.html#http2createsecureserveroptions-onrequesthandler', - }, - { - name: 'connect', - description: 'Establish a connection to a server', - url: 'https://nodejs.org/api/http2.html#http2connectauthority-options-listener', - }, - { - name: 'getDefaultSettings', - description: 'Get the default settings for a HTTP/2 session', - url: 'https://nodejs.org/api/http2.html#http2getdefaultsettings', - }, - { - name: 'getPackedSettings', - description: 'Get the current settings for a HTTP/2 session', - url: 'https://nodejs.org/api/http2.html#http2getpackedsettings', - }, - { - name: 'getUnpackedSettings', - description: 'Get the current settings for a HTTP/2 session', - url: 'hhttps://nodejs.org/api/http2.html#http2getunpackedsettingsbuf', - }, - ], - }, - { - name: 'https', - methods: [ - { - name: 'Agent', - description: 'Manage HTTPS connection persistence and reuse', - url: 'https://nodejs.org/api/https.html#class-httpsagent', - }, - { - name: 'createServer', - description: 'Create a new HTTPS server', - url: 'https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener', - }, - { - name: 'get', - description: 'Send a GET request to a server', - url: 'https://nodejs.org/api/https.html#httpsgetoptions-callback', - }, - { - name: 'request', - description: 'Send an HTTPS request to a server', - url: 'https://nodejs.org/api/https.html#httpsrequestoptions-callback', - }, - ], - }, - { - name: 'inspector', - methods: [ - { - name: 'close', - description: 'Close a V8 inspector', - url: 'https://nodejs.org/api/inspector.html#inspectorclose', - }, - { - name: 'open', - description: 'Open a V8 inspector', - url: 'https://nodejs.org/api/inspector.html#inspectoropenport-host-wait', - }, - { - name: 'url', - description: 'Get the URL of the V8 inspector', - url: 'https://nodejs.org/api/inspector.html#inspectorurl', - }, - { - name: 'waitForDebugger', - description: 'Wait for the V8 debugger to connect', - url: 'https://nodejs.org/api/inspector.html#inspectorwaitfordebugger', - }, - { - name: 'Session', - isConstructor: true, - description: 'Create a new V8 inspector session', - url: 'https://nodejs.org/api/inspector.html#class-inspectorsession', - }, - ], - }, - { - name: 'net', - methods: [ - { - name: 'Server', - description: 'Create a new TCP server', - url: 'https://nodejs.org/api/net.html#class-netserver', - }, - { - name: 'Socket', - description: 'Create a new TCP socket', - url: 'https://nodejs.org/api/net.html#class-netsocket', - }, - { - name: 'connect', - description: 'Connect to a remote TCP server', - url: 'https://nodejs.org/api/net.html#netconnect', - }, - { - name: 'createConnection', - description: 'Connect to a remote TCP server', - url: 'https://nodejs.org/api/net.html#netcreateconnection', - }, - { - name: 'createServer', - description: 'Create a new TCP server', - url: 'https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener', - }, - ], - }, - { - name: 'os', - methods: [ - { - name: 'arch', - description: 'Get the CPU architecture', - url: 'https://nodejs.org/api/os.html#osarch', - }, - { - name: 'cpus', - description: 'Get CPU information', - url: 'https://nodejs.org/api/os.html#oscpus', - }, - { - name: 'endianness', - description: 'Get the endianness of the CPU', - url: 'https://nodejs.org/api/os.html#osendianness', - }, - { - name: 'freemem', - description: 'Get the amount of free system memory', - url: 'https://nodejs.org/api/os.html#osfreemem', - }, - { - name: 'getPriority', - description: 'Get the scheduling priority for a process', - url: 'https://nodejs.org/api/os.html#osgetprioritypid', - }, - { - name: 'homedir', - description: 'Get the home directory path for the current user', - url: 'https://nodejs.org/api/os.html#oshomedir', - }, - { - name: 'hostname', - description: 'Get the hostname of the OS', - url: 'https://nodejs.org/api/os.html#oshostname', - }, - { - name: 'loadavg', - description: 'Get system load average information', - url: 'https://nodejs.org/api/os.html#osloadavg', - }, - { - name: 'networkInterfaces', - description: 'Get a list of network interfaces', - url: 'https://nodejs.org/api/os.html#osnetworkinterfaces', - }, - { - name: 'platform', - description: 'Get the operating system platform', - url: 'https://nodejs.org/api/os.html#osplatform', - }, - { - name: 'release', - description: 'Get the operating system release', - url: 'https://nodejs.org/api/os.html#osrelease', - }, - { - name: 'setPriority', - description: 'Set the scheduling priority for a process', - url: 'https://nodejs.org/api/os.html#ossetprioritypid-priority', - }, - { - name: 'tmpdir', - description: 'Get the path of a temporary directory', - url: 'https://nodejs.org/api/os.html#ostmpdir', - }, - { - name: 'totalmem', - description: 'Get the total amount of system memory', - url: 'https://nodejs.org/api/os.html#ostotalmem', - }, - { - name: 'type', - description: 'Get the operating system name', - url: 'https://nodejs.org/api/os.html#ostype', - }, - { - name: 'uptime', - description: 'Get the system uptime', - url: 'https://nodejs.org/api/os.html#osuptime', - }, - { - name: 'userInfo', - description: 'Get current user information', - url: 'https://nodejs.org/api/os.html#osuserinfooptions', - }, - { - name: 'version', - description: 'Get the kernel version', - url: 'https://nodejs.org/api/os.html#osversion', - }, - ], - }, - { - name: 'process', - methods: [ - { - name: 'abort', - description: 'Exit the Node.js process immediately', - url: 'https://nodejs.org/api/process.html#processabort', - }, - { - name: 'chdir', - description: 'Change the current working directory', - url: 'https://nodejs.org/api/process.html#processchdirdirectory', - }, - { - name: 'cpuUsage', - description: 'Get current process CPU usage info', - url: 'https://nodejs.org/api/process.html#processcpuusagepreviousvalue', - }, - { - name: 'cwd', - description: 'Get the current working directory', - url: 'https://nodejs.org/api/process.html#processcwd', - }, - { - name: 'disconnect', - description: 'Disconnect child process from parent', - url: 'https://nodejs.org/api/process.html#processdisconnect', - }, - { - name: 'dlopen', - description: 'Load C++ addons', - url: 'https://nodejs.org/api/process.html#processdlopenmodule-filename-flags', - needsExplicitPermission: true, - }, - { - name: 'emitWarning', - description: 'Emit a custom process warning', - url: 'https://nodejs.org/api/process.html#processemitwarningwarning-options', - }, - { - name: 'exit', - description: 'Exit the Node.js process', - url: 'https://nodejs.org/api/process.html#processexitcode', - }, - { - name: 'getActiveResourcesInfo', - description: 'Get a list of resources currently keeping the event loop alive', - url: 'https://nodejs.org/api/process.html#processgetactiveresourcesinfo', - }, - { - name: 'getegid', - description: 'Get the effective group id of the Node.js process', - url: 'https://nodejs.org/api/process.html#processgetegid', - }, - { - name: 'geteuid', - description: 'Get the effective numerical user id', - url: 'https://nodejs.org/api/process.html#processgeteuid', - }, - { - name: 'getgid', - description: 'Get the numerical group id of the process', - url: 'https://nodejs.org/api/process.html#processgetgid', - }, - { - name: 'getgroups', - description: 'Get the list of supplementary group ids', - url: 'https://nodejs.org/api/process.html#processgetgroups', - }, - { - name: 'getuid', - description: 'Get the numerical user id of the process', - url: 'https://nodejs.org/api/process.html#processgetuid', - }, - { - name: 'hasUncaughtExceptionCaptureCallback', - description: 'Find out if there is an uncaught exception callback set', - url: 'https://nodejs.org/api/process.html#processhasuncaughtexceptioncapturecallback', - }, - { - name: 'hrtime', - description: 'Get high resolution time', - url: 'https://nodejs.org/api/process.html#processhrtimetime', - }, - { - name: 'initgroups', - description: 'Initialize the group access list', - url: 'https://nodejs.org/api/process.html#processinitgroupsuser-extragroup', - }, - { - name: 'kill', - description: 'Kill a process', - url: 'https://nodejs.org/api/process.html#processkillpid-signal', - }, - { - name: 'memoryUsage', - description: 'Get memory usage information', - url: 'https://nodejs.org/api/process.html#processmemoryusage', - }, - { - name: 'resourceUsage', - description: 'Get resource usage information', - url: 'https://nodejs.org/api/process.html#processresourceusage', - }, - { - name: 'send', - description: 'Send a message to a process', - url: 'https://nodejs.org/api/process.html#processsendmessage-sendhandle-options-callback', - }, - { - name: 'setegid', - description: 'Set the effective group id of the process', - url: 'https://nodejs.org/api/process.html#processsetegidid', - }, - { - name: 'seteuid', - description: 'Set the effective user id of the process', - url: 'https://nodejs.org/api/process.html#processseteuidid', - }, - { - name: 'setgid', - description: 'Set the group id of the process', - url: 'https://nodejs.org/api/process.html#processsetgidid', - }, - { - name: 'setgroups', - description: 'Set the supplementary group ids of the process', - url: 'https://nodejs.org/api/process.html#processsetgroupsgroups', - }, - { - name: 'setuid', - description: 'Set the user id of the process', - url: 'https://nodejs.org/api/process.html#processsetuidid', - }, - { - name: 'setSourceMapsEnabled', - description: 'Enable/disable source maps', - url: 'https://nodejs.org/api/process.html#processsetsourcemapsenabledval', - }, - { - name: 'setUncaughtExceptionCaptureCallback', - description: 'Set a callback to run when there is an uncaught exception', - url: 'https://nodejs.org/api/process.html#processsetuncaughtexceptioncapturecallbackfn', - }, - { - name: 'umask', - description: 'Set the file mode creation mask', - url: 'https://nodejs.org/api/process.html#processumask', - }, - { - name: 'uptime', - description: 'Get the process uptime', - url: 'https://nodejs.org/api/process.html#processuptime', - }, - { - name: 'on', - description: 'Add a listener for a process event', - url: 'https://nodejs.org/api/process.html#process-events', - }, - ], - }, - { - name: 'timers', - methods: [ - { - name: 'setImmediate', - description: 'Queue a function for execution', - url: 'https://nodejs.org/api/timers.html#setimmediatecallback-args', - }, - { - name: 'setInterval', - description: 'Set a repeating timer to execute a function', - url: 'https://nodejs.org/api/timers.html#setintervalcallback-delay-args', - }, - { - name: 'setTimeout', - description: 'Set a timer to execute a function', - url: 'https://nodejs.org/api/timers.html#settimeoutcallback-delay-args', - }, - { - name: 'clearImmediate', - description: 'Cancel a setImmediate callback', - url: 'https://nodejs.org/api/timers.html#clearimmediateimmediate', - }, - { - name: 'clearInterval', - description: 'Cancel a setInterval callback', - url: 'https://nodejs.org/api/timers.html#clearintervaltimeout', - }, - { - name: 'clearTimeout', - description: 'Cancel a setTimeout callback', - url: 'https://nodejs.org/api/timers.html#cleartimeouttimeout', - }, - ], - }, - { - name: 'timers/promises', - methods: [ - { - name: 'setImmediate', - description: 'Queue a function for execution', - url: 'https://nodejs.org/api/timers.html#timerspromisessetimmediatevalue-options', - }, - { - name: 'setInterval', - description: 'Set a repeating timer to execute a function', - url: 'https://nodejs.org/api/timers.html#timerspromisessetintervaldelay-value-options', - }, - { - name: 'setTimeout', - description: 'Set a timer to execute a function', - url: 'https://nodejs.org/api/timers.html#timerspromisessettimeoutdelay-value-options', - }, - ], - }, - { - name: 'tls', - methods: [ - { - name: 'Server', - description: 'Create a new TLS server', - url: 'https://nodejs.org/api/tls.html#class-tlsserver', - }, - { - name: 'TLSSocket', - description: 'Create a new TLS socket', - url: 'https://nodejs.org/api/tls.html#class-tlstlssocket', - }, - { - name: 'checkServerIdentity', - description: 'Verify that a server certificate is valid for a given host', - url: 'https://nodejs.org/api/tls.html#tlscheckserveridentityhostname-cert', - }, - { - name: 'connect', - description: 'Connect to a TLS server', - url: 'https://nodejs.org/api/tls.html#tlsconnectoptions-callback', - }, - { - name: 'createSecureContext', - description: 'Create a new secure context', - url: 'https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions', - }, - { - name: 'createSecurePair', - description: 'Create a new secure pair', - url: 'https://nodejs.org/api/tls.html#tlscreatesecurepaircontext-isserver-requestcert-rejectunauthorized-options', - }, - { - name: 'createServer', - description: 'Create a new TLS server', - url: 'https://nodejs.org/api/tls.html#tlscreateserveroptions-secureconnectionlistener', - }, - { - name: 'getCiphers', - description: 'Get a list of supported TLS ciphers', - url: 'https://nodejs.org/api/tls.html#tlsgetciphers', - }, - ], - }, - { - name: 'trace_events', - methods: [ - { - name: 'createTracing', - description: 'Centralize system tracing information', - url: 'https://nodejs.org/api/tracing.html#trace_eventscreatetracingoptions', - }, - { - name: 'getEnabledCategories', - description: 'Get the enabled trace event categories', - url: 'https://nodejs.org/api/tracing.html#trace_eventsgetenabledcategories', - }, - ], - }, - { - name: 'v8', - methods: [ - { - name: 'cachedDataVersionTag', - description: - 'Get a version tag derived from the V8 version, command-line flags, and detected CPU features', - url: 'https://nodejs.org/api/v8.html#v8cacheddataversiontag', - }, - { - name: 'getHeapCodeStatistics', - description: 'Get statistics about code and its metadata in the heap', - url: 'https://nodejs.org/api/v8.html#v8getheapcodestatistics', - }, - { - name: 'getHeapSnapshot', - description: 'Generate a snapshot of the current V8 heap', - url: 'https://nodejs.org/api/v8.html#v8getheapsnapshot', - }, - { - name: 'getHeapSpaceStatistics', - description: 'Get statistics about the V8 heap spaces', - url: 'https://nodejs.org/api/v8.html#v8getheapspacestatistics', - }, - { - name: 'getHeapStatistics', - description: 'Get detailed V8 heap statistics', - url: 'https://nodejs.org/api/v8.html#v8getheapstatistics', - }, - { - name: 'setFlagsFromString', - description: 'Programmatically set V8 command-line flags', - url: 'https://nodejs.org/api/v8.html#v8setflagsfromstringflags', - }, - { - name: 'stopCoverage', - description: 'Stop collecting JavaScript code coverage collection', - url: 'https://nodejs.org/api/v8.html#v8stopcoverage', - }, - { - name: 'takeCoverage', - description: 'Write code coverage data to disk', - url: 'https://nodejs.org/api/v8.html#v8takecoverage', - }, - { - name: 'writeHeapSnapshot', - description: 'Write a heap snapshot to a file', - url: 'https://nodejs.org/api/v8.html#v8writeheapsnapshotfilename', - }, - { - name: 'serialize', - description: 'Serialize value into a buffer', - url: 'https://nodejs.org/api/v8.html#v8serializevalue', - }, - { - name: 'deserialize', - description: 'Deserialize value from a buffer', - url: 'https://nodejs.org/api/v8.html#v8deserializebuffer', - }, - ], - }, - { - name: 'vm', - methods: [ - { - name: 'Script', - isConstructor: true, - description: 'Precompile arbitrary code to execute later', - url: 'https://nodejs.org/api/vm.html#class-vmscript', - needsExplicitPermission: true, - }, - { - name: 'SourceTextModule', - description: 'Create a module defined from ECMAScript source text', - url: 'https://nodejs.org/api/vm.html#class-vmsourcetextmodule', - }, - { - name: 'SyntheticModule', - description: 'Create a WebIDL synthetic module', - url: 'https://nodejs.org/api/vm.html#class-vmsyntheticmodule', - }, - { - name: 'compileFunction', - description: 'Compile a JavaScript function', - url: 'https://nodejs.org/api/vm.html#vmcompilefunctioncode-params-options', - }, - { - name: 'createContext', - description: 'Create a new execution context', - url: 'https://nodejs.org/api/vm.html#vmcreatecontextcontextobject-options', - }, - { - name: 'isContext', - description: 'Check if the given object is an execution context', - url: 'https://nodejs.org/api/vm.html#vmiscontextobject', - }, - { - name: 'measureMemory', - description: 'Measure V8 memory usage', - url: 'https://nodejs.org/api/vm.html#vmmeasurememoryoptions', - }, - { - name: 'runInContext', - description: 'Run arbitrary code in a context', - url: 'https://nodejs.org/api/vm.html#vmrunincontextcode-contextifiedobject-options', - needsExplicitPermission: true, - }, - { - name: 'runInNewContext', - description: 'Run arbitrary code in a new context', - url: 'https://nodejs.org/api/vm.html#vmruninnewcontextcode-contextobject-options', - needsExplicitPermission: true, - }, - { - name: 'runInThisContext', - description: 'Run arbitrary code in the current context', - url: 'https://nodejs.org/api/vm.html#vmruninthiscontextcode-options', - needsExplicitPermission: true, - }, - ], - }, - { - name: 'wasi', - methods: [ - { - name: 'WASI', - isConstructor: true, - description: 'Give WebAssembly apps access to the underlying OS', - url: 'https://nodejs.org/api/wasi.html#new-wasioptions', - needsExplicitPermission: true, - }, - ], - }, - { - name: 'worker_threads', - methods: [ - { - name: 'Worker', - isConstructor: true, - description: 'Create a new independent JavaScript execution thread', - url: 'https://nodejs.org/api/worker_threads.html#class-worker', - }, - { - name: 'getEnvironmentData', - description: 'Get thread environment data', - url: 'https://nodejs.org/api/worker_threads.html#workergetenvironmentdatakey', - }, - { - name: 'markAsUntransferable', - description: 'Mark a buffer as untransferable between threads', - url: 'https://nodejs.org/api/worker_threads.html#workermarkasuntransferableobject', - }, - { - name: 'moveMessagePortToContext', - description: 'Move a message port to a different context', - url: 'https://nodejs.org/api/worker_threads.html#workermovemessageporttocontextport-contextifiedsandbox', - }, - { - name: 'receiveMessageOnPort', - description: 'Receive single a message on a port', - url: 'https://nodejs.org/api/worker_threads.html#workerreceivemessageonportport', - }, - { - name: 'setEnvironmentData', - description: 'Set thread environment data', - url: 'https://nodejs.org/api/worker_threads.html#workersetenvironmentdatakey-value', - }, - ], - }, - ].map((lib) => builder(lib)); - -module.exports = library; diff --git a/src/library/node.json b/src/library/node.json new file mode 100644 index 0000000..c72c38a --- /dev/null +++ b/src/library/node.json @@ -0,0 +1,1497 @@ +[ + { + "name": "child_process", + "methods": [ + { + "name": "exec", + "description": "Spawn a shell and execute an arbitrary command", + "url": "https://nodejs.org/api/child_process.html#child_process_child_process_exec_command_options_callback", + "needsExplicitPermission": true + }, + { + "name": "execFile", + "description": "Spawn a shell and execute an arbitrary file", + "url": "https://nodejs.org/api/child_process.html#child_process_child_process_execfile_file_args_options_callback", + "needsExplicitPermission": true + }, + { + "name": "fork", + "description": "Fork a child process", + "url": "https://nodejs.org/api/child_process.html#child_processforkmodulepath-args-options" + }, + { + "name": "spawn", + "description": "Spawn a new process", + "url": "https://nodejs.org/api/child_process.html#child_processspawncommand-args-options" + }, + { + "name": "execFileSync", + "description": "Spawn a shell and execute an arbitrary file", + "url": "https://nodejs.org/api/child_process.html#child_process_child_process_execfilesync_file_args_options", + "needsExplicitPermission": true + }, + { + "name": "execSync", + "description": "Spawn a shell and execute an arbitrary command", + "url": "https://nodejs.org/api/child_process.html#child_processexecsynccommand-options", + "needsExplicitPermission": true + }, + { + "name": "spawnSync", + "description": "Spawn a new process", + "url": "https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options" + } + ] + }, + { + "name": "cluster", + "methods": [ + { + "name": "disconnect", + "description": "Disconnect a worker from its parent process", + "url": "https://nodejs.org/api/cluster.html#workerdisconnect" + }, + { + "name": "fork", + "description": "Fork a new worker process", + "url": "https://nodejs.org/api/cluster.html#clusterforkenv" + }, + { + "name": "setupPrimary", + "description": "Change the default fork behavior of cluster.fork", + "url": "https://nodejs.org/api/cluster.html#clustersetupprimarysettings" + }, + { + "name": "setupMaster", + "description": "Change the default fork behavior of cluster.fork", + "url": "https://nodejs.org/api/cluster.html#clustersetupmastersettings" + } + ] + }, + { + "name": "dgram", + "methods": [ + { + "name": "createSocket", + "description": "Create a datagram socket", + "url": "https://nodejs.org/api/dgram.html#dgram_dgram_createsocket_type_callback" + } + ] + }, + { + "name": "dns", + "methods": [ + { + "name": "Resolver", + "isConstructor": true, + "description": "Create a DNS resolver", + "url": "https://nodejs.org/api/dns.html#dns_class_dns_resolver" + }, + { + "name": "getServers", + "description": "Get the list of current DNS servers", + "url": "https://nodejs.org/api/dns.html#dns_dns_getservers" + }, + { + "name": "lookup", + "description": "Resolve a host name into the first found A or AAAA record", + "url": "https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback" + }, + { + "name": "lookupService", + "description": "Resolve the given address and port into a host name and service", + "url": "https://nodejs.org/api/dns.html#dnslookupserviceaddress-port-callback" + }, + { + "name": "resolve", + "description": "Resolve a host name into an array of records", + "url": "https://nodejs.org/api/dns.html#dnsresolvehostname-rrtype-callback" + }, + { + "name": "resolve4", + "description": "Resolve a host name to an IPv4 address", + "url": "https://nodejs.org/api/dns.html#dnsresolve4hostname-options-callback" + }, + { + "name": "resolve6", + "description": "Resolve a host name to an IPv6 address", + "url": "https://nodejs.org/api/dns.html#dnsresolve6hostname-options-callback" + }, + { + "name": "resolveAny", + "description": "Resolve a host name to an array of records", + "url": "https://nodejs.org/api/dns.html#dnsresolveanyhostname-callback" + }, + { + "name": "resolveCname", + "description": "Resolve a host name to an array of CNAME records", + "url": "https://nodejs.org/api/dns.html#dnsresolvecnamehostname-callback" + }, + { + "name": "resolveCaa", + "description": "Resolve a host name to an array of CAA records", + "url": "https://nodejs.org/api/dns.html#dnsresolvecaahostname-callback" + }, + { + "name": "resolveMx", + "description": "Resolve a host name to an array of MX records", + "url": "https://nodejs.org/api/dns.html#dnsresolvemxhostname-callback" + }, + { + "name": "resolveNaptr", + "description": "Resolve a host name to an array of NAPTR records", + "url": "https://nodejs.org/api/dns.html#dnsresolvenaptrhostname-callback" + }, + { + "name": "resolveNs", + "description": "Resolve a host name to an array of NS records", + "url": "https://nodejs.org/api/dns.html#dnsresolvenshostname-callback" + }, + { + "name": "resolvePtr", + "description": "Resolve a host name to an array of PTR records", + "url": "https://nodejs.org/api/dns.html#dnsresolveptrhostname-callback" + }, + { + "name": "resolveSoa", + "description": "Resolve a host name to an SOA record", + "url": "https://nodejs.org/api/dns.html#dnsresolvesoahostname-callback" + }, + { + "name": "resolveSrv", + "description": "Resolve a host name to an array of SRV records", + "url": "https://nodejs.org/api/dns.html#dnsresolvesrvhostname-callback" + }, + { + "name": "resolveTxt", + "description": "Resolve a host name to an array of TXT records", + "url": "https://nodejs.org/api/dns.html#dnsresolvetxthostname-callback" + }, + { + "name": "reverse", + "description": "Perform a reverse lookup for the given address", + "url": "https://nodejs.org/api/dns.html#dnsreverseip-callback" + }, + { + "name": "setDefaultResultOrder", + "description": "Set the default order for result records", + "url": "https://nodejs.org/api/dns.html#dnssetdefaultresultorderorder" + }, + { + "name": "setServers", + "description": "Set the list of DNS servers to be used", + "url": "https://nodejs.org/api/dns.html#dns_dns_setservers_servers" + } + ] + }, + { + "name": "fetch", + "methods": [ + { + "name": "fetch", + "description": "Communicate with a web server", + "url": "https://nodejs.org/api/fetch/" + } + ], + "globalMethod": true + }, + { + "name": "eval", + "methods": [ + { + "name": "eval", + "description": "Run arbitrary JS code from a string", + "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval", + "needsExplicitPermission": true + } + ], + "globalMethod": true + }, + { + "name": "Function", + "methods": [ + { + "name": "Function", + "description": "Create a new function from an arbitrary string", + "url": "https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function", + "needsExplicitPermission": true + } + ], + "globalMethod": true + }, + { + "name": "fs", + "methods": [ + { + "name": "access", + "description": "Test a user's permissions for a file or directory", + "url": "https://nodejs.org/api/fs.html#fsaccesspath-mode-callback" + }, + { + "name": "appendFile", + "description": "Append to a file", + "url": "https://nodejs.org/api/fs.html#fsappendfilepath-data-options-callback" + }, + { + "name": "chmod", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fschmodpath-mode-callback" + }, + { + "name": "chown", + "description": "Change file ownership", + "url": "https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback" + }, + { + "name": "close", + "description": "Close a file descriptor", + "url": "https://nodejs.org/api/fs.html#fschownpath-uid-gid-callback" + }, + { + "name": "copyFile", + "description": "Copy a file", + "url": "https://nodejs.org/api/fs.html#fscopyfilesrc-dest-mode-callback" + }, + { + "name": "cp", + "description": "Copy a directory", + "url": "https://nodejs.org/api/fs.html#fscpsrc-dest-options-callback" + }, + { + "name": "createReadStream", + "description": "Create a readable stream", + "url": "https://nodejs.org/api/fs.html#fscreatereadstreampath-options" + }, + { + "name": "createWriteStream", + "description": "Create a writable stream", + "url": "https://nodejs.org/api/fs.html#fscreatewritestreampath-options" + }, + { + "name": "exists", + "description": "Test whether or not a file exists", + "url": "https://nodejs.org/api/fs.html#fsexistspath-callback" + }, + { + "name": "fchmod", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fsfchmodfd-mode-callback" + }, + { + "name": "fchown", + "description": "Change file ownership", + "url": "https://nodejs.org/api/fs.html#fsfchownfd-uid-gid-callback" + }, + { + "name": "fdatasync", + "description": "Force all currently queued I/O operations to completion", + "url": "https://nodejs.org/api/fs.html#fsfdatasyncfd-callback" + }, + { + "name": "fstat", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fsfstatfd-options-callback" + }, + { + "name": "fsync", + "description": "Request data to be flushed to the storage device", + "url": "https://nodejs.org/api/fs.html#fsfsyncfd-callback" + }, + { + "name": "ftruncate", + "description": "Truncate a file to a specified length", + "url": "https://nodejs.org/api/fs.html#fsftruncatefd-len-callback" + }, + { + "name": "futimes", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fsfutimesfd-atime-mtime-callback" + }, + { + "name": "lchmod", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fslchmodpath-mode-callback" + }, + { + "name": "lchown", + "description": "Change file ownership", + "url": "https://nodejs.org/api/fs.html#fslchownpath-uid-gid-callback" + }, + { + "name": "lutimes", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fslutimespath-atime-mtime-callback" + }, + { + "name": "link", + "description": "Create a new link", + "url": "https://nodejs.org/api/fs.html#fslinkexistingpath-newpath-callback" + }, + { + "name": "lstat", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fslstatpath-options-callback" + }, + { + "name": "mkdir", + "description": "Create a directory", + "url": "https://nodejs.org/api/fs.html#fsmkdirpath-options-callback" + }, + { + "name": "mkdtemp", + "description": "Create a unique temporary directory", + "url": "https://nodejs.org/api/fs.html#fsmkdtempprefix-options-callback" + }, + { + "name": "open", + "description": "Open a file", + "url": "https://nodejs.org/api/fs.html#fsopenpath-flags-mode-callback" + }, + { + "name": "opendir", + "description": "Open a directory", + "url": "https://nodejs.org/api/fs.html#fsopendirpath-options-callback" + }, + { + "name": "read", + "description": "Read a file", + "url": "https://nodejs.org/api/fs.html#fsreadfd-buffer-offset-length-position-callback" + }, + { + "name": "readdir", + "description": "Read a directory", + "url": "https://nodejs.org/api/fs.html#fsreaddirpath-options-callback" + }, + { + "name": "readFile", + "description": "Read a file", + "url": "https://nodejs.org/api/fs.html#fsreadfilepath-options-callback" + }, + { + "name": "readlink", + "description": "Read a symbolic link", + "url": "https://nodejs.org/api/fs.html#fsreadlinkpath-options-callback" + }, + { + "name": "readv", + "description": "Read from a file", + "url": "https://nodejs.org/api/fs.html#fsreadvfd-buffers-position-callback" + }, + { + "name": "realpath", + "description": "Resolve a canonical path", + "url": "https://nodejs.org/api/fs.html#fsrealpathpath-options-callback" + }, + { + "name": "rename", + "description": "Rename a file or directory", + "url": "https://nodejs.org/api/fs.html#fsrenameoldpath-newpath-callback" + }, + { + "name": "rmdir", + "description": "Remove a directory", + "url": "https://nodejs.org/api/fs.html#fsrmdirpath-options-callback" + }, + { + "name": "rm", + "description": "Remove a file", + "url": "https://nodejs.org/api/fs.html#fsrmpath-options-callback" + }, + { + "name": "stat", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fsstatpath-options-callback" + }, + { + "name": "symlink", + "description": "Create a symbolic link", + "url": "https://nodejs.org/api/fs.html#fssymlinktarget-path-type-callback" + }, + { + "name": "truncate", + "description": "Truncate a file to a specified length", + "url": "https://nodejs.org/api/fs.html#fstruncatepath-len-callback" + }, + { + "name": "unlink", + "description": "Delete a file", + "url": "https://nodejs.org/api/fs.html#fsunlinkpath-callback" + }, + { + "name": "unwatchFile", + "description": "Stop watching a file for changes", + "url": "https://nodejs.org/api/fs.html#fsunwatchfilefilename-listener" + }, + { + "name": "utimes", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fsutimespath-atime-mtime-callback" + }, + { + "name": "watch", + "description": "Monitor a file for changes", + "url": "https://nodejs.org/api/fs.html#fswatchfilename-options-listener" + }, + { + "name": "watchFile", + "description": "Monitor a file for changes", + "url": "https://nodejs.org/api/fs.html#fswatchfilefilename-options-listener" + }, + { + "name": "write", + "description": "Write to a file", + "url": "https://nodejs.org/api/fs.html#fswritefd-buffer-offset-length-position-callback" + }, + { + "name": "writeFile", + "description": "Write a file", + "url": "https://nodejs.org/api/fs.html#fswritefilefile-data-options-callback" + }, + { + "name": "writev", + "description": "Write to a file", + "url": "https://nodejs.org/api/fs.html#fswritevfd-buffers-position-callback" + }, + { + "name": "accessSync", + "description": "Test a user's permissions for a file or directory", + "url": "https://nodejs.org/api/fs.html#fsaccesssyncpath-mode" + }, + { + "name": "appendFileSync", + "description": "Append data to a file", + "url": "https://nodejs.org/api/fs.html#fsappendfilesyncpath-data-options" + }, + { + "name": "chmodSync", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fschmodsyncpath-mode" + }, + { + "name": "chownSync", + "description": "Change file owner", + "url": "https://nodejs.org/api/fs.html#fschownsyncpath-uid-gid" + }, + { + "name": "closeSync", + "description": "Close a file", + "url": "https://nodejs.org/api/fs.html#fsclosesyncfd" + }, + { + "name": "copyFileSync", + "description": "Copy a file", + "url": "https://nodejs.org/api/fs.html#fscopyfilesyncsrc-dest-mode" + }, + { + "name": "cpSync", + "description": "Copy a directory", + "url": "https://nodejs.org/api/fs.html#fscpsyncsrc-dest-options" + }, + { + "name": "existsSync", + "description": "Test whether a file exists", + "url": "https://nodejs.org/api/fs.html#fsexistssyncpath" + }, + { + "name": "fchmodSync", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fsfchmodsyncfd-mode" + }, + { + "name": "fchownSync", + "description": "Change file owner", + "url": "https://nodejs.org/api/fs.html#fsfchownsyncfd-uid-gid" + }, + { + "name": "fdatasyncSync", + "description": "Force all currently queued I/O operations to completion", + "url": "https://nodejs.org/api/fs.html#fsfdatasyncsyncfd" + }, + { + "name": "fstatSync", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fsfstatsyncfd-options" + }, + { + "name": "fsyncSync", + "description": "Force all data to be flushed to the storage device", + "url": "https://nodejs.org/api/fs.html#fsfsyncsyncfd" + }, + { + "name": "ftruncateSync", + "description": "Truncate a file to a specified length", + "url": "https://nodejs.org/api/fs.html#fsftruncatesyncfd-len" + }, + { + "name": "futimesSync", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fsfutimessyncfd-atime-mtime" + }, + { + "name": "lchmodSync", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fslchmodsyncpath-mode" + }, + { + "name": "lchownSync", + "description": "Change file owner", + "url": "https://nodejs.org/api/fs.html#fslchownsyncpath-uid-gid" + }, + { + "name": "lutimesSync", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fslutimessyncpath-atime-mtime" + }, + { + "name": "linkSync", + "description": "Create a hard link", + "url": "https://nodejs.org/api/fs.html#fslinksyncexistingpath-newpath" + }, + { + "name": "lstatSync", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fslstatsyncpath-options" + }, + { + "name": "mkdirSync", + "description": "Create a directory", + "url": "https://nodejs.org/api/fs.html#fsmkdirsyncpath-options" + }, + { + "name": "mkdtempSync", + "description": "Create a temporary directory", + "url": "https://nodejs.org/api/fs.html#fsmkdtempsyncprefix-options" + }, + { + "name": "openSync", + "description": "Open a file", + "url": "https://nodejs.org/api/fs.html#fsopensyncpath-flags-mode" + }, + { + "name": "opendirSync", + "description": "Open a directory", + "url": "https://nodejs.org/api/fs.html#fsopendirsyncpath-options" + }, + { + "name": "readSync", + "description": "Read a file", + "url": "https://nodejs.org/api/fs.html#fsreadsyncfd-buffer-offset-length-position" + }, + { + "name": "readdirSync", + "description": "Read a directory", + "url": "https://nodejs.org/api/fs.html#fsreaddirsyncpath-options" + }, + { + "name": "readFileSync", + "description": "Read a file", + "url": "https://nodejs.org/api/fs.html#fsreadfilesyncpath-options" + }, + { + "name": "readlinkSync", + "description": "Read a symbolic link", + "url": "https://nodejs.org/api/fs.html#fsreadlinksyncpath-options" + }, + { + "name": "readvSync", + "description": "Read from a file", + "url": "https://nodejs.org/api/fs.html#fsreadvsyncfd-buffers-position" + }, + { + "name": "realpathSync", + "description": "Return canonical absolute pathname", + "url": "https://nodejs.org/api/fs.html#fsrealpathsyncpath-options" + }, + { + "name": "renameSync", + "description": "Rename a file or directory", + "url": "https://nodejs.org/api/fs.html#fsrenamesyncoldpath-newpath" + }, + { + "name": "rmdirSync", + "description": "Remove a directory", + "url": "https://nodejs.org/api/fs.html#fsrmdirsyncpath-options" + }, + { + "name": "rmSync", + "description": "Remove a file", + "url": "https://nodejs.org/api/fs.html#fsrmsyncpath-options" + }, + { + "name": "statSync", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fsstatsyncpath-options" + }, + { + "name": "symlinkSync", + "description": "Create a symbolic link", + "url": "https://nodejs.org/api/fs.html#fssymlinksynctarget-path-type" + }, + { + "name": "truncateSync", + "description": "Truncate a file to a specified length", + "url": "https://nodejs.org/api/fs.html#fstruncatesyncpath-len" + }, + { + "name": "unlinkSync", + "description": "Delete a file", + "url": "https://nodejs.org/api/fs.html#fsunlinksyncpath" + }, + { + "name": "utimesSync", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fsutimessyncpath-atime-mtime" + }, + { + "name": "writeSync", + "description": "Write to a file", + "url": "https://nodejs.org/api/fs.html#fswritesyncfd-buffer-offset-length-position" + }, + { + "name": "writeFileSync", + "description": "Write a file", + "url": "https://nodejs.org/api/fs.html#fswritefilesyncfile-data-options" + }, + { + "name": "writevSync", + "description": "Write to a file", + "url": "https://nodejs.org/api/fs.html#fswritevsyncfd-buffers-position" + } + ] + }, + { + "name": "fs/promises", + "methods": [ + { + "name": "access", + "description": "Test a user's permissions for a file or directory", + "url": "https://nodejs.org/api/fs.html#fspromisesaccesspath-mode" + }, + { + "name": "appendFile", + "description": "Append data to a file", + "url": "https://nodejs.org/api/fs.html#fspromisesappendfilepath-data-options" + }, + { + "name": "chmod", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fspromiseschmodpath-mode" + }, + { + "name": "chown", + "description": "Change file owner", + "url": "https://nodejs.org/api/fs.html#fspromiseschownpath-uid-gid" + }, + { + "name": "copyFile", + "description": "Copy a file", + "url": "https://nodejs.org/api/fs.html#fspromisescopyfilesrc-dest-mode" + }, + { + "name": "cp", + "description": "Copy a file", + "url": "https://nodejs.org/api/fs.html#fspromisescpsrc-dest-options" + }, + { + "name": "lchmod", + "description": "Change file permissions", + "url": "https://nodejs.org/api/fs.html#fspromiseslchmodpath-mode" + }, + { + "name": "lchown", + "description": "Change file owner", + "url": "https://nodejs.org/api/fs.html#fspromiseslchownpath-uid-gid" + }, + { + "name": "lutimes", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fspromiseslutimespath-atime-mtime" + }, + { + "name": "link", + "description": "Create a hard link", + "url": "https://nodejs.org/api/fs.html#fspromiseslinkexistingpath-newpath" + }, + { + "name": "lstat", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fspromiseslstatpath-options" + }, + { + "name": "mkdir", + "description": "Create a directory", + "url": "https://nodejs.org/api/fs.html#fspromisesmkdirpath-options" + }, + { + "name": "mkdtemp", + "description": "Create a temporary directory", + "url": "https://nodejs.org/api/fs.html#fspromisesmkdtempprefix-options" + }, + { + "name": "open", + "description": "Open a file", + "url": "hhttps://nodejs.org/api/fs.html#fspromisesopenpath-flags-mode" + }, + { + "name": "opendir", + "description": "Open a directory", + "url": "https://nodejs.org/api/fs.html#fspromisesopendirpath-options" + }, + { + "name": "readdir", + "description": "Read a directory", + "url": "https://nodejs.org/api/fs.html#fspromisesreaddirpath-options" + }, + { + "name": "readFile", + "description": "Read a file", + "url": "https://nodejs.org/api/fs.html#fspromisesreadfilepath-options" + }, + { + "name": "readlink", + "description": "Read a symbolic link", + "url": "https://nodejs.org/api/fs.html#fspromisesreadlinkpath-options" + }, + { + "name": "realpath", + "description": "Return canonical absolute pathname", + "url": "https://nodejs.org/api/fs.html#fspromisesrealpathpath-options" + }, + { + "name": "rename", + "description": "Rename a file or directory", + "url": "https://nodejs.org/api/fs.html#fspromisesrenameoldpath-newpath" + }, + { + "name": "rmdir", + "description": "Remove a directory", + "url": "https://nodejs.org/api/fs.html#fspromisesrmdirpath-options" + }, + { + "name": "rm", + "description": "Remove a file", + "url": "https://nodejs.org/api/fs.html#fspromisesrmpath-options" + }, + { + "name": "stat", + "description": "Get file status", + "url": "https://nodejs.org/api/fs.html#fspromisesstatpath-options" + }, + { + "name": "symlink", + "description": "Create a symbolic link", + "url": "https://nodejs.org/api/fs.html#fspromisessymlinktarget-path-type" + }, + { + "name": "truncate", + "description": "Truncate a file to a specified length", + "url": "https://nodejs.org/api/fs.html#fspromisestruncatepath-len" + }, + { + "name": "unlink", + "description": "Delete a file", + "url": "https://nodejs.org/api/fs.html#fspromisesunlinkpath" + }, + { + "name": "utimes", + "description": "Change file timestamps", + "url": "https://nodejs.org/api/fs.html#fspromisesutimespath-atime-mtime" + }, + { + "name": "watch", + "description": "Watch for changes on a file", + "url": "https://nodejs.org/api/fs.html#fspromiseswatchfilename-options" + }, + { + "name": "writeFile", + "description": "Write data to a file", + "url": "https://nodejs.org/api/fs.html#fspromiseswritefilefile-data-options" + } + ] + }, + { + "name": "http", + "methods": [ + { + "name": "Agent", + "description": "Manage HTTP connection persistence and reuse", + "url": "https://nodejs.org/api/http.html#class-httpagent" + }, + { + "name": "createServer", + "description": "Create a new HTTP server", + "url": "https://nodejs.org/api/http.html#httpcreateserveroptions-requestlistener" + }, + { + "name": "get", + "description": "Send a GET request to a server", + "url": "https://nodejs.org/api/http.html#httpgetoptions-callback" + }, + { + "name": "request", + "description": "Send an HTTP request to a server", + "url": "https://nodejs.org/api/http.html#httprequestoptions-callback" + } + ] + }, + { + "name": "http2", + "methods": [ + { + "name": "createServer", + "description": "Create a new HTTP/2 server", + "url": "https://nodejs.org/api/http2.html#http2createserveroptions-onrequesthandler" + }, + { + "name": "createSecureServer", + "description": "Create a new secure HTTP/2 server", + "url": "https://nodejs.org/api/http2.html#http2createsecureserveroptions-onrequesthandler" + }, + { + "name": "connect", + "description": "Establish a connection to a server", + "url": "https://nodejs.org/api/http2.html#http2connectauthority-options-listener" + }, + { + "name": "getDefaultSettings", + "description": "Get the default settings for a HTTP/2 session", + "url": "https://nodejs.org/api/http2.html#http2getdefaultsettings" + }, + { + "name": "getPackedSettings", + "description": "Get the current settings for a HTTP/2 session", + "url": "https://nodejs.org/api/http2.html#http2getpackedsettings" + }, + { + "name": "getUnpackedSettings", + "description": "Get the current settings for a HTTP/2 session", + "url": "hhttps://nodejs.org/api/http2.html#http2getunpackedsettingsbuf" + } + ] + }, + { + "name": "https", + "methods": [ + { + "name": "Agent", + "description": "Manage HTTPS connection persistence and reuse", + "url": "https://nodejs.org/api/https.html#class-httpsagent" + }, + { + "name": "createServer", + "description": "Create a new HTTPS server", + "url": "https://nodejs.org/api/https.html#httpscreateserveroptions-requestlistener" + }, + { + "name": "get", + "description": "Send a GET request to a server", + "url": "https://nodejs.org/api/https.html#httpsgetoptions-callback" + }, + { + "name": "request", + "description": "Send an HTTPS request to a server", + "url": "https://nodejs.org/api/https.html#httpsrequestoptions-callback" + } + ] + }, + { + "name": "inspector", + "methods": [ + { + "name": "close", + "description": "Close a V8 inspector", + "url": "https://nodejs.org/api/inspector.html#inspectorclose" + }, + { + "name": "open", + "description": "Open a V8 inspector", + "url": "https://nodejs.org/api/inspector.html#inspectoropenport-host-wait" + }, + { + "name": "url", + "description": "Get the URL of the V8 inspector", + "url": "https://nodejs.org/api/inspector.html#inspectorurl" + }, + { + "name": "waitForDebugger", + "description": "Wait for the V8 debugger to connect", + "url": "https://nodejs.org/api/inspector.html#inspectorwaitfordebugger" + }, + { + "name": "Session", + "isConstructor": true, + "description": "Create a new V8 inspector session", + "url": "https://nodejs.org/api/inspector.html#class-inspectorsession" + } + ] + }, + { + "name": "net", + "methods": [ + { + "name": "Server", + "description": "Create a new TCP server", + "url": "https://nodejs.org/api/net.html#class-netserver" + }, + { + "name": "Socket", + "description": "Create a new TCP socket", + "url": "https://nodejs.org/api/net.html#class-netsocket" + }, + { + "name": "connect", + "description": "Connect to a remote TCP server", + "url": "https://nodejs.org/api/net.html#netconnect" + }, + { + "name": "createConnection", + "description": "Connect to a remote TCP server", + "url": "https://nodejs.org/api/net.html#netcreateconnection" + }, + { + "name": "createServer", + "description": "Create a new TCP server", + "url": "https://nodejs.org/api/net.html#netcreateserveroptions-connectionlistener" + } + ] + }, + { + "name": "os", + "methods": [ + { + "name": "arch", + "description": "Get the CPU architecture", + "url": "https://nodejs.org/api/os.html#osarch" + }, + { + "name": "cpus", + "description": "Get CPU information", + "url": "https://nodejs.org/api/os.html#oscpus" + }, + { + "name": "endianness", + "description": "Get the endianness of the CPU", + "url": "https://nodejs.org/api/os.html#osendianness" + }, + { + "name": "freemem", + "description": "Get the amount of free system memory", + "url": "https://nodejs.org/api/os.html#osfreemem" + }, + { + "name": "getPriority", + "description": "Get the scheduling priority for a process", + "url": "https://nodejs.org/api/os.html#osgetprioritypid" + }, + { + "name": "homedir", + "description": "Get the home directory path for the current user", + "url": "https://nodejs.org/api/os.html#oshomedir" + }, + { + "name": "hostname", + "description": "Get the hostname of the OS", + "url": "https://nodejs.org/api/os.html#oshostname" + }, + { + "name": "loadavg", + "description": "Get system load average information", + "url": "https://nodejs.org/api/os.html#osloadavg" + }, + { + "name": "networkInterfaces", + "description": "Get a list of network interfaces", + "url": "https://nodejs.org/api/os.html#osnetworkinterfaces" + }, + { + "name": "platform", + "description": "Get the operating system platform", + "url": "https://nodejs.org/api/os.html#osplatform" + }, + { + "name": "release", + "description": "Get the operating system release", + "url": "https://nodejs.org/api/os.html#osrelease" + }, + { + "name": "setPriority", + "description": "Set the scheduling priority for a process", + "url": "https://nodejs.org/api/os.html#ossetprioritypid-priority" + }, + { + "name": "tmpdir", + "description": "Get the path of a temporary directory", + "url": "https://nodejs.org/api/os.html#ostmpdir" + }, + { + "name": "totalmem", + "description": "Get the total amount of system memory", + "url": "https://nodejs.org/api/os.html#ostotalmem" + }, + { + "name": "type", + "description": "Get the operating system name", + "url": "https://nodejs.org/api/os.html#ostype" + }, + { + "name": "uptime", + "description": "Get the system uptime", + "url": "https://nodejs.org/api/os.html#osuptime" + }, + { + "name": "userInfo", + "description": "Get current user information", + "url": "https://nodejs.org/api/os.html#osuserinfooptions" + }, + { + "name": "version", + "description": "Get the kernel version", + "url": "https://nodejs.org/api/os.html#osversion" + } + ] + }, + { + "name": "process", + "methods": [ + { + "name": "abort", + "description": "Exit the Node.js process immediately", + "url": "https://nodejs.org/api/process.html#processabort" + }, + { + "name": "chdir", + "description": "Change the current working directory", + "url": "https://nodejs.org/api/process.html#processchdirdirectory" + }, + { + "name": "cpuUsage", + "description": "Get current process CPU usage info", + "url": "https://nodejs.org/api/process.html#processcpuusagepreviousvalue" + }, + { + "name": "cwd", + "description": "Get the current working directory", + "url": "https://nodejs.org/api/process.html#processcwd" + }, + { + "name": "disconnect", + "description": "Disconnect child process from parent", + "url": "https://nodejs.org/api/process.html#processdisconnect" + }, + { + "name": "dlopen", + "description": "Load C++ addons", + "url": "https://nodejs.org/api/process.html#processdlopenmodule-filename-flags", + "needsExplicitPermission": true + }, + { + "name": "emitWarning", + "description": "Emit a custom process warning", + "url": "https://nodejs.org/api/process.html#processemitwarningwarning-options" + }, + { + "name": "exit", + "description": "Exit the Node.js process", + "url": "https://nodejs.org/api/process.html#processexitcode" + }, + { + "name": "getActiveResourcesInfo", + "description": "Get a list of resources currently keeping the event loop alive", + "url": "https://nodejs.org/api/process.html#processgetactiveresourcesinfo" + }, + { + "name": "getegid", + "description": "Get the effective group id of the Node.js process", + "url": "https://nodejs.org/api/process.html#processgetegid" + }, + { + "name": "geteuid", + "description": "Get the effective numerical user id", + "url": "https://nodejs.org/api/process.html#processgeteuid" + }, + { + "name": "getgid", + "description": "Get the numerical group id of the process", + "url": "https://nodejs.org/api/process.html#processgetgid" + }, + { + "name": "getgroups", + "description": "Get the list of supplementary group ids", + "url": "https://nodejs.org/api/process.html#processgetgroups" + }, + { + "name": "getuid", + "description": "Get the numerical user id of the process", + "url": "https://nodejs.org/api/process.html#processgetuid" + }, + { + "name": "hasUncaughtExceptionCaptureCallback", + "description": "Find out if there is an uncaught exception callback set", + "url": "https://nodejs.org/api/process.html#processhasuncaughtexceptioncapturecallback" + }, + { + "name": "hrtime", + "description": "Get high resolution time", + "url": "https://nodejs.org/api/process.html#processhrtimetime" + }, + { + "name": "initgroups", + "description": "Initialize the group access list", + "url": "https://nodejs.org/api/process.html#processinitgroupsuser-extragroup" + }, + { + "name": "kill", + "description": "Kill a process", + "url": "https://nodejs.org/api/process.html#processkillpid-signal" + }, + { + "name": "memoryUsage", + "description": "Get memory usage information", + "url": "https://nodejs.org/api/process.html#processmemoryusage" + }, + { + "name": "resourceUsage", + "description": "Get resource usage information", + "url": "https://nodejs.org/api/process.html#processresourceusage" + }, + { + "name": "send", + "description": "Send a message to a process", + "url": "https://nodejs.org/api/process.html#processsendmessage-sendhandle-options-callback" + }, + { + "name": "setegid", + "description": "Set the effective group id of the process", + "url": "https://nodejs.org/api/process.html#processsetegidid" + }, + { + "name": "seteuid", + "description": "Set the effective user id of the process", + "url": "https://nodejs.org/api/process.html#processseteuidid" + }, + { + "name": "setgid", + "description": "Set the group id of the process", + "url": "https://nodejs.org/api/process.html#processsetgidid" + }, + { + "name": "setgroups", + "description": "Set the supplementary group ids of the process", + "url": "https://nodejs.org/api/process.html#processsetgroupsgroups" + }, + { + "name": "setuid", + "description": "Set the user id of the process", + "url": "https://nodejs.org/api/process.html#processsetuidid" + }, + { + "name": "setSourceMapsEnabled", + "description": "Enable/disable source maps", + "url": "https://nodejs.org/api/process.html#processsetsourcemapsenabledval" + }, + { + "name": "setUncaughtExceptionCaptureCallback", + "description": "Set a callback to run when there is an uncaught exception", + "url": "https://nodejs.org/api/process.html#processsetuncaughtexceptioncapturecallbackfn" + }, + { + "name": "umask", + "description": "Set the file mode creation mask", + "url": "https://nodejs.org/api/process.html#processumask" + }, + { + "name": "uptime", + "description": "Get the process uptime", + "url": "https://nodejs.org/api/process.html#processuptime" + }, + { + "name": "on", + "description": "Add a listener for a process event", + "url": "https://nodejs.org/api/process.html#process-events" + } + ] + }, + { + "name": "timers", + "methods": [ + { + "name": "setImmediate", + "description": "Queue a function for execution", + "url": "https://nodejs.org/api/timers.html#setimmediatecallback-args" + }, + { + "name": "setInterval", + "description": "Set a repeating timer to execute a function", + "url": "https://nodejs.org/api/timers.html#setintervalcallback-delay-args" + }, + { + "name": "setTimeout", + "description": "Set a timer to execute a function", + "url": "https://nodejs.org/api/timers.html#settimeoutcallback-delay-args" + }, + { + "name": "clearImmediate", + "description": "Cancel a setImmediate callback", + "url": "https://nodejs.org/api/timers.html#clearimmediateimmediate" + }, + { + "name": "clearInterval", + "description": "Cancel a setInterval callback", + "url": "https://nodejs.org/api/timers.html#clearintervaltimeout" + }, + { + "name": "clearTimeout", + "description": "Cancel a setTimeout callback", + "url": "https://nodejs.org/api/timers.html#cleartimeouttimeout" + } + ] + }, + { + "name": "timers/promises", + "methods": [ + { + "name": "setImmediate", + "description": "Queue a function for execution", + "url": "https://nodejs.org/api/timers.html#timerspromisessetimmediatevalue-options" + }, + { + "name": "setInterval", + "description": "Set a repeating timer to execute a function", + "url": "https://nodejs.org/api/timers.html#timerspromisessetintervaldelay-value-options" + }, + { + "name": "setTimeout", + "description": "Set a timer to execute a function", + "url": "https://nodejs.org/api/timers.html#timerspromisessettimeoutdelay-value-options" + } + ] + }, + { + "name": "tls", + "methods": [ + { + "name": "Server", + "description": "Create a new TLS server", + "url": "https://nodejs.org/api/tls.html#class-tlsserver" + }, + { + "name": "TLSSocket", + "description": "Create a new TLS socket", + "url": "https://nodejs.org/api/tls.html#class-tlstlssocket" + }, + { + "name": "checkServerIdentity", + "description": "Verify that a server certificate is valid for a given host", + "url": "https://nodejs.org/api/tls.html#tlscheckserveridentityhostname-cert" + }, + { + "name": "connect", + "description": "Connect to a TLS server", + "url": "https://nodejs.org/api/tls.html#tlsconnectoptions-callback" + }, + { + "name": "createSecureContext", + "description": "Create a new secure context", + "url": "https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions" + }, + { + "name": "createSecurePair", + "description": "Create a new secure pair", + "url": "https://nodejs.org/api/tls.html#tlscreatesecurepaircontext-isserver-requestcert-rejectunauthorized-options" + }, + { + "name": "createServer", + "description": "Create a new TLS server", + "url": "https://nodejs.org/api/tls.html#tlscreateserveroptions-secureconnectionlistener" + }, + { + "name": "getCiphers", + "description": "Get a list of supported TLS ciphers", + "url": "https://nodejs.org/api/tls.html#tlsgetciphers" + } + ] + }, + { + "name": "trace_events", + "methods": [ + { + "name": "createTracing", + "description": "Centralize system tracing information", + "url": "https://nodejs.org/api/tracing.html#trace_eventscreatetracingoptions" + }, + { + "name": "getEnabledCategories", + "description": "Get the enabled trace event categories", + "url": "https://nodejs.org/api/tracing.html#trace_eventsgetenabledcategories" + } + ] + }, + { + "name": "v8", + "methods": [ + { + "name": "cachedDataVersionTag", + "description": "Get a version tag derived from the V8 version, command-line flags, and detected CPU features", + "url": "https://nodejs.org/api/v8.html#v8cacheddataversiontag" + }, + { + "name": "getHeapCodeStatistics", + "description": "Get statistics about code and its metadata in the heap", + "url": "https://nodejs.org/api/v8.html#v8getheapcodestatistics" + }, + { + "name": "getHeapSnapshot", + "description": "Generate a snapshot of the current V8 heap", + "url": "https://nodejs.org/api/v8.html#v8getheapsnapshot" + }, + { + "name": "getHeapSpaceStatistics", + "description": "Get statistics about the V8 heap spaces", + "url": "https://nodejs.org/api/v8.html#v8getheapspacestatistics" + }, + { + "name": "getHeapStatistics", + "description": "Get detailed V8 heap statistics", + "url": "https://nodejs.org/api/v8.html#v8getheapstatistics" + }, + { + "name": "setFlagsFromString", + "description": "Programmatically set V8 command-line flags", + "url": "https://nodejs.org/api/v8.html#v8setflagsfromstringflags" + }, + { + "name": "stopCoverage", + "description": "Stop collecting JavaScript code coverage collection", + "url": "https://nodejs.org/api/v8.html#v8stopcoverage" + }, + { + "name": "takeCoverage", + "description": "Write code coverage data to disk", + "url": "https://nodejs.org/api/v8.html#v8takecoverage" + }, + { + "name": "writeHeapSnapshot", + "description": "Write a heap snapshot to a file", + "url": "https://nodejs.org/api/v8.html#v8writeheapsnapshotfilename" + }, + { + "name": "serialize", + "description": "Serialize value into a buffer", + "url": "https://nodejs.org/api/v8.html#v8serializevalue" + }, + { + "name": "deserialize", + "description": "Deserialize value from a buffer", + "url": "https://nodejs.org/api/v8.html#v8deserializebuffer" + } + ] + }, + { + "name": "vm", + "methods": [ + { + "name": "Script", + "isConstructor": true, + "description": "Precompile arbitrary code to execute later", + "url": "https://nodejs.org/api/vm.html#class-vmscript", + "needsExplicitPermission": true + }, + { + "name": "SourceTextModule", + "description": "Create a module defined from ECMAScript source text", + "url": "https://nodejs.org/api/vm.html#class-vmsourcetextmodule" + }, + { + "name": "SyntheticModule", + "description": "Create a WebIDL synthetic module", + "url": "https://nodejs.org/api/vm.html#class-vmsyntheticmodule" + }, + { + "name": "compileFunction", + "description": "Compile a JavaScript function", + "url": "https://nodejs.org/api/vm.html#vmcompilefunctioncode-params-options" + }, + { + "name": "createContext", + "description": "Create a new execution context", + "url": "https://nodejs.org/api/vm.html#vmcreatecontextcontextobject-options" + }, + { + "name": "isContext", + "description": "Check if the given object is an execution context", + "url": "https://nodejs.org/api/vm.html#vmiscontextobject" + }, + { + "name": "measureMemory", + "description": "Measure V8 memory usage", + "url": "https://nodejs.org/api/vm.html#vmmeasurememoryoptions" + }, + { + "name": "runInContext", + "description": "Run arbitrary code in a context", + "url": "https://nodejs.org/api/vm.html#vmrunincontextcode-contextifiedobject-options", + "needsExplicitPermission": true + }, + { + "name": "runInNewContext", + "description": "Run arbitrary code in a new context", + "url": "https://nodejs.org/api/vm.html#vmruninnewcontextcode-contextobject-options", + "needsExplicitPermission": true + }, + { + "name": "runInThisContext", + "description": "Run arbitrary code in the current context", + "url": "https://nodejs.org/api/vm.html#vmruninthiscontextcode-options", + "needsExplicitPermission": true + } + ] + }, + { + "name": "wasi", + "methods": [ + { + "name": "WASI", + "isConstructor": true, + "description": "Give WebAssembly apps access to the underlying OS", + "url": "https://nodejs.org/api/wasi.html#new-wasioptions", + "needsExplicitPermission": true + } + ] + }, + { + "name": "worker_threads", + "methods": [ + { + "name": "Worker", + "isConstructor": true, + "description": "Create a new independent JavaScript execution thread", + "url": "https://nodejs.org/api/worker_threads.html#class-worker" + }, + { + "name": "getEnvironmentData", + "description": "Get thread environment data", + "url": "https://nodejs.org/api/worker_threads.html#workergetenvironmentdatakey" + }, + { + "name": "markAsUntransferable", + "description": "Mark a buffer as untransferable between threads", + "url": "https://nodejs.org/api/worker_threads.html#workermarkasuntransferableobject" + }, + { + "name": "moveMessagePortToContext", + "description": "Move a message port to a different context", + "url": "https://nodejs.org/api/worker_threads.html#workermovemessageporttocontextport-contextifiedsandbox" + }, + { + "name": "receiveMessageOnPort", + "description": "Receive single a message on a port", + "url": "https://nodejs.org/api/worker_threads.html#workerreceivemessageonportport" + }, + { + "name": "setEnvironmentData", + "description": "Set thread environment data", + "url": "https://nodejs.org/api/worker_threads.html#workersetenvironmentdatakey-value" + } + ] + } +] \ No newline at end of file diff --git a/src/library/node.min.json b/src/library/node.min.json new file mode 100644 index 0000000..a1a6649 --- /dev/null +++ b/src/library/node.min.json @@ -0,0 +1 @@ +[{"name":"child_process","methods":[{"name":"exec","needsExplicitPermission":true},{"name":"execFile","needsExplicitPermission":true},{"name":"fork"},{"name":"spawn"},{"name":"execFileSync","needsExplicitPermission":true},{"name":"execSync","needsExplicitPermission":true},{"name":"spawnSync"}]},{"name":"cluster","methods":[{"name":"disconnect"},{"name":"fork"},{"name":"setupPrimary"},{"name":"setupMaster"}]},{"name":"dgram","methods":[{"name":"createSocket"}]},{"name":"dns","methods":[{"name":"Resolver","isConstructor":true},{"name":"getServers"},{"name":"lookup"},{"name":"lookupService"},{"name":"resolve"},{"name":"resolve4"},{"name":"resolve6"},{"name":"resolveAny"},{"name":"resolveCname"},{"name":"resolveCaa"},{"name":"resolveMx"},{"name":"resolveNaptr"},{"name":"resolveNs"},{"name":"resolvePtr"},{"name":"resolveSoa"},{"name":"resolveSrv"},{"name":"resolveTxt"},{"name":"reverse"},{"name":"setDefaultResultOrder"},{"name":"setServers"}]},{"name":"fetch","methods":[{"name":"fetch"}],"globalMethod":true},{"name":"eval","methods":[{"name":"eval","needsExplicitPermission":true}],"globalMethod":true},{"name":"Function","methods":[{"name":"Function","needsExplicitPermission":true}],"globalMethod":true},{"name":"fs","methods":[{"name":"access"},{"name":"appendFile"},{"name":"chmod"},{"name":"chown"},{"name":"close"},{"name":"copyFile"},{"name":"cp"},{"name":"createReadStream"},{"name":"createWriteStream"},{"name":"exists"},{"name":"fchmod"},{"name":"fchown"},{"name":"fdatasync"},{"name":"fstat"},{"name":"fsync"},{"name":"ftruncate"},{"name":"futimes"},{"name":"lchmod"},{"name":"lchown"},{"name":"lutimes"},{"name":"link"},{"name":"lstat"},{"name":"mkdir"},{"name":"mkdtemp"},{"name":"open"},{"name":"opendir"},{"name":"read"},{"name":"readdir"},{"name":"readFile"},{"name":"readlink"},{"name":"readv"},{"name":"realpath"},{"name":"rename"},{"name":"rmdir"},{"name":"rm"},{"name":"stat"},{"name":"symlink"},{"name":"truncate"},{"name":"unlink"},{"name":"unwatchFile"},{"name":"utimes"},{"name":"watch"},{"name":"watchFile"},{"name":"write"},{"name":"writeFile"},{"name":"writev"},{"name":"accessSync"},{"name":"appendFileSync"},{"name":"chmodSync"},{"name":"chownSync"},{"name":"closeSync"},{"name":"copyFileSync"},{"name":"cpSync"},{"name":"existsSync"},{"name":"fchmodSync"},{"name":"fchownSync"},{"name":"fdatasyncSync"},{"name":"fstatSync"},{"name":"fsyncSync"},{"name":"ftruncateSync"},{"name":"futimesSync"},{"name":"lchmodSync"},{"name":"lchownSync"},{"name":"lutimesSync"},{"name":"linkSync"},{"name":"lstatSync"},{"name":"mkdirSync"},{"name":"mkdtempSync"},{"name":"openSync"},{"name":"opendirSync"},{"name":"readSync"},{"name":"readdirSync"},{"name":"readFileSync"},{"name":"readlinkSync"},{"name":"readvSync"},{"name":"realpathSync"},{"name":"renameSync"},{"name":"rmdirSync"},{"name":"rmSync"},{"name":"statSync"},{"name":"symlinkSync"},{"name":"truncateSync"},{"name":"unlinkSync"},{"name":"utimesSync"},{"name":"writeSync"},{"name":"writeFileSync"},{"name":"writevSync"}]},{"name":"fs/promises","methods":[{"name":"access"},{"name":"appendFile"},{"name":"chmod"},{"name":"chown"},{"name":"copyFile"},{"name":"cp"},{"name":"lchmod"},{"name":"lchown"},{"name":"lutimes"},{"name":"link"},{"name":"lstat"},{"name":"mkdir"},{"name":"mkdtemp"},{"name":"open"},{"name":"opendir"},{"name":"readdir"},{"name":"readFile"},{"name":"readlink"},{"name":"realpath"},{"name":"rename"},{"name":"rmdir"},{"name":"rm"},{"name":"stat"},{"name":"symlink"},{"name":"truncate"},{"name":"unlink"},{"name":"utimes"},{"name":"watch"},{"name":"writeFile"}]},{"name":"http","methods":[{"name":"Agent"},{"name":"createServer"},{"name":"get"},{"name":"request"}]},{"name":"http2","methods":[{"name":"createServer"},{"name":"createSecureServer"},{"name":"connect"},{"name":"getDefaultSettings"},{"name":"getPackedSettings"},{"name":"getUnpackedSettings"}]},{"name":"https","methods":[{"name":"Agent"},{"name":"createServer"},{"name":"get"},{"name":"request"}]},{"name":"inspector","methods":[{"name":"close"},{"name":"open"},{"name":"url"},{"name":"waitForDebugger"},{"name":"Session","isConstructor":true}]},{"name":"net","methods":[{"name":"Server"},{"name":"Socket"},{"name":"connect"},{"name":"createConnection"},{"name":"createServer"}]},{"name":"os","methods":[{"name":"arch"},{"name":"cpus"},{"name":"endianness"},{"name":"freemem"},{"name":"getPriority"},{"name":"homedir"},{"name":"hostname"},{"name":"loadavg"},{"name":"networkInterfaces"},{"name":"platform"},{"name":"release"},{"name":"setPriority"},{"name":"tmpdir"},{"name":"totalmem"},{"name":"type"},{"name":"uptime"},{"name":"userInfo"},{"name":"version"}]},{"name":"process","methods":[{"name":"abort"},{"name":"chdir"},{"name":"cpuUsage"},{"name":"cwd"},{"name":"disconnect"},{"name":"dlopen","needsExplicitPermission":true},{"name":"emitWarning"},{"name":"exit"},{"name":"getActiveResourcesInfo"},{"name":"getegid"},{"name":"geteuid"},{"name":"getgid"},{"name":"getgroups"},{"name":"getuid"},{"name":"hasUncaughtExceptionCaptureCallback"},{"name":"hrtime"},{"name":"initgroups"},{"name":"kill"},{"name":"memoryUsage"},{"name":"resourceUsage"},{"name":"send"},{"name":"setegid"},{"name":"seteuid"},{"name":"setgid"},{"name":"setgroups"},{"name":"setuid"},{"name":"setSourceMapsEnabled"},{"name":"setUncaughtExceptionCaptureCallback"},{"name":"umask"},{"name":"uptime"},{"name":"on"}]},{"name":"timers","methods":[{"name":"setImmediate"},{"name":"setInterval"},{"name":"setTimeout"},{"name":"clearImmediate"},{"name":"clearInterval"},{"name":"clearTimeout"}]},{"name":"timers/promises","methods":[{"name":"setImmediate"},{"name":"setInterval"},{"name":"setTimeout"}]},{"name":"tls","methods":[{"name":"Server"},{"name":"TLSSocket"},{"name":"checkServerIdentity"},{"name":"connect"},{"name":"createSecureContext"},{"name":"createSecurePair"},{"name":"createServer"},{"name":"getCiphers"}]},{"name":"trace_events","methods":[{"name":"createTracing"},{"name":"getEnabledCategories"}]},{"name":"v8","methods":[{"name":"cachedDataVersionTag"},{"name":"getHeapCodeStatistics"},{"name":"getHeapSnapshot"},{"name":"getHeapSpaceStatistics"},{"name":"getHeapStatistics"},{"name":"setFlagsFromString"},{"name":"stopCoverage"},{"name":"takeCoverage"},{"name":"writeHeapSnapshot"},{"name":"serialize"},{"name":"deserialize"}]},{"name":"vm","methods":[{"name":"Script","isConstructor":true,"needsExplicitPermission":true},{"name":"SourceTextModule"},{"name":"SyntheticModule"},{"name":"compileFunction"},{"name":"createContext"},{"name":"isContext"},{"name":"measureMemory"},{"name":"runInContext","needsExplicitPermission":true},{"name":"runInNewContext","needsExplicitPermission":true},{"name":"runInThisContext","needsExplicitPermission":true}]},{"name":"wasi","methods":[{"name":"WASI","isConstructor":true,"needsExplicitPermission":true}]},{"name":"worker_threads","methods":[{"name":"Worker","isConstructor":true},{"name":"getEnvironmentData"},{"name":"markAsUntransferable"},{"name":"moveMessagePortToContext"},{"name":"receiveMessageOnPort"},{"name":"setEnvironmentData"}]}] \ No newline at end of file diff --git a/src/library/web.js b/src/library/web.js deleted file mode 100644 index 6127e9b..0000000 --- a/src/library/web.js +++ /dev/null @@ -1,1060 +0,0 @@ -const {web: builder} = require('./builder'); - -const library = () => - [ - { - name: 'AudioContext', - globalConstructor: true, - constructorDescription: 'Enable execution of audio processing or decoding.', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/AudioContext', - }, - { - // swReg.backgroundFetch - name: 'BackgroundFetchManager', - methods: [ - { - name: 'fetch', - description: 'Register URLs for background fetch', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/fetch', - }, - { - name: 'get', - description: 'Get info on background fetch job', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/get', - }, - { - name: 'getIds', - description: 'Return the IDs of all registered background fetches', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/getIds', - }, - ], - }, - { - name: 'BackgroundTasks', - globalMethods: [ - { - name: 'requestIdleCallback', - description: 'Queue task to be executed in the background', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback', - }, - { - name: 'cancelIdleCallback', - description: 'Cancel a previously queued background task', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelIdleCallback', - }, - ], - }, - { - name: 'Beacon', - navigatorMethods: [ - { - name: 'sendBeacon', - description: 'Send an asynchronous request that does not expect a response', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon', - }, - ], - }, - { - // navigator.bluetooth - name: 'Bluetooth', - methods: [ - { - name: 'getAvailability', - description: 'Is the browser able to use Bluetooth', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getAvailability', - }, - { - name: 'getDevices', - description: 'Get a list of available Bluetooth devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getDevices', - }, - { - name: 'requestDevice', - description: 'Request a Bluetooth device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/requestDevice', - }, - ], - }, - { - // navigator.clipboard - name: 'Clipboard', - methods: [ - { - name: 'read', - description: 'Request arbitrary data from the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read', - }, - { - name: 'readText', - description: 'Request text from the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText', - }, - { - name: 'write', - description: 'Write arbitrary data to the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write', - }, - { - name: 'writeText', - description: 'Write text to the clipboard', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText', - }, - ], - }, - { - // navigator.contacts - name: 'ContactsManager', - methods: [ - { - name: 'select', - description: 'Retrieve contact information from user device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/select', - }, - { - name: 'getProperties', - description: 'List all available contact properties', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/getProperties', - }, - ], - }, - { - name: 'ContentIndex', - methods: [ - { - name: 'add', - description: 'Register offline enabled content with the browser', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/add', - }, - { - name: 'delete', - description: 'Delete an offline enabled content', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/delete', - }, - { - name: 'getAll', - description: 'Get all offline enabled content', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/getAll', - }, - ], - }, - { - // self.cookieStore - name: 'CookieStore', - methods: [ - { - name: 'delete', - description: 'Delete a cookie', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/delete', - }, - { - name: 'get', - description: 'Get a cookie', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/get', - }, - { - name: 'getAll', - description: 'Get all cookies', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/getAll', - }, - { - name: 'set', - description: 'Set a cookie', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/set', - }, - ], - }, - { - // navigator.credentials - name: 'CredentialsContainer', - methods: [ - { - name: 'create', - description: 'Create a new Credential instance', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/create', - }, - { - name: 'get', - description: 'Retrieve saved authentication credentials', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/get', - }, - { - name: 'preventSilentAccess', - description: 'Set if automatic log in is allowed', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/preventSilentAccess', - }, - { - name: 'store', - description: 'Store user authentication credentials', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/store', - }, - ], - }, - { - name: 'EventSource', - globalConstructor: true, - constructorDescription: 'Recieve events from a server, via a persistent connection', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/EventSource', - }, - { - // self.fetch - name: 'Fetch', - globalMethods: [ - { - name: 'fetch', - description: 'Communicate with a web server', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/fetch', - }, - ], - }, - { - name: 'FileReader', - globalConstructor: true, - constructorDescription: 'Read the contents of a user file', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader', - methods: [ - { - name: 'abort', - description: 'Abort reading file', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/abort', - }, - { - name: 'readAsArrayBuffer', - description: 'Read file as ArrayBuffer', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsArrayBuffer', - }, - { - name: 'readAsBinaryString', - description: 'Read file as binary string', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsBinaryString', - }, - { - name: 'readAsDataURL', - description: 'Read file as data URL', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL', - }, - { - name: 'readAsText', - description: 'Read file as text', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsText', - }, - ], - }, - { - name: 'FileReaderSync', - globalConstructor: true, - constructorDescription: 'Read the contents of a user file', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync', - methods: [ - { - name: 'readAsArrayBuffer', - description: 'Read file as ArrayBuffer', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsArrayBuffer', - }, - { - name: 'readAsBinaryString', - description: 'Read file as binary string', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsBinaryString', - }, - { - name: 'readAsDataURL', - description: 'Read file as data URL', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsDataURL', - }, - { - name: 'readAsText', - description: 'Read file as text', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsText', - }, - ], - }, - { - name: 'FileSystem', - globalMethods: [ - { - name: 'showOpenFilePicker', - description: 'Prompt user to allow reading a file from his system', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker', - }, - { - name: 'showSaveFilePicker', - description: 'Prompt user to allow saving a file to his system', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/window/showSaveFilePicker', - }, - { - name: 'showDirectoryPicker', - description: 'Prompt user to allow reading a directory from his system', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/window/showDirectoryPicker', - }, - ], - }, - { - name: 'Gamepad', - navigatorMethods: [ - { - name: 'getGamepads', - description: 'Get a list of connected gamepads', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getGamepads', - }, - ], - }, - { - // navigator.geolocation - name: 'Geolocation', - methods: [ - { - name: 'clearWatch', - description: 'Stop tracking user location', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/clearWatch', - }, - { - name: 'getCurrentPosition', - description: 'Get user location', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition', - }, - { - name: 'watchPosition', - description: 'Track user location', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition', - }, - ], - }, - { - // navigator.getBattery() - name: 'Battery', - navigatorMethods: [ - { - name: 'getBattery', - description: 'Get device battery information', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery', - }, - ], - }, - { - // navigator.hid - name: 'HID', - methods: [ - { - name: 'getDevices', - description: 'List connected Human Interface Devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/HID/getDevices', - }, - { - name: 'requestDevice', - description: 'Connect to a Human Interface Device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/HID/requestDevice', - }, - ], - }, - { - // window.history - name: 'History', - methods: [ - { - name: 'back', - description: 'Go back in navigation history', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/back', - }, - { - name: 'forward', - description: 'Go forward in navigation history', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/forward', - }, - { - name: 'go', - description: 'Go to a specific point in the navigation history', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/go', - }, - { - name: 'pushState', - description: 'Add a new entry to the history stack', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/pushState', - }, - { - name: 'replaceState', - description: 'Replace the current entry in the history stack', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState', - }, - ], - }, - { - // window.indexedDB - name: 'IDBFactory', - methods: [ - { - name: 'cmp', - description: 'Compare two database keys', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/cmp', - }, - { - name: 'databases', - description: 'List all available databases', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/databases', - }, - { - name: 'deleteDatabase', - description: 'Delete a database', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/deleteDatabase', - }, - { - name: 'open', - description: 'Open a database', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/open', - }, - ], - }, - { - name: 'ImageCapture', - globalConstructor: true, - constructorDescription: 'Enable the capture of images or photos from a camera', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture', - methods: [ - { - name: 'getPhotoCapabilities', - description: 'Get the capabilities of the camera', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoCapabilities', - }, - { - name: 'getPhotoSettings', - description: 'Get the settings of the camera', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoSettings', - }, - { - name: 'grabFrame', - description: 'Take a snapshot of the live video stream', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/grabFrame', - }, - { - name: 'takePhoto', - description: 'Take a single exposure using the video capture device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/takePhoto', - }, - ], - }, - { - // navigator.mediaDevices - name: 'MediaDevices', - methods: [ - { - name: 'enumerateDevices', - description: 'List all connected media devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices', - }, - { - name: 'getDisplayMedia', - description: 'Capture the contents of a display or portion thereof', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia', - }, - { - name: 'getSupportedConstraints', - description: 'Get the supported media device constraints', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getSupportedConstraints', - }, - { - name: 'getUserMedia', - description: 'Request access to user media devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia', - }, - { - name: 'selectAudioOutput', - description: 'Select an audio output device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/selectAudioOutput', - }, - ], - }, - { - name: 'MediaRecorder', - globalConstructor: true, - constructorDescription: 'Record audio and video', - constructorUrl: - 'https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder', - }, - { - name: 'MediaStream', - globalConstructor: true, - constructorDescription: 'A stream of media content', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/MediaStream/MediaStream', - }, - { - name: 'MessageChannel', - globalConstructor: true, - constructorDescription: 'A channel for passing messages between threads', - constructorUrl: - 'https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel/MessageChannel', - globalMethods: [ - { - name: 'postMessage', - description: 'Send cross-origin communication between windows', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage', - }, - ], - }, - { - // navigator.requestMIDIAccess() - name: 'MIDI', - navigatorMethods: [ - { - name: 'requestMIDIAccess', - description: 'Request access to connected MIDI devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMIDIAccess', - }, - ], - }, - { - name: 'Notification', - globalConstructor: true, - constructorDescription: 'Create a user notification', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification', - methods: [ - { - name: 'requestPermission', - description: 'Request permission to show notifications', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Notification/requestPermission', - }, - ], - swrMethods: [ - { - name: 'showNotification', - description: 'Show a browser notification', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification', - }, - { - name: 'getNotifications', - description: 'List received notifications', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/getNotifications', - }, - ], - }, - { - name: 'PaymentRequest', - globalConstructor: true, - constructorDescription: 'Create a payment request', - constructorUrl: - 'https://developer.mozilla.org/en-US/docs/Web/API/PaymentRequest/PaymentRequest', - }, - { - name: 'PerformanceObserver', - globalConstructor: true, - constructorDescription: 'Monitor the performance of the page', - constructorUrl: - 'https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver/PerformanceObserver', - }, - { - // swReg.periodicSync - name: 'PeriodicSyncManager', - methods: [ - { - name: 'register', - description: 'Registers a periodic background sync request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/register', - }, - { - name: 'unregister', - description: 'Unregisters a periodic background sync request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/unregister', - }, - { - name: 'getTags', - description: 'List registered periodic sync requests', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/getTags', - }, - ], - }, - { - // navigator.permissions - name: 'Permissions', - methods: [ - { - name: 'query', - description: 'Get user permission status for a given API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query', - }, - { - name: 'revoke', - description: 'Revoke a user permission for a given API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Permissions/revoke', - }, - ], - }, - { - name: 'PresentationRequest', - globalConstructor: true, - constructorDescription: 'Create a presentation request', - constructorUrl: - 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/PresentationRequest', - methods: [ - { - name: 'start', - description: 'Start a presentation', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/start', - }, - { - name: 'reconnect', - description: 'Reconnect to a presentation', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/reconnect', - }, - { - name: 'getAvailability', - description: 'Get availability for starting presentations', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/getAvailability', - }, - ], - }, - { - // swReg.pushManager - name: 'PushManager', - methods: [ - { - name: 'getSubscription', - description: 'Get the current push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/getSubscription', - }, - { - name: 'hasPermission', - description: 'Get push subscription permission state', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/hasPermission', - }, - { - name: 'permissionState', - description: 'Get push subscription permission state', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/permissionState', - }, - { - name: 'register', - description: 'Register a push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/register', - }, - { - name: 'registrations', - description: 'List of registered push subscriptions', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/registrations', - }, - { - name: 'subscribe', - description: 'Subscribe to a push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe', - }, - { - name: 'unregister', - description: 'Unregister a push subscription', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/PushManager/unregister', - }, - ], - }, - { - name: 'ReportingObserver', - globalConstructor: true, - constructorDescription: 'Collect and access reports on various issues', - constructorUrl: - 'https://developer.mozilla.org/en-US/docs/Web/API/ReportingObserver/ReportingObserver', - }, - { - name: 'Scheduler', - methods: [ - { - name: 'postTask', - description: 'Create a new scheduled task', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/postTask', - }, - ], - }, - { - name: 'Selection', - globalMethods: [ - { - name: 'getSelection', - description: 'Get the current webpage selection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection', - }, - ], - documentMethods: [ - { - name: 'getSelection', - description: 'Get the current webpage selection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Document/getSelection', - }, - ], - }, - { - name: 'Sensor', - globalConstructors: [ - { - name: 'AbsoluteOrientationSensor', - description: 'Absolute orientation sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/AbsoluteOrientationSensor', - }, - { - name: 'Accelerometer', - description: 'Accelerometer sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Accelerometer', - }, - { - name: 'AmbientLightSensor', - description: 'Ambient light sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/AmbientLightSensor', - }, - { - name: 'GravitySensor', - description: 'Gravity sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/GravitySensor', - }, - { - name: 'Gyroscope', - description: 'Gyroscope sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Gyroscope', - }, - { - name: 'LinearAccelerationSensor', - description: 'Linear acceleration sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/LinearAccelerationSensor', - }, - { - name: 'Magnetometer', - description: 'Magnetometer sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Magnetometer', - }, - { - name: 'RelativeOrientationSensor', - description: 'Relative orientation sensor', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/RelativeOrientationSensor', - }, - ], - }, - { - // navigator.share() - name: 'Share', - navigatorMethods: [ - { - name: 'share', - description: 'Share content to user-selected targets', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share', - }, - { - name: 'canShare', - description: 'Check if sharing is supported', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/canShare', - }, - ], - }, - { - name: 'SpeechRecognition', - globalConstructors: [ - { - name: 'SpeechRecognition', - description: 'Use the speech recognition API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/SpeechRecognition', - }, - { - name: 'webkitSpeechRecognition', - description: 'Use the speech recognition API', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/webkitSpeechRecognition', - }, - ], - methods: [ - { - name: 'abort', - description: 'Abort a speech recognition process', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/abort', - }, - { - name: 'start', - description: 'Start a speech recognition process', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/start', - }, - { - name: 'stop', - description: 'Stop a speech recognition process', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/stop', - }, - ], - }, - { - // self.speechSynthesis - name: 'SpeechSynthesis', - globalPropertyMethods: [ - { - name: 'cancel', - description: 'Cancel speech synthesis', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/cancel', - }, - { - name: 'getVoices', - description: 'Get the list of available voices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/getVoices', - }, - { - name: 'pause', - description: 'Pause speech synthesis', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/pause', - }, - { - name: 'resume', - description: 'Resume speech synthesis', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/resume', - }, - { - name: 'speak', - description: 'Speak text', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/speak', - }, - ], - globalProperty: 'speechSynthesis', - }, - { - // self.localStorage - name: 'Storage', - methods: [ - { - name: 'getItem', - description: 'Return an item from local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem', - }, - { - name: 'setItem', - description: 'Save an item to local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem', - }, - { - name: 'removeItem', - description: 'Remove an item from local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/removeItem', - }, - { - name: 'clear', - description: 'Clear local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/clear', - }, - { - name: 'key', - description: 'Return the name of the nth key in local storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Storage/key', - }, - ], - }, - { - name: 'StorageAccess', - documentMethods: [ - { - name: 'requestStorageAccess', - description: 'Request access to first-party storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Document/requestStorageAccess', - }, - { - name: 'hasStorageAccess', - description: 'Check if storage access is granted', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Document/hasStorageAccess', - }, - ], - }, - { - // navigator.storage - name: 'StorageManager', - methods: [ - { - name: 'estimate', - description: 'Returns current storage space - used and available', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate', - }, - { - name: 'persist', - description: 'Request permission to use persistent storage', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist', - }, - { - name: 'persisted', - description: 'Check if persistent storage is granted', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persisted', - }, - ], - }, - { - // self.crypto.subtle - name: 'SubtleCrypto', - methods: [ - { - name: 'decrypt', - description: 'Decrypt data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/decrypt', - }, - { - name: 'deriveBits', - description: 'Derive bits from a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveBits', - }, - { - name: 'deriveKey', - description: 'Derive a secret key from a master key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey', - }, - { - name: 'digest', - description: 'Generate a crypto digest from data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest', - }, - { - name: 'encrypt', - description: 'Encrypt data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt', - }, - { - name: 'exportKey', - description: 'Export a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/exportKey', - }, - { - name: 'generateKey', - description: 'Generate a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey', - }, - { - name: 'importKey', - description: 'Import a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey', - }, - { - name: 'sign', - description: 'Sign data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/sign', - }, - { - name: 'unwrapKey', - description: 'Unwrap a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/unwrapKey', - }, - { - name: 'verify', - description: 'Verify data', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/verify', - }, - { - name: 'wrapKey', - description: 'Wrap a crypto key', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/wrapKey', - }, - ], - }, - { - // navigator.usb - name: 'USB', - methods: [ - { - name: 'getDevices', - description: 'Get a list of paired attached USB devices', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/USB/getDevices', - }, - { - name: 'requestDevice', - description: 'Request access to a USB device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice', - }, - ], - }, - { - name: 'Vibration', - navigatorMethods: [ - { - name: 'vibrate', - description: 'Vibrate the device', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate', - }, - ], - }, - { - // navigator.wakeLock - name: 'WakeLock', - methods: [ - { - name: 'request', - description: 'Request a device wake lock', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/WakeLock/request', - }, - ], - }, - { - name: 'WebSocket', - globalConstructor: true, - constructorDescription: 'Create a new WebSocket object', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket', - methods: [ - { - name: 'close', - description: 'Close a websocket connection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close', - }, - { - name: 'send', - description: 'Send data on a websocket connection', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send', - }, - ], - }, - { - name: 'Worker', - globalConstructor: true, - constructorDescription: 'Create a new web worker', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker', - methods: [ - { - name: 'postMessage', - description: 'Post a message to a web worker', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage', - }, - { - name: 'terminate', - description: 'Terminate a web worker', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/Worker/terminate', - }, - ], - }, - { - name: 'SharedWorker', - globalConstructor: true, - constructorDescription: 'Create a new shared worker', - constructorUrl: 'https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker', - }, - { - name: 'XMLHttpRequest', - globalConstructor: true, - constructorDescription: 'Communicate with a web server', - constructorUrl: - 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/XMLHttpRequest', - methods: [ - { - name: 'abort', - description: 'Abort an web request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort', - }, - { - name: 'getAllResponseHeaders', - description: 'Get all response headers', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders', - }, - { - name: 'getResponseHeader', - description: 'Get a response header', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader', - }, - { - name: 'open', - description: 'Open a web request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open', - }, - { - name: 'overrideMimeType', - description: 'Override the MIME type', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/overrideMimeType', - }, - { - name: 'send', - description: 'Send data via a web request', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send', - }, - { - name: 'setRequestHeader', - description: 'Set a request header', - url: 'https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader', - }, - ], - }, - ].reduce((acc, cur) => [...acc, ...builder(cur)], []); - -module.exports = library; diff --git a/src/library/web.json b/src/library/web.json new file mode 100644 index 0000000..1ba6450 --- /dev/null +++ b/src/library/web.json @@ -0,0 +1,1024 @@ +[ + { + "name": "AudioContext", + "globalConstructor": true, + "constructorDescription": "Enable execution of audio processing or decoding.", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/AudioContext" + }, + { + "name": "BackgroundFetchManager", + "methods": [ + { + "name": "fetch", + "description": "Register URLs for background fetch", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/fetch" + }, + { + "name": "get", + "description": "Get info on background fetch job", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/get" + }, + { + "name": "getIds", + "description": "Return the IDs of all registered background fetches", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/BackgroundFetchManager/getIds" + } + ] + }, + { + "name": "BackgroundTasks", + "globalMethods": [ + { + "name": "requestIdleCallback", + "description": "Queue task to be executed in the background", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback" + }, + { + "name": "cancelIdleCallback", + "description": "Cancel a previously queued background task", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelIdleCallback" + } + ] + }, + { + "name": "Beacon", + "navigatorMethods": [ + { + "name": "sendBeacon", + "description": "Send an asynchronous request that does not expect a response", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon" + } + ] + }, + { + "name": "Bluetooth", + "methods": [ + { + "name": "getAvailability", + "description": "Is the browser able to use Bluetooth", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getAvailability" + }, + { + "name": "getDevices", + "description": "Get a list of available Bluetooth devices", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/getDevices" + }, + { + "name": "requestDevice", + "description": "Request a Bluetooth device", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Bluetooth/requestDevice" + } + ] + }, + { + "name": "Clipboard", + "methods": [ + { + "name": "read", + "description": "Request arbitrary data from the clipboard", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/read" + }, + { + "name": "readText", + "description": "Request text from the clipboard", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText" + }, + { + "name": "write", + "description": "Write arbitrary data to the clipboard", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/write" + }, + { + "name": "writeText", + "description": "Write text to the clipboard", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/writeText" + } + ] + }, + { + "name": "ContactsManager", + "methods": [ + { + "name": "select", + "description": "Retrieve contact information from user device", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/select" + }, + { + "name": "getProperties", + "description": "List all available contact properties", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ContactsManager/getProperties" + } + ] + }, + { + "name": "ContentIndex", + "methods": [ + { + "name": "add", + "description": "Register offline enabled content with the browser", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/add" + }, + { + "name": "delete", + "description": "Delete an offline enabled content", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/delete" + }, + { + "name": "getAll", + "description": "Get all offline enabled content", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ContentIndex/getAll" + } + ] + }, + { + "name": "CookieStore", + "methods": [ + { + "name": "delete", + "description": "Delete a cookie", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/delete" + }, + { + "name": "get", + "description": "Get a cookie", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/get" + }, + { + "name": "getAll", + "description": "Get all cookies", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/getAll" + }, + { + "name": "set", + "description": "Set a cookie", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CookieStore/set" + } + ] + }, + { + "name": "CredentialsContainer", + "methods": [ + { + "name": "create", + "description": "Create a new Credential instance", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/create" + }, + { + "name": "get", + "description": "Retrieve saved authentication credentials", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/get" + }, + { + "name": "preventSilentAccess", + "description": "Set if automatic log in is allowed", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/preventSilentAccess" + }, + { + "name": "store", + "description": "Store user authentication credentials", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/CredentialsContainer/store" + } + ] + }, + { + "name": "EventSource", + "globalConstructor": true, + "constructorDescription": "Recieve events from a server, via a persistent connection", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/EventSource" + }, + { + "name": "Fetch", + "globalMethods": [ + { + "name": "fetch", + "description": "Communicate with a web server", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/fetch" + } + ] + }, + { + "name": "FileReader", + "globalConstructor": true, + "constructorDescription": "Read the contents of a user file", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/FileReader", + "methods": [ + { + "name": "abort", + "description": "Abort reading file", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReader/abort" + }, + { + "name": "readAsArrayBuffer", + "description": "Read file as ArrayBuffer", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsArrayBuffer" + }, + { + "name": "readAsBinaryString", + "description": "Read file as binary string", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsBinaryString" + }, + { + "name": "readAsDataURL", + "description": "Read file as data URL", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL" + }, + { + "name": "readAsText", + "description": "Read file as text", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsText" + } + ] + }, + { + "name": "FileReaderSync", + "globalConstructor": true, + "constructorDescription": "Read the contents of a user file", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync", + "methods": [ + { + "name": "readAsArrayBuffer", + "description": "Read file as ArrayBuffer", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsArrayBuffer" + }, + { + "name": "readAsBinaryString", + "description": "Read file as binary string", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsBinaryString" + }, + { + "name": "readAsDataURL", + "description": "Read file as data URL", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsDataURL" + }, + { + "name": "readAsText", + "description": "Read file as text", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/FileReaderSync/readAsText" + } + ] + }, + { + "name": "FileSystem", + "globalMethods": [ + { + "name": "showOpenFilePicker", + "description": "Prompt user to allow reading a file from his system", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker" + }, + { + "name": "showSaveFilePicker", + "description": "Prompt user to allow saving a file to his system", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/window/showSaveFilePicker" + }, + { + "name": "showDirectoryPicker", + "description": "Prompt user to allow reading a directory from his system", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/window/showDirectoryPicker" + } + ] + }, + { + "name": "Gamepad", + "navigatorMethods": [ + { + "name": "getGamepads", + "description": "Get a list of connected gamepads", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getGamepads" + } + ] + }, + { + "name": "Geolocation", + "methods": [ + { + "name": "clearWatch", + "description": "Stop tracking user location", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/clearWatch" + }, + { + "name": "getCurrentPosition", + "description": "Get user location", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition" + }, + { + "name": "watchPosition", + "description": "Track user location", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition" + } + ] + }, + { + "name": "Battery", + "navigatorMethods": [ + { + "name": "getBattery", + "description": "Get device battery information", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/getBattery" + } + ] + }, + { + "name": "HID", + "methods": [ + { + "name": "getDevices", + "description": "List connected Human Interface Devices", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/HID/getDevices" + }, + { + "name": "requestDevice", + "description": "Connect to a Human Interface Device", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/HID/requestDevice" + } + ] + }, + { + "name": "History", + "methods": [ + { + "name": "back", + "description": "Go back in navigation history", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/History/back" + }, + { + "name": "forward", + "description": "Go forward in navigation history", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/History/forward" + }, + { + "name": "go", + "description": "Go to a specific point in the navigation history", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/History/go" + }, + { + "name": "pushState", + "description": "Add a new entry to the history stack", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/History/pushState" + }, + { + "name": "replaceState", + "description": "Replace the current entry in the history stack", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState" + } + ] + }, + { + "name": "IDBFactory", + "methods": [ + { + "name": "cmp", + "description": "Compare two database keys", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/cmp" + }, + { + "name": "databases", + "description": "List all available databases", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/databases" + }, + { + "name": "deleteDatabase", + "description": "Delete a database", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/deleteDatabase" + }, + { + "name": "open", + "description": "Open a database", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/IDBFactory/open" + } + ] + }, + { + "name": "ImageCapture", + "globalConstructor": true, + "constructorDescription": "Enable the capture of images or photos from a camera", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture", + "methods": [ + { + "name": "getPhotoCapabilities", + "description": "Get the capabilities of the camera", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoCapabilities" + }, + { + "name": "getPhotoSettings", + "description": "Get the settings of the camera", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoSettings" + }, + { + "name": "grabFrame", + "description": "Take a snapshot of the live video stream", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/grabFrame" + }, + { + "name": "takePhoto", + "description": "Take a single exposure using the video capture device", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/takePhoto" + } + ] + }, + { + "name": "MediaDevices", + "methods": [ + { + "name": "enumerateDevices", + "description": "List all connected media devices", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices" + }, + { + "name": "getDisplayMedia", + "description": "Capture the contents of a display or portion thereof", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getDisplayMedia" + }, + { + "name": "getSupportedConstraints", + "description": "Get the supported media device constraints", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getSupportedConstraints" + }, + { + "name": "getUserMedia", + "description": "Request access to user media devices", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia" + }, + { + "name": "selectAudioOutput", + "description": "Select an audio output device", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/selectAudioOutput" + } + ] + }, + { + "name": "MediaRecorder", + "globalConstructor": true, + "constructorDescription": "Record audio and video", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder" + }, + { + "name": "MediaStream", + "globalConstructor": true, + "constructorDescription": "A stream of media content", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/MediaStream/MediaStream" + }, + { + "name": "MessageChannel", + "globalConstructor": true, + "constructorDescription": "A channel for passing messages between threads", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/MessageChannel/MessageChannel", + "globalMethods": [ + { + "name": "postMessage", + "description": "Send cross-origin communication between windows", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage" + } + ] + }, + { + "name": "MIDI", + "navigatorMethods": [ + { + "name": "requestMIDIAccess", + "description": "Request access to connected MIDI devices", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/requestMIDIAccess" + } + ] + }, + { + "name": "Notification", + "globalConstructor": true, + "constructorDescription": "Create a user notification", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/Notification/Notification", + "methods": [ + { + "name": "requestPermission", + "description": "Request permission to show notifications", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Notification/requestPermission" + } + ], + "swrMethods": [ + { + "name": "showNotification", + "description": "Show a browser notification", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/showNotification" + }, + { + "name": "getNotifications", + "description": "List received notifications", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/getNotifications" + } + ] + }, + { + "name": "PaymentRequest", + "globalConstructor": true, + "constructorDescription": "Create a payment request", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/PaymentRequest/PaymentRequest" + }, + { + "name": "PerformanceObserver", + "globalConstructor": true, + "constructorDescription": "Monitor the performance of the page", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/PerformanceObserver/PerformanceObserver" + }, + { + "name": "PeriodicSyncManager", + "methods": [ + { + "name": "register", + "description": "Registers a periodic background sync request", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/register" + }, + { + "name": "unregister", + "description": "Unregisters a periodic background sync request", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/unregister" + }, + { + "name": "getTags", + "description": "List registered periodic sync requests", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PeriodicSyncManager/getTags" + } + ] + }, + { + "name": "Permissions", + "methods": [ + { + "name": "query", + "description": "Get user permission status for a given API", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Permissions/query" + }, + { + "name": "revoke", + "description": "Revoke a user permission for a given API", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Permissions/revoke" + } + ] + }, + { + "name": "PresentationRequest", + "globalConstructor": true, + "constructorDescription": "Create a presentation request", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/PresentationRequest", + "methods": [ + { + "name": "start", + "description": "Start a presentation", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/start" + }, + { + "name": "reconnect", + "description": "Reconnect to a presentation", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/reconnect" + }, + { + "name": "getAvailability", + "description": "Get availability for starting presentations", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PresentationRequest/getAvailability" + } + ] + }, + { + "name": "PushManager", + "methods": [ + { + "name": "getSubscription", + "description": "Get the current push subscription", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PushManager/getSubscription" + }, + { + "name": "hasPermission", + "description": "Get push subscription permission state", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PushManager/hasPermission" + }, + { + "name": "permissionState", + "description": "Get push subscription permission state", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PushManager/permissionState" + }, + { + "name": "register", + "description": "Register a push subscription", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PushManager/register" + }, + { + "name": "registrations", + "description": "List of registered push subscriptions", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PushManager/registrations" + }, + { + "name": "subscribe", + "description": "Subscribe to a push subscription", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PushManager/subscribe" + }, + { + "name": "unregister", + "description": "Unregister a push subscription", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/PushManager/unregister" + } + ] + }, + { + "name": "ReportingObserver", + "globalConstructor": true, + "constructorDescription": "Collect and access reports on various issues", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/ReportingObserver/ReportingObserver" + }, + { + "name": "Scheduler", + "methods": [ + { + "name": "postTask", + "description": "Create a new scheduled task", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Scheduler/postTask" + } + ] + }, + { + "name": "Selection", + "globalMethods": [ + { + "name": "getSelection", + "description": "Get the current webpage selection", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Window/getSelection" + } + ], + "documentMethods": [ + { + "name": "getSelection", + "description": "Get the current webpage selection", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Document/getSelection" + } + ] + }, + { + "name": "Sensor", + "globalConstructors": [ + { + "name": "AbsoluteOrientationSensor", + "description": "Absolute orientation sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/AbsoluteOrientationSensor" + }, + { + "name": "Accelerometer", + "description": "Accelerometer sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Accelerometer" + }, + { + "name": "AmbientLightSensor", + "description": "Ambient light sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/AmbientLightSensor" + }, + { + "name": "GravitySensor", + "description": "Gravity sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/GravitySensor" + }, + { + "name": "Gyroscope", + "description": "Gyroscope sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Gyroscope" + }, + { + "name": "LinearAccelerationSensor", + "description": "Linear acceleration sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/LinearAccelerationSensor" + }, + { + "name": "Magnetometer", + "description": "Magnetometer sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Magnetometer" + }, + { + "name": "RelativeOrientationSensor", + "description": "Relative orientation sensor", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/RelativeOrientationSensor" + } + ] + }, + { + "name": "Share", + "navigatorMethods": [ + { + "name": "share", + "description": "Share content to user-selected targets", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/share" + }, + { + "name": "canShare", + "description": "Check if sharing is supported", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/canShare" + } + ] + }, + { + "name": "SpeechRecognition", + "globalConstructors": [ + { + "name": "SpeechRecognition", + "description": "Use the speech recognition API", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/SpeechRecognition" + }, + { + "name": "webkitSpeechRecognition", + "description": "Use the speech recognition API", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/webkitSpeechRecognition" + } + ], + "methods": [ + { + "name": "abort", + "description": "Abort a speech recognition process", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/abort" + }, + { + "name": "start", + "description": "Start a speech recognition process", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/start" + }, + { + "name": "stop", + "description": "Stop a speech recognition process", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechRecognition/stop" + } + ] + }, + { + "name": "SpeechSynthesis", + "globalPropertyMethods": [ + { + "name": "cancel", + "description": "Cancel speech synthesis", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/cancel" + }, + { + "name": "getVoices", + "description": "Get the list of available voices", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/getVoices" + }, + { + "name": "pause", + "description": "Pause speech synthesis", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/pause" + }, + { + "name": "resume", + "description": "Resume speech synthesis", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/resume" + }, + { + "name": "speak", + "description": "Speak text", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis/speak" + } + ], + "globalProperty": "speechSynthesis" + }, + { + "name": "Storage", + "methods": [ + { + "name": "getItem", + "description": "Return an item from local storage", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Storage/getItem" + }, + { + "name": "setItem", + "description": "Save an item to local storage", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Storage/setItem" + }, + { + "name": "removeItem", + "description": "Remove an item from local storage", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Storage/removeItem" + }, + { + "name": "clear", + "description": "Clear local storage", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Storage/clear" + }, + { + "name": "key", + "description": "Return the name of the nth key in local storage", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Storage/key" + } + ] + }, + { + "name": "StorageAccess", + "documentMethods": [ + { + "name": "requestStorageAccess", + "description": "Request access to first-party storage", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Document/requestStorageAccess" + }, + { + "name": "hasStorageAccess", + "description": "Check if storage access is granted", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Document/hasStorageAccess" + } + ] + }, + { + "name": "StorageManager", + "methods": [ + { + "name": "estimate", + "description": "Returns current storage space - used and available", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/estimate" + }, + { + "name": "persist", + "description": "Request permission to use persistent storage", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persist" + }, + { + "name": "persisted", + "description": "Check if persistent storage is granted", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/StorageManager/persisted" + } + ] + }, + { + "name": "SubtleCrypto", + "methods": [ + { + "name": "decrypt", + "description": "Decrypt data", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/decrypt" + }, + { + "name": "deriveBits", + "description": "Derive bits from a crypto key", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveBits" + }, + { + "name": "deriveKey", + "description": "Derive a secret key from a master key", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/deriveKey" + }, + { + "name": "digest", + "description": "Generate a crypto digest from data", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest" + }, + { + "name": "encrypt", + "description": "Encrypt data", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/encrypt" + }, + { + "name": "exportKey", + "description": "Export a crypto key", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/exportKey" + }, + { + "name": "generateKey", + "description": "Generate a crypto key", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/generateKey" + }, + { + "name": "importKey", + "description": "Import a crypto key", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/importKey" + }, + { + "name": "sign", + "description": "Sign data", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/sign" + }, + { + "name": "unwrapKey", + "description": "Unwrap a crypto key", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/unwrapKey" + }, + { + "name": "verify", + "description": "Verify data", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/verify" + }, + { + "name": "wrapKey", + "description": "Wrap a crypto key", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/wrapKey" + } + ] + }, + { + "name": "USB", + "methods": [ + { + "name": "getDevices", + "description": "Get a list of paired attached USB devices", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/USB/getDevices" + }, + { + "name": "requestDevice", + "description": "Request access to a USB device", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice" + } + ] + }, + { + "name": "Vibration", + "navigatorMethods": [ + { + "name": "vibrate", + "description": "Vibrate the device", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate" + } + ] + }, + { + "name": "WakeLock", + "methods": [ + { + "name": "request", + "description": "Request a device wake lock", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/WakeLock/request" + } + ] + }, + { + "name": "WebSocket", + "globalConstructor": true, + "constructorDescription": "Create a new WebSocket object", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/WebSocket", + "methods": [ + { + "name": "close", + "description": "Close a websocket connection", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/close" + }, + { + "name": "send", + "description": "Send data on a websocket connection", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/WebSocket/send" + } + ] + }, + { + "name": "Worker", + "globalConstructor": true, + "constructorDescription": "Create a new web worker", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker", + "methods": [ + { + "name": "postMessage", + "description": "Post a message to a web worker", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage" + }, + { + "name": "terminate", + "description": "Terminate a web worker", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/Worker/terminate" + } + ] + }, + { + "name": "SharedWorker", + "globalConstructor": true, + "constructorDescription": "Create a new shared worker", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/SharedWorker/SharedWorker" + }, + { + "name": "XMLHttpRequest", + "globalConstructor": true, + "constructorDescription": "Communicate with a web server", + "constructorUrl": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/XMLHttpRequest", + "methods": [ + { + "name": "abort", + "description": "Abort an web request", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/abort" + }, + { + "name": "getAllResponseHeaders", + "description": "Get all response headers", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders" + }, + { + "name": "getResponseHeader", + "description": "Get a response header", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getResponseHeader" + }, + { + "name": "open", + "description": "Open a web request", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/open" + }, + { + "name": "overrideMimeType", + "description": "Override the MIME type", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/overrideMimeType" + }, + { + "name": "send", + "description": "Send data via a web request", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send" + }, + { + "name": "setRequestHeader", + "description": "Set a request header", + "url": "https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader" + } + ] + } +] \ No newline at end of file diff --git a/src/library/web.min.json b/src/library/web.min.json new file mode 100644 index 0000000..157c961 --- /dev/null +++ b/src/library/web.min.json @@ -0,0 +1 @@ +[{"name":"AudioContext","globalConstructor":true},{"name":"BackgroundFetchManager","methods":[{"name":"fetch"},{"name":"get"},{"name":"getIds"}]},{"name":"BackgroundTasks","globalMethods":[{"name":"requestIdleCallback"},{"name":"cancelIdleCallback"}]},{"name":"Beacon","navigatorMethods":[{"name":"sendBeacon"}]},{"name":"Bluetooth","methods":[{"name":"getAvailability"},{"name":"getDevices"},{"name":"requestDevice"}]},{"name":"Clipboard","methods":[{"name":"read"},{"name":"readText"},{"name":"write"},{"name":"writeText"}]},{"name":"ContactsManager","methods":[{"name":"select"},{"name":"getProperties"}]},{"name":"ContentIndex","methods":[{"name":"add"},{"name":"delete"},{"name":"getAll"}]},{"name":"CookieStore","methods":[{"name":"delete"},{"name":"get"},{"name":"getAll"},{"name":"set"}]},{"name":"CredentialsContainer","methods":[{"name":"create"},{"name":"get"},{"name":"preventSilentAccess"},{"name":"store"}]},{"name":"EventSource","globalConstructor":true},{"name":"Fetch","globalMethods":[{"name":"fetch"}]},{"name":"FileReader","globalConstructor":true,"methods":[{"name":"abort"},{"name":"readAsArrayBuffer"},{"name":"readAsBinaryString"},{"name":"readAsDataURL"},{"name":"readAsText"}]},{"name":"FileReaderSync","globalConstructor":true,"methods":[{"name":"readAsArrayBuffer"},{"name":"readAsBinaryString"},{"name":"readAsDataURL"},{"name":"readAsText"}]},{"name":"FileSystem","globalMethods":[{"name":"showOpenFilePicker"},{"name":"showSaveFilePicker"},{"name":"showDirectoryPicker"}]},{"name":"Gamepad","navigatorMethods":[{"name":"getGamepads"}]},{"name":"Geolocation","methods":[{"name":"clearWatch"},{"name":"getCurrentPosition"},{"name":"watchPosition"}]},{"name":"Battery","navigatorMethods":[{"name":"getBattery"}]},{"name":"HID","methods":[{"name":"getDevices"},{"name":"requestDevice"}]},{"name":"History","methods":[{"name":"back"},{"name":"forward"},{"name":"go"},{"name":"pushState"},{"name":"replaceState"}]},{"name":"IDBFactory","methods":[{"name":"cmp"},{"name":"databases"},{"name":"deleteDatabase"},{"name":"open"}]},{"name":"ImageCapture","globalConstructor":true,"methods":[{"name":"getPhotoCapabilities"},{"name":"getPhotoSettings"},{"name":"grabFrame"},{"name":"takePhoto"}]},{"name":"MediaDevices","methods":[{"name":"enumerateDevices"},{"name":"getDisplayMedia"},{"name":"getSupportedConstraints"},{"name":"getUserMedia"},{"name":"selectAudioOutput"}]},{"name":"MediaRecorder","globalConstructor":true},{"name":"MediaStream","globalConstructor":true},{"name":"MessageChannel","globalConstructor":true,"globalMethods":[{"name":"postMessage"}]},{"name":"MIDI","navigatorMethods":[{"name":"requestMIDIAccess"}]},{"name":"Notification","globalConstructor":true,"methods":[{"name":"requestPermission"}],"swrMethods":[{"name":"showNotification"},{"name":"getNotifications"}]},{"name":"PaymentRequest","globalConstructor":true},{"name":"PerformanceObserver","globalConstructor":true},{"name":"PeriodicSyncManager","methods":[{"name":"register"},{"name":"unregister"},{"name":"getTags"}]},{"name":"Permissions","methods":[{"name":"query"},{"name":"revoke"}]},{"name":"PresentationRequest","globalConstructor":true,"methods":[{"name":"start"},{"name":"reconnect"},{"name":"getAvailability"}]},{"name":"PushManager","methods":[{"name":"getSubscription"},{"name":"hasPermission"},{"name":"permissionState"},{"name":"register"},{"name":"registrations"},{"name":"subscribe"},{"name":"unregister"}]},{"name":"ReportingObserver","globalConstructor":true},{"name":"Scheduler","methods":[{"name":"postTask"}]},{"name":"Selection","globalMethods":[{"name":"getSelection"}],"documentMethods":[{"name":"getSelection"}]},{"name":"Sensor","globalConstructors":[{"name":"AbsoluteOrientationSensor"},{"name":"Accelerometer"},{"name":"AmbientLightSensor"},{"name":"GravitySensor"},{"name":"Gyroscope"},{"name":"LinearAccelerationSensor"},{"name":"Magnetometer"},{"name":"RelativeOrientationSensor"}]},{"name":"Share","navigatorMethods":[{"name":"share"},{"name":"canShare"}]},{"name":"SpeechRecognition","globalConstructors":[{"name":"SpeechRecognition"},{"name":"webkitSpeechRecognition"}],"methods":[{"name":"abort"},{"name":"start"},{"name":"stop"}]},{"name":"SpeechSynthesis","globalPropertyMethods":[{"name":"cancel"},{"name":"getVoices"},{"name":"pause"},{"name":"resume"},{"name":"speak"}],"globalProperty":"speechSynthesis"},{"name":"Storage","methods":[{"name":"getItem"},{"name":"setItem"},{"name":"removeItem"},{"name":"clear"},{"name":"key"}]},{"name":"StorageAccess","documentMethods":[{"name":"requestStorageAccess"},{"name":"hasStorageAccess"}]},{"name":"StorageManager","methods":[{"name":"estimate"},{"name":"persist"},{"name":"persisted"}]},{"name":"SubtleCrypto","methods":[{"name":"decrypt"},{"name":"deriveBits"},{"name":"deriveKey"},{"name":"digest"},{"name":"encrypt"},{"name":"exportKey"},{"name":"generateKey"},{"name":"importKey"},{"name":"sign"},{"name":"unwrapKey"},{"name":"verify"},{"name":"wrapKey"}]},{"name":"USB","methods":[{"name":"getDevices"},{"name":"requestDevice"}]},{"name":"Vibration","navigatorMethods":[{"name":"vibrate"}]},{"name":"WakeLock","methods":[{"name":"request"}]},{"name":"WebSocket","globalConstructor":true,"methods":[{"name":"close"},{"name":"send"}]},{"name":"Worker","globalConstructor":true,"methods":[{"name":"postMessage"},{"name":"terminate"}]},{"name":"SharedWorker","globalConstructor":true},{"name":"XMLHttpRequest","globalConstructor":true,"methods":[{"name":"abort"},{"name":"getAllResponseHeaders"},{"name":"getResponseHeader"},{"name":"open"},{"name":"overrideMimeType"},{"name":"send"},{"name":"setRequestHeader"}]}] \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 78a7031..ade8752 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3526,6 +3526,11 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +husky@^8.0.0: + version "8.0.1" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.1.tgz#511cb3e57de3e3190514ae49ed50f6bc3f50b3e9" + integrity sha512-xs7/chUH/CKdOCs7Zy0Aev9e/dKOMZf3K1Az1nar3tzlv0jfqnYtu235bstsWTmXOR0EfINrPa97yy4Lz6RiKw== + iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"